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