Autumn 1979, Issue 4

Page 22 of 30

VVerify a tape
ZJump to #FFFD – warm start BASIC

Well this not so different from NASBUG so what is so new?

Firstly, as NAS-SYS was designed for use with Nascom 2, it handles a greater number of keys on the keyboard (a Nascom 2 has 57 keys I think), some of these keys are for the cursor control. But as NAS-SYS was designed on a Nascom 1 (as no-one had a fully working Nascom 2 at the time, about 28K of ZEAP source by the way), the cursor control keys had to be made to work using the Nascom 1 keyboard. With a Nascom 1 you use the control] (@) key to obtain most of the new functions.

The most important feature covered by the new key functions are the cursor control keys. The cursor can be made to move non-destructively north, south, east and west, with additional keys to open or close a line. This allows comprehensive editing to take place on the screen. Now this feature would be pretty useless on its own, so, unlike NASBUG, where the line to be entered is always the bottom line, NAS-SYS enters what-ever line the cursor happens to be on at the time the ‘new line’ key is pressed. Hence editing an 8K BASIC program is a real dream, compared to using the BASIC under NASBUG.

Internally, well what can I say, ------ it’s different! Nice old favourites like CHIN and CRT have disappeared (although not completely) to be replaced by single byte (RST) instructions, which in turn allow automatic use of the user defined input/​output options (just in case the ones already provided don’t quite do what you want). NAS-SYS also uses one RST instruction as the op-code for a two byte relative subroutine call, so you can write totally relocatable code if you have a mind to.

Now for the really clever bit. One RST instruction is used as the op-code for a two byte subroutine call to a table in NAS-SYS which contains the addresses of all the internal subroutines (the second byte being the number in the table). So goodies like TBCD3 and B2HEX are still there (and where they perform the same function as NASBUG, given the same label), so you simply use a two byte call to the routine instead of the usual ‘CD’ command followed by the address. Further, you can call commands from the table, for instance, if you want to write something to tape: load the registers with the neccessary ‘from’ and ‘to’ data, then simply call the Write routine using the ASCII equivalent of ‘W’ as the table number, in this case, #57.

All this has two advantages: the programs are shorter, but most important, if someone (loony) comes along with a “NAS-SYS 2”, then, provided the routines do the same thing relative to their respective numbers in the table, the change of monitor is totally transparent to any program written for “NAS-SYS 1”, and apart from the alterations (it must have been changed otherwise why bother) totally transparent to the Programmer.

There’s got to be some penalty to pay for all this

Page 22 of 30