Mercurial > hg > Members > kono > os9 > sbc09
annotate TL1/TL1os9.asm @ 191:d0f5894e9b3a default tip
some how load: confilicts in gmake
author | kono |
---|---|
date | Thu, 07 Dec 2023 09:37:15 +0900 |
parents | 63de06ad7a49 |
children |
rev | line source |
---|---|
121 | 1 *******TL/1************* |
2 nam tl1 | |
3 ttl TL1 compiler | |
4 | |
5 ifp1 | |
6 use defsfile | |
7 endc | |
8 | |
9 * Module header definitions | |
10 tylg set Prgrm+Objct | |
11 atrv set ReEnt+rev | |
12 rev set $00 | |
13 edition set 1 | |
14 | |
15 mod eom,name,tylg,atrv,start,size | |
16 | |
17 TXTTOP EQU $FB7E | |
18 | |
19 INDN RMB 1 | |
20 OUTDN RMB 1 | |
21 LB RMB 2 | |
22 GB RMB 2 | |
23 MHIGH RMB 1 | |
24 MOD RMB 1 | |
25 WT1 RMB 1 | |
26 WT2 RMB 1 | |
27 RNDH RMB 1 | |
28 RNDL RMB 1 | |
29 DREG RMB 1 | |
30 DBUF RMB 3 | |
31 XR RMB 2 | |
32 YR RMB 2 | |
33 ZR RMB 2 | |
165 | 34 arg equ . |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
35 PFTBEG RMB 2 prog/func table |
121 | 36 PC RMB 2 |
37 SREG RMB 2 | |
38 SP RMB 2 | |
39 PFMAX RMB 2 | |
40 LSW RMB 1 | |
41 SY RMB 1 | |
42 CH RMB 1 | |
43 VAL RMB 1 | |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
44 GL RMB 1 global 0xff / local 1 |
121 | 45 OPER RMB 1 |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
46 GLL RMB 1 left value g 0xff / local l |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
47 AMODE RMB 1 |
121 | 48 ACC RMB 1 |
142 | 49 LSIZE RMB 1 local variable size (including arguments ) |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
50 GSIZE RMB 1 global variable including array |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
51 TCOUNT RMB 1 1 search reserved word only, 5 search all local/global var/array, proc |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
52 TEND RMB 2 table end (search start from here ) include local name |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
53 WEND RMB 2 word end |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
54 PMODE RMB 1 0x20 main, 1 proc, 0 ? |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
55 RSW RMB 1 0 word lookup, 0xff word register mode in tlook |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
56 GEND RMB 2 end of global name |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
57 SSW RMB 1 |
164 | 58 runmod RMB 1 |
162 | 59 modofs RMB 2 module library offset |
121 | 60 |
135
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
61 filepath rmb 2 |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
62 parmptr rmb 2 |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
63 stdin rmb 2 |
135
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
64 adr rmb 2 |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
65 work rmb 2 |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
66 bufsiz equ $100-1 |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
67 |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
68 ** |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
69 * LIBRARY ADDRESSS TABLE |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
70 ** |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
71 LIBR equ . |
121 | 72 ioentry rmb $80 |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
73 memds equ ioentry |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
74 membuf equ ioentry+1 |
135
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
75 readbuff rmb bufsiz+1 |
121 | 76 |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
77 OBJSTART RMB 10 |
121 | 78 |
79 | |
80 * OBJECT PG AREA | |
81 | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
82 WTBLE RMB $100+500 |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
83 MSTACK RMB $140 |
121 | 84 |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
85 OBJECT RMB 2048 * NOP |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
86 RUB equ 8 |
121 | 87 |
88 size equ . | |
89 | |
90 name fcs /TL1/ | |
91 fcb edition | |
92 | |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
93 |
162 | 94 ** OBJECT START |
95 ****** | |
167 | 96 C tst <runmod |
97 beq c2 | |
98 lbra modend | |
99 c2 leas OBJECT,u | |
100 VARPTR lda INDN | |
101 lbsr close | |
162 | 102 clra os9 stdin |
167 | 103 sta INDN |
162 | 104 inca |
167 | 105 sta OUTDN |
106 LDX <PC | |
107 leay ,x | |
108 OBJMP JMP OBJECT,u | |
155 | 109 |
162 | 110 |
164 | 111 start LEAY OBJECT,u |
112 STY PC | |
113 lda ,x | |
166 | 114 cmpa #'-' |
164 | 115 bne run |
116 leax 1,x | |
117 lda ,x+ | |
165 | 118 cmpa #'c' |
164 | 119 bne run |
120 lbsr modsetup | |
121 bra fread | |
122 run ldy #-2 17 xx xx | |
162 | 123 sty modofs |
164 | 124 fread clr <stdin |
155 | 125 stx <parmptr save parameter pointer |
126 stu <work save parameter pointer | |
127 lda #READ. read access mode | |
128 os9 I$Open open file | |
129 lbcs ferr branch if error | |
130 sta <INDN else save path to file | |
131 stx <parmptr and updated parm pointer | |
132 leax readbuff,u buffer | |
133 clr ,x buffer empty | |
134 stx <adr | |
135 lbra comp | |
136 | |
121 | 137 ** |
138 COMP CLRA | |
139 STA OUTDN | |
140 STA LSW | |
141 STA AMODE | |
139 | 142 STA PMODE |
121 | 143 STA LSIZE |
144 STA RSW | |
145 STA PFMAX | |
122 | 146 leax MSTACK,u |
121 | 147 STX SP |
148 LEAX 2,x | |
149 STX PFTBEG | |
150 CLRB | |
151 C1 STA ,X+ | |
152 DECB | |
153 BNE C1 | |
154 INCA | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
155 STA TCOUNT = 1 |
121 | 156 LDA #' ' |
157 STA CH | |
158 ** copy reserved word table | |
159 LEAX WTABLE,PCR | |
175 | 160 pshs u |
161 leau WTBLE,u | |
162 ldy #WTBLEND-WTABLE | |
121 | 163 tbl1 lda ,x+ |
175 | 164 sta ,u+ |
165 leay -1,y | |
121 | 166 bne tbl1 |
175 | 167 stu TEND |
168 puls u | |
121 | 169 ** |
170 LBSR CRLF | |
171 BSR REG0 | |
172 LBSR WORD | |
173 CMPA #$30 PROC? | |
174 BNE *+4 | |
175 BSR REGNAM | |
176 BSR REG0 | |
177 CMPA #$31 FUNC? | |
178 BNE *+4 | |
179 BSR REGNAM | |
180 CLR LSIZE | |
181 BSR REG0 | |
171 | 182 LBSR PROG |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
183 LDB LSIZE |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
184 STB GSIZE |
121 | 185 LBSR STPOUT |
186 LDX TEND | |
187 STX GEND | |
188 PLOOP LDA SY | |
189 CMPA #$8F /END CODE | |
190 LBEQ ENDL | |
191 CMPA #$4 | |
192 BCC ERR4 | |
193 DECA | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
194 STA PMODE |
121 | 195 LDA VAL |
196 LBSR DEFPF | |
142 | 197 LBSR PUTHS |
198 FCB $04 | |
199 FDB $AFE3 stx ,--s | |
143 | 200 FDB $3086 leax a,x |
121 | 201 BSR REG0 |
202 CLR LSIZE | |
203 LBSR WORD | |
127
321b7fffadab
TL/1 simple test worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
126
diff
changeset
|
204 CMPA #$37 ( |
121 | 205 BNE PL1 |
206 BSR REGNAM | |
127
321b7fffadab
TL/1 simple test worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
126
diff
changeset
|
207 LDA #$3B ) |
121 | 208 LBSR CHECK |
209 PL1 BSR PROG | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
210 LDB PMODE |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
211 CMPB #1 |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
212 BNE *+5 |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
213 LBSR RETP generate return |
121 | 214 LDX GEND |
215 STX TEND | |
216 LDB #5 | |
217 STB TCOUNT | |
218 BRA PLOOP | |
219 ** | |
220 * REGIST ZERO | |
221 ** | |
222 REG0 LDX TEND | |
223 CLR ,X+ | |
224 STX TEND | |
225 INC TCOUNT | |
226 RTS | |
227 ** | |
228 * REGIST NAME | |
229 ** | |
230 REGNAM COM RSW | |
231 LBSR WORD | |
232 LDB RSW | |
233 BEQ *+5 | |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
234 ERR4 LBRA ERROR define duplicate name |
121 | 235 LDX TEND |
236 LDA LSIZE | |
237 STA ,X | |
238 INC LSIZE | |
239 LDX WEND | |
240 STX TEND | |
241 BSR WORD1 | |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
242 CMPA #$36 "[" array |
121 | 243 BNE REG2 |
244 BSR WORD1 | |
245 BNE ERR4 | |
246 LDA VAL | |
247 ADDA LSIZE | |
248 BSR WORD1 | |
124 | 249 LDA #$3A ":" |
121 | 250 LBSR CHECK |
124 | 251 REG2 CMPA #$3C "," get next word |
121 | 252 BEQ REGNAM |
253 RTS | |
254 ** | |
255 * PROGRAM | |
256 ** | |
257 PROG CMPA #$32 VAR? | |
258 BNE *+4 | |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
259 BSR REGNAM global variable |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
260 BSR REG0 put mark |
121 | 261 CMPA #$33 ARRAY? |
262 BNE *+4 | |
263 BSR REGNAM | |
264 ** | |
265 * STATEMENT | |
266 ** | |
267 STAT BSR SSTAT | |
268 LDB SSW | |
269 BEQ RTS1 | |
270 LBRA ERROR | |
271 ** | |
272 * STATEMENTS LIST | |
273 ** | |
274 STLIST BSR SSTAT | |
275 LDB SSW | |
276 BEQ STLIST | |
277 RTS1 RTS | |
278 ** | |
279 * SINGLE STATEMENT | |
280 ** | |
281 SSTAT CLRA | |
282 STA ACC | |
283 STA SSW | |
284 LDA SY | |
285 ** | |
286 * MULTIPLE STATEMENTS | |
287 ** | |
127
321b7fffadab
TL/1 simple test worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
126
diff
changeset
|
288 SS1 CMPA #$34 BEGIN |
121 | 289 BCS SS2 |
127
321b7fffadab
TL/1 simple test worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
126
diff
changeset
|
290 CMPA #$38 END |
121 | 291 BCC SS2 |
292 ADDA #4 | |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
293 PSHS A wait for END |
121 | 294 BSR WORD1 |
295 BSR STLIST | |
296 PULS A | |
297 CLR SSW | |
298 LBRA CHECK | |
299 ** | |
300 * STOP | |
301 ** | |
302 SS2 CMPA #$50 | |
303 BNE SS3 | |
304 BSR STPOUT | |
305 WORD1 LBRA WORD | |
306 ** | |
122 | 307 STPOUT LBSR PUTHSL |
162 | 308 FCB 3,$16 |
122 | 309 FDB exit |
121 | 310 RTS |
311 ** | |
312 * RETURN | |
313 ** | |
314 SS3 CMPA #$51 | |
315 BNE SS4 | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
316 LDB PMODE |
121 | 317 LBEQ ERR4 |
318 PSHS B | |
319 BSR WORD1 | |
320 PULS B | |
321 DECB | |
322 BEQ RETP | |
323 LBSR EXPR | |
142 | 324 RETP LDD #$3590 puls x,pc |
325 LBSR PUTAB | |
121 | 326 RTS |
327 ** | |
328 * PROC CALL | |
329 ** | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
330 SS4 CMPA #2 proc |
121 | 331 LBEQ PFCALL |
332 CMPA #$E0 | |
333 BCS SS5 | |
334 LBRA PFCALL | |
335 ** | |
336 * ASSIGNMENT STATEMENT | |
337 ** | |
338 SS5 CMPA #7 | |
339 BCS ASSIGN | |
340 LBRA SS6 | |
341 ASSIGN LDB GL | |
342 PSHS B | |
343 LDB VAL | |
344 PSHS B | |
170
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
345 CMPA #5 local array |
121 | 346 BNE ASS1 |
347 LBSR SUBSC1 | |
348 LDB ,S | |
349 LDA LSW | |
350 BNE AS0 | |
351 LDA #$8B | |
352 LBSR PUTAB | |
353 LDA #1 | |
354 BRA AS2 | |
355 AS0 ADDB OPER | |
356 STB ,S | |
357 CLR LSW | |
358 BRA AS1 | |
170
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
359 ASS1 CMPA #6 global array |
121 | 360 BNE ASS2 |
361 LBSR DSUBSC | |
362 LDA #2 | |
363 BRA AS2 | |
364 ASS2 CMPA #4 | |
365 BEQ *+5 | |
366 LBRA ERROR | |
170
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
367 LBSR WORD local var |
121 | 368 AS1 CLRA |
369 AS2 PSHS A | |
370 LDA SY | |
170
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
371 CMPA #$3C , |
121 | 372 BNE *+9 |
373 LBSR WORD | |
374 BSR ASSIGN | |
375 BRA AS3 | |
170
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
376 LDA #$3D : |
121 | 377 LBSR CHECK |
170
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
378 LDA #$27 = |
121 | 379 LBSR CHECK |
380 LBSR EXPR | |
381 AS3 PULS D | |
382 STB OPER 4-- | |
383 PULS B | |
384 STB GLL | |
385 TSTA | |
386 BNE AS4 | |
141 | 387 * LBSR PUTX |
121 | 388 LDA #$A7 |
125 | 389 LDB OPER |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
390 LBRA PUTOFS |
121 | 391 AS4 DECA |
392 BNE AS5 | |
136 | 393 LDD #$3504 PULS B |
394 LBSR PUTAB | |
141 | 395 * LBSR PUTX STA B,X / STA B,Y |
136 | 396 LDD #$A785 |
397 LBRA PUTAB | |
121 | 398 AS5 LBSR PUTHS |
136 | 399 FCB 4 |
400 FDB $3510 PULS X | |
401 FDB $A700 STA ,X | |
121 | 402 RTS |
403 ** | |
404 ** NON-STATEMENT | |
405 ** | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
406 SSEND CMPA #$A2 seek |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
407 LBEQ EXPR |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
408 CMPA #$A3 seekr |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
409 LBEQ EXPR |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
410 CMPA #$A4 tell |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
411 LBEQ EXPR |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
412 SSEND1 COM SSW |
121 | 413 RTS |
414 ** | |
415 SS6 CMPA #$58 | |
416 BCC SSEND | |
417 CMPA #$52 | |
418 BCS SSEND | |
419 SUBA #$51 | |
420 PSHS A | |
421 LBSR WORD | |
125 | 422 PULS B B keyword A next token |
121 | 423 ** |
424 * REPEAT UNTIL | |
425 ** | |
426 DECB | |
427 BNE SS7 | |
428 BSR ASTOUT | |
429 LBSR STLIST | |
430 LDA #$60 | |
431 LBSR CHECK | |
432 LBSR EXPR | |
433 LBSR PUTHS | |
434 FCB 2 | |
435 FDB $2603 | |
436 CLR SSW | |
437 BRA MINOUT | |
438 ** | |
439 * FOR-TO | |
440 ** | |
441 SS7 DECB | |
442 BNE SS8 | |
125 | 443 CMPA #4 should be simple var |
121 | 444 BEQ *+5 |
445 LBRA ERROR | |
446 LDB VAL | |
447 PSHS B | |
448 LDB GL | |
449 PSHS B | |
450 LBSR ASSIGN | |
125 | 451 LDA #$61 to |
121 | 452 LBSR CHECK |
453 CLR ACC | |
454 LBSR EXPR | |
125 | 455 LDA #$64 do |
121 | 456 LBSR CHECK |
170
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
457 INC LSIZE |
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
458 LDA #$A7 sta |
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
459 LDB LSIZE |
125 | 460 LBSR PUTAB |
170
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
461 pshs b |
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
462 BSR ASTOUT |
121 | 463 LBSR STAT |
170
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
464 puls b |
d4e2f1179baf
remove psh on TL1 for-statement
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
169
diff
changeset
|
465 lda #$A6 lda |
125 | 466 LBSR PUTAB |
121 | 467 PULS D |
468 STA GLL | |
469 STB OPER | |
470 LDA #$A1 | |
471 LBSR PUTABX | |
472 LBSR PUTHS | |
473 FCB 2 | |
474 FDB $2305 | |
475 LDA #$6C | |
476 LDB OPER | |
477 LBSR PUTAB | |
478 MINOUT LBRA PULJMP | |
479 ASTOUT LBRA PSHDEF | |
480 ** | |
481 * WHILE-DO | |
482 ** | |
483 SS8 DECB | |
484 BNE SS9 | |
485 BSR ASTOUT | |
486 LBSR EXPR | |
487 LDA #$64 | |
488 LBSR CHECK | |
489 LBSR PUTHS | |
490 FCB 2 | |
491 FDB $2603 | |
492 BSR SLAOUT | |
493 LBSR STAT | |
494 BSR PEROUT | |
495 BSR MINOUT | |
496 PLUOUT LBRA PULDEF | |
497 ** | |
498 ** IF—THEN | |
499 ** | |
500 SS9 DECB | |
501 BNE SS10 | |
502 LBSR EXPR | |
503 LDA #$65 | |
504 LBSR CHECK | |
505 LBSR PUTHS | |
506 FCB 2 | |
507 FDB $2603 | |
508 BSR SLAOUT | |
509 LBSR STAT | |
177 | 510 LDA SY |
511 CMPA #$67 ELSE | |
512 BNE PLUOUT | |
513 BSR SLAOUT lbra then | |
514 BSR PEROUT | |
515 BSR PLUOUT else: | |
516 LBSR WORD | |
517 LBSR STAT | |
518 BRA PLUOUT then: | |
121 | 519 SLAOUT LBRA PSHJMP |
520 PEROUT LBRA STCHG | |
521 *** | |
522 * CASE—OF | |
523 SS10 DECB | |
524 BNE SS11 | |
525 LBSR EXPR | |
526 LDA #$66 | |
527 LBSR CHECK | |
528 CLRB | |
529 S10A INCB | |
530 PSHS B | |
531 STB ACC | |
532 LBSR LEXPR | |
533 LDA #$81 | |
534 LBSR AOPER | |
535 LBSR PUTHS | |
536 FCB 2 | |
537 FDB $2703 | |
538 BSR SLAOUT | |
539 LBSR STAT | |
540 BSR SLAOUT | |
541 BSR PEROUT | |
542 BSR PLUOUT | |
543 PULS B | |
544 LDA SY | |
177 | 545 CMPA #$67 ELSE |
121 | 546 BNE S10A |
547 PSHS B | |
548 LBSR WORD | |
549 LBSR STAT | |
550 PULS A | |
551 LBRA PLDFN | |
552 ** | |
553 * WRITE STATEMENT | |
554 ** | |
555 SS11 LDA #$37 | |
556 LBSR CHECK | |
125 | 557 LBSR EXPR output channel number |
121 | 558 LBSR PUTHS |
559 FDB $0297 | |
560 FCB OUTDN | |
561 LDA #$3D | |
562 LBSR CHECK | |
563 WTLP CLR ACC | |
564 BSR WTERM | |
565 LDA SY | |
566 CMPA #$3C | |
567 BNE WTEN | |
568 LBSR WORD | |
569 BRA WTLP | |
125 | 570 WTEN LDA #$3B |
121 | 571 LBRA CHECK |
125 | 572 ** write command argument |
573 WTERM CMPA #$6C string | |
121 | 574 BNE WR1 |
122 | 575 LBSR PUTHSL |
162 | 576 FDB $0317 |
121 | 577 FDB PUTSTR |
578 LDA CH | |
125 | 579 WR01 CMPA #'"' copy until '"' |
121 | 580 BEQ WR02 |
581 LBSR PUTA | |
582 LBSR GETCH | |
583 BRA WR01 | |
125 | 584 WR02 CLRA put 0 at end |
121 | 585 LBSR PUTA |
586 LBSR GETCH | |
587 LBRA WORD | |
588 ** | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
589 WR1 CMPA #$6B CRLF |
121 | 590 BNE WR3 |
591 LBSR WORD | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
592 CMPA #$37 '(' |
121 | 593 BEQ WR2 |
122 | 594 LBSR PUTHSL |
162 | 595 FDB $0317 |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
596 FDB CRLF |
121 | 597 RTS |
598 ** | |
599 WR2 LBSR WEXPR | |
600 BSR WTEN | |
122 | 601 LBSR PUTHSL |
162 | 602 FDB $0317 |
121 | 603 FDB CRLFA |
604 RTS | |
605 ** | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
606 WR3 CMPA #$6A SPACE |
121 | 607 BNE WR4 |
608 LBSR SUBSC | |
122 | 609 LBSR PUTHSL |
162 | 610 FDB $0317 |
121 | 611 FDB SPACEA |
612 RTS | |
613 ** | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
614 WR4 CMPA #$69 ASCII |
121 | 615 BNE WR5 |
616 LBSR SUBSC | |
122 | 617 LBSR PUTHSL |
162 | 618 FDB $0317 |
121 | 619 FDB PUTCA |
620 RTS | |
621 ** | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
622 WR5 CMPA #$26 # |
121 | 623 BNE WR6 |
624 LBSR DSUBSC | |
625 LBSR PUTPLB | |
122 | 626 LBSR PUTHSL |
162 | 627 FDB $0317 |
121 | 628 FDB PUTDA+1 |
629 BRA WR66 | |
630 ** | |
631 WR6 LBSR EXPR | |
122 | 632 LBSR PUTHSL |
162 | 633 FDB $0317 |
121 | 634 FDB PUTDA |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
635 WR66 |
121 | 636 RTS11 RTS |
637 ** | |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
638 * use X for LB, OR use Y for GB BY |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
639 ** |
141 | 640 *PUTX equ RTS11 * no pointer load |
121 | 641 ** |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
642 PUTOFS PSHS D,X |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
643 LDX <PC |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
644 STA ,X+ |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
645 CLRA |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
646 TST <GLL |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
647 BMI PUTOFSX |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
648 LDA #$20 |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
649 PUTOFSX STA ,S |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
650 CMPB #32 |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
651 BGT *+6 |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
652 CMPB #-32 |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
653 BGE PUTOFS5 |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
654 LDA #$80 |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
655 ORA ,S |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
656 STA ,X+ |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
657 STB ,X+ |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
658 BRA PUTOFS8 |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
659 PUTOFS5 |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
660 ANDB #$1F |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
661 ORB ,S |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
662 STB ,X+ |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
663 PUTOFS8 |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
664 STX <PC |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
665 PULS D,X,PC |
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
666 |
121 | 667 *** |
668 * PUT ACC A&B | |
669 ** | |
125 | 670 PUTAB BSR PUTA |
121 | 671 TFR B,A |
672 ** | |
144
1112b0549142
TL/1 example t3 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
143
diff
changeset
|
673 * PUTX & PUTB |
1112b0549142
TL/1 example t3 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
143
diff
changeset
|
674 ** |
1112b0549142
TL/1 example t3 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
143
diff
changeset
|
675 PUTABX equ PUTAB |
1112b0549142
TL/1 example t3 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
143
diff
changeset
|
676 * PSHS D |
1112b0549142
TL/1 example t3 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
143
diff
changeset
|
677 * BSR PUTX |
1112b0549142
TL/1 example t3 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
143
diff
changeset
|
678 * PULS D |
1112b0549142
TL/1 example t3 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
143
diff
changeset
|
679 * BRA PUTAB |
1112b0549142
TL/1 example t3 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
143
diff
changeset
|
680 ** |
121 | 681 * PUT ACCA RS AN OBJECT |
682 ** | |
136 | 683 PUTA PSHS X |
121 | 684 LBSR AOUT |
136 | 685 PULS X,PC |
121 | 686 ** |
687 * PUTHS STRING | |
688 ** | |
689 PUTHS LDX ,S++ | |
690 LDB ,X+ | |
691 PS1 LDA ,X+ | |
692 BSR PUTA | |
693 DECB | |
694 BNE PS1 | |
695 JMP ,X | |
696 ** | |
697 ** CHECK ACC | |
698 ** | |
699 CHECK CMPA SY | |
700 BEQ WORD | |
701 ** | |
702 * ERROR | |
703 ** | |
704 ERROR LBSR PUTSTR | |
705 FDB $0D0A | |
706 FCC "ERROR ",0 | |
707 LDX TEND | |
708 LEAX 1,X | |
709 NEG ,X | |
710 ER0 LDA ,X+ | |
711 LBSR PUTCA | |
712 CMPX WEND | |
713 BNE ER0 | |
714 lbra exit | |
715 ** | |
716 * WORD DECORDER | |
717 ** | |
718 WORD BSR WORDS | |
719 LDA SY | |
720 RTS | |
721 WORDS CLRB | |
722 STB SY | |
723 STB VAL | |
724 LDA CH | |
725 ** SKIP CONT ,SPACE.; | |
726 WD1 CMPA #$21 | |
727 BCS SKIP | |
728 CMPA #'.' | |
729 BEQ SKIP | |
730 CMPA #';' | |
731 BNE WD2 | |
732 SKIP BSR GETCH | |
733 BRA WD1 | |
734 ** | |
735 * COMMENT | |
736 ** | |
737 WD2 CMPA #'%' | |
738 BNE WD3 | |
739 BSR GETCH | |
740 CMPA #$20 | |
123 | 741 BCC *-4 |
121 | 742 BRA WD1 |
743 ** | |
744 * ASCC CONST | |
745 ** | |
746 WD3 CMPA #'\'' | |
747 BNE WD4 | |
748 BSR GETCH | |
749 STA VAL | |
750 BSR GETCH | |
751 GETCH PSHS X | |
752 LBSR MEMIN | |
753 STA CH | |
754 PULS X,PC | |
755 * HEX CONSTANT | |
756 WD4 CMPA #'$' | |
757 BNE WD5 | |
758 WD40 BSR GETCH | |
759 BSR TSTNA | |
760 BEQ WD41 | |
761 BCC RTS2 | |
762 CMPA #'F'+1 | |
763 BCC RTS2 | |
764 SUBA #7 | |
765 WD41 SUBA #'0' | |
766 LDB VAL | |
767 ASLB | |
768 ASLB | |
769 ASLB | |
770 ASLB | |
771 PSHS B | |
772 ADDA ,S+ | |
773 STA VAL | |
774 BRA WD40 | |
775 ** | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
776 * TEST ALPHA NUMERIC Z=0 C=0 Not Number/Not Alpha |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
777 TSTNA CMPA #'0' Z=1 C=1 Number |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
778 BCS NAF Z=0 C=1 Not Number/Alpha |
121 | 779 CMPA #'9'+1 |
780 BCS NT | |
781 CMPA #'A' | |
782 BCS NAF | |
783 CMPA #'Z'+1 | |
784 BCS AT | |
785 NAF CLRB CLEAR C | |
786 AT LDB #-1 | |
787 RTS2 RTS | |
788 NT CLRB | |
789 RTS | |
790 ** DECIMAL CONSTANT | |
791 WD5 BSR TSTNA | |
792 BNE WD6 | |
793 WD50 SUBA #'0' | |
794 PSHS A | |
795 LDA VAL | |
796 LDB #10 | |
797 MUL | |
127
321b7fffadab
TL/1 simple test worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
126
diff
changeset
|
798 ADDB ,S+ |
321b7fffadab
TL/1 simple test worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
126
diff
changeset
|
799 STB VAL |
121 | 800 BSR GETCH |
801 BSR TSTNA | |
802 BEQ WD50 | |
803 RTS | |
804 * THE OTHER WORDS | |
805 WD6 LDX TEND | |
806 PSHS A | |
807 NEGA | |
808 LEAX 1,X | |
809 BSR STAONE | |
810 PULS A | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
811 BSR TSTNA first word must alpha |
121 | 812 BCC TLOOK1 |
813 WD61 LDA CH | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
814 BSR TSTNA alpha numeric? |
121 | 815 BCS *+4 |
816 BNE TLOOK1 | |
817 BSR STAONE | |
818 BRA WD61 | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
819 STAONE STA ,X+ store to the table |
121 | 820 STX WEND |
821 BRA GETCH | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
822 TLOOK1 LDA RSW word end |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
823 BEQ TLOOK let's search |
121 | 824 COM RSW |
825 RTS | |
826 ** | |
827 * WORD TABLE SEARCH | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
828 * |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
829 * if not find then error |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
830 * on return X point last of word (VAL) |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
831 * SY 7 larray 6 lvar 5 garray 4 gvar 3 func or proc 0 reserved word |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
832 * VAL word id or size |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
833 * GL 1 local 0xff global |
121 | 834 ** |
123 | 835 TLOOK PSHS U |
836 LDA TCOUNT | |
121 | 837 STA SY |
838 LDX TEND | |
839 S01 LDU WEND | |
840 S02 LDA ,-U | |
841 CMPA ,-X | |
842 BEQ S06 | |
843 S03 TST ,X | |
844 BEQ S05 | |
845 BMI S04 | |
846 LEAX -1,X | |
847 BRA S03 | |
848 S04 LEAX -1,X | |
849 BRA S01 | |
850 S05 DEC SY | |
851 BNE S01 | |
852 LBRA ERROR | |
853 S06 TSTA | |
854 BPL S02 | |
855 LDB ,-X | |
856 STB VAL | |
857 LDA SY | |
858 CMPA #1 | |
859 BNE *+6 | |
860 TFR B,A | |
861 BRA S07 | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
862 LDB #1 |
121 | 863 CMPA #4 |
864 BCS RTSS | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
865 TST PMODE |
121 | 866 BEQ *+6 |
867 CMPA #6 | |
868 BCS *+3 | |
869 NEGB | |
870 STB GL | |
871 ANDA #$FD | |
872 S07 STA SY | |
123 | 873 RTSS PULS U,PC |
121 | 874 ** |
875 * ARITHMATIC EXPRESSION | |
876 ** | |
877 WEXPR LBSR WORD | |
878 EXPR BSR LEXPR | |
879 BSR OLOAD | |
880 RTE RTS | |
881 ** WORD * LEXPR | |
882 WLEXPR LBSR WORD | |
883 ** | |
884 * LOGICAL EXPRESSION | |
885 ** | |
886 LEXPR BSR REXPR | |
887 LE1 LDY SY | |
888 CMPA #$82 | |
889 BCS RTE | |
890 CMPA #$8A+1 | |
891 BCC RTE | |
892 PSHS A | |
893 LBSR WORD | |
894 BSR REXPR | |
895 LDB LSW | |
896 BNE LE2 | |
897 LBSR PUTHS | |
898 FDB $0397 | |
899 FCB WT1 | |
900 FCB $32 | |
901 PULS A | |
902 ADDA #$10 | |
903 LDB #WT1 | |
904 LBSR PUTAB | |
905 BRA LE1 | |
906 LE2 PULS A | |
907 BSR OCORD | |
908 BRA LE1 | |
909 ** | |
910 * RELATIONAL EXPRESS | |
911 ** | |
139 | 912 REXPR LBSR AEXPR |
121 | 913 RE1 LDA SY |
914 CMPA #$21 | |
915 BCS RTE | |
916 CMPA #$30 | |
917 BCC RTE | |
918 PSHS A | |
919 LBSR WORD | |
177 | 920 BSR AEXPR |
121 | 921 LDA #$80 |
922 BSR AOPER | |
923 PULS A | |
924 LBSR PUTHS | |
177 | 925 FCB 6 b?? *+3 ; clra ; bra *+2 ; lda #$ff |
121 | 926 FCB $3,$4F,$20,$02,$86,$FF |
927 BRA RE1 | |
928 ** ADDING OPERATFR | |
929 AOPER LDB LSW | |
930 BNE OCORD | |
931 PSHS A | |
932 CMPA #$80 | |
933 BEQ *+5 | |
934 BSR PUTPUL | |
935 FCB $8C | |
936 BSR PUTPLB | |
937 PULS A | |
938 SUBA #$70 | |
939 PUTA1 LBRA PUTA | |
940 ** OUTPUT SAVED L-CC | |
941 OLOAD LDA LSW | |
942 BEQ RTE | |
943 LDA ACC | |
132 | 944 BEQ OL1 |
945 LDD #$3402 pshs a | |
946 LBSR PUTAB | |
947 OL1 LDA #$86 | |
121 | 948 OCORD PSHS A |
949 CLRA | |
950 STA LSW | |
951 COMA | |
952 STA ACC | |
142 | 953 * LDA AMODE amode is sometime wrong? |
954 * CMPA #$20 | |
955 * BNE *+5 | |
141 | 956 * LBSR PUTX |
121 | 957 CLR LSW |
958 PULS A | |
959 ADDA AMODE | |
140 | 960 CMPA #$A6 |
961 BEQ OCOFS | |
962 CMPA #$E6 | |
963 BEQ OCOFS | |
141 | 964 LDB OPER imm case |
140 | 965 LBRA PUTAB |
141 | 966 OCOFS LDB OPER index case |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
967 LBRA PUTOFS |
121 | 968 * PUT 'TAB:PULS A' |
969 PUTPUL LBSR PUTHS | |
132 | 970 FCB 4 |
971 FCB $1f,$89,$35,2 tfr a,b ; puls a | |
121 | 972 RTE1 RTS |
973 * PUT 'PULS B' | |
132 | 974 PUTPLB LDA #$3504 puls b |
975 LBRA PUTAB | |
121 | 976 ** |
977 * ADDING EXPRESSION | |
978 ** | |
979 AEXPR BSR MEXPR | |
980 AE1 LDA SY | |
981 CMPA #$80 | |
982 BEQ AE2 | |
983 CMPA #$8B | |
984 BNE RTE1 | |
985 AE2 PSHS A | |
986 LBSR WORD | |
987 BSR MEXPR | |
988 PULS A | |
139 | 989 LBSR AOPER |
121 | 990 BRA AE1 |
991 ** | |
992 * MUTIPLYING EXPRESSION | |
993 ** | |
994 MEXPR BSR TERM | |
995 ME1 LDA SY | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
996 CMPA #$8E * |
121 | 997 BEQ ME2 |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
998 CMPA #$8F / |
121 | 999 BNE RTE1 |
1000 ME2 PSHS A | |
1001 LBSR WORD | |
1002 BSR TERM | |
1003 LDB LSW | |
1004 BEQ ME3 | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1005 LDA #$C6 LDB |
121 | 1006 BSR OCORD |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1007 FCB $8C ??? |
121 | 1008 ME3 BSR PUTPUL |
1009 PULS A | |
1010 CMPA #$8E | |
1011 BHS ME4 | |
122 | 1012 LBSR PUTHSL |
121 | 1013 FCB 3 |
162 | 1014 FCB $17 |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1015 FDB MULT should MUL inst |
121 | 1016 BRA ME1 |
122 | 1017 ME4 LBSR PUTHSL |
121 | 1018 FCB 3 |
162 | 1019 FCB $17 |
121 | 1020 FDB DIV |
1021 BRA ME1 | |
1022 ** | |
1023 * TERM | |
1024 ** | |
1025 TERM LDA SY | |
1026 BNE TM1 | |
1027 * SAVE L-COMMAND | |
1028 SLOAD PSHS A | |
1029 LBSR OLOAD | |
1030 LDA VAL | |
1031 STA OPER | |
1032 LDA GL | |
1033 STA GLL | |
1034 PULS A | |
1035 STA AMODE | |
1036 COM LSW | |
1037 LBRA WORD | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1038 * Uniary minus operator |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1039 TM1 CMPA #$80 |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1040 BNE TM02 |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1041 LBSR WORD |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1042 BSR TERM |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1043 LDB LSW |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1044 BEQ TM03 |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1045 NEG <OPER |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1046 RTS |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1047 TM03 LBSR PUTHS |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1048 FCB $2,$35,$2 puls a |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1049 LDA #$04 NEGA |
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1050 LBRA PUTA |
124 | 1051 * CONST TRUE & FALSE |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1052 TM02 CMPA #$A0 |
124 | 1053 BEQ TM01 |
121 | 1054 CMPA #$A1 |
1055 BNE TM2 | |
1056 TM01 SUBA #$A1 | |
1057 STA VAL | |
1058 CLRA | |
1059 BRA SLOAD | |
1060 * SYSTEM VAR MHIGH & MOD | |
1061 TM2 CMPA #$16 | |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1062 BEQ *+6 |
121 | 1063 CMPA #$17 |
1064 BNE TM3 | |
1065 STA VAL | |
1066 LDA #$10 | |
1067 BRA SLOAD | |
1068 * SIMPLE VARIABLE | |
1069 TM3 CMPA #4 | |
1070 BNE TM4 | |
1071 LDA #$20 | |
1072 BRA SLOAD | |
1073 * ( EXPTRSSION ) | |
1074 TM4 CMPA #$35 | |
1075 BCS TM5 | |
1076 CMPA #$38 | |
1077 BCC TM5 | |
1078 PSHS A | |
1079 LBSR WLEXPR | |
1080 PULS A | |
1081 ADDA #4 | |
1082 LBRA CHECK | |
1083 ** FUNCTION CALL | |
1084 TM5 CMPA #3 | |
144
1112b0549142
TL/1 example t3 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
143
diff
changeset
|
1085 BEQ *+6 |
121 | 1086 CMPA #$E0 |
1087 BCS TM6 | |
1088 BSR OLP | |
1089 PFCALL LDA VAL | |
1090 PSHS A | |
1091 LBSR WORD | |
1092 CMPA #$37 | |
1093 BNE PFC1 | |
1094 LDA LSIZE | |
1095 PSHS A | |
144
1112b0549142
TL/1 example t3 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
143
diff
changeset
|
1096 * INC LSIZE |
142 | 1097 PFC2 INC LSIZE |
143 | 1098 LBSR WEXPR |
121 | 1099 CLRB |
1100 STB ACC | |
1101 DECB | |
1102 STB GLL | |
143 | 1103 LDA #$A7 |
1104 LDB LSIZE | |
144
1112b0549142
TL/1 example t3 worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
143
diff
changeset
|
1105 DECB |
143 | 1106 LBSR PUTABX |
121 | 1107 LDA SY |
1108 CMPA #$3C | |
1109 BEQ PFC2 | |
1110 PULS A | |
1111 STA LSIZE | |
1112 LDA #$3B | |
1113 LBSR CHECK | |
1114 PFC1 LDB #-1 | |
1115 STB ACC | |
1116 LDA #$86 | |
1117 LDB LSIZE | |
1118 LBSR PUTAB | |
1119 PULS A | |
1120 CMPA #$C0 | |
1121 BCC *+5 | |
1122 LBRA CALPF | |
1123 LDX #LIBR | |
1124 SUBA #$C0 | |
1125 PFC3 BEQ PFC4 | |
1126 LEAX 2,X | |
1127 DECA | |
1128 BRA PFC3 | |
162 | 1129 PFC4 LDA #$17 |
121 | 1130 LBSR PUTA |
1131 LDD ,X | |
1132 LBRA PUTAB | |
1133 ** | |
1134 OLP LBSR OLOAD | |
1135 LDB ACC | |
1136 BEQ RTS4 | |
132 | 1137 LDD #$3402 pshs a |
1138 LBSR PUTAB | |
121 | 1139 CLR ACC |
1140 RTS4 RTS | |
1141 ** FUNCTION RND | |
1142 TM6 CMPA #$70 | |
1143 BNE TM61 | |
175 | 1144 LBSR SUBSC |
155 | 1145 LBSR PUTHSL |
176 | 1146 FDB $0317 |
121 | 1147 FDB RND |
1148 RTS | |
1149 * FUNTION GET | |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1150 TM61 CMPA #$71 get |
121 | 1151 BNE TM62 |
175 | 1152 LBSR SUBSC |
121 | 1153 LBSR PUTHS |
122 | 1154 FDB $0297 |
1155 FCB INDN | |
1156 LBSR PUTHSL | |
176 | 1157 FDB $0317 |
155 | 1158 FDB getchar |
121 | 1159 RTS |
175 | 1160 * FUNCTION READ etc |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1161 TM62 CMPA #$72 read |
175 | 1162 BNE TM63 |
1163 LBSR SUBSC | |
121 | 1164 LBSR PUTHS |
122 | 1165 FDB $0297 |
121 | 1166 FDB INDN |
122 | 1167 LBSR PUTHSL |
176 | 1168 FDB $0317 |
121 | 1169 FDB GETDA |
1170 RTS | |
175 | 1171 TM63 CMPA #$A2 seek |
1172 BNE TM64 | |
176 | 1173 LBSR DSUBSA |
1174 tstb | |
179 | 1175 beq tmm3 |
1176 bra aradr | |
175 | 1177 TM64 CMPA #$A3 seekr |
1178 BNE TM65 | |
176 | 1179 LBSR DSUBSC |
179 | 1180 bra tmm3 |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1181 TM65 CMPA #$A4 tell |
175 | 1182 BNE TM66 |
176 | 1183 LBSR DSUBSA |
1184 tstb | |
179 | 1185 beq tmm3 |
1186 bra aradr | |
175 | 1187 TM66 CMPA #$A5 open |
1188 BNE TM67 | |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1189 LBSR DSUBSA |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1190 tstb |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1191 beq tmm3 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1192 bra aradr |
175 | 1193 TM67 CMPA #$A6 openm |
1194 BNE TM7 | |
176 | 1195 LBSR DSUBSA |
1196 tstb | |
179 | 1197 beq tmm3 |
1198 bra aradr | |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1199 * ; pshs u; leau ?,[xy] |
176 | 1200 aradr LBSR PUTHS |
1201 FCB 2,$34,$40 | |
1202 ldb VAL | |
1203 lda #$33 leau | |
1204 tst GL | |
1205 beq aradr1 | |
1206 addb #$20 | |
1207 aradr1 LBSR PUTAB | |
1208 LBSR PUTHS | |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1209 FCB 6,$DF,WT1,$35,$40,$97,INDN ; stu <wt1 ; puls u |
177 | 1210 LBSR WORD |
1211 LDA #$3B ')' | |
179 | 1212 LBSR CHECK |
1213 tmm4 LBSR PUTHSL | |
1214 FDB $0317 | |
1215 FDB NONE | |
1216 RTS | |
1217 tmm3 LBSR PUTHS | |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1218 FCB 9,$35,$04,$97,INDN,$1F,$23,$4f,$dd,WT1 ; puls b ; stb <INDN ; tfr a,b ; clra ; std <wt1 |
179 | 1219 bra tmm4 |
175 | 1220 |
176 | 1221 * FUNCTION NOT ASL ET AL |
121 | 1222 TM7 CMPA #$40 |
1223 BCS TM8 | |
1224 CMPA #$49+1 | |
1225 BCC TM8 | |
1226 PSHS A | |
1227 BSR SUBSC | |
1228 PULS A | |
1229 LBRA PUTA | |
1230 * ARRAY | |
1231 TM8 CMPA #$5 | |
1232 BNE TM9 | |
1233 LDB VAL | |
1234 PSHS B | |
1235 LDB GL | |
1236 PSHS B | |
1237 BSR SUBSC1 | |
1238 PULS B | |
1239 STB GLL | |
1240 PULS B | |
1241 LDA LSW | |
1242 BEQ ARY1 | |
1243 ADDB OPER | |
1244 STB OPER | |
1245 LDA #$20 | |
1246 STA AMODE | |
1247 RTS | |
1248 ARY1 LDA #$8B | |
1249 LBSR PUTABX | |
1250 LBRA LDAAX | |
176 | 1251 |
1252 ** f(x,y) y can be an array | |
1253 DSUBSA LDA #$3C ',' | |
1254 BSR SUBS1 | |
1255 LDA #$3B ')' | |
1256 PSHS A | |
177 | 1257 LDA SY |
176 | 1258 CMPA #$5 |
177 | 1259 BNE DSUB1 |
1260 leas 1,s | |
1261 ldb #1 b==1 array | |
176 | 1262 RTS |
177 | 1263 DSUB1 LBSR EXPR |
1264 puls a | |
179 | 1265 lbsr CHECK |
177 | 1266 clrb |
1267 rts | |
176 | 1268 |
1269 ** f(x,y) | |
175 | 1270 DSUBSC LDA #$3C ',' |
121 | 1271 BSR SUBS1 |
175 | 1272 LDA #$3B ')' |
121 | 1273 PSHS A |
1274 BRA SUBS2 | |
176 | 1275 SUBSC LDA #$3B ')' |
121 | 1276 SUBS1 PSHS A |
1277 LBSR WORD | |
175 | 1278 LDA #$37 '(' |
121 | 1279 LBSR CHECK |
1280 SUBS2 LBSR EXPR | |
1281 PULS A | |
1282 LBRA CHECK | |
1283 SUBSC1 LBSR WORD | |
175 | 1284 LDA #$36 '[' |
121 | 1285 LBSR CHECK |
1286 LBSR LEXPR | |
1287 LDB LSW | |
1288 BEQ SBS5 | |
1289 LDB AMODE | |
1290 BEQ SBS5 | |
1291 LBSR OLOAD | |
175 | 1292 SBS5 LDA #$3A ']' |
121 | 1293 LBRA CHECK |
1294 * MEM FUNCTION | |
1295 TM9 CMPA #6 | |
1296 BNE TM10 | |
176 | 1297 LBSR PUTHS ; leas -1,s |
1298 FCB 2,$32,$7F | |
121 | 1299 BSR DSUBSC |
176 | 1300 LBSR PUTHS ; sta 1,s; lda [,s++] |
1301 FDB $04,$a7,$61,$a8,$f1 | |
121 | 1302 RTS |
1303 ** FOR EXPANTION | |
1304 TM10 LBRA ERROR | |
1305 ** | |
1306 * ADDRESS DEPENDENT CODE | |
1307 * GENARATION | |
1308 ** | |
1309 * SET PRC—FUNC TABLE | |
1310 ** | |
1311 SETPFT PSHS A | |
1312 LDB #3 | |
1313 MUL | |
1314 ADDD PFTBEG | |
1315 STD XR | |
1316 PULS A,PC | |
1317 ** | |
1318 TWICE LBSR PUTSTR | |
1319 FCB $0D,$0A | |
1320 FCC "TWICE!",0 | |
1321 lbra exit | |
1322 ** | |
1323 * DEF PROC-FUNC | |
1324 ** | |
1325 DEFPF BSR SETPFT | |
1326 LDX XR | |
1327 TST ,X | |
1328 BNE TWICE | |
1329 COM ,X | |
1330 LDX 1,X | |
1331 STX YR | |
1332 LDX XR | |
1333 LEAX 1,X | |
162 | 1334 BSR RPCST |
121 | 1335 LDX YR |
1336 DP1 BEQ RT10 | |
1337 LDX ,X | |
1338 STX ZR | |
1339 LDX YR | |
162 | 1340 BSR RPCST |
121 | 1341 LDX ZR |
1342 STX YR | |
1343 BRA DP1 | |
162 | 1344 RPCST LDD PC |
1345 pshs x | |
1346 subd ,s++ | |
1347 subd #2 | |
1348 STD ,X | |
1349 RTS | |
121 | 1350 ** |
1351 * CALL PORC-FUNC | |
1352 ** | |
1353 CALPF BSR SETPFT | |
1354 INCA | |
1355 CMPA PFMAX | |
1356 BCS *+4 | |
1357 STA PFMAX | |
162 | 1358 LDA #$17 |
121 | 1359 BSR AOUT |
1360 LDX XR | |
1361 LDD 1,X | |
1362 LDX PC | |
1363 BSR STAABX | |
1364 LDX XR | |
1365 TST ,X | |
1366 BNE PC2ADD | |
1367 LEAX 1,X | |
1368 BSR PCST | |
1369 BRA PC2ADD | |
1370 ** | |
1371 * PUL-DEF N TIMES | |
1372 ** | |
1373 PLDFN PSHS A | |
1374 BSR PULDEF | |
1375 DEC ,S | |
1376 BNE *-4 | |
1377 PULS A,PC | |
1378 ** | |
1379 * PULL AND DEFINE | |
1380 ** | |
1381 PULDEF BSR PULSTK | |
1382 PCST LDD PC | |
1383 STAABX STD ,X | |
1384 RT10 RTS | |
1385 ** | |
162 | 1386 JMPOUT LDA #$16 |
121 | 1387 AOUT LDX PC |
1388 STA ,X | |
1389 BRA INCPC1 | |
1390 ** | |
1391 PULSTK LDX SP | |
1392 LEAX 2,x | |
1393 STX SP | |
1394 LDD ,X | |
1395 LDX ,X | |
1396 RTS | |
1397 ** | |
1398 * PUL STACK & Jump | |
1399 ** | |
1400 PULJMP BSR JMPOUT | |
1401 BSR PULSTK | |
1402 PCST2 LDX PC | |
162 | 1403 pshs x |
1404 subd ,s++ | |
163 | 1405 subd #2 |
162 | 1406 std ,x |
121 | 1407 INCPC LEAX 1,X |
1408 INCPC1 LEAX 1,X | |
1409 SETPC STX PC | |
1410 RTS | |
1411 ** | |
1412 * PUSH STACK & JUMP | |
1413 ** | |
1414 PSHJMP BSR JMPOUT | |
1415 BSR PSHDEF | |
1416 PC2ADD LDX PC | |
1417 BRA INCPC | |
1418 ** | |
1419 * PUSH STRCK & DEFINE | |
1420 ** | |
1421 PSHDEF LDX SP | |
1422 BSR PCST | |
1423 LEAX -2,X | |
1424 STX SP | |
1425 RTS | |
1426 ** | |
1427 OUTPC3 BSR AOUT | |
1428 LDD PC | |
1429 ADDD #3 | |
1430 BRA PCST2 | |
1431 ** | |
1432 * LDA R,X | |
1433 LDAAX LDA #$B7 | |
1434 BSR OUTPC3 | |
1435 LDA #$A6 | |
1436 LA1 BSR AOUT | |
1437 BRA INCPC1 | |
1438 ** | |
1439 * STA B,X | |
1440 STABX LDA #$F7 | |
1441 BSR OUTPC3 | |
1442 LDA #$A7 | |
1443 BRA LA1 | |
1444 ** | |
1445 * STACK TOP CHANGE | |
1446 ** | |
177 | 1447 STCHG PSHS U,Y |
1448 LDU SP | |
1449 PULU X,Y | |
1450 STX ,--U | |
1451 STY ,--U | |
1452 PULS U,Y,PC | |
121 | 1453 ** |
122 | 1454 * PUTHSL output with address calculation |
162 | 1455 * only working on 3 byte 16/17 (LBRA/LBSR) |
122 | 1456 ** |
1457 PUTHSL LDX ,S++ | |
1458 LDB ,X+ | |
1459 LDA ,X+ | |
1460 LBSR PUTA | |
1461 LDD ,X++ | |
124 | 1462 leay 0,pcr |
122 | 1463 leay d,y |
1464 exg d,y | |
162 | 1465 addd modofs |
1466 subd pc | |
122 | 1467 ldy pc |
1468 std ,y++ | |
1469 sty pc | |
1470 JMP ,X | |
1471 ** | |
1472 ** | |
121 | 1473 * END OF LOAD |
1474 ** | |
1475 ENDL LDX PFTBEG | |
1476 LDA PFMAX | |
1477 EL1 BEQ EL | |
1478 TST ,X | |
1479 BEQ UDERR | |
1480 EL2 LEAX 3,X | |
162 | 1481 DECA |
121 | 1482 BRA EL1 |
1483 UDERR PSHS A | |
1484 STA ZR | |
1485 SUBA PFMAX | |
1486 NEGA | |
1487 PSHS A | |
1488 LBSR PUTSTR | |
1489 FDB $0D0A | |
1490 FCC "UNDEF",0 | |
1491 PULS A | |
1492 LBSR PUTCA | |
1493 PULS A | |
1494 LDX ZR | |
1495 BRA EL2 | |
1496 EL LDX PC | |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1497 LBRA C |
121 | 1498 |
164 | 1499 modsetup |
1500 pshs x,y,u | |
1501 lda #$ff | |
1502 sta <runmod | |
1503 ldy <pc | |
1504 ldd #$87CD | |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1505 std ,y |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1506 leay 4,y skip size |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1507 ldd #$0d module name offset |
164 | 1508 std ,y++ |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1509 ldd #$1180 type language |
164 | 1510 std ,y++ |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1511 ldd #$1a00 attribue rev |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1512 leay 5,y |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1513 * put module name |
164 | 1514 ldx ,s |
1515 bsr mkmodnam | |
165 | 1516 tfr y,d |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1517 leax crt0top,pcr |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1518 pshs x |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1519 subd ,s++ |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1520 subd #2 |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1521 std modofs |
164 | 1522 leau crt0top,pc |
1523 ldx #LIBEND-crt0top | |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1524 libcpy lda ,u+ |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1525 sta ,y+ |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1526 leax -1,x |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1527 bne libcpy |
164 | 1528 sty <PC |
1529 puls x,y,u,pc | |
1530 | |
165 | 1531 mkmodnam pshs x,y,u |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1532 m7 tfr x,u |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1533 lda ,x+ |
165 | 1534 lbeq ERROR * no file name |
167 | 1535 cmpa #' ' |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1536 bne m2 |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1537 bra m7 |
164 | 1538 m0 lda ,x+ |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1539 m2 cmpa #' ' |
167 | 1540 ble m1 |
166 | 1541 cmpa #'/' |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1542 beq m8 |
167 | 1543 cmpa #':' |
1544 bne m0 | |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1545 m8 tfr x,u |
164 | 1546 bra m0 |
1547 m1 lda ,u+ | |
167 | 1548 cmpa #' ' |
1549 ble m3 | |
166 | 1550 cmpa #'.' |
164 | 1551 beq m3 |
1552 sta ,y+ | |
1553 bra m1 | |
1554 m3 lda -1,y | |
1555 ora #$80 | |
1556 sta -1,y | |
169 | 1557 clr ,y+ |
164 | 1558 sty 2,s |
1559 puls x,y,u,pc | |
1560 | |
1561 modend leax OBJECT,u * header setup | |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1562 ldd <PC |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1563 pshs x |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1564 subd ,s++ |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1565 addd #3 |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1566 std 2,x module size |
164 | 1567 * header parity |
1568 clra | |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1569 ldb #8 |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1570 m4 eora ,x+ |
164 | 1571 decb |
1572 bne m4 | |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1573 eora #$ff |
164 | 1574 sta ,x+ header parity |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1575 leay crt0,pcr |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1576 ldd modofs |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1577 addd #11 |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1578 leay d,y |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1579 tfr y,d |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1580 pshs x |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1581 subd ,s++ |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1582 std ,x++ start address offset |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1583 clra |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1584 ldb GSIZE |
172 | 1585 addd #OBJSTART+100 |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1586 std ,x global size |
164 | 1587 * mod CRC |
1588 pshs d,u | |
1589 leax OBJECT,u | |
1590 ldu <PC | |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1591 lda #$ff |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1592 sta ,u |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1593 sta 1,u |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1594 sta 2,u |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1595 tfr u,d |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1596 pshs x |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1597 subd ,s++ |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1598 tfr d,y |
164 | 1599 os9 F$CRC |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1600 com ,u |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1601 com 1,u |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1602 com 2,u |
164 | 1603 |
1604 * write to file | |
1605 ldu 2,s | |
1606 leax OBJECT,u | |
1607 ldd 4,x | |
1608 leax d,x | |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1609 ldd #$27f 10 01111111 |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1610 os9 I$Create |
165 | 1611 lbcs ERROR |
164 | 1612 sta ,s |
1613 ldu 2,s | |
1614 leax OBJECT,u | |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1615 ldy 2,x module size |
164 | 1616 lda ,s |
1617 os9 I$Write | |
165 | 1618 lbcs ERROR |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1619 puls d,u |
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
1620 clrb |
164 | 1621 os9 F$Exit all end |
1622 | |
121 | 1623 ********************** |
1624 * ADVANCE WORD | |
1625 ** | |
1626 WTABLE FCB 0 END MARK | |
1627 FCB $30,-'P' | |
1628 FCC "ROC" | |
1629 FCB $31,-'F' | |
1630 FCC "UNC" | |
124 | 1631 FCB $32,-'V' |
121 | 1632 FCC "AR" |
1633 FCB $33,-'A' | |
1634 FCC "RRAY" | |
1635 FCB $34,-'B' | |
1636 FCC "EGIN" | |
124 | 1637 FCB $35,-';' |
121 | 1638 FCB $36,-'[' |
1639 FCB $37,-'(' | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1640 FCB $34,-'{' |
121 | 1641 FCB $38,-'E' |
1642 FCC "ND" | |
1643 FCB $39,-'=' | |
1644 FCB $3A,-']' | |
1645 FCB $3B,-')' | |
178
4d83154d2a78
add - {} some builtin in TL/1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
177
diff
changeset
|
1646 FCB $38,-'}' |
121 | 1647 FCB $3C,-',' |
1648 FCB $3D,-':' | |
1649 FCB $50,-'S' | |
1650 FCC "TOP" | |
1651 FCB $51,-'R' | |
1652 FCC "ETURN" | |
1653 FCB $55,-'I' | |
1654 FCC "F" | |
1655 FCB $65,-'T' | |
1656 FCC "HEN" | |
1657 FCB $53,-'F' | |
1658 FCC "OR" | |
1659 FCB $61,-'T' | |
1660 FCC "O" | |
1661 FCB $52,-'R' | |
1662 FCC "EPEAT" | |
1663 FCB $60,-'U' | |
1664 FCC "NTIL" | |
1665 FCB $54,-'W' | |
1666 FCC "HILE" | |
1667 FCB $64,-'D' | |
1668 FCC "O" | |
1669 FCB $56,-'C' | |
1670 FCC "ASE" | |
1671 FCB $66,-'O' | |
1672 FCC "F" | |
1673 FCB $67,-'E' | |
1674 FCC "LSE" | |
1675 FCB $57,-'W' | |
1676 FCC "RITE" | |
1677 FCB $69,-'A' | |
1678 FCC "SCII" | |
1679 FCB $6A,-'S' | |
1680 FCC "PACE" | |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1681 FCB $6B,-'C' |
121 | 1682 FCC "RLF" |
1683 FCB $6C,-'"' | |
1684 FCB $8B,-'+' | |
1685 FCB $80,-'-' | |
1686 FCB $8E,-'*' | |
1687 FCB $8F,-'/' | |
1688 FCB $82,-'S' | |
1689 FCC "BC" | |
1690 FCB $84,-'A' | |
1691 FCC "ND" | |
1692 FCB $88,-'E' | |
1693 FCC "OR" | |
1694 FCB $89,-'A' | |
1695 FCC "DC" | |
1696 FCB $8A,-'O' | |
1697 FCC "R" | |
1698 FCB $22,-'>' | |
1699 FCB $25,-'<' | |
1700 FCB $26,-'#' | |
1701 FCB $27,-'=' | |
1702 FCB $2D,-'L','T' | |
1703 FCB $2E,-'G','T' | |
1704 FCB $40,-'N','E','G' | |
1705 FCB $43,-'N','O','T' | |
1706 FCB,$43,-'C','O','M' | |
1707 FCB $44,-'L','S','R' | |
1708 FCB $46,-'R','O','R' | |
1709 FCB $47,-'A','S','R' | |
1710 FCB $48,-'A','S','L' | |
1711 FCB $49,-'R','O','L' | |
1712 FCB $06,-'M','E','M' | |
1713 FCB $A0,-'T' | |
1714 FCC "RUE" | |
1715 FCB $A1,-'F' | |
1716 FCC "ALSE" | |
1717 FCB $16,-'M' | |
1718 FCC "HIGH" | |
1719 FCB $17,-'M' | |
1720 FCC "OD" | |
1721 FCB $70,-'R','N','D' | |
1722 FCB $71,-'G','E','T' | |
1723 FCB $72,-'R' | |
1724 FCC "EAD" | |
175 | 1725 FCB $A2,-'S' |
177 | 1726 FCC "EEK" |
175 | 1727 FCB $A3,-'S' |
177 | 1728 FCC "EEKR" |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1729 FCB $A4,-'T' |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1730 FCC "ELL" |
175 | 1731 FCB $A5,-'O' |
1732 FCC "PEN" | |
1733 FCB $A6,-'O' | |
1734 FCC "PENM" | |
121 | 1735 WTBLEND |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1736 |
121 | 1737 ****** |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1738 * SUPORTING ROUTINES |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1739 * & I/0 CONTROL |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1740 ** |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1741 |
164 | 1742 crt0top |
1743 | |
121 | 1744 ** |
1745 * RND FUNCTION | |
1746 ** | |
1747 RND PSHS A | |
1748 LDA RNDL | |
1749 LDB #125 | |
1750 MUL | |
1751 ADDD #1 | |
1752 STA RNDL | |
1753 PSHS A | |
1754 LDA RNDH | |
1755 LDB #125 | |
1756 MUL | |
1757 ADDA ,S+ | |
1758 STA RNDH | |
1759 PULS B | |
1760 MUL | |
1761 INCA | |
175 | 1762 NONE |
121 | 1763 RTS |
1764 ** | |
1765 * DVISITION SET MOD | |
1766 ** | |
1767 DIV STB WT1 | |
1768 BEQ ERDIV | |
1769 TFR A,B | |
1770 CLRA | |
1771 STA WT2 | |
1772 DV0 INC WT2 | |
1773 ASL WT1 | |
1774 BCC DV0 | |
1775 DV1 ROR WT1 | |
1776 CMPB WT1 | |
1777 BCS DV2 | |
1778 SUBB WT1 | |
1779 ORCC #1 | |
1780 BRA *+4 | |
1781 DV2 ANDCC #$FE CLR C | |
1782 ROLA | |
1783 DEC WT2 | |
1784 BNE DV1 | |
1785 STB MOD | |
1786 TSTA | |
1787 RTS | |
1788 ** | |
1789 ERDIV STB OUTDN | |
1790 LBSR CRLF | |
1791 LBSR PUTSTR | |
1792 FCC "ERR DIV 0",0 | |
127
321b7fffadab
TL/1 simple test worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
126
diff
changeset
|
1793 MONIT lbra exit |
121 | 1794 ** |
1795 MULT MUL | |
1796 STA MHIGH | |
1797 TFR B,A | |
1798 RTS | |
1799 ** | |
1800 * PUT A IN DECIMAL | |
1801 ** | |
1802 PUTDA CLRB | |
1803 PUTDR STB DREG | |
136 | 1804 PSHS X |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1805 LEAX -2,S |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1806 LEAS -6,S |
121 | 1807 CLR 1,X |
1808 LDB #3 | |
1809 P0 PSHS B | |
1810 LDB #10 | |
1811 BSR DIV | |
1812 ADDB #$30 | |
1813 STB ,X | |
1814 LEAX -1,X | |
1815 PULS B | |
1816 DECB | |
1817 BNE P0 | |
1818 COM 3,X | |
1819 LDA #'0' | |
1820 LDB #4 | |
1821 P1 LEAX 1,X | |
1822 DECB | |
1823 CMPA ,X | |
1824 BEQ P1 | |
1825 COM 4,S | |
1826 LDA DREG | |
1827 PSHS B | |
1828 SUBA ,S+ | |
1829 BCS PRX | |
1830 BSR SPACEA | |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1831 PRX LDA ,X |
121 | 1832 BEQ P4 |
122 | 1833 LBSR PUTCA |
121 | 1834 LEAX 1,X |
1835 BRA PRX | |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1836 P4 LEAS 6,S |
136 | 1837 CL1 PULS X,PC |
121 | 1838 ** |
1839 * GET IN A DECIMAL | |
1840 ** | |
1841 GETDA CLRA | |
1842 PSHS A | |
122 | 1843 LBSR GETCA |
121 | 1844 CMPA #RUB |
1845 BNE GD1 | |
1846 PULS A | |
1847 LDB #10 | |
1848 LBSR DIV | |
1849 BRA GETDA+1 | |
1850 GD1 SUBA #'0' | |
1851 BCS GD2 | |
1852 CMPA #10 | |
1853 BCC GD2 | |
1854 STA DBUF | |
1855 PULS A | |
1856 LDB #10 | |
1857 MUL | |
1858 ADDB DBUF | |
1859 TFR B,A | |
1860 BRA GETDA+1 | |
1861 GD2 PULS A,PC | |
1862 ** | |
1863 * SPACE A TIMES | |
1864 ** | |
1865 SPACEA BEQ CL1 | |
1866 PSHS A | |
1867 LDA #' ' | |
122 | 1868 LBSR PUTCA |
121 | 1869 PULS A |
1870 DECA | |
1871 BRA SPACEA | |
1872 ** | |
1873 * STR OUT | |
1874 ** | |
1875 PUTSTR PSHS X | |
1876 LDX 2,S | |
1877 STR1 LDA ,X+ | |
1878 BEQ STR2 | |
1879 LBSR PUTCA | |
1880 BRA STR1 | |
1881 STR2 STX 2,S | |
1882 PULS X,PC | |
1883 ** | |
1884 * CRLF | |
1885 ** | |
1886 CRLF LDA #$0D | |
1887 BSR PUTCA | |
1888 LDA #$0A | |
1889 BRA PUTCA | |
1890 ** | |
1891 * CRLF A TIMES | |
1892 ** | |
1893 CRLFA BEQ CL1 | |
1894 PSHS A | |
1895 BSR CRLF | |
1896 PULS A | |
1897 DECA | |
1898 BRA CRLFA | |
1899 | |
1900 | |
1901 Exit lbsr setecho | |
1902 * ldx <work | |
1903 * leax readbuff,x | |
1904 * ldb #1 | |
1905 * lbsr getline | |
1906 * lbsr getpoll | |
1907 * lda <stdin | |
1908 * os9 I$Close | |
1909 | |
1910 clrb | |
1911 os9 F$Exit | |
1912 * no return | |
1913 | |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1914 ** |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1915 ** memory buffer io |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1916 ** |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1917 ** ioentry |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1918 bufptr equ 0 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1919 buftop equ 2 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1920 bufend equ 4 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1921 ** |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1922 ** openm size wt1 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1923 ** return io number > 0x1f |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1924 MEMBUF eq 0x20 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1925 ** |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1926 ** seek postion wt1 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1927 ** seekr relative postion in A |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1928 ** tell put position in wt1 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1929 ** |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1930 ** putca |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1931 ** getca |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1932 ** close |
121 | 1933 |
1934 err ldb #1 | |
1935 L0049 | |
1936 bra Exit | |
1937 | |
1938 | |
135
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1939 PUTCA tfr a,b |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1940 putchar * Output one character in B register. |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1941 PSHS X,Y |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1942 BRA OUTCH1 |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1943 |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1944 close pshs x,y,u |
121 | 1945 lda <INDN else get path |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1946 bita #MEMBUF |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1947 bne memclose |
121 | 1948 os9 I$Close and close it |
1949 bcs L0049 branch if error | |
181
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1950 puls x,y,u,pc |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1951 memclose |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1952 suba #MEMBUF |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1953 lsla |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1954 lsla |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1955 lsla |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1956 leax membuf,u |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1957 leax a,x |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1958 clr ,x+ |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1959 clr ,x |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1960 puls x,y,u,pc |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1961 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1962 seek pshs x,y,u |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1963 puls x,y,u,pc |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1964 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1965 seekr pshs x,y,u |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1966 puls x,y,u,pc |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1967 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1968 tell pshs x,y,u |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1969 puls x,y,u,pc |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1970 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1971 fopen pshs x,y,u |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1972 puls x,y,u,pc |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1973 |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1974 mopen pshs x,y,u |
63de06ad7a49
add LISP09 (not yet finished)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
179
diff
changeset
|
1975 puls x,y,u,pc |
121 | 1976 |
1977 MEMIN | |
1978 PSHS A,B,X,Y | |
135
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1979 ldx <adr |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1980 lda ,x+ |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1981 bne GETCA1 |
121 | 1982 LDA INDN |
135
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1983 LEAX readbuff,u |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1984 LDY #bufsiz |
121 | 1985 OS9 I$Read |
1986 BCC GETCA0 | |
1987 lda #'/' | |
135
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1988 ldx <adr |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1989 bra GETCA1 |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1990 GETCA0 LEAX readbuff,u |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1991 tfr y,d |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1992 clr d,x eof |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1993 lda ,x+ |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1994 GETCA1 stx <adr |
123 | 1995 sta ,s |
121 | 1996 PULS A,B,X,Y,PC |
1997 | |
1998 GETCA bsr getchar | |
1999 tfr b,a | |
2000 rts | |
2001 | |
2002 getchar * Input one character into B register. | |
2003 PSHS A,B,X,Y | |
2004 GETCH0 | |
2005 LDA INDN | |
123 | 2006 LEAX ,S |
121 | 2007 LDY #1 |
2008 OS9 I$Read | |
2009 BCS GETCH0 | |
2010 PULS A,B,X,Y,PC | |
2011 putcr * Output a newline. | |
2012 LDB #C$CR | |
2013 bsr putchar | |
2014 LDB #C$LF | |
2015 PSHS X,Y | |
2016 OUTCH1 PSHS A,B | |
2017 LEAX 1,S | |
2018 LDA OUTDN | |
2019 LDY #1 | |
2020 OS9 I$Write | |
2021 PULS A,B,X,Y,PC | |
2022 getpoll | |
2023 PSHS X,Y,D | |
2024 LDA #0 | |
2025 LDB #SS.Ready | |
2026 OS9 I$GetStt | |
2027 CMPB #$F6 Not Ready | |
2028 BNE RSENSE | |
2029 CLRB | |
2030 PULS X,Y,D,PC | |
2031 RSENSE | |
2032 ORCC #1 set carry to indicate ready | |
2033 RNSENSE | |
2034 PULS X,Y,D,PC | |
2035 | |
145 | 2036 ferr clr <OUTDN |
2037 ldx <parmptr | |
2038 floop ldb ,x+ | |
2039 beq ferr1 | |
2040 cmpb #$0d | |
2041 beq floop | |
2042 lbsr putchar | |
2043 bra floop | |
2044 ferr1 lbsr putstr | |
2045 fcc " is not found",0 | |
2046 lbra L0049 | |
2047 | |
121 | 2048 getline * Input line at address in X, length in B. |
2049 PSHS A,B,X,Y | |
2050 clr ,s | |
2051 GETLN0 | |
2052 ldy ,s | |
2053 lda INDN | |
2054 OS9 I$ReadLn | |
2055 BCS GETLN0 | |
2056 LEAY -1,Y | |
2057 GETLN1 STY ,S | |
2058 PULS A,B,X,Y,PC | |
2059 putline * Output string at address in X, length in B. | |
2060 PSHS A,B,X,Y | |
2061 CLRA | |
2062 TFR D,Y | |
2063 lda OUTDN | |
2064 OS9 I$WritLn | |
2065 PULS A,B,X,Y,PC | |
2066 | |
2067 setecho lda #1 | |
2068 bra sss | |
2069 noecho clra | |
2070 sss leas -128,s | |
2071 leax ,s | |
2072 pshs a | |
2073 clra | |
2074 ldb #SS.Opt | |
2075 OS9 I$GetStt | |
2076 bcs err2 | |
2077 LDA ,s | |
2078 STA PD.EKO-PD.OPT,X | |
2079 setopts | |
2080 ldb #SS.Opt | |
2081 clra | |
2082 OS9 I$SetStt | |
2083 err2 | |
2084 puls a | |
2085 leas 128,s | |
2086 rts | |
2087 | |
2088 | |
2089 delay PSHS D,X * address **$21** | |
2090 * On input the D register contains the number of timer | |
2091 * ticks to wait. Each timer tick is 20ms | |
2092 TFR D,X | |
2093 OS9 F$Sleep | |
2094 PULS D,X,PC | |
164 | 2095 |
165 | 2096 crt0 stx <arg |
164 | 2097 leax OBJSTART,u |
172 | 2098 leay ,x |
164 | 2099 * compiled code follows |
2100 | |
168
2937e970aac6
generate os9 module done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
167
diff
changeset
|
2101 LIBEND equ * |
121 | 2102 |
2103 | |
2104 emod | |
2105 eom equ * | |
2106 end | |
2107 |