Subversion Repositories pentevo

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

        ;**************************************************************
        ;
        ; This is the equate table for 8052 basic.
        ;
        ;**************************************************************
        ;
        ; The register to direct equates for CJNE instructions.
        ;
R0B0    EQU     0
R1B0    EQU     1
R2B0    EQU     2
R3B0    EQU     3
R4B0    EQU     4
R5B0    EQU     5
R6B0    EQU     6
R7B0    EQU     7
        ;
        ; Register bank 1 contains the text pointer
        ; and the arg stack pointer.
        ;
TXAL    EQU     8               ;R0 BANK 1 = TEXT POINTER LOW
ASTKA   EQU     9               ;R1 BANK 1 = ARG STACK
TXAH    EQU     10              ;R2 BANK 1 = TEXT POINTER HIGH
        ;
        ; Now five temporary locations that are used by basic.
        ;
TEMP1   EQU     11
TEMP2   EQU     12
TEMP3   EQU     13
TEMP4   EQU     14
TEMP5   EQU     15
        ;
        newpage
        ; Register bank 2 contains the read text pointer
        ; and the control stack pointer.
        ;
RTXAL   EQU     16              ;R0 BANK 2 = READ TEXT POINTER LOW
CSTKA   EQU     17              ;R1 BANK 2 = CONTROL STACK POINTER
RTXAH   EQU     18              ;R2 BANK 2 = READ TEXT POINTER HIGH
        ;
        ; Now some internal system equates.
        ;
BOFAH   EQU     19              ;START OF THE BASIC PROGRAM, HIGH BYTE
BOFAL   EQU     20              ;START OF THE BASIC PROGRAM, LOW BYTE
NULLCT  EQU     21              ;NULL COUNT
PHEAD   EQU     22              ;PRINT HEAD POSITION
FORMAT  EQU     23
        ;
        ; Register bank 3 is for the user and can be loaded
        ; by basic
        ;
        ;
        ;
        ; Now everything else is used by basic.
        ; First the bit locations, these use bytes 34, 35, 36, 37 and 38
        ;
        newpage
OTS             BIT     16      ;34.0-ON TIME INSTRUCTION EXECUTED
INPROG          BIT     17      ;34.1-INTERRUPT IN PROCESS
INTBIT          BIT     18      ;34.2-INTERRUPT SET BIT
ON_ERR          BIT     19      ;34.3-ON ERROR EXECUTED
OTI             BIT     20      ;34.4-ON TIME INTERRUPT IN PROGRESS
LINEB           BIT     21      ;34.5-LINE CHANGE OCCURED
INTPEN          BIT     22      ;34.6-INTERRUPT PENDING BIT
CONB            BIT     23      ;34.7-CAN CONTINUE IF SET
GTRD            BIT     24      ;35.0-READ GET LOCATION
LPB             BIT     25      ;35.1-PRINT TO LINE PRINTER PORT
CKS_B           BIT     26      ;35.2-FOR PWM INTERRUPT
COB             BIT     27      ;35.3-CONSOLE OUT BIT
                                ;     0 = SERIAL PORT
                                ;     1 = LINE PRINTER
COUB            BIT     28      ;35.4-USER CONSOLE OUT BIT
                                ;     0 = SERIAL PORT
                                ;     1 = USER DRIVER
INBIT           BIT     29      ;35.5-INITIALIZATION BIT
CIUB            BIT     30      ;35.6-USER CONSOLE IN BIT
                                ;     0 = SERIAL PORT
                                ;     1 = USER ROUTINE
SPINT           BIT     31      ;35.7-SERIAL PORT INTERRUPT
STOPBIT         BIT     32      ;36.0-PROGRAM STOP ENCOUNTERED
U_IDL           BIT     33      ;36.1-USER IDLE BREAK
INP_B           BIT     34      ;36.2-SET DURING INPUT INSTRUCTION
;DCMPXZ         BIT     35      ;36.3-DCMPX ZERO FLAG
ARGF            BIT     36      ;36.4-ARG STACK HAS A VALUE
RETBIT          BIT     37      ;36.5-RET FROM INTERRUPT EXECUTED
I_T0            BIT     38      ;36.6-TRAP INTERRUPT ZERO TO MON
UPB             BIT     39      ;36.7-SET WHEN @ IS VALID
JKBIT           BIT     40      ;37.0-WB TRIGGER
ENDBIT          BIT     41      ;37.1-GET END OF PROGRAM
UBIT            BIT     42      ;37.2-FOR DIM STATEMENT
ISAV            BIT     43      ;37.3-SAVE INTERRUPT STATUS
BO              BIT     44      ;37.4-BUBBLE OUTPUT
XBIT            BIT     45      ;37.5-EXTERNAL PROGRAM PRESENT
C_BIT           BIT     46      ;37.6-SET WHEN CLOCK RUNNING
DIRF            BIT     47      ;37.7-DIRECT INPUT MODE
NO_C            BIT     48      ;38.0-NO CONTROL C
DRQ             BIT     49      ;38.1-DMA ENABLED
BI              BIT     50      ;38.2-BUBBLE INPUT
INTELB          BIT     51      ;38.3-INTELLIGENT PROM PROGRAMMING
C0ORX1          BIT     52      ;38.4-PRINT FROM ROM OR RAM
CNT_S           BIT     53      ;38.5-CONTROL S ENCOUNTERED
ZSURP           BIT     54      ;38.6-ZERO SUPRESS
HMODE           BIT     55      ;38.7-HEX MODE PRINT
LP              BIT     P1.7    ;SOFTWARE LINE PRINTER
DACK            BIT     P1.6    ;DMA ACK
PROMV           BIT     P1.5    ;TURN ON PROM VOLTAGE
PROMP           BIT     P1.4    ;PROM PULSE
ALED            BIT     P1.3    ;ALE DISABLE
T_BIT           BIT     P1.2    ;I/O TOGGLE BIT
        ;
        newpage
        ;
        ; The next location is a bit addressable byte counter
        ;
BABC    EQU     39
        ;
        ; Now floating point and the other temps
        ;
        ; FP Uses to locations 03CH
        ;
        ; Now the stack designators.
        ;
SPSAV   EQU     3EH
S_LEN   EQU     3FH
T_HH    EQU     40H
T_LL    EQU     41H
INTXAH  EQU     42H
INTXAL  EQU     43H
MT1     EQU     45H
MT2     EQU     46H
MILLIV  EQU     47H             ;TIMER LOCATIONS
TVH     EQU     48H
TVL     EQU     49H
SAVE_T  EQU     4AH
SP_H    EQU     4BH             ;SERIAL PORT TIME OUT
SP_L    EQU     4CH
CMNDSP  EQU     4DH             ;SYSTEM STACK POINTER
IRAMTOP EQU     0FFH            ;TOP OF RAM
STACKTP EQU     0FEH            ;ARG AND CONTROL STACK TOPS
        ;
        ; The character equates
        ;
CR      EQU     0DH             ;CARRIAGE RETURN
LF      EQU     0AH             ;LINE FEED
BELL    EQU     07H             ;BELL CHARACTER
BS      EQU     08H             ;BACK SPACE
CNTRLC  EQU     03H             ;CONTROL C
CNTRLD  EQU     04H             ;CONTROL D
NULL    EQU     00H             ;NULL
        ;
        newpage
        ;
        ; The internal system equates
        ;
LINLEN  EQU     73              ;THE LENGTH OF AN INPUT LINE
EOF     EQU     01              ;END OF FILE CHARACTER
ASTKAH  EQU     01              ;ASTKA IS IN PAGE 1 OF RAM
CSTKAH  EQU     00              ;CSTKA IS IN PAGE 0 OF RAM
FTYPE   EQU     01              ;CONTROL STACK "FOR"
GTYPE   EQU     02              ;CONTROL STACK "GOSUB"
DTYPE   EQU     03              ;DO-WHILE/UNTIL TYPE
ROMADR  EQU     8000H           ;LOCATION OF ROM
        ;
        ; The floating point equates
        ;
FPSIZ   EQU     6               ;NO. OF BYTES IN A FLOATING NUM
DIGIT   EQU     FPSIZ-2         ;THE MANTISSA OF A FLOATING NUM
STESIZ  EQU     FPSIZ+3         ;SIZE OF SYMBOL ADJUSTED TABLE ELEMENT
FP_BASE EQU     1993H           ;BASE OF FLOATING POINT ROUTINES
PSTART  EQU     512             ;START OF A PROGRAM IN RAM
FSIZE   EQU     FPSIZ+FPSIZ+2+2+1
        ;
        newpage
        ;**************************************************************
        ;
USENT:  ; User entry jump table
        ;
        ;**************************************************************
        ;
        DW      CMND1           ;(00, 00H)COMMAND MODE JUMP
        DW      IFIX            ;(01, 01H)CONVERT FP TO INT
        DW      PUSHAS          ;(02, 02H)PUSH VALUE ONTO ARG STACK
        DW      POPAS           ;(03, 03H)POP VALUE OFF ARG STACK
        DW      PG1             ;(04, 04H)PROGRAM A PROM
        DW      INLINE          ;(05, 05H)INPUT A LINE
        DW      UPRNT           ;(06, 06H)PRINT A LINR
        DW      CRLF            ;(07, 07H)OUTPUT A CRLF
        ;
        ;**************************************************************
        ;
        ; This is the operation jump table for arithmetics
        ;
        ;**************************************************************
        ;
OPTAB:  DW      ALPAR           ;(08, 08H)LEFT PAREN
        DW      AEXP            ;(09, 09H)EXPONENTAION
        DW      AMUL            ;(10, 0AH)FP MUL
        DW      AADD            ;(11, 0BH)FLOATING POINT ADD
        DW      ADIV            ;(12, 0CH)FLOATING POINT DIVIDE
        DW      ASUB            ;(13, 0DH)FLOATING POINT SUBTRACTION
        DW      AXRL            ;(14, 0EH)XOR
        DW      AANL            ;(15, 0FH)AND
        DW      AORL            ;(16, 10H)OR
        DW      ANEG            ;(17, 11H)NEGATE
        DW      AEQ             ;(18, 12H)EQUAL
        DW      AGE             ;(19, 13H)GREATER THAN OR EQUAL
        DW      ALE             ;(20, 14H)LESS THAN OR EQUAL
        DW      ANE             ;(21, 15H)NOT EQUAL
        DW      ALT             ;(22, 16H)LESS THAN
        DW      AGT             ;(23, 17H)GREATER THAN
        ;
        newpage
        ;***************************************************************
        ;
        ; This is the jump table for unary operators
        ;
        ;***************************************************************
        ;
        DW      AABS            ;(24, 18H)ABSOLUTE VALUE
        DW      AINT            ;(25, 19H)INTEGER OPERATOR
        DW      ASGN            ;(26, 1AH)SIGN OPERATOR
        DW      ANOT            ;(27, 1BH)ONE'S COMPLEMENT
        DW      ACOS            ;(28, 1CH)COSINE
        DW      ATAN            ;(29, 1DH)TANGENT
        DW      ASIN            ;(30, 1EH)SINE
        DW      ASQR            ;(31, 1FH)SQUARE ROOT
        DW      ACBYTE          ;(32, 20H)READ CODE
        DW      AETOX           ;(33, 21H)E TO THE X
        DW      AATAN           ;(34, 22H)ARC TANGENT
        DW      ALN             ;(35, 23H)NATURAL LOG
        DW      ADBYTE          ;(36, 24H)READ DATA MEMORY
        DW      AXBYTE          ;(37, 25H)READ EXTERNAL MEMORY
        DW      PIPI            ;(38, 26H)PI
        DW      ARND            ;(39, 27H)RANDOM NUMBER
        DW      AGET            ;(40, 28H)GET INPUT CHARACTER
        DW      AFREE           ;(41, 29H)COMPUTE #BYTES FREE
        DW      ALEN            ;(42, 2AH) COMPUTE LEN OF PORGRAM
        DW      AXTAL           ;(43, 2BH) CRYSTAL
        DW      PMTOP           ;(44, 2CH)TOP OF MEMORY
        DW      ATIME           ;(45, 2DH) TIME
        DW      A_IE            ;(46, 2EH) IE
        DW      A_IP            ;(47, 2FH) IP
        DW      ATIM0           ;(48, 30H) TIMER 0
        DW      ATIM1           ;(49, 31H) TIMER 1
        DW      ATIM2           ;(50, 32H) TIMER 2
        DW      AT2CON          ;(51, 33H) T2CON
        DW      ATCON           ;(52, 34H) TCON
        DW      ATMOD           ;(53, 35H) ATMOD
        DW      ARCAP2          ;(54, 36H) RCAP2
        DW      AP1             ;(55, 37H) P1
        DW      APCON           ;(56, 38H) PCON
        DW      EXPRB           ;(57, 39H) EVALUATE AN EXPRESSION
        DW      AXTAL1          ;(58, 3AH) CALCULATE CRYSTAL
        DW      LINE            ;(59, 3BH) EDIT A LINE
        DW      PP              ;(60, 3CH) PROCESS A LINE
        DW      UPPL-3          ;(61, 3DH) UNPROCESS A LINE
        DW      VAR             ;(62, 3EH) FIND A VARIABLE
        DW      GC              ;(63, 3FH) GET A CHARACTER
        DW      GCI             ;(64, 40H) GET CHARACTER AND INCREMENT
        DW      INCHAR          ;(65, 41H) INPUT A CHARACTER
        DW      CRUN            ;(66, 42H) RUN A PROGRAM
        newpage
OPBOL:  DB      1               ;
        ;
        DB      15              ;LEFT PAREN
        DB      14              ;EXPONENTIAN **
        DB      10              ;MUL
        DB      8               ;ADD
        DB      10              ;DIVIDE
        DB      8               ;SUB
        DB      3               ;XOR
        DB      5               ;AND
        DB      4               ;OR
        DB      12              ;NEGATE
        DB      6               ;EQ
        DB      6               ;GT
        DB      6               ;LT
        DB      6               ;NE
        DB      6               ;LE
        DB      6               ;GE
        ;
UOPBOL: DB      15              ;AABS
        DB      15              ;AAINT
        DB      15              ;ASGN
        DB      15              ;ANOT
        DB      15              ;ACOS
        DB      15              ;ATAN
        DB      15              ;ASIN
        DB      15              ;ASQR
        DB      15              ;ACBYTE
        DB      15              ;E TO THE X
        DB      15              ;AATAN
        DB      15              ;NATURAL LOG
        DB      15              ;DBYTE
        DB      15              ;XBYTE
        ;
        newpage
        ;***************************************************************
        ;
        ; The ASCII printed messages.
        ;
        ;***************************************************************
        ;
STP:    DB      "STOP",'"'
        ;
IAN:    DB      "TRY AGAIN",'"'
        ;
RDYS:   DB      "READY",'"'
        ;
INS:    DB      " - IN LINE ",'"'
        ;
        ;**************************************************************
        ;
        ; This is the command jump table
        ;
        ;**************************************************************
        ;
CMNDD:  DW      CRUN            ;RUN
        DW      CLIST           ;LIST
        DW      CNULL           ;NULL
        DW      CNEW            ;NEW
        DW      CCONT           ;CONTINUE
        DW      CPROG           ;PROGRAM A PROM
        DW      CXFER           ;TRANSFER FROM ROM TO RAM
        DW      CRAM            ;RAM MODE
        DW      CROM            ;ROM MODE
        DW      CIPROG          ;INTELLIGENT PROM PROGRAMMING
        ;
        newpage
        ;***************************************************************
        ;
        ; This is the statement jump table.
        ;
        ;**************************************************************
        ;
STATD:  ;
        DW      SLET            ;LET            80H
        DW      SCLR            ;CLEAR          81H
        DW      SPUSH           ;PUSH VAR       82H
        DW      SGOTO           ;GO TO          83H
        DW      STONE           ;TONE           84H
        DW      SPH0            ;PRINT MODE 0   85H
        DW      SUI             ;USER INPUT     86H
        DW      SUO             ;USER OUTPUT    87H
        DW      SPOP            ;POP VAR        88H
        DW      SPRINT          ;PRINT          89H
        DW      SCALL           ;CALL           8AH
        DW      SDIMX           ;DIMENSION      8BH
        DW      STRING          ;STRING ALLO    8CH
        DW      SBAUD           ;SET BAUD       8DH
        DW      SCLOCK          ;CLOCK          8EH
        DW      SPH1            ;PRINT MODE 1   8FH
        ;
        ; No direct mode from here on
        ;
        DW      SSTOP           ;STOP           90H
        DW      SOT             ;ON TIME        91H
        DW      SONEXT          ;ON EXT INT     92H
        DW      SRETI           ;RET FROM INT   93H
        DW      S_DO            ;DO             94H
        DW      SRESTR          ;RESTOR         95H
        DW      WCR             ;REM            96H
        DW      SNEXT           ;NEXT           97H
        DW      SONERR          ;ON ERROR       98H
        DW      S_ON            ;ON             99H
        DW      SINPUT          ;INPUT          9AH
        DW      SREAD           ;READ           9BH
        DW      FINDCR          ;DATA           9CH
        DW      SRETRN          ;RETURN         9DH
        DW      SIF             ;IF             9EH
        DW      SGOSUB          ;GOSUB          9FH
        DW      SFOR            ;FOR            A0H
        DW      SWHILE          ;WHILE          A1H
        DW      SUNTIL          ;UNTIL          A2H
        DW      CMND1           ;END            A3H
        DW      I_DL            ;IDLE           A4H
        DW      ST_A            ;STORE AT       A5H
        DW      LD_A            ;LOAD AT        A6H
        DW      PGU             ;PGM            A7H
        DW      RROM            ;RUN A ROM      A9H
        ;
        newpage
        ;**************************************************************
        ;
TOKTAB: ; This is the basic token table
        ;
        ;**************************************************************
        ;
        ; First the tokens for statements
        ;
        DB      80H             ;LET TOKEN
        DB      "LET"
        ;
        DB      81H             ;CLEAR TOKEN
        DB      "CLEAR"
        ;
        DB      82H             ;PUSH TOKEN
        DB      "PUSH"
        ;
T_GOTO  EQU     83H
        ;
        DB      83H             ;GO TO TOKEN
        DB      "GOTO"
        ;
        DB      84H             ;TOGGLE TOKEN
        DB      "PWM"
        ;
        DB      85H             ;PRINT HEX MODE 0
        DB      "PH0."
        ;
        DB      86H             ;USER IN TOKEN
        DB      "UI"
        ;
        DB      87H             ;USER OUT TOKEN
        DB      "UO"
        ;
        DB      88H             ;POP TOKEN
        DB      "POP"
        ;
        newpage
        DB      89H             ;PRINT TOKEN
        DB      "PRINT"
        DB      89H
        DB      "P."            ;P. ALSO MEANS PRINT
        DB      89H             ;? ALSO
        DB      '?'
        ;
        DB      8AH             ;CALL TOKEN
        DB      "CALL"
        ;
        DB      8BH             ;DIMENSION TOKEN
        DB      "DIM"
        ;
        DB      8CH             ;STRING TOKEN
        DB      "STRING"
        ;
        DB      8DH             ;SET BAUD RATE
        DB      "BAUD"
        ;
        DB      8EH             ;CLOCK
        DB      "CLOCK"
        ;
        DB      8FH             ;PRINT HEX MODE 1
        DB      "PH1."
        ;
T_STOP  EQU     90H             ;STOP TOKEN
        DB      T_STOP
        DB      "STOP"
        ;
T_DIR   EQU     T_STOP          ;NO DIRECT FROM HERE ON
        ;
        DB      T_STOP+1        ;ON TIMER INTERRUPT
        DB      "ONTIME"
        ;
        DB      T_STOP+2        ;ON EXTERNAL INTERRUPT
        DB      "ONEX1"
        ;
        DB      T_STOP+3        ;RETURN FROM INTERRUPT
        DB      "RETI"
        ;
        DB      T_STOP+4        ;DO TOKEN
        DB      "DO"
        ;
        DB      T_STOP+5        ;RESTORE TOKEN
        DB      "RESTORE"
        ;
        newpage
T_REM   EQU     T_STOP+6        ;REMARK TOKEN
        DB      T_REM
        DB      "REM"
        ;
        DB      T_REM+1         ;NEXT TOKEN
        DB      "NEXT"
        ;
        DB      T_REM+2         ;ON ERROR TOKEN
        DB      "ONERR"
        ;
        DB      T_REM+3         ;ON TOKEN
        DB      "ON"
        ;
        DB      T_REM+4         ;INPUT
        DB      "INPUT"
        ;
        DB      T_REM+5         ;READ
        DB      "READ"
        ;
T_DATA  EQU     T_REM+6         ;DATA
        DB      T_DATA
        DB      "DATA"
        ;
        DB      T_DATA+1        ;RETURN
        DB      "RETURN"
        ;
        DB      T_DATA+2        ;IF
        DB      "IF"
        ;
T_GOSB  EQU     T_DATA+3        ;GOSUB
        DB      T_GOSB
        DB      "GOSUB"
        ;
        DB      T_GOSB+1        ;FOR
        DB      "FOR"
        ;
        DB      T_GOSB+2        ;WHILE
        DB      "WHILE"
        ;
        DB      T_GOSB+3        ;UNTIL
        DB      "UNTIL"
        ;
        DB      T_GOSB+4        ;END
        DB      "END"
        ;
        newpage
T_LAST  EQU     T_GOSB+5        ;LAST INITIAL TOKEN
        ;
T_TAB   EQU     T_LAST          ;TAB TOKEN
        DB      T_TAB
        DB      "TAB"
        ;
T_THEN  EQU     T_LAST+1        ;THEN TOKEN
        DB      T_THEN
        DB      "THEN"
        ;
T_TO    EQU     T_LAST+2        ;TO TOKEN
        DB      T_TO
        DB      "TO"
        ;
T_STEP  EQU     T_LAST+3        ;STEP TOKEN
        DB      T_STEP
        DB      "STEP"
        ;
T_ELSE  EQU     T_LAST+4        ;ELSE TOKEN
        DB      T_ELSE
        DB      "ELSE"
        ;
T_SPC   EQU     T_LAST+5        ;SPACE TOKEN
        DB      T_SPC
        DB      "SPC"
        ;
T_CR    EQU     T_LAST+6
        DB      T_CR
        DB      "CR"
        ;
        DB      T_CR+1
        DB      "IDLE"
        ;
        DB      T_CR+2
        DB      "ST@"
        ;
        DB      T_CR+3
        DB      "LD@"
        ;
        DB      T_CR+4
        DB      "PGM"
        ;
        DB      T_CR+5
        DB      "RROM"
        ;
        newpage
        ; Operator tokens
        ;
T_LPAR  EQU     0E0H            ;LEFT PAREN
        DB      T_LPAR
        DB      '('
        ;
        DB      T_LPAR+1        ;EXPONENTIAN
        DB      "**"
        ;
        DB      T_LPAR+2        ;FP MULTIPLY
        DB      '*'
        ;
T_ADD   EQU     T_LPAR+3
        DB      T_LPAR+3        ;ADD TOKEN
        DB      '+'
        ;
        DB      T_LPAR+4        ;DIVIDE TOKEN
        DB      '/'
        ;
T_SUB   EQU     T_LPAR+5        ;SUBTRACT TOKEN
        DB      T_SUB
        DB      '-'
        ;
        DB      T_LPAR+6        ;LOGICAL EXCLUSIVE OR
        DB      ".XOR."
        ;
        DB      T_LPAR+7        ;LOGICAL AND
        DB      ".AND."
        ;
        DB      T_LPAR+8        ;LOGICAL OR
        DB      ".OR."
        ;
T_NEG   EQU     T_LPAR+9
        ;
T_EQU   EQU     T_LPAR+10       ;EQUAL
        DB      T_EQU
        DB      '='
        ;
        DB      T_LPAR+11       ;GREATER THAN OR EQUAL
        DB      ">="
        ;
        DB      T_LPAR+12       ;LESS THAN OR EQUAL
        DB      "<="
        ;
        DB      T_LPAR+13       ;NOT EQUAL
        DB      "<>"
        ;
        DB      T_LPAR+14       ;LESS THAN
        DB      '<'
        ;
        DB      T_LPAR+15       ;GREATER THAN
        DB      '>'
        ;
        ;
T_UOP   EQU     0B0H            ;UNARY OP BASE TOKEN
        ;
        DB      T_UOP           ;ABS TOKEN
        DB      "ABS"
        ;
        DB      T_UOP+1         ;INTEGER TOKEN
        DB      "INT"
        ;
        DB      T_UOP+2         ;SIGN TOKEN
        DB      "SGN"
        ;
        DB      T_UOP+3         ;GET TOKEN
        DB      "NOT"
        ;
        DB      T_UOP+4         ;COSINE TOKEN
        DB      "COS"
        ;
        DB      T_UOP+5         ;TANGENT TOKEN
        DB      "TAN"
        ;
        DB      T_UOP+6         ;SINE TOKEN
        DB      "SIN"
        ;
        DB      T_UOP+7         ;SQUARE ROOT TOKEN
        DB      "SQR"
        ;
        DB      T_UOP+8         ;CBYTE TOKEN
        DB      "CBY"
        ;
        DB      T_UOP+9         ;EXP (E TO THE X) TOKEN
        DB      "EXP"
        ;
        DB      T_UOP+10
        DB      "ATN"
        ;
        DB      T_UOP+11
        DB      "LOG"
        ;
        DB      T_UOP+12        ;DBYTE TOKEN
        DB      "DBY"
        ;
        DB      T_UOP+13        ;XBYTE TOKEN
        DB      "XBY"
        ;
T_ULAST EQU     T_UOP+14        ;LAST OPERATOR NEEDING PARENS
        ;
        DB      T_ULAST
        DB      "PI"
        ;
        DB      T_ULAST+1       ;RND TOKEN
        DB      "RND"
        ;
        DB      T_ULAST+2       ;GET TOKEN
        DB      "GET"
        ;
        DB      T_ULAST+3       ;FREE TOKEN
        DB      "FREE"
        ;
        DB      T_ULAST+4       ;LEN TOKEN
        DB      "LEN"
        ;
T_XTAL  EQU     T_ULAST+5       ;CRYSTAL TOKEN
        DB      T_XTAL
        DB      "XTAL"
        ;
T_MTOP  EQU     T_ULAST+6       ;MTOP
        DB      T_MTOP
        DB      "MTOP"
        ;
T_IE    EQU     T_ULAST+8       ;IE REGISTER
        DB      T_IE
        DB      "IE"
        ;
T_IP    EQU     T_ULAST+9       ;IP REGISTER
        DB      T_IP
        DB      "IP"
        ;
TMR0    EQU     T_ULAST+10      ;TIMER 0
        DB      TMR0
        DB      "TIMER0"
        ;
TMR1    EQU     T_ULAST+11      ;TIMER 1
        DB      TMR1
        DB      "TIMER1"
        ;
TMR2    EQU     T_ULAST+12      ;TIMER 2
        DB      TMR2
        DB      "TIMER2"
        ;
T_TIME  EQU     T_ULAST+7       ;TIME
        DB      T_TIME
        DB      "TIME"
        ;
TT2C    EQU     T_ULAST+13      ;T2CON
        DB      TT2C
        DB      "T2CON"
        ;
TTC     EQU     T_ULAST+14      ;TCON
        DB      TTC
        DB      "TCON"
        ;
TTM     EQU     T_ULAST+15      ;TMOD
        DB      TTM
        DB      "TMOD"
        ;
TRC2    EQU     T_ULAST+16      ;RCAP2
        DB      TRC2
        DB      "RCAP2"
        ;
T_P1    EQU     T_ULAST+17      ;P1
        DB      T_P1
        DB      "PORT1"
        ;
T_PC    EQU     T_ULAST+18      ;PCON
        DB      T_PC
        DB      "PCON"
        ;
T_ASC   EQU     T_ULAST+19      ;ASC TOKEN
        DB      T_ASC
        DB      "ASC("
        ;
T_USE   EQU     T_ULAST+20      ;USING TOKEN
        DB      T_USE
        DB      "USING("
        DB      T_USE
        DB      "U.("
        ;
T_CHR   EQU     T_ULAST+21      ;CHR TOKEN
        DB      T_CHR
        DB      "CHR("
        ;
        newpage
T_CMND  EQU     0F0H            ;COMMAND BASE
        ;
        DB      0F0H            ;RUN TOKEN
        DB      "RUN"
        ;
        DB      0F1H            ;LIST TOKEN
        DB      "LIST"
        ;
        DB      0F2H            ;NULL TOKEN
        DB      "NULL"
        ;
        DB      0F3H            ;NEW TOKEN
        DB      "NEW"
        ;
        DB      0F4H            ;CONTINUE TOKEN
        DB      "CONT"
        ;
        DB      0F5H            ;PROGRAM TOKEN
        DB      "PROG"
        ;
        DB      0F6H            ;TRANSFER TOKEN
        DB      "XFER"
        ;
        DB      0F7H            ;RAM MODE
        DB      "RAM"
        ;
        DB      0F8H            ;ROM MODE
        DB      "ROM"
        ;
        DB      0F9H            ;INTELLIGENT PROM PROGRAMMING
        DB      "FPROG"
        ;
        DB      0FFH            ;END OF TABLE
        ;