IS PASCAL NECESSARY ?
I put that sub-heading in to stir up some correspondence in defence of the people who
write long series of articles in the glossier magazines about structured programming.
Their second article tends to be full of rules you must not break, or your programs
will not be structured, and you won’t be a "real" programmer. In fairness, it must be
said that the first article in such a series is usually full of excellent advice such
as design your program before you start to write it, make it modular and test each
routine as you write it. This is good; and in my usual "do as I say, not as I do"
style I recommend it. The rules that appear in the second article are odd though. Why
must we never use GOTO ? Why is a “computed GOTO" doubly damned ? Will the sky really
fall down if I continue to write self-modifying code using undocumented opcodes ? I
think (and remember, I’m not getting paid for this !) that you get paid more for two
articles than you do for one.
My greatest software achievement so far would have had to be about 6K in length if I
had obeyed all those rules. It is in fact 1.5K, modifies itself when necessary, uses
IX and IY as four 8-bit registers, and won’t work if relocated carelessly; you have
probably seen it advertised.
SOFTWARE IN PROGRESS.
Now that I have all this time, and can’t sit zapping Klingons all night, I have
several projects under way. One of the least useful is an extension to Nas-Sys, in the
form of a Genuine People Personality. This should not be too tricky, all you have to
do is put a new routine address table together, change the table address in the
workspace RAM and add suitable messages before (after ?, during ?) the normal
routines. To prevent this from becoming boring, they shouldn’t always appear, and
should vary. The counter-timer chip on the I/O board should come in handy here. It
could also be used to produce a message if there is no input for, say, five minutes.
"T’m not making you depressed, am I?" would be probable. I hope to make Marvin very
much more like his Radio 4 namesake....
I have also restarted work on an improved Pilot interpreter, for use with Nas-Sys, but
this is at present halted. I’m waiting for my copy of the Scelbi Z80 Software Gourmet
Guide and Cookbook, so that I can adapt (pronounced “pinch") the floating point
routines it includes. A friend showed me this book, and I recommend it for any Nascom
user who needs a good introduction to programming in machine code. My original
interpreter only had positive integer arithmetic; in case you think that would
suffice, you will be glad to hear that I recently lent a copy of it to a friend in the
hope that the thing would get properly written out and sent in for the library. The
new version will also have a G: command for graphics, and some fancy screen
formatting, if I can get it to work.
I liked the article in Practical Computing, August issue, about a program to play
"Adventure". I have been giving some thought to how I would go about this. The printed
version is a program in "pseudo-code" which uses several tables of information to play
the game. To change the game you change the tables. My own, very slightly different,
approach would be to define a new language, with statements of various types for the
elements of the adventure: these would include place statements, artifact statements
and so on. Then all (ha ha) that is needed is an interpreter for the language. Then I
looked at how much data would need to be stored, and came to the conclusion that the
thing would need disks to be worthwhile. The coward’s way out, and if one of you
proves me wrong, I’ll be delighted. (Official receiver, please note that I am waiting
for the chance to buy myself a disk controller board, not to mention the programmable
THINGS SOMEONE SHOULD BUILD.
These are both light-years beyond my design ability, but I will write the software for
them in exchange for one of each, should some genius manage to design them. Sorry,
Heloise, but I offered first.