From Lee Hart's Tiny BASIC version. Op codes confirmed to match Pittman descriptions. SOURCE FILE NAME: TB-MON.ASM PAGE 29 ;-----------------------------------------------; ; TINY BASIC INTERMEDIATE LANGUAGE ; ;-----------------------------------------------; ; ; INTERMEDIATE LANGUAGE OPERATION CODES ; 0000 SX: EQU 00H ; STACK EXCHANGE (00-07) BYTE N WITH BYTE 0 0008 NO: EQU 08H ; NO OPERATION 0009 LB: EQU 09H ; PUSH NEXT BYTE ONTO STACK 000A LN: EQU 0AH ; ADD NEXT NUMBER TO STACK (2 BYTES) 000B DS: EQU 0BH ; DUPLICATE NUMBER ON TOP OF STACK (2 BYTES) 0010 SB: EQU 10H ; SAVE BASIC POINTER 0011 RP: EQU 11H ; RESTORE BASIC POINTER (PITTMAN USED RB) 0012 FV: EQU 12H ; FETCH VARIABLE 0013 SV: EQU 13H ; STORE VARIABLE 0014 GS: EQU 14H ; GOSUB SAVE 0015 RS: EQU 15H ; RESTORE SAVED LINE 0016 GO: EQU 16H ; GOTO 0017 NG: EQU 17H ; NEGATE, TWO'S COMPLEMENT (PITTMAN USED NE) 0018 AD: EQU 18H ; ADD 0019 SU: EQU 19H ; SUBTRACT 001A MP: EQU 1AH ; MULTIPLY 001B DV: EQU 1BH ; DIVIDE 001C CP: EQU 1CH ; COMPARE 001D NX: EQU 1DH ; NEXT BASIC STATEMENT 001F LS: EQU 1FH ; LIST PROGRAM 0020 PN: EQU 20H ; PRINT NUMBER 0021 PQ: EQU 21H ; PRINT BASIC STRING 0022 PT: EQU 22H ; PRINT TAB 0023 NL: EQU 23H ; NEW LINE 0024 PS: EQU 24H ; PRINT STRING, ENDING IN CHAR W. MSB=1 0027 GL: EQU 27H ; GET INPUT LINE 002A IL: EQU 2AH ; INSERT BASIC LINE 002B MT: EQU 2BH ; MARK BASIC PROGRAM SPACE EMPTY 002C XQ: EQU 2CH ; EXECUTE 002D WS: EQU 2DH ; STOP 002E US: EQU 2EH ; MACHINE LANGUAGE SUBROUTINE CALL 002F RT: EQU 2FH ; IL SUBROUTINE RETURN 3000 JS: EQU 3000H; JUMP SUBROUTINE @ NEXTBYTE-STRT (3000-37FF) 3800 JU: EQU 3800H; JUMP TO LABEL AT NEXTBYTE-STRT (3800-3FFF) 005F BR: EQU 5FH ; BRANCH RELATIVE TO 5FH+LABEL-$ (40-7F) 007F BC: EQU 7FH ; BRANCH IF NO MATCH TO 7FH+LABEL-$ (80-9F) 009F BV: EQU 9FH ; BRANCH IF NOT A VARIABLE (A0-BF) 00BF BN: EQU 0BFH ; BRANCH IF NOT NUMBER TO BFH+LABEL-$ (C0-DF) 00DF BE: EQU 0DFH ; BRANCH IF NOT ENDLINE TO DFH+LABEL-$(E0-FF)