comparison TL1/TL1os9.asm @ 138:6f7276831219

TL/1 use x and y register
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 07 Jan 2019 19:32:10 +0900
parents 1078f3e31d9c
children f1b4da312358
comparison
equal deleted inserted replaced
137:1078f3e31d9c 138:6f7276831219
29 DREG RMB 1 29 DREG RMB 1
30 DBUF RMB 3 30 DBUF RMB 3
31 XR RMB 2 31 XR RMB 2
32 YR RMB 2 32 YR RMB 2
33 ZR RMB 2 33 ZR RMB 2
34 PFTBEG RMB 2 34 PFTBEG RMB 2 prog/func table
35 PC RMB 2 35 PC RMB 2
36 SREG RMB 2 36 SREG RMB 2
37 SP RMB 2 37 SP RMB 2
38 PFMAX RMB 2 38 PFMAX RMB 2
39 LSW RMB 1 39 LSW RMB 1
41 CH RMB 1 41 CH RMB 1
42 VAL RMB 1 42 VAL RMB 1
43 GL RMB 1 global 0xff / local 1 43 GL RMB 1 global 0xff / local 1
44 OPER RMB 1 44 OPER RMB 1
45 GLL RMB 1 left value g 0xff / local l 45 GLL RMB 1 left value g 0xff / local l
46 RMCODE RMB 1 46 AMODE RMB 1
47 ACC RMB 1 47 ACC RMB 1
48 LSIZE RMB 1 48 LSIZE RMB 1
49 TCOUNT RMB 1 49 TCOUNT RMB 1 1 search reserved word only, 5 search all local/global var/array, proc
50 TEND RMB 2 50 TEND RMB 2 table end (search start from here ) include local name
51 WEND RMB 2 51 WEND RMB 2 word end
52 AMODE RMB 1 0x20 main, 1 proc, 0 ? 52 PMODE RMB 1 0x20 main, 1 proc, 0 ?
53 RSW RMB 1 0 word lookup, 0xff word register mode in tlook 53 RSW RMB 1 0 word lookup, 0xff word register mode in tlook
54 GEND RMB 2 54 GEND RMB 2 end of global name
55 SSW RMB 1 55 SSW RMB 1
56 56
57 filepath rmb 2 57 filepath rmb 2
58 parmptr rmb 2 58 parmptr rmb 2
59 stdin rmb 1 59 stdin rmb 2
60 adr rmb 2 60 adr rmb 2
61 work rmb 2 61 work rmb 2
62 bufsiz equ $100-1 62 bufsiz equ $100-1
63 63
64 ** 64 **
66 ** 66 **
67 LIBR equ . 67 LIBR equ .
68 ioentry rmb $80 68 ioentry rmb $80
69 readbuff rmb bufsiz+1 69 readbuff rmb bufsiz+1
70 70
71 OBJSTART RMB 2 71 OBJSTART RMB 2+12
72 72
73 73
74 * OBJECT PG AREA 74 * OBJECT PG AREA
75 75
76 WTBLE RMB $500+$100 76 WTBLE RMB $100+500
77 MSTACK RMB $140 77 MSTACK RMB $140
78 78
79 OBJECT RMB 2048 * NOP 79 OBJECT RMB 2048 * NOP
80 RUB equ 8 80 RUB equ 8
81 81
82 size equ . 82 size equ .
83 83
84 name fcs /TL1/ 84 name fcs /TL1/
85 fcb edition 85 fcb edition
99 CLRB 99 CLRB
100 C1 STA ,X+ 100 C1 STA ,X+
101 DECB 101 DECB
102 BNE C1 102 BNE C1
103 INCA 103 INCA
104 STA TCOUNT 104 STA TCOUNT = 1
105 LDA #' ' 105 LDA #' '
106 STA CH 106 STA CH
107 ** copy reserved word table 107 ** copy reserved word table
108 LEAX WTABLE,PCR 108 LEAX WTABLE,PCR
109 leay WTBLE,u 109 leay WTBLE,u
136 CMPA #$8F /END CODE 136 CMPA #$8F /END CODE
137 LBEQ ENDL 137 LBEQ ENDL
138 CMPA #$4 138 CMPA #$4
139 BCC ERR4 139 BCC ERR4
140 DECA 140 DECA
141 STA AMODE 141 STA PMODE
142 LDA VAL 142 LDA VAL
143 LBSR DEFPF 143 LBSR DEFPF
144 LBSR PUTHSL 144 LBSR PUTHSL
145 FDB $03BD 145 FDB $03BD
146 FDB PSHLB 146 FDB PSHLB
151 BNE PL1 151 BNE PL1
152 BSR REGNAM 152 BSR REGNAM
153 LDA #$3B ) 153 LDA #$3B )
154 LBSR CHECK 154 LBSR CHECK
155 PL1 BSR PROG 155 PL1 BSR PROG
156 * LDB AMODE 156 LDB PMODE
157 * CMPB #1 157 CMPB #1
158 * BNE *+5 158 BNE *+5
159 LBSR RETP 159 LBSR RETP generate return
160 LDX GEND 160 LDX GEND
161 STX TEND 161 STX TEND
162 LDB #5 162 LDB #5
163 STB TCOUNT 163 STB TCOUNT
164 BRA PLOOP 164 BRA PLOOP
257 ** 257 **
258 * RETURN 258 * RETURN
259 ** 259 **
260 SS3 CMPA #$51 260 SS3 CMPA #$51
261 BNE SS4 261 BNE SS4
262 LDB AMODE 262 LDB PMODE
263 LBEQ ERR4 263 LBEQ ERR4
264 PSHS B 264 PSHS B
265 BSR WORD1 265 BSR WORD1
266 PULS B 266 PULS B
267 DECB 267 DECB
578 PUTOFS PSHS D,X 578 PUTOFS PSHS D,X
579 LDX <PC 579 LDX <PC
580 STA ,X+ 580 STA ,X+
581 CLRA 581 CLRA
582 TST <GLL 582 TST <GLL
583 BNE PUTOFSX 583 BMI PUTOFSX
584 ORA #$20 584 LDA #$20
585 PUTOFSX STA ,S 585 PUTOFSX STA ,S
586 CMPB #32 586 CMPB #32
587 BGT *+6 587 BGT *+6
588 CMPB #-32 588 CMPB #-32
589 BGE PUTOFS5 589 BGE PUTOFS5
592 STA ,X+ 592 STA ,X+
593 STB ,X+ 593 STB ,X+
594 BRA PUTOFS8 594 BRA PUTOFS8
595 PUTOFS5 595 PUTOFS5
596 ANDB #$1F 596 ANDB #$1F
597 ORA ,S 597 ORB ,S
598 STA ,X+ 598 STB ,X+
599 PUTOFS8 599 PUTOFS8
600 STX <PC 600 STX <PC
601 PULS D,X,PC 601 PULS D,X,PC
602 602
603 *** 603 ***
699 PSHS B 699 PSHS B
700 ADDA ,S+ 700 ADDA ,S+
701 STA VAL 701 STA VAL
702 BRA WD40 702 BRA WD40
703 ** 703 **
704 * TEST ALPHA NUMERIC 704 * TEST ALPHA NUMERIC Z=0 C=0 Not Number/Not Alpha
705 TSTNA CMPA #'0' 705 TSTNA CMPA #'0' Z=1 C=1 Number
706 BCS NAF 706 BCS NAF Z=0 C=1 Not Number/Alpha
707 CMPA #'9'+1 707 CMPA #'9'+1
708 BCS NT 708 BCS NT
709 CMPA #'A' 709 CMPA #'A'
710 BCS NAF 710 BCS NAF
711 CMPA #'Z'+1 711 CMPA #'Z'+1
734 PSHS A 734 PSHS A
735 NEGA 735 NEGA
736 LEAX 1,X 736 LEAX 1,X
737 BSR STAONE 737 BSR STAONE
738 PULS A 738 PULS A
739 BSR TSTNA 739 BSR TSTNA first word must alpha
740 BCC TLOOK1 740 BCC TLOOK1
741 WD61 LDA CH 741 WD61 LDA CH
742 BSR TSTNA 742 BSR TSTNA alpha numeric?
743 BCS *+4 743 BCS *+4
744 BNE TLOOK1 744 BNE TLOOK1
745 BSR STAONE 745 BSR STAONE
746 BRA WD61 746 BRA WD61
747 STAONE STA ,X+ 747 STAONE STA ,X+ store to the table
748 STX WEND 748 STX WEND
749 BRA GETCH 749 BRA GETCH
750 TLOOK1 LDA RSW 750 TLOOK1 LDA RSW word end
751 BEQ TLOOK 751 BEQ TLOOK let's search
752 COM RSW 752 COM RSW
753 RTS 753 RTS
754 ** 754 **
755 * WORD TABLE SEARCH 755 * WORD TABLE SEARCH
756 *
757 * if not find then error
758 * on return X point last of word (VAL)
759 * SY 7 larray 6 lvar 5 garray 4 gvar 3 func or proc 0 reserved word
760 * VAL word id or size
761 * GL 1 local 0xff global
756 ** 762 **
757 TLOOK PSHS U 763 TLOOK PSHS U
758 LDA TCOUNT 764 LDA TCOUNT
759 STA SY 765 STA SY
760 LDX TEND 766 LDX TEND
779 LDA SY 785 LDA SY
780 CMPA #1 786 CMPA #1
781 BNE *+6 787 BNE *+6
782 TFR B,A 788 TFR B,A
783 BRA S07 789 BRA S07
790 LDB #1
784 CMPA #4 791 CMPA #4
785 BCS RTSS 792 BCS RTSS
786 LDB #1 793 TST PMODE
787 TST AMODE
788 BEQ *+6 794 BEQ *+6
789 CMPA #6 795 CMPA #6
790 BCS *+3 796 BCS *+3
791 NEGB 797 NEGB
792 STB GL 798 STB GL
1426 * SUPORTING ROUTINES 1432 * SUPORTING ROUTINES
1427 * & I/0 CONTROL 1433 * & I/0 CONTROL
1428 ** 1434 **
1429 ** OBJECT START 1435 ** OBJECT START
1430 ****** 1436 ******
1431 C leas MSTACK,u 1437 C leas OBJECT,u
1432 VARPTR LDX <PC 1438 VARPTR LDX <PC
1433 STX GB 1439 STX GB
1434 STX LB 1440 STX LB
1435 lda INDN 1441 lda INDN
1436 lbsr close 1442 lbsr close