Mercurial > hg > Members > kono > os9 > sbc09
annotate TL1/TL1os9.asm @ 138:6f7276831219
TL/1 use x and y register
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 07 Jan 2019 19:32:10 +0900 |
parents | 1078f3e31d9c |
children | f1b4da312358 |
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 | |
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 | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
104 STA TCOUNT = 1 |
121 | 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 | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
141 STA PMODE |
121 | 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 | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
156 LDB PMODE |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
157 CMPB #1 |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
158 BNE *+5 |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
159 LBSR RETP generate return |
121 | 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 | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
262 LDB PMODE |
121 | 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 |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
583 BMI PUTOFSX |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
584 LDA #$20 |
137
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 |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
597 ORB ,S |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
598 STB ,X+ |
137
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 ** | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
704 * 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
|
705 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
|
706 BCS NAF Z=0 C=1 Not Number/Alpha |
121 | 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 | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
739 BSR TSTNA first word must alpha |
121 | 740 BCC TLOOK1 |
741 WD61 LDA CH | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
742 BSR TSTNA alpha numeric? |
121 | 743 BCS *+4 |
744 BNE TLOOK1 | |
745 BSR STAONE | |
746 BRA WD61 | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
747 STAONE STA ,X+ store to the table |
121 | 748 STX WEND |
749 BRA GETCH | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
750 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
|
751 BEQ TLOOK let's search |
121 | 752 COM RSW |
753 RTS | |
754 ** | |
755 * WORD TABLE SEARCH | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
756 * |
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
757 * 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
|
758 * 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
|
759 * 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
|
760 * 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
|
761 * GL 1 local 0xff global |
121 | 762 ** |
123 | 763 TLOOK PSHS U |
764 LDA TCOUNT | |
121 | 765 STA SY |
766 LDX TEND | |
767 S01 LDU WEND | |
768 S02 LDA ,-U | |
769 CMPA ,-X | |
770 BEQ S06 | |
771 S03 TST ,X | |
772 BEQ S05 | |
773 BMI S04 | |
774 LEAX -1,X | |
775 BRA S03 | |
776 S04 LEAX -1,X | |
777 BRA S01 | |
778 S05 DEC SY | |
779 BNE S01 | |
780 LBRA ERROR | |
781 S06 TSTA | |
782 BPL S02 | |
783 LDB ,-X | |
784 STB VAL | |
785 LDA SY | |
786 CMPA #1 | |
787 BNE *+6 | |
788 TFR B,A | |
789 BRA S07 | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
790 LDB #1 |
121 | 791 CMPA #4 |
792 BCS RTSS | |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
793 TST PMODE |
121 | 794 BEQ *+6 |
795 CMPA #6 | |
796 BCS *+3 | |
797 NEGB | |
798 STB GL | |
799 ANDA #$FD | |
800 S07 STA SY | |
123 | 801 RTSS PULS U,PC |
121 | 802 ** |
803 * ARITHMATIC EXPRESSION | |
804 ** | |
805 WEXPR LBSR WORD | |
806 EXPR BSR LEXPR | |
807 BSR OLOAD | |
808 RTE RTS | |
809 ** WORD * LEXPR | |
810 WLEXPR LBSR WORD | |
811 ** | |
812 * LOGICAL EXPRESSION | |
813 ** | |
814 LEXPR BSR REXPR | |
815 LE1 LDY SY | |
816 CMPA #$82 | |
817 BCS RTE | |
818 CMPA #$8A+1 | |
819 BCC RTE | |
820 PSHS A | |
821 LBSR WORD | |
822 BSR REXPR | |
823 LDB LSW | |
824 BNE LE2 | |
825 LBSR PUTHS | |
826 FDB $0397 | |
827 FCB WT1 | |
828 FCB $32 | |
829 PULS A | |
830 ADDA #$10 | |
831 LDB #WT1 | |
832 LBSR PUTAB | |
833 BRA LE1 | |
834 LE2 PULS A | |
835 BSR OCORD | |
836 BRA LE1 | |
837 ** | |
838 * RELATIONAL EXPRESS | |
839 ** | |
840 REXPR BSR AEXPR | |
841 RE1 LDA SY | |
842 CMPA #$21 | |
843 BCS RTE | |
844 CMPA #$30 | |
845 BCC RTE | |
846 PSHS A | |
847 LBSR WORD | |
848 ASR AEXPR | |
849 LDA #$80 | |
850 BSR AOPER | |
851 PULS A | |
852 LBSR PUTHS | |
853 FCB 6 | |
854 FCB $3,$4F,$20,$02,$86,$FF | |
855 BRA RE1 | |
856 ** ADDING OPERATFR | |
857 AOPER LDB LSW | |
858 BNE OCORD | |
859 PSHS A | |
860 CMPA #$80 | |
861 BEQ *+5 | |
862 BSR PUTPUL | |
863 FCB $8C | |
864 BSR PUTPLB | |
865 PULS A | |
866 SUBA #$70 | |
867 PUTA1 LBRA PUTA | |
868 ** OUTPUT SAVED L-CC | |
869 OLOAD LDA LSW | |
870 BEQ RTE | |
871 LDA ACC | |
132 | 872 BEQ OL1 |
873 LDD #$3402 pshs a | |
874 LBSR PUTAB | |
875 OL1 LDA #$86 | |
121 | 876 OCORD PSHS A |
877 CLRA | |
878 STA LSW | |
879 COMA | |
880 STA ACC | |
881 LDA AMODE | |
882 CMPA #$20 | |
883 BNE *+5 | |
884 LBSR PUTX | |
885 CLR LSW | |
886 PULS A | |
887 ADDA AMODE | |
888 LDB OPER | |
137
1078f3e31d9c
index version TL/1 first try
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
136
diff
changeset
|
889 LBRA PUTOFS |
121 | 890 * PUT 'TAB:PULS A' |
891 PUTPUL LBSR PUTHS | |
132 | 892 FCB 4 |
893 FCB $1f,$89,$35,2 tfr a,b ; puls a | |
121 | 894 RTE1 RTS |
895 * PUT 'PULS B' | |
132 | 896 PUTPLB LDA #$3504 puls b |
897 LBRA PUTAB | |
121 | 898 ** |
899 * ADDING EXPRESSION | |
900 ** | |
901 AEXPR BSR MEXPR | |
902 AE1 LDA SY | |
903 CMPA #$80 | |
904 BEQ AE2 | |
905 CMPA #$8B | |
906 BNE RTE1 | |
907 AE2 PSHS A | |
908 LBSR WORD | |
909 BSR MEXPR | |
910 PULS A | |
911 BSR AOPER | |
912 BRA AE1 | |
913 ** | |
914 * MUTIPLYING EXPRESSION | |
915 ** | |
916 MEXPR BSR TERM | |
917 ME1 LDA SY | |
918 CMPA #$8E | |
919 BEQ ME2 | |
920 CMPA #$8F | |
921 BNE RTE1 | |
922 ME2 PSHS A | |
923 LBSR WORD | |
924 BSR TERM | |
925 LDB LSW | |
926 BEQ ME3 | |
927 LDA #$C6 | |
928 BSR OCORD | |
929 FCB $8C | |
930 ME3 BSR PUTPUL | |
931 PULS A | |
932 CMPA #$8E | |
933 BHS ME4 | |
122 | 934 LBSR PUTHSL |
121 | 935 FCB 3 |
936 FCB $BD | |
937 FDB MULT | |
938 BRA ME1 | |
122 | 939 ME4 LBSR PUTHSL |
121 | 940 FCB 3 |
941 FCB $BD | |
942 FDB DIV | |
943 BRA ME1 | |
944 ** | |
945 * TERM | |
946 ** | |
947 TERM LDA SY | |
948 BNE TM1 | |
949 * SAVE L-COMMAND | |
950 SLOAD PSHS A | |
951 LBSR OLOAD | |
952 LDA VAL | |
953 STA OPER | |
954 LDA GL | |
955 STA GLL | |
956 PULS A | |
957 STA AMODE | |
958 COM LSW | |
959 LBRA WORD | |
124 | 960 * CONST TRUE & FALSE |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
961 TM1 CMPA #$A0 |
124 | 962 BEQ TM01 |
121 | 963 CMPA #$A1 |
964 BNE TM2 | |
965 TM01 SUBA #$A1 | |
966 STA VAL | |
967 CLRA | |
968 BRA SLOAD | |
969 * SYSTEM VAR MHIGH & MOD | |
970 TM2 CMPA #$16 | |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
971 BEQ *+6 |
121 | 972 CMPA #$17 |
973 BNE TM3 | |
974 STA VAL | |
975 LDA #$10 | |
976 BRA SLOAD | |
977 * SIMPLE VARIABLE | |
978 TM3 CMPA #4 | |
979 BNE TM4 | |
980 LDA #$20 | |
981 BRA SLOAD | |
982 * ( EXPTRSSION ) | |
983 TM4 CMPA #$35 | |
984 BCS TM5 | |
985 CMPA #$38 | |
986 BCC TM5 | |
987 PSHS A | |
988 LBSR WLEXPR | |
989 PULS A | |
990 ADDA #4 | |
991 LBRA CHECK | |
992 ** FUNCTION CALL | |
993 TM5 CMPA #3 | |
994 BMI *+6 | |
995 CMPA #$E0 | |
996 BCS TM6 | |
997 BSR OLP | |
998 PFCALL LDA VAL | |
999 PSHS A | |
1000 LBSR WORD | |
1001 CMPA #$37 | |
1002 BNE PFC1 | |
1003 LDA LSIZE | |
1004 PSHS A | |
1005 INC LSIZE | |
1006 PFC2 INC LSIZE | |
1007 LBSR WEXPR | |
1008 CLRB | |
1009 STB ACC | |
1010 DECB | |
1011 STB GLL | |
1012 LDA #$A7 | |
1013 LDB LSIZE | |
1014 LBSR PUTABX | |
1015 LDA SY | |
1016 CMPA #$3C | |
1017 BEQ PFC2 | |
1018 PULS A | |
1019 STA LSIZE | |
1020 LDA #$3B | |
1021 LBSR CHECK | |
1022 PFC1 LDB #-1 | |
1023 STB ACC | |
1024 LDA #$86 | |
1025 LDB LSIZE | |
1026 LBSR PUTAB | |
1027 PULS A | |
1028 CMPA #$C0 | |
1029 BCC *+5 | |
1030 LBRA CALPF | |
1031 LDX #LIBR | |
1032 SUBA #$C0 | |
1033 PFC3 BEQ PFC4 | |
1034 LEAX 2,X | |
1035 DECA | |
1036 BRA PFC3 | |
1037 PFC4 LDA #$BD | |
1038 LBSR PUTA | |
1039 LDD ,X | |
1040 LBRA PUTAB | |
1041 ** | |
1042 OLP LBSR OLOAD | |
1043 LDB ACC | |
1044 BEQ RTS4 | |
132 | 1045 LDD #$3402 pshs a |
1046 LBSR PUTAB | |
121 | 1047 CLR ACC |
1048 RTS4 RTS | |
1049 ** FUNCTION RND | |
1050 TM6 CMPA #$70 | |
1051 BNE TM61 | |
1052 BSR SUBSC | |
1053 LBSR PUTHS | |
1054 FCB $03BD | |
1055 FDB RND | |
1056 RTS | |
1057 * FUNTION GET | |
1058 TM61 CMPA #$71 | |
1059 BNE TM62 | |
1060 BSR SUBSC | |
1061 LBSR PUTHS | |
122 | 1062 FDB $0297 |
1063 FCB INDN | |
1064 LBSR PUTHSL | |
1065 FCB $03BD | |
121 | 1066 FDB GETCH |
1067 RTS | |
1068 * FUNCTION READ | |
1069 TM62 CMPA #$72 | |
1070 BNE TM7 | |
1071 BSR SUBSC | |
1072 LBSR PUTHS | |
122 | 1073 FDB $0297 |
121 | 1074 FDB INDN |
122 | 1075 LBSR PUTHSL |
1076 FCB $038D | |
121 | 1077 FDB GETDA |
1078 RTS | |
1079 * FUNCTION NOTASL ET AL | |
1080 TM7 CMPA #$40 | |
1081 BCS TM8 | |
1082 CMPA #$49+1 | |
1083 BCC TM8 | |
1084 PSHS A | |
1085 BSR SUBSC | |
1086 PULS A | |
1087 LBRA PUTA | |
1088 * ARRAY | |
1089 TM8 CMPA #$5 | |
1090 BNE TM9 | |
1091 LDB VAL | |
1092 PSHS B | |
1093 LDB GL | |
1094 PSHS B | |
1095 BSR SUBSC1 | |
1096 PULS B | |
1097 STB GLL | |
1098 PULS B | |
1099 LDA LSW | |
1100 BEQ ARY1 | |
1101 ADDB OPER | |
1102 STB OPER | |
1103 LDA #$20 | |
1104 STA AMODE | |
1105 RTS | |
1106 ARY1 LDA #$8B | |
1107 LBSR PUTABX | |
1108 LBRA LDAAX | |
1109 ** | |
1110 DSUBSC LDA #$3C | |
1111 BSR SUBS1 | |
1112 LDA #$3B | |
1113 PSHS A | |
1114 BRA SUBS2 | |
1115 SUBSC LDA #$3E | |
1116 SUBS1 PSHS A | |
1117 LBSR WORD | |
1118 LDA #$37 | |
1119 LBSR CHECK | |
1120 SUBS2 LBSR EXPR | |
1121 PULS A | |
1122 LBRA CHECK | |
1123 SUBSC1 LBSR WORD | |
1124 LDA #$36 | |
1125 LBSR CHECK | |
1126 LBSR LEXPR | |
1127 LDB LSW | |
1128 BEQ SBS5 | |
1129 LDB AMODE | |
1130 BEQ SBS5 | |
1131 LBSR OLOAD | |
1132 SBS5 LDA #$3A | |
1133 LBRA CHECK | |
1134 * MEM FUNCTION | |
1135 TM9 CMPA #6 | |
1136 BNE TM10 | |
1137 BSR DSUBSC | |
1138 LBSR PUTHS | |
1139 FDB $0997 | |
1140 FCB WT2 | |
1141 FDB $3297 | |
125 | 1142 FCB WT1,$9E,WT1 |
121 | 1143 FDB $A600 |
1144 RTS | |
1145 ** FOR EXPANTION | |
1146 TM10 LBRA ERROR | |
1147 ** | |
1148 * ADDRESS DEPENDENT CODE | |
1149 * GENARATION | |
1150 ** | |
1151 * SET PRC—FUNC TABLE | |
1152 ** | |
1153 SETPFT PSHS A | |
1154 LDB #3 | |
1155 MUL | |
1156 ADDD PFTBEG | |
1157 STD XR | |
1158 PULS A,PC | |
1159 ** | |
1160 TWICE LBSR PUTSTR | |
1161 FCB $0D,$0A | |
1162 FCC "TWICE!",0 | |
1163 lbra exit | |
1164 ** | |
1165 * DEF PROC-FUNC | |
1166 ** | |
1167 DEFPF BSR SETPFT | |
1168 LDX XR | |
1169 TST ,X | |
1170 BNE TWICE | |
1171 COM ,X | |
1172 LDX 1,X | |
1173 STX YR | |
1174 LDX XR | |
1175 LEAX 1,X | |
1176 BSR PCST | |
1177 LDX YR | |
1178 DP1 BEQ RT10 | |
1179 LDX ,X | |
1180 STX ZR | |
1181 LDX YR | |
1182 BSR PCST | |
1183 LDX ZR | |
1184 STX YR | |
1185 BRA DP1 | |
1186 ** | |
1187 * CALL PORC-FUNC | |
1188 ** | |
1189 CALPF BSR SETPFT | |
1190 INCA | |
1191 CMPA PFMAX | |
1192 BCS *+4 | |
1193 STA PFMAX | |
1194 LDA #$BD | |
1195 BSR AOUT | |
1196 LDX XR | |
1197 LDD 1,X | |
1198 LDX PC | |
1199 BSR STAABX | |
1200 LDX XR | |
1201 TST ,X | |
1202 BNE PC2ADD | |
1203 LEAX 1,X | |
1204 BSR PCST | |
1205 BRA PC2ADD | |
1206 ** | |
1207 * PUL-DEF N TIMES | |
1208 ** | |
1209 PLDFN PSHS A | |
1210 BSR PULDEF | |
1211 DEC ,S | |
1212 BNE *-4 | |
1213 PULS A,PC | |
1214 ** | |
1215 * PULL AND DEFINE | |
1216 ** | |
1217 PULDEF BSR PULSTK | |
1218 PCST LDD PC | |
1219 STAABX STD ,X | |
1220 RT10 RTS | |
1221 ** | |
1222 JMPOUT LDA #$7E | |
1223 AOUT LDX PC | |
1224 STA ,X | |
1225 BRA INCPC1 | |
1226 ** | |
1227 PULSTK LDX SP | |
1228 LEAX 2,x | |
1229 STX SP | |
1230 LDD ,X | |
1231 LDX ,X | |
1232 RTS | |
1233 ** | |
1234 * PUL STACK & Jump | |
1235 ** | |
1236 PULJMP BSR JMPOUT | |
1237 BSR PULSTK | |
1238 PCST2 LDX PC | |
1239 BSR STAABX | |
1240 INCPC LEAX 1,X | |
1241 INCPC1 LEAX 1,X | |
1242 SETPC STX PC | |
1243 RTS | |
1244 ** | |
1245 * PUSH STACK & JUMP | |
1246 ** | |
1247 PSHJMP BSR JMPOUT | |
1248 BSR PSHDEF | |
1249 PC2ADD LDX PC | |
1250 BRA INCPC | |
1251 ** | |
1252 * PUSH STRCK & DEFINE | |
1253 ** | |
1254 PSHDEF LDX SP | |
1255 BSR PCST | |
1256 LEAX -2,X | |
1257 STX SP | |
1258 RTS | |
1259 ** | |
1260 OUTPC3 BSR AOUT | |
1261 LDD PC | |
1262 ADDD #3 | |
1263 BRA PCST2 | |
1264 ** | |
1265 * LDA R,X | |
1266 LDAAX LDA #$B7 | |
1267 BSR OUTPC3 | |
1268 LDA #$A6 | |
1269 LA1 BSR AOUT | |
1270 BRA INCPC1 | |
1271 ** | |
1272 * STA B,X | |
1273 STABX LDA #$F7 | |
1274 BSR OUTPC3 | |
1275 LDA #$A7 | |
1276 BRA LA1 | |
1277 ** | |
1278 * STACK TOP CHANGE | |
1279 ** | |
123 | 1280 STCHG LDD 2,S |
1281 LDX 4,S | |
1282 STD 4,S | |
1283 STX 2,S | |
121 | 1284 RTS |
1285 ** | |
122 | 1286 * PUTHSL output with address calculation |
1287 * only working on 3 byte 7E/BD (JMP/JSR) | |
1288 ** | |
1289 PUTHSL LDX ,S++ | |
1290 LDB ,X+ | |
1291 LDA ,X+ | |
1292 LBSR PUTA | |
1293 LDD ,X++ | |
124 | 1294 leay 0,pcr |
122 | 1295 leay d,y |
1296 exg d,y | |
1297 ldy pc | |
1298 std ,y++ | |
1299 sty pc | |
1300 JMP ,X | |
1301 ** | |
1302 ** | |
121 | 1303 * END OF LOAD |
1304 ** | |
1305 ENDL LDX PFTBEG | |
1306 LDA PFMAX | |
1307 EL1 BEQ EL | |
1308 TST ,X | |
1309 BEQ UDERR | |
1310 EL2 LEAX 3,X | |
1311 DECA | |
1312 BRA EL1 | |
1313 UDERR PSHS A | |
1314 STA ZR | |
1315 SUBA PFMAX | |
1316 NEGA | |
1317 PSHS A | |
1318 LBSR PUTSTR | |
1319 FDB $0D0A | |
1320 FCC "UNDEF",0 | |
1321 PULS A | |
1322 LBSR PUTCA | |
1323 PULS A | |
1324 LDX ZR | |
1325 BRA EL2 | |
1326 EL LDX PC | |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1327 LBRA C |
121 | 1328 |
1329 ********************** | |
1330 * ADVANCE WORD | |
1331 ** | |
1332 WTABLE FCB 0 END MARK | |
1333 FCB $30,-'P' | |
1334 FCC "ROC" | |
1335 FCB $31,-'F' | |
1336 FCC "UNC" | |
124 | 1337 FCB $32,-'V' |
121 | 1338 FCC "AR" |
1339 FCB $33,-'A' | |
1340 FCC "RRAY" | |
1341 FCB $34,-'B' | |
1342 FCC "EGIN" | |
124 | 1343 FCB $35,-';' |
121 | 1344 FCB $36,-'[' |
1345 FCB $37,-'(' | |
1346 FCB $38,-'E' | |
1347 FCC "ND" | |
1348 FCB $39,-'=' | |
1349 FCB $3A,-']' | |
1350 FCB $3B,-')' | |
1351 FCB $3C,-',' | |
1352 FCB $3D,-':' | |
1353 FCB $50,-'S' | |
1354 FCC "TOP" | |
1355 FCB $51,-'R' | |
1356 FCC "ETURN" | |
1357 FCB $55,-'I' | |
1358 FCC "F" | |
1359 FCB $65,-'T' | |
1360 FCC "HEN" | |
1361 FCB $53,-'F' | |
1362 FCC "OR" | |
1363 FCB $61,-'T' | |
1364 FCC "O" | |
1365 FCB $52,-'R' | |
1366 FCC "EPEAT" | |
1367 FCB $60,-'U' | |
1368 FCC "NTIL" | |
1369 FCB $54,-'W' | |
1370 FCC "HILE" | |
1371 FCB $64,-'D' | |
1372 FCC "O" | |
1373 FCB $56,-'C' | |
1374 FCC "ASE" | |
1375 FCB $66,-'O' | |
1376 FCC "F" | |
1377 FCB $67,-'E' | |
1378 FCC "LSE" | |
1379 FCB $57,-'W' | |
1380 FCC "RITE" | |
1381 FCB $69,-'A' | |
1382 FCC "SCII" | |
1383 FCB $6A,-'S' | |
1384 FCC "PACE" | |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1385 FCB $6B,-'C' |
121 | 1386 FCC "RLF" |
1387 FCB $6C,-'"' | |
1388 FCB $8B,-'+' | |
1389 FCB $80,-'-' | |
1390 FCB $8E,-'*' | |
1391 FCB $8F,-'/' | |
1392 FCB $82,-'S' | |
1393 FCC "BC" | |
1394 FCB $84,-'A' | |
1395 FCC "ND" | |
1396 FCB $88,-'E' | |
1397 FCC "OR" | |
1398 FCB $89,-'A' | |
1399 FCC "DC" | |
1400 FCB $8A,-'O' | |
1401 FCC "R" | |
1402 FCB $22,-'>' | |
1403 FCB $25,-'<' | |
1404 FCB $26,-'#' | |
1405 FCB $27,-'=' | |
1406 FCB $2D,-'L','T' | |
1407 FCB $2E,-'G','T' | |
1408 FCB $40,-'N','E','G' | |
1409 FCB $43,-'N','O','T' | |
1410 FCB,$43,-'C','O','M' | |
1411 FCB $44,-'L','S','R' | |
1412 FCB $46,-'R','O','R' | |
1413 FCB $47,-'A','S','R' | |
1414 FCB $48,-'A','S','L' | |
1415 FCB $49,-'R','O','L' | |
1416 FCB $06,-'M','E','M' | |
1417 FCB $A0,-'T' | |
1418 FCC "RUE" | |
1419 FCB $A1,-'F' | |
1420 FCC "ALSE" | |
1421 FCB $16,-'M' | |
1422 FCC "HIGH" | |
1423 FCB $17,-'M' | |
1424 FCC "OD" | |
1425 FCB $70,-'R','N','D' | |
1426 FCB $71,-'G','E','T' | |
1427 FCB $72,-'R' | |
1428 FCC "EAD" | |
1429 WTBLEND | |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1430 |
121 | 1431 ****** |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1432 * SUPORTING ROUTINES |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1433 * & I/0 CONTROL |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1434 ** |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1435 ** OBJECT START |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1436 ****** |
138
6f7276831219
TL/1 use x and y register
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
137
diff
changeset
|
1437 C leas OBJECT,u |
127
321b7fffadab
TL/1 simple test worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
126
diff
changeset
|
1438 VARPTR LDX <PC |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1439 STX GB |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1440 STX LB |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1441 lda INDN |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1442 lbsr close |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1443 clra os9 stdin |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1444 sta INDN |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1445 inca |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1446 sta OUTDN |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1447 OBJMP JMP OBJECT,u |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1448 |
121 | 1449 ** |
127
321b7fffadab
TL/1 simple test worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
126
diff
changeset
|
1450 * PUSH LB & SET NEW LB |
121 | 1451 ** |
136 | 1452 PSHLB pshs y |
1453 leay ,x | |
127
321b7fffadab
TL/1 simple test worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
126
diff
changeset
|
1454 leax a,x |
136 | 1455 sty ,x++ |
1456 puls y,pc | |
121 | 1457 ** |
1458 * PULL LB | |
1459 ** | |
136 | 1460 * |
1461 PULLB LDX ,--X | |
121 | 1462 TSTA |
1463 RTS | |
1464 ** | |
1465 * RND FUNCTION | |
1466 ** | |
1467 RND PSHS A | |
1468 LDA RNDL | |
1469 LDB #125 | |
1470 MUL | |
1471 ADDD #1 | |
1472 STA RNDL | |
1473 PSHS A | |
1474 LDA RNDH | |
1475 LDB #125 | |
1476 MUL | |
1477 ADDA ,S+ | |
1478 STA RNDH | |
1479 PULS B | |
1480 MUL | |
1481 INCA | |
1482 RTS | |
1483 ** | |
1484 * DVISITION SET MOD | |
1485 ** | |
1486 DIV STB WT1 | |
1487 BEQ ERDIV | |
1488 TFR A,B | |
1489 CLRA | |
1490 STA WT2 | |
1491 DV0 INC WT2 | |
1492 ASL WT1 | |
1493 BCC DV0 | |
1494 DV1 ROR WT1 | |
1495 CMPB WT1 | |
1496 BCS DV2 | |
1497 SUBB WT1 | |
1498 ORCC #1 | |
1499 BRA *+4 | |
1500 DV2 ANDCC #$FE CLR C | |
1501 ROLA | |
1502 DEC WT2 | |
1503 BNE DV1 | |
1504 STB MOD | |
1505 TSTA | |
1506 RTS | |
1507 ** | |
1508 ERDIV STB OUTDN | |
1509 LBSR CRLF | |
1510 LBSR PUTSTR | |
1511 FCC "ERR DIV 0",0 | |
127
321b7fffadab
TL/1 simple test worked
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
126
diff
changeset
|
1512 MONIT lbra exit |
121 | 1513 ** |
1514 MULT MUL | |
1515 STA MHIGH | |
1516 TFR B,A | |
1517 RTS | |
1518 ** | |
1519 * PUT A IN DECIMAL | |
1520 ** | |
1521 PUTDA CLRB | |
1522 PUTDR STB DREG | |
136 | 1523 PSHS X |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1524 LEAX -2,S |
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1525 LEAS -6,S |
121 | 1526 CLR 1,X |
1527 LDB #3 | |
1528 P0 PSHS B | |
1529 LDB #10 | |
1530 BSR DIV | |
1531 ADDB #$30 | |
1532 STB ,X | |
1533 LEAX -1,X | |
1534 PULS B | |
1535 DECB | |
1536 BNE P0 | |
1537 COM 3,X | |
1538 LDA #'0' | |
1539 LDB #4 | |
1540 P1 LEAX 1,X | |
1541 DECB | |
1542 CMPA ,X | |
1543 BEQ P1 | |
1544 COM 4,S | |
1545 LDA DREG | |
1546 PSHS B | |
1547 SUBA ,S+ | |
1548 BCS PRX | |
1549 BSR SPACEA | |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1550 PRX LDA ,X |
121 | 1551 BEQ P4 |
122 | 1552 LBSR PUTCA |
121 | 1553 LEAX 1,X |
1554 BRA PRX | |
126
f43ca5d22920
fix dicimal print routine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
125
diff
changeset
|
1555 P4 LEAS 6,S |
136 | 1556 CL1 PULS X,PC |
121 | 1557 ** |
1558 * GET IN A DECIMAL | |
1559 ** | |
1560 GETDA CLRA | |
1561 PSHS A | |
122 | 1562 LBSR GETCA |
121 | 1563 CMPA #RUB |
1564 BNE GD1 | |
1565 PULS A | |
1566 LDB #10 | |
1567 LBSR DIV | |
1568 BRA GETDA+1 | |
1569 GD1 SUBA #'0' | |
1570 BCS GD2 | |
1571 CMPA #10 | |
1572 BCC GD2 | |
1573 STA DBUF | |
1574 PULS A | |
1575 LDB #10 | |
1576 MUL | |
1577 ADDB DBUF | |
1578 TFR B,A | |
1579 BRA GETDA+1 | |
1580 GD2 PULS A,PC | |
1581 ** | |
1582 * SPACE A TIMES | |
1583 ** | |
1584 SPACEA BEQ CL1 | |
1585 PSHS A | |
1586 LDA #' ' | |
122 | 1587 LBSR PUTCA |
121 | 1588 PULS A |
1589 DECA | |
1590 BRA SPACEA | |
1591 ** | |
1592 * STR OUT | |
1593 ** | |
1594 PUTSTR PSHS X | |
1595 LDX 2,S | |
1596 STR1 LDA ,X+ | |
1597 BEQ STR2 | |
1598 LBSR PUTCA | |
1599 BRA STR1 | |
1600 STR2 STX 2,S | |
1601 PULS X,PC | |
1602 ** | |
1603 * CRLF | |
1604 ** | |
1605 CRLF LDA #$0D | |
1606 BSR PUTCA | |
1607 LDA #$0A | |
1608 BRA PUTCA | |
1609 ** | |
1610 * CRLF A TIMES | |
1611 ** | |
1612 CRLFA BEQ CL1 | |
1613 PSHS A | |
1614 BSR CRLF | |
1615 PULS A | |
1616 DECA | |
1617 BRA CRLFA | |
1618 | |
1619 | |
1620 start clr <stdin | |
1621 stx <parmptr save parameter pointer | |
1622 stu <work save parameter pointer | |
1623 lda #READ. read access mode | |
1624 os9 I$Open open file | |
1625 lbcs L0049 branch if error | |
1626 sta <INDN else save path to file | |
1627 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
|
1628 leax readbuff,u buffer |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1629 clr ,x buffer empty |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1630 stx <adr |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1631 lbra comp |
121 | 1632 |
1633 copytbl | |
1634 pshs y,x,u | |
1635 leau LIBR,y | |
1636 leax iotbl,pcr | |
1637 leay iotblend,pcr | |
1638 ldy #(iotblend-iotbl) | |
1639 l1 ldb #$7e * JMP | |
1640 stb ,u+ | |
1641 ldd ,x++ | |
1642 addb 1,s | |
1643 adca ,s | |
1644 std ,u++ | |
1645 cmpx 2,s | |
1646 ble l1 | |
1647 puls x,y,u | |
1648 | |
1649 Exit lbsr setecho | |
1650 * ldx <work | |
1651 * leax readbuff,x | |
1652 * ldb #1 | |
1653 * lbsr getline | |
1654 * lbsr getpoll | |
1655 * lda <stdin | |
1656 * os9 I$Close | |
1657 | |
1658 clrb | |
1659 os9 F$Exit | |
1660 * no return | |
1661 | |
1662 | |
1663 iotbl | |
1664 fdb getchar-iotbl ; 0 | |
1665 fdb putchar-iotbl ; 3 | |
1666 fdb getline-iotbl ; 6 | |
1667 fdb putline-iotbl ; 9 | |
1668 fdb putcr-iotbl ; $C | |
1669 fdb getpoll-iotbl ; $F | |
1670 fdb xopenin-iotbl ; $12 | |
1671 fdb xopenout-iotbl ; $15 | |
1672 fdb xabortin-iotbl ; $18 | |
1673 fdb xclosein-iotbl ; $1B | |
1674 fdb xcloseout-iotbl ; $1E | |
1675 fdb delay-iotbl ; $21 | |
1676 fdb noecho-iotbl ; $24 | |
1677 fdb setecho-iotbl ; $27 | |
1678 fdb exit-iotbl ; $2a | |
1679 iotblend | |
1680 | |
1681 err ldb #1 | |
1682 L0049 | |
1683 bra Exit | |
1684 | |
1685 | |
135
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1686 PUTCA tfr a,b |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1687 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
|
1688 PSHS X,Y |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1689 BRA OUTCH1 |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1690 |
121 | 1691 close |
1692 lda <INDN else get path | |
1693 os9 I$Close and close it | |
1694 bcs L0049 branch if error | |
1695 rts | |
1696 | |
1697 MEMIN | |
1698 PSHS A,B,X,Y | |
135
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1699 ldx <adr |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1700 lda ,x+ |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1701 bne GETCA1 |
121 | 1702 LDA INDN |
135
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1703 LEAX readbuff,u |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1704 LDY #bufsiz |
121 | 1705 OS9 I$Read |
1706 BCC GETCA0 | |
1707 lda #'/' | |
135
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1708 ldx <adr |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1709 bra GETCA1 |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1710 GETCA0 LEAX readbuff,u |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1711 tfr y,d |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1712 clr d,x eof |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1713 lda ,x+ |
7503617351c0
TL/1 buffered program read
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
132
diff
changeset
|
1714 GETCA1 stx <adr |
123 | 1715 sta ,s |
121 | 1716 PULS A,B,X,Y,PC |
1717 | |
1718 GETCA bsr getchar | |
1719 tfr b,a | |
1720 rts | |
1721 | |
1722 getchar * Input one character into B register. | |
1723 PSHS A,B,X,Y | |
1724 GETCH0 | |
1725 LDA INDN | |
123 | 1726 LEAX ,S |
121 | 1727 LDY #1 |
1728 OS9 I$Read | |
1729 BCS GETCH0 | |
1730 PULS A,B,X,Y,PC | |
1731 putcr * Output a newline. | |
1732 LDB #C$CR | |
1733 bsr putchar | |
1734 LDB #C$LF | |
1735 PSHS X,Y | |
1736 OUTCH1 PSHS A,B | |
1737 LEAX 1,S | |
1738 LDA OUTDN | |
1739 LDY #1 | |
1740 OS9 I$Write | |
1741 PULS A,B,X,Y,PC | |
1742 getpoll | |
1743 PSHS X,Y,D | |
1744 LDA #0 | |
1745 LDB #SS.Ready | |
1746 OS9 I$GetStt | |
1747 CMPB #$F6 Not Ready | |
1748 BNE RSENSE | |
1749 CLRB | |
1750 PULS X,Y,D,PC | |
1751 RSENSE | |
1752 ORCC #1 set carry to indicate ready | |
1753 RNSENSE | |
1754 PULS X,Y,D,PC | |
1755 | |
1756 getline * Input line at address in X, length in B. | |
1757 PSHS A,B,X,Y | |
1758 clr ,s | |
1759 GETLN0 | |
1760 ldy ,s | |
1761 lda INDN | |
1762 OS9 I$ReadLn | |
1763 BCS GETLN0 | |
1764 LEAY -1,Y | |
1765 GETLN1 STY ,S | |
1766 PULS A,B,X,Y,PC | |
1767 putline * Output string at address in X, length in B. | |
1768 PSHS A,B,X,Y | |
1769 CLRA | |
1770 TFR D,Y | |
1771 lda OUTDN | |
1772 OS9 I$WritLn | |
1773 PULS A,B,X,Y,PC | |
1774 xopenin | |
1775 xopenout | |
1776 xabortin | |
1777 xclosein | |
1778 xcloseout | |
1779 RTS | |
1780 | |
1781 setecho lda #1 | |
1782 bra sss | |
1783 noecho clra | |
1784 sss leas -128,s | |
1785 leax ,s | |
1786 pshs a | |
1787 clra | |
1788 ldb #SS.Opt | |
1789 OS9 I$GetStt | |
1790 bcs err2 | |
1791 LDA ,s | |
1792 STA PD.EKO-PD.OPT,X | |
1793 setopts | |
1794 ldb #SS.Opt | |
1795 clra | |
1796 OS9 I$SetStt | |
1797 err2 | |
1798 puls a | |
1799 leas 128,s | |
1800 rts | |
1801 | |
1802 | |
1803 delay PSHS D,X * address **$21** | |
1804 * On input the D register contains the number of timer | |
1805 * ticks to wait. Each timer tick is 20ms | |
1806 TFR D,X | |
1807 OS9 F$Sleep | |
1808 PULS D,X,PC | |
1809 | |
1810 | |
1811 emod | |
1812 eom equ * | |
1813 end | |
1814 |