1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
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
;
|