Mercurial > hg > Members > kono > os9 > sbc09
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 |