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