C3E5
to C3ED |
Deal with assignments such as
"X=...". |
C3EE
to C405 |
Deal with the command ! (quad-poke) |
C406
to C40D |
Deal with the command ? (poke) |
C40F
to C423 |
Executes the cassette operating system
commands starting with *. The routine strips off the *
and copies the remainder of the (5),Y string, up to a
<CR>, into the indirect input buffer at 100. A
subroutine is then called which passes interpretation
over to COS by JSR FFF7 (indirected by (OSCLI)). |
C424
to C433 |
Checks to see if the Floating Point ROM
is in. The lowest two bytes of the FP ROM are a signature
(AA 55), and this routine tests for these values at D000
and D001, then returns with the carry clear if the ROM is
not there. The routine is called from C550, where the
machine is deciding whether to pass a string it can't
understand to the interpreter in the floating point ROM,
or to give up and signal an error. |
C434
to C464 |
The interpreter "Pre-Test"
subroutine whose effect is to take the character pointed
to by 5,Y (where Y=?3) and if this character is
alphabetic it converts it to the number 1 to 26, then
places it at 16,X (where X=?4), then ?4 is incremented.
If the next character is non-alphabetic the carry is
cleared before return (e.g. the command P.), but if the
next character is alphabetic then the carry is set before
return. This routine therefore enables the machine to
rapidly execute abbreviated commands, since it need not
read the entire command. |
C465
to C4DD |
A valuable subroutine to read a decimal
string. It read a string pointed to by (5),Y (where Y=?3)
as ASCII decimal characters, and converts the decimal
numeric value to a binary value, then stores it in the
16,X workspace stack (where X=?4). ?4 is incremented so
the workspace stack can continue. If the first non-space
character is not a number, then BRK is executed. Spoils
A, X and Y registers. |
C4E4
to C50B |
A subroutine used as the interpreter's
post-test. It checks that (5),Y (where Y=?3) is pointing
at a carriage return or a semi-colon, or spaces leading
thereto. If not, then it executes BRK.
C4F6 consolidates
(5) by (5)=(5)+Y and Y=1
C504 checks
to see if the ESC key is depressed. If not then RTS,
otherwise it jumps to direct mode and executes the escape
code. |
C50C
to C546 |
A subroutine which copies a new line
number to 1,2 and checks if the line is labelled. If
there is a label this routine passes the current
text-position pointer at (5),Y to the label store (LSB
38D,X MSB 38E,X). |
C54A
to C565 |
Execution of a statement pointed to by
5,Y. It also checks for the Floating Point ROM, and if it
is there this routine jumps indirectly to (D002). If not
then it returns to default handling. C55B is the best
place to return to BASIC after a m/c routine, whether in
direct or program mode |