Prev: 1C01 Up: Map Next: 1C1F
1C0D: THE 'COMMAND CLASSES - +00, +03 and +05'
The address of this routine is derived from an offset found in the command class table.
The commands of class +03 may, or may not, be followed by a number. e.g. RUN and RUN 200.
Input
A Code of the first character after the command
HL Address of the first character after the command
CLASS_03 1C0D CALL FETCH_NUM A number is fetched but zero is used in cases of default.
The address of this entry point is derived from an offset found in the command class table.
The commands of class +00 must not have any operands, e.g. COPY and CONTINUE.
CLASS_00 1C10 CP A Set the zero flag for later.
The address of this entry point is derived from an offset found in the command class table.
The commands of class +05 may be followed by a set of items, e.g. PRINT and PRINT "222".
CLASS_05 1C11 POP BC In all cases drop the address - SCAN_LOOP.
1C12 CALL Z,CHECK_END If handling commands of classes +00 and +03 and syntax is being checked move on now to consider the next statement.
1C15 EX DE,HL Save the line pointer in the DE register pair.
After the command class entries and the separator entries in the parameter table have been considered the jump to the appropriate command routine is made.
1C16 LD HL,($5C74) Fetch the pointer to the entries in the parameter table from T-ADDR and fetch the address of the required command routine.
1C19 LD C,(HL)
1C1A INC HL
1C1B LD B,(HL)
1C1C EX DE,HL Exchange the pointers back and make an indirect jump to the command routine.
1C1D PUSH BC
1C1E RET
Prev: 1C01 Up: Map Next: 1C1F