NOTES ON PROGRAMMING STYLE.
by Rory O’Farrell.
When writing programs, one is of course anxious to get the program
finished and running as fast as possible. This is very understandable, but it
leads to trouble. In one’s haste to get running, one usually omits one very
important item – COMMENTS! Comment your program fully. If in assembler, use as
many comments as possible, and if in BASIC use REM statements. Use such
comments or REMs also to space out the program and make it more legible.
Admittedly in BASIC the REMs can slow down the speed of execution of the
program, but they can always be removed with a Toolkit (.K Command in Henry’s, as
reviewed in INMC80 no 2).
If intending to do this, please, please don’t
GOTO or GOSUB a REM statement, or you will have errors when you try to run the
program. In machine language, the comments will slow the assembly slightly,
but they will not effect the runtime speed. In any event, make sure that you
have a fully commented or REMed tape of the program to file.
Another point of style. Use Manifest Constants as much as possible.
If in machine language you wish to designate the Top Line of the Screen, don’t
write LD HL, 0BCAH. Instead use an EQU statement at the program start:
TOPLIN: EQU 0BCAH
and in the program
LD HL, TOPLIN
Should it now prove necessary for some reason to change the line, e.g. using
the second line instead, we need only change the EQU statement, like this:
TOPLIN: EQU 080AH
and the assembler will change all occurrences of TOPLIN to point to the
correct line. No chance of missing a LD HL,0BCAH inadvertently. Similarly,
common values such as for carriage return (0DH) and backspace (08H) should be
declared in the same way» This makes the program more readable, and
consequently helps cut down on the comments. It also has side effects. Suppose
one writes a program to accept 8 digit numbers, and to sort them into order.
Obviously, such a program will have a number of occurences of the number 8. It
will occur wherever backspaces are processed, as one ought to be able to make
and correct an input error fairly easily, and it will also have 8s in the
counting loops. Some months after writing this program, you decide, for
reasons best known to yourself, that you wish to modify this to process 13
digit numbers. “No problem”, you say, “I’ve just got to fly through the
program and change all the 8s to 13s.”
So you are sitting down at your trusty Nascom, changing 8s to 13s with
gusto, and the phone rings. It is a) the hospital to say that the baby has
arrived, b) the bank manager to say that you can have the extra overdraft, c)
the Prime Minister to ask you if you’d accept a Peerage (delete as
appropriate), so you have to answer. After a long conversation, you return to
your patching. Where were you? Was that 8 a backspace or an entry length
counter? Is that 13 (or 0DH) a carriage return or an entry length counter?
HELP! All this could have been saved if you had used manifest constants at the
top of the program (or didn’t talk to a) women, b) bank managers, c) Prime