Nascom Newsletter |
Volume 3 · Number 2 · May 1983 |
Page 15 of 36 |
---|
When I received the Compass Compression Assembler from Level 9 Computing of High Mycombe, I was disappointed to find that RCAL and SCAL were missing as pseudo-opcodes. Having used the assembler for a while and got used to it, I have been delving into the may it works. There are three jumps, £0F00, £0F03 and £0F09, which can be intercepted and I have used the last two of these to add the two ‘missing’ pseudo-ops.
While looking for a way to use these jumps I came across the command table and, as two commands are duplicated in version 1.3 I decided to use those positions in the table to add two new commands.
As I have a Centronics printer which has a parallel interface, the print routine has to be via the NAS-SYS User routing. This means that the instructions to the assembler appear on the printout and, while not a disaster, this is something that I considered unnecessary.
The ‘P’ command is the first command that I added and operates by initialising the User routine and ports, setting the Height command to print the full listing and jumping to the assembler’s own Assemble command. If you wish, you can set the Height command to a page length in line 21 for manual form feeds, or have them in your print routine though, I believe, the Epson printers have automatic form feeds.
The other thing that has often been a source of annoyance has been the fact that, to obtain part of a listing, it has been necessary to print the whole. This is changed in this command between lines £6B and £76, by using a tick in the comments column to control the switching on and off of the printer.
Once the listing has been completed the printer needs to be switched off and the ‘N’ command is used to do this, as well as resetting the Height command to 5.
These are simple changes since all that is done is the changing of the table addresses of redundant commands to the addresses of the new commands.
It is advisable to check that the table addresses in your version of the assembler are the same. If not, then delete the last ten lines of the listing as they will change the addresses to those of new commands, and change them manually. All addresses within the assembler are given relative to the start
Page 15 of 36 |
---|