by Richard F. Drushel (drushel@apk.net)
This week's article will be very short, since most of my ADAM-related typing has been devoted to the object of the article. Namely, I have finished converting my regenerated source code for SmartBASIC 1.x into Z80ASM+ format. The completed source assembles to give a binary identical to that which I got by BSAVEing the SB1.x memory block (with data areas being set to zero in the source, of course). The source is available as a PKZIP 2.04g archive for download:
sb1x20y.zip, SmartBASIC 1.x version 20Y source code
When you unzip this, you'll get a biiiigggg file (481628 bytes) called SB1X20Y.ASM. This is an ASCII text version of the WordPerfect 5.0 document I used as the basis for my editing.
As I mentioned in the last TWWMCA, part of my rationale for releasing this source is so that it ends up in multiple copies in multiple locations, so some disaster here doesn't result in its being lost forever. So, if you have enough disk space (and connect time to download the 90K .ZIP archive), please grab it and squirrel it away somewhere.
The source is only partially commented, because I have not had time (since 1994, the last time I worked on it) to type in all the handwritten comments I have on the original hand-assembled source code (and the hand-commented disassembly of SmartBASIC 1.0 from January 1990 or so!). So, it clearly violates all the Good Programming Practices that I've harped on previously...but at the time I did the disassemblies and reverse-engineering, the only computer I had access to was my Tandy 2800HD 286-12MHz laptop with a 20 MB hard drive. On that same machine, it takes 12 minutes to assemble the SB1X20Y.ASM source to binary using Z80ASM+ under the Z80MU.EXE CP/M emulator.
Remember also that this source code has not been reorganized to get rid of the spaghetti leftovers from my patching, and also from the original spaghetti in SmartBASIC 1.0. The next step is to do this reorganization, which probably could reduce the size of the program by 2K at least, probably more. This extra space would become available as extra workspace for user programs, or else for extra features in SB1.x.
I don't know what's up for next time; goodness knows I have enough to do around here!
See you next week!
*Rich*
Next Article
Previous Article
TWWMCA Archive Main Page