The workings of Nascom ROM BASIC Ver 4.7 | PAGE 2 |
CTLOFG | 1045 |
Control “0” (Disable output) flag.
If this flag is set then no output will not appear at the
terminal. This flag is flipped every time control “0” is typed
from the keyboard.
|
LINESC | 1046 |
“LINES” counter.
This is initially set to the value in LINESN and decremented
after every line. If this value reaches zero then it is loaded
with the value in LINESN and BASIC waits for a character from
the keyboard.
|
LINESN | 1048 |
“LINES” number.
This is set by the “LINES n” command for the number of lines to
be LISTed at a time.
|
CHKSUM | 104A |
Check sum for array loading and saving.
This accumulates the value of all the bytes in the array 80
that errors can be detected during “CLOAD*”
|
NMIFLG | 104C |
Non-maskable interrupt flag.
When an NMI is received this flag is set to let BASIC know that
the break was caused by an NMI.
|
BRKFLG | 104D |
Break flag.
This flag is set by the input routine to let BASIC know that
the break key was pressed.
|
RINPUT | 104E |
Reflection for “INPUT” routine.
When an “INPUT” instruction is encountered BASIC jumps to the
input routine via this jump. This value may be changed by the
user as in the Nascom BASIC manual. They go to the following:–
“DOKE 4175,-25” | Output CR,LF and get a line | (CRLIN) |
“DOKE 4175,-6670” | No CRLF, get a line | (GETLIN) |
“DOKE 4175,-6649” | Get a line by character | (PTYLIN) |
|
POINT | 1051 |
Reflection for “POINT (X,Y)” function (Unused!)
This contains a jump to the “POINT (X,Y)” routine so that the
user SHOULD be able to change it to be some other function.
However, due to a “mis-firing” in someone’s brain when the
“POINT” routine was added, the function driver (FNOFST) tests
for “POINT” and jumps Directly to the “POINT (X,Y)” routine!
|
PSET | 1054 |
Reflection for “SET (Z,Y)” routine.
This contains a jump to the “SET (X,Y)” routine in the same
fashion as in “POINT”. The “SET (X,Y)” routine is called via
this reflection so that the user CAN change it to add more
routines to BASIC.
|
RESET | 1057 |
Reflection for “RESET (X,Y)” routine.
This contains a jump to the “RESET (X,Y)” as in PSET.
|
STRSPC | 105A |
Start of string space pointer.
This contains a pointer to the start of string space. It is
initially set to 50 bytes below the end of memory but can be
changed by the “CLEAR n” statement.
|
The workings of Nascom ROM BASIC Ver 4.7 | PAGE 3 |
LINEAT | 105C |
Current line number.
This contains the value of the current line being executed. If
a direct statement is being executed then this is −1 and if
“Memory size?” is being asked it contains −2. This value is
examined by the ERROR routine to see if a line number has to
be printed or not. If this value is −2 then the error must
have occurred in reply to “Memory size?” so BASIC is cold
atarted again.
|
BASTXT | 1058 |
BASIC program text origin.
This is a pointer to where the BASIC program is stored in
memory. It usually points to 10FA which is the usual start of
a BASIC program. This can be changed if a program is located
somewhere else in memory such as in ROM.
|
BUFFER | 1061 |
Terminal input buffer.
This is a 72 character buffer where all input from the keyboard
is to be stored such as commands, BASIC lines and “INPUT”.
|
CURPOS | 10AB |
Cursor position.
This contains the current value returned by “POS (X)” and it is
incremented every time a character is printed. When a new line
is started this value is zeroed, however, when a back space
is printed it is NOT decremented and when “SCREEN X,Y” ia done
it is not set to the new “X”. This can cause spurious CRLFs to
be output when “SCREEN” and back spaces are used. A cure for
this is to set “WIDTH 255”.
|
LORFLG | 10AC |
Locate / Create variable flag.
This is used by the variable search routine to tell if it is in
a “DIM” statement or not so that it knows if it has to locate
or create the specified array.
|
TYPE | 10AD |
Data type flag.
This flag contains the “type” of the current expression.
That is:– zero = Numeric, non-zero = string.
|
DATFLG | 10AE |
Literal statement flag.
This flag is used to tell BASIC that it is pointing at a
literal statement such as a string in quotes or a “REM” or
“DATA” statement.
|
LSTRAM | 10AF |
Last available RAM pointer.
This contains the address of the highest location in RAM that
BASIC will use. It can be changed by the “CLEAR,n” statement.
|