80-Bus News


January–February 1984, Volume 3, Issue 1

Page 46 of 55


By Stephen Weir

COMPASS (not to be confused with COMPAS Pascal), ZAP and RAVEN are tape based assemblers for use with the Nascom range of microcomputers.


COMPASS stands for COMPression ASSembler and is written by Level 9, the same people who write those excellent adventures. As you would expect therefore, COMPASS is a good quality piece of software with no bugs. It comes on a TDK cassette with a neatly printed label together with a user manual bound in the usual “Level 9 blue”. On the tape there is the assembler itself within a relocator program followed by a program to convert ZEAP files to COMPASS files should you wish to change over to COMPASS from ZEAP but still use your ZEAP files. Finally, there is the source for the ZEAP convertor so that you can see how it works and also use it to try out the editing facilities.

The relocator is very useful as you can relocate COMPASS to the top of your RAM and then you have the rest of RAM from 1000h upwards free. Once relocated, COMPASS takes up about 7K. On cold start it is necessary to specify start addresses for both source file and object code (this is a default value only and can be changed at any time by an ORG directive in the source). It is also possible to specify the symbol table and workspace area. So, providing you have enough memory it should be possible to arrange things so that you can always keep the required area of memory free for the object code.

When you are testing the assembled program while the assembler is still in RAM it is often the case that the program will not do as intended and may corrupt part of the assembler. On return to COMPASS , however, a checksum routine is carried out so that if COMPASS has been corrupted a message is displayed. It is then necessary to reload COMPASS.

As I have already mentioned, COMPASS compresses the source code. It does this by using a 1-byte code for each keyword. Assembly speed is good and Level 9 claim 3000 lines per minute, but since I can’t count that fast, I’ll just take their word for it! During assembly, any errors are displayed on the listing and assembly is resumed (unlike ZAP80 and RAVEN which abort assembly at the first error).

Lines are entered with line numbers and editing is carried out using the NAS-SYS screen-editing. The line-numbering system adopted by Level 9 is a little strange to say the least. Firstly, numbers are in HEX and they appear on the far left of the assembly listing next to the address field. Two columns of Hex numbers make reading a little confusing. Secondly, it is not possible to enter lines in increments other than one but it is possible to insert lines using the Insert command, which also automatically numbers the inserted lines and renumbers all succeeding lines.

Commands are entered using single characters and include listing (number of lines listed at a time may be set), string search, assemble (with listing options), and tape read, write and verify which merely use the NAS-SYS routines and therefore do not allow file names. NAS-SYS restart instructions and subroutine calls are not supported. For listing to a printer the NAS-SYS ‘X’ or ‘U’ commands have to be used.

The manual is mainly just a guide to the facilities available and does not attempt to teach the use of an assembler. This is also true of the other two manuals. However, there is some useful information given which should allow you to add extra commands to COMPASS.

Page 46 of 55