per line can be controlled by a fourth argument; if this argument is nn, there will be
8+nn bytes per line. In addition to the hexadecimal data, Nas-Sys 3 outputs the
ASCII or Graphics codes of the data (codes in the ranges £00 – £1F, £7F – £9F, and
£FF are output as “.”). A fifth argument, hhll, may be entered to suppress either the
hexadecimal (if hh is not zero) or ASCII (if ll is not zero) part of the listing.
If you wish to edit a tabulated listing you must quit the Tabulate command by
typing ‘Escape’, and then enter M to get into the Modify routine. You will now be able
to move the cursor with the control keys and edit the tabulation. If you are using Nas-Sys 3
it is best to suppress ASCII part of the listing. As this will interfere with the
modify command, either by producing error messages or, if the ASCII section
contains a full stop, by terminating the modify routine.
USER INPUT/OUTPUT U
Input and output is accessed via pointers to tables which list the routines to be
called. With the pointers, which are stored in the workspace at £0C73 (output) and
£0C75 (input), set to normal values, as on power-up or after a RESET or N
command, input scans the keyboard and serial port while output is sent to the
screen. The U command resets the pointers so that routines provided by the user are
called before the input or output is performed. The user routines can reside anywhere
in memory; the start address of the input routine must be stored in the workspace at
£0C7B, that of the output routine at £0C78. These locations normally contain the
address of a return instruction in the monitor, so that using the U command without
providing the addresses of your routines has no effect.
Although the I/O procedure also uses the remaining routines in the tables, if for
any reason you do not wish these routines to be called (for example, you may wish to
suppress the screen output), you merely have to set the carry flag in the user routine;
the remaining routines will then be skipped. This can have unfortunate consequences
– if a printer routine carries out tests which leave the carry flag set for certain
characters, these characters will not appear on the screen.
The address stored in the command table for the VERIFY command is the same
as that for the READ command. The two commands use the same code, except that
as each data byte is obtained the value stored at location £0C2B, which contains the
last command letter entered,is tested to see if it an R. If it is not, the data bytes are
not stored in memory, and faulty data cannot corrupt data already in store. If you are
calling the READ routine from a program you must store an R at £0C2B or data will
not be loaded.