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