Volume 1, Number 4 – December 1981

Page 28 of 33

register contains £10, the L register contains £00, and memory locations £1000 and £1001 contain £22 and £33 respectively, they will appear in the register display as

1000   3322

Note that the memory bytes are printed in the order (1001), (1000). This is in line with the order in which the registers themselves are displayed, because if the contents of HL were stored at address £1000 by the instruction.

LD (£1000), HL           22 00 10

register L would be stored at £1000, register H at £1001. After the registers have been displayed, the program returns to the monitor at the routine PARSE, where it waits for a further command input. If you enter command E or S without specifying an address, the execute routine will pick up the address stored in the workspace at £0C69, which is the value of PC saved last time around. This means that execution or single-stepping can be continued from the point where the program operation was suspended by a breakpoint or by the last single step. Once you have carried out one single step you do not need to re-enter the S command – just pressing the Newline key will produce another single step if the last command entered was S. This is particularly useful with Nas-Sys 3, which has a repeat-key routine; just holding Newline down will cause the program to single-step at a rate which can be controlled by the value stored at £0C30,£0C31

TABULATE T xxxx yyyy zz

This command prints out the hexadecimal values of the machine code stored between addresses xxxx and yyyy. The starting address (in hex) and first printed, and this is followed by eight bytes of data. A new line is then started, the updated address is printed, followed by further data bytes, and so on. The process continues until zz lines have been printed, when it pauses until a key is pressed. The routine terminates when the updated address reaches yyyy, or if ‘escape’ (SHIFT/​NEWLINE) is pressed during a pause. Nas-Sys 1 calculates the ‘checksum’ of the address and data bytes on a line, and outputs this checksum. The checksum cannot be seen in the tabulation because the cursor is backspaced over the two hex digits of the checksum. If you send the tabulated data to a printer which does not backspace, the checksum will be printed. The checksum is quite useful for the direct entry of machine code as it makes it easier to spot errors. You can make your Nascom print the checksum on the screen by routing the output through a short program which suppresses the backspaces, or, if you have access to an EPROM programmer, by removing them from the monitor.

The Nas-Sys 3 tabulate command does not evaluate the checksum, but it has extra facilities for formatting the displayed data. The number of bytes of data output

Page 28 of 33