Commands
I haven’t documented the T2 commands here as they didn’t change.
A – hexadecimal arithmetic
A xxxx yyyy responds with: SSSS DDDD JJ
SSSS is sum of xxxx and yyyy
DDDD is difference of xxxx and yyyy, yyyy-xxxx
JJ is displacement required in a Jump Relative instruction which starts at xxxx, to cause a jump to yyyy. If such a jump is not possible ?? is displayed instead.
G – generate
G xxxx yyyy zzzz
Generate auto-start tape. Data from xxxx up to yyyy-1 is written to tape and the auto-start address is set to zzzz.
I – intelligent copy
I xxxx yyyy zzzz
Like the Copy command but starts copying at the end of the block which will not cause data corruption in an overlapping section.
K – set keyboard options
K xx
K 0 is the normal mode following a reset.
K 1 reverses the shift key on the letters
K 2 hex keyboard (similar to H command of B-BUG)
K 4 reverses bit 7 of the character (not used until the Nascom-2)
K 3 has the effect of both K1 and K2
N – normal
N
Resets the keyboard and crt jumps to normal. Also turns off the X command.
O – output to a port
O xx yy
Output the hex value yy to port with the hex number xx. xx and yy are displayed.
Q – query a port
Q xx
Obtain the value at port with the hex number xx. xx and the hex value received are displayed.
R – read tape
R
Reads a tape which has been written using the Write command. As each block is read the header information is displayed: SSSS BBLL. SSSS is the start address of the block, BB is the block number and LL is the length (0=256 bytes). The command ends automatically when the last block has been read.
W – write tape
W xxxx yyyy
Write data to cassette tape. Data from xxxx to yyyy-1 is written to tape. Data is in blocks of 256 bytes (but the last block may have less). 256 nulls are written when the command starts followed by the data. Each block starts with one null and ends with 10 nulls.
X – set eXternal device options
X xx
Activate input and output routines contained within NASBUG 4.
X 0 | support a terminal in full duplex mode. every character typed is echoed to the terminal line feed is automatically sent after every CR all output is even parity |
X 10 | same as X 0 but LF is not sent after CR |
X 20 | same as X 0 but half-duplex. characters are not echoed to the terminal |
X 30 | same as X 20 but LF is not sent afer CR this option makes the Nascom into a half-duplex termina |
1, 11, 21, 31 | same as 0, 10, 20, 30 but output parity is always odd instead of even. (Input parity is always ignored). |
To input a Backspace on a terminal which does not have this key use Ctrl/H.
The D, R, W, G and K2 commands and options either cannot or should not be used while an X command is in force.
Z – (command table)
Z xxxx
Changes the address of the command table. Normally this is 0755H so Z 755 has no effect. A dummy command table is also provided at 0511H so use Z 511 to disable all commands (press Reset to recover from this state). This allows new commands to be added.
? – command list
?
Displays a list of all commands in the command table.
The register display was also extended thus:
SP PC AF HL DE BC I IX IY Flags
The flags are a decoded representation of the F register, showing the following characters as each flag is set: S Z H P N C
ROM calls
Restart instructions:
C7 | RST 0 | START | Reset the computer. Initialise NASBUG |
CF | RST 8h | End program & return to monitor. The screen is not cleared. | |
DF | RST 18h | User subroutine call.The code DF is followed by a one byte value which specifies the address of the routine to be called. 00 calls 0E00H, 01 calls 0E03H up to the highest value FF which calls 10FDH | |
E7 | RST 20h | BRKPT | Breakpoint – stop & display registers |
EF | RST 28h | PRS | Output following string until 0H found |
F7 | RST 30h | Call the routine pointed to by the address at $CRT. This is normally the CRT routine. | |
FF | RST 38h | Provide a delay proportional to the value in A. 00 gives maximum delay of about 7.5mS. |
The T2 calls remained the same so these have not been documented again.
0400H | WRITE | Write (ARG1) to (ARG2) to tape |
06A3H | G | See G command |
070CH | READ | See R command |
005DH | SRLOUT | Output a character to both crt and serial port |
005EH | SRLX | Output a character to serial port only |