aboutsummaryrefslogtreecommitdiffstats
path: root/tests/t_bas52/look52.inc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/t_bas52/look52.inc')
-rw-r--r--tests/t_bas52/look52.inc779
1 files changed, 779 insertions, 0 deletions
diff --git a/tests/t_bas52/look52.inc b/tests/t_bas52/look52.inc
new file mode 100644
index 0000000..b4d13f4
--- /dev/null
+++ b/tests/t_bas52/look52.inc
@@ -0,0 +1,779 @@
+ ;**************************************************************
+ ;
+ ; 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
+ ;