Sunday, December 23, 2007

A Lower CASE Tool for Pascal - PasCase

Apr 1999, I've decided to develop a lower CASE tool development as my final year thesis. There are two main category of CASE tool, higher and lower CASE tool. Higher CASE tool focus on high level design phase, whereas lower CASE tool will helps on the actual development.

The design philosophic of "PasCase" are it should be end-user friendly and able to generate other programming language source code beside Pascal. So I started to prototype "PasCase" in Turbo C++ 3.0 by developing the screen design and screen flow in actual coding. I've manage to make "PasCase" more user friendly and lively by presenting graphical icons together with the text labels by using Icon Maker.

I've separated the code snippets from main program by designing a simple scripting engine and script that able to express the syntax of different programming languages without having Pascal programming syntax hard coded in "PasCase" program.

Pascal - var i : integer; ("i" is variable and "integer" is data type)
C - int i; ("int" is data type and "i" is variable)

The scripting engine will interpret the script line by line and parse it before produce the actual codes . As for reserved words, they will be kept in an external dictionary files.

I've spent nearly 4 months of sleepless nights to complete it. I've really learned a lots in this project beside earning myself an "A" in my study. If you are interested to take a look, you can download "PasCase" from here.

Saturday, December 22, 2007

Some of my DOS Application Collection

During 1996 to 1999, I've wrote lots of dos applications, be it in C, C++ or Pascal. All these programs might NOT look fantastic but this is the necessary process that grew me up in my programming experiences.

Check them out at "My DOS Applications" blog ... :)

IconMaker get listed on CNET !

July 1998, I decided to submit my IconMaker to CNet for review. After registered for a developer account at CNet, they sent me the instruction on how to upload and version my application. That's my first time learning about software versioning and upload file using ftp client. After 2-3 weeks of the submission, I get email notification from CNet about IconMaker is listed on CNet ! From that day onwards, I keep surfing to my IconMaker's CNet listing page to check the total download hit of it. :D

From the initial 500 hits from the first 3 days, IconMaker hit 10k+ download after 1 month of listing on CNet ;) This has significantly helped to boost up my confident, interest and motivation for all the time and effort I've invested in programming.

Continue to program in DOS graphics mode

Late 1997, although I've started to wrote windows program that suppose to be more advance than dos application, somehow I feel I'm being constraint with all the user friendliness of Visual Basic IDE. So I've focused back to my graphics mode programming in dos that gave me the room of creativity and satisfaction. Due to my sound foundation in Pascal, I've picked up C which will be taught in my course in one week time by writing two simple text mode card game blackjack & poker (This is listed on "My DOS Applications" blog with full source code) before my lecturer start the lecture ;)

1998, I did my first attempt in animation game programming by writing a horse racing game. By applying overlay, image scrolling and object refresh concepts, I've manage to get my horse racing game done with smooth animation effect ;) (You can get my horse racing game from "My DOS Applications" blog)

Mid 1998, my 2nd uncle passed me two programming books that were used by his friend's as degree reference book and told me it might be useful to me after seeing my bookshelf in my bedroom. I like to collect programming reference book, because the internet is so slow and expensive at that time, so books are my main source of reference material beside all the boring & very basic studies reference books. One thing I want to mention here is, one of the books given by my uncle is about graphics mode programming in dos ... :)

16h mode, with 640x480 resolution in 256 colors, my program will be more presentable. So I begin to read and write experiment program in 16h mode. I'm trying to convert my existing 12h mode GUI library to 16h mode (You can find LAMGUI in "My DOS Applications") so that I can convert all my existing program to 16h without major changes. The thinking is correct but it just didn't workout this way, I've forgot why I stopped to program in 16h mode after playing with 1 month but I believe it's beyond my capability at that time. So I sticked back to 12h mode which I'm more familiar.

Program in Windows Environment

Mid 1997, I wrote my first windows program in Visual Basic 5.0 because of my school project. Bought a "Learn Visual Basic 5.0 in 21 days" book, I started to get myself use to the WYSIWYG way of UI design as well as event driven way of function trigger. If I can still remember correctly it's a time attendance system that captured clock-in and clock-out time when you enter your employee card number. The complexity of this application is at the data capturing business logic, we need to try our best to handle all the exceptional cases scenario, example one of the staff might forgot to clock-in when he report to work but he did clock-out when off duty. Things got more complex when the system tries to cater multiple shift, lunch time as well as tea break for factory that work 24x7. I've forgotten how I've managed to complete it within 3 months for someone that use Visual Basic, Crystal Report and Ms Access database for the first time. By looking back now, I would have to say it's the credit of Microsoft development IDE that allow someone to pick up the windows development concept in such a short time.

Pascal - My first programming language

1996, I started to learn programming language when I was doing my diploma studies. Using Turbo Pascal 7.0 as my very first IDE, I've coded some small utilities and 80x25 text mode UI library to facilitate myself and friends in assignment. By reading the help in the Turbo Pascal 7.0 IDE, I've realize I can do more in graphics mode. So I've decided to read more on Borland Graphics Interface (BGI) library and program in 12h graphics mode (640x480 with 16 colors). The more I'm into it, the more I'm addicted. I've spent most of my times in writing graphics mode library and small applications during that period. My DOS programming journey become more exciting when I've learned how to initialize mouse driver in my pascal program and integrated it with my very own 12h mode GUI library.