Mercurial > hg > Members > kono > os9 > sbc09
annotate game09/game09.asm @ 191:d0f5894e9b3a default tip
some how load: confilicts in gmake
author | kono |
---|---|
date | Thu, 07 Dec 2023 09:37:15 +0900 |
parents | 91447c3ccd58 |
children |
rev | line source |
---|---|
69 | 1 * |
2 * GAME09 interpreter | |
3 * | |
4 | |
70 | 5 ifp1 |
6 use defsfile | |
7 endc | |
69 | 8 |
70 | 9 nam Game09 |
10 ttl Game09 | |
11 tylg set Prgrm+Objct | |
12 atrv set ReEnt+rev | |
13 rev set $01 | |
71 | 14 edition set 1 |
69 | 15 |
70 | 16 mod eom,name,tylg,atrv,start,size |
69 | 17 |
70 | 18 org 0 |
19 DP00 equ $00 | |
82 | 20 VAROFS equ $04 variabble base 'A'-'Z' until $36 |
21 DP38 equ $38 variable end | |
73 | 22 DP42 equ $42 program copy pointer |
82 | 23 DP44 equ $44 variable 'a'-'z' until $76 |
24 DP48 equ $48 """ | |
25 DP4A equ $4A "#" next line no | |
70 | 26 DP4B equ $4B |
82 | 27 DP4E equ $4E "%" |
70 | 28 DP4F equ $4F |
112 | 29 DP50 equ $50 "&" program end |
70 | 30 DP52 equ $52 |
73 | 31 DP58 equ $58 program max |
112 | 32 DP7C equ $7C |
33 DP7E equ $7E "=" program top | |
82 | 34 DP82 equ $82 "@" |
70 | 35 DP83 equ $83 |
113
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
36 DP84 equ $84 rvalue pointer |
73 | 37 DP86 equ $86 input line (except lineno) |
70 | 38 DP88 equ $88 |
39 DP8A equ $8A | |
40 DP8C equ $8C | |
41 DP8D equ $8D | |
42 DP8E equ $8E | |
43 DP94 equ $94 | |
73 | 44 DPWORK rmb 2 $96 |
45 DPSTK rmb 2 $98 | |
69 | 46 |
73 | 47 lineb0 rmb 2 $9A |
48 linetop rmb 2 $9C | |
49 lineb9a rmb 2 $9E | |
50 lineb9b rmb 2 $A0 | |
51 lineend rmb 2 $A2 | |
78
02120537b90d
fix user stack in game09.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
77
diff
changeset
|
52 ustack rmb 128 |
73 | 53 linebuf rmb 252 |
161 | 54 ifeq Level-2 |
55 program rmb $d000-. | |
56 else | |
114 | 57 program rmb $6000 |
161 | 58 endc |
70 | 59 size equ . |
69 | 60 |
71 | 61 name fcs "Game09" |
62 fcb edition | |
82 | 63 coldstart |
71 | 64 start * clrb |
65 * os9 F$Exit | |
70 | 66 LC000 BRA LC005 |
67 LC002 NOP | |
82 | 68 LC003 BRA warmst |
70 | 69 LC005 TFR U,D |
69 | 70 TFR A,DP |
70 | 71 STU <DPWORK |
72 STS <DPSTK | |
73 LEAX program,U | |
69 | 74 STX <$7E |
75 STX <$50 | |
76 LDA #$FF | |
77 STA ,X | |
82 | 78 warmst LDU <DPWORK |
79 LEAX VAROFS,U | |
80 STX <VAROFS | |
73 | 81 LEAX linebuf-1,U |
82 STX <lineb0 | |
83 LEAX 1,X | |
84 STX <linetop | |
85 LEAX 5,X | |
86 STX <lineb9a | |
87 LEAX 1,X | |
88 STX <lineb9b | |
89 LEAX 255-6,X | |
90 STX <lineend | |
70 | 91 LEAX size,U |
69 | 92 STX <$58 |
70 | 93 LC020 LDA #$FF |
69 | 94 STA <$8C |
82 | 95 GAMETP LDS <DPSTK |
70 | 96 LDU <DPWORK |
78
02120537b90d
fix user stack in game09.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
77
diff
changeset
|
97 LEAU linebuf,U user stack |
82 | 98 LEAX >PRMPT,PCR |
99 LBSR LPRNT | |
100 LC032 LBSR GETCLN | |
69 | 101 BCS LC06D |
102 STX <$42 | |
103 LBSR LC1D3 | |
82 | 104 BEQ GAMETP |
70 | 105 LC03E BSR LC09C |
82 | 106 LC040 BMI GAMETP |
69 | 107 STX <$42 |
70 | 108 LC044 LEAX +$02,X |
69 | 109 LDA ,X+ |
110 CMPA #$20 | |
111 BNE LC05B | |
112 LBSR LC1D3 | |
113 BNE LC05F | |
114 LEAX +$01,X | |
115 TST ,X | |
116 BRA LC040 | |
70 | 117 LC057 LDS <DPSTK |
118 LC05B BSR LC0A8 | |
69 | 119 BRA LC040 |
70 | 120 LC05F LDX <$42 |
69 | 121 STX <$84 |
122 BSR LC0A0 | |
82 | 123 BMI GAMETP |
69 | 124 CMPX <$84 |
125 BEQ LC03E | |
126 BRA LC044 | |
70 | 127 LC06D STX <$86 |
69 | 128 STD <$4A |
129 LDB ,X | |
130 CMPB #$2F | |
131 BNE LC0B1 | |
73 | 132 LC077 BSR LC09C listing |
70 | 133 LC079 LBSR LC397 |
69 | 134 TST ,X |
82 | 135 BMI GAMETP |
69 | 136 BSR LC087 |
137 LBSR LC173 | |
138 BRA LC079 | |
70 | 139 LC087 LDD ,X++ |
69 | 140 PSHS X |
141 LBSR LC443 | |
142 PULS X | |
82 | 143 LBRA LPRNT |
70 | 144 LC093 LDX <$42 |
69 | 145 LEAX +$02,X |
70 | 146 LC097 TST ,X+ |
69 | 147 BNE LC097 |
148 RTS | |
70 | 149 LC09C LDX <$7E |
150 LC09E STX <$42 | |
151 LC0A0 LDD ,X | |
69 | 152 BMI LC0B0 |
153 SUBD <$4A | |
154 BCC LC0AF | |
70 | 155 LC0A8 LBSR LC173 |
69 | 156 BSR LC093 |
157 BRA LC09E | |
70 | 158 LC0AF CLRA |
159 LC0B0 RTS | |
160 LC0B1 LDX <$4A | |
69 | 161 BEQ LC077 |
162 BMI LC117 | |
163 LDX <$50 | |
164 LDA ,X | |
165 INCA | |
166 BNE LC117 | |
167 BSR LC09C | |
168 BMI LC0DE | |
169 LDX ,X | |
170 CMPX <$4A | |
171 BNE LC0DE | |
172 BSR LC093 | |
173 LDY <$42 | |
70 | 174 LC0CD LDA ,X |
69 | 175 STA ,Y |
176 CMPX <$50 | |
177 BEQ LC0DB | |
178 LEAX +$01,X | |
179 LEAY +$01,Y | |
180 BRA LC0CD | |
70 | 181 LC0DB STY <$50 |
73 | 182 LC0DE LDX <$86 get program line length |
69 | 183 LDB #$03 |
184 TST ,X+ | |
185 BEQ LC114 | |
70 | 186 LC0E6 INCB |
69 | 187 TST ,X+ |
188 BNE LC0E6 | |
189 CLRA | |
190 ADDD <$50 | |
191 TFR D,Y | |
192 SUBD <$58 | |
193 BCC LC117 | |
194 LDX <$50 | |
195 STY <$50 | |
196 LEAX +$01,X | |
197 LEAY +$01,Y | |
73 | 198 LC0FD LDB ,-X make insert space |
69 | 199 STB ,-Y |
200 CMPX <$42 | |
201 BNE LC0FD | |
202 LDY <$4A | |
203 STY ,X++ | |
204 LDY <$86 | |
70 | 205 LC10E LDB ,Y+ |
69 | 206 STB ,X+ |
207 BNE LC10E | |
70 | 208 LC114 LBRA LC032 |
82 | 209 LC117 LBRA GAMETP |
71 | 210 LC11A LDX <DPWORK |
211 LEAX $8F,X | |
69 | 212 TST <$8C |
213 BNE LC124 | |
73 | 214 LDX <linetop |
70 | 215 LC124 LEAY <LC159,PCR |
216 LC127 PSHS X | |
69 | 217 LDX ,Y++ |
218 PSHU X | |
219 LBSR LC335 | |
220 PULU X | |
221 PULS X | |
222 PSHS A | |
223 LDA <$83 | |
224 ADDA #$30 | |
225 STA ,X+ | |
226 PULS A | |
227 TST +$01,Y | |
228 BNE LC127 | |
229 CLR ,X | |
230 COM ,-X | |
231 PSHS X | |
232 LEAX -$05,X | |
233 CLRA | |
70 | 234 LC14B LEAX +$01,X |
69 | 235 INCA |
236 LDB ,X | |
237 CMPB #$30 | |
238 BEQ LC14B | |
239 COM [,S++] | |
240 SUBA #$06 | |
70 | 241 LC158 RTS |
242 LC159 FDB 10000 | |
69 | 243 FDB 1000 |
244 FDB 100 | |
245 FDB 10 | |
246 FDB 1 | |
247 FDB 0 | |
82 | 248 LPRNT CLRA |
70 | 249 LC166 STA <$94 |
250 LC168 LDB ,X+ | |
69 | 251 CMPB <$94 |
252 BEQ LC158 | |
253 LBSR LC412 | |
254 BRA LC168 | |
70 | 255 LC173 LBSR LC650 |
82 | 256 LBCS GAMETP |
69 | 257 RTS |
70 | 258 LC17B CMPA #$20 |
69 | 259 BEQ LC1D1 |
260 CLR <$4A | |
261 CLR <$4B | |
262 LDB +$01,X | |
263 BITB #$DF | |
264 BNE LC1A6 | |
265 CMPA #$5D | |
266 BNE LC195 | |
267 PULU X,B,A | |
268 STD <$46 | |
269 STX <$42 | |
270 BRA LC1C6 | |
70 | 271 LC195 CMPA #$40 |
69 | 272 BNE LC1A6 |
273 LEAX +$01,X | |
274 STX <$46 | |
275 CLRA | |
276 CLRB | |
277 LDY <$42 | |
278 PSHU Y,X,B,A | |
279 BRA LC1D3 | |
70 | 280 LC1A6 CMPA #$22 |
69 | 281 BNE LC1CA |
282 LEAX +$01,X | |
283 BSR LC166 | |
284 BRA LC1D3 | |
70 | 285 LC1B0 CMPA #$5C |
69 | 286 BNE LC1B9 |
287 LBSR LC676 | |
288 BRA LC1D3 | |
70 | 289 LC1B9 STX <$84 |
69 | 290 BSR LC1EC |
113
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
291 LBSR LVALUE |
69 | 292 BSR LC173 |
293 LDX <$4A | |
294 BNE LC1D7 | |
70 | 295 LC1C6 LDX <$46 |
69 | 296 BRA LC1D3 |
70 | 297 LC1CA CMPA #$2F |
69 | 298 BNE LC1B0 |
299 LBSR LC397 | |
70 | 300 LC1D1 LEAX +$01,X |
301 LC1D3 LDA ,X | |
69 | 302 BNE LC17B |
70 | 303 LC1D7 RTS |
304 LC1D8 PSHS A | |
69 | 305 LEAX +$01,X |
306 BSR LC1F6 | |
307 LDX <$46 | |
70 | 308 LC1E0 LDY <$42 |
69 | 309 PSHU Y,X,B,A |
310 PULS PC,B,A | |
70 | 311 LC1E7 LDA #$3D |
69 | 312 LBRA LC4F9 |
113
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
313 LC1EC CMPA #$3D |
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
314 BNE LC1ED |
114 | 315 * = assignment ( GAME code top switch ) |
113
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
316 leax 2,x |
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
317 lda ,x |
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
318 lbsr expr |
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
319 std <$7E |
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
320 tfr d,x |
114 | 321 lploop ldd ,x+ |
322 cmpd #$00ff | |
323 bne lploop | |
324 lpend stx <$50 | |
325 ldd <$7e | |
113
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
326 lbra warmst |
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
327 LC1ED LDA ,X+ |
69 | 328 BITA #$DF |
329 BEQ LC1E7 | |
330 CMPA #$3D | |
331 BNE LC1EC | |
82 | 332 LC1F6 LBSR EXPR |
70 | 333 LC1F9 PSHS B |
69 | 334 LDB ,X |
335 BITB #$DF | |
336 BEQ LC210 | |
337 CMPB #$29 | |
338 BEQ LC214 | |
339 CMPB #$2C | |
340 BEQ LC1D8 | |
341 PULS B | |
342 LBSR LC29C | |
343 BRA LC1F9 | |
70 | 344 LC210 STX <$46 |
69 | 345 PULS PC,B |
70 | 346 LC214 LEAX +$01,X |
69 | 347 PULS PC,B |
70 | 348 LC218 CMPB #$3F |
69 | 349 BNE LC22E |
350 PSHS X | |
351 STB <$8C | |
82 | 352 LBSR GETLIN |
69 | 353 BSR LC1F6 |
354 PULS X | |
355 LEAX +$01,X | |
356 RTS | |
76 | 357 LC22A LEAX +$01,X |
69 | 358 BRA LC1F6 |
70 | 359 LC22E BSR LC287 |
69 | 360 CMPA #$3A |
361 BEQ LC239 | |
362 BSR LC26E | |
70 | 363 LC236 LDD ,Y |
69 | 364 RTS |
70 | 365 LC239 BSR LC269 |
69 | 366 CLRA |
70 | 367 LC23C LDB ,Y |
368 LC23E RTS | |
369 LC23F CMPB #$22 | |
69 | 370 BCS LC218 |
371 CMPB #$2D | |
372 BHI LC218 | |
373 SUBB #$22 | |
374 LSLB | |
375 LEAY <LC251,PCR | |
376 LDD B,Y | |
377 JMP D,Y | |
68 | 378 |
75
7aad8084a784
fix game09 table jump and assignment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
379 LC251 fdb LC6EC-LC251 049b " |
7aad8084a784
fix game09 table jump and assignment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
380 fdb LC535-LC251 02e2 # |
7aad8084a784
fix game09 table jump and assignment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
381 fdb LC5A1-LC251 034c $ |
7aad8084a784
fix game09 table jump and assignment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
74
diff
changeset
|
382 fdb LC545-LC251 02ee % |
76 | 383 fdb LC22E-LC251 ffdd & |
384 fdb LC545-LC251 02f3 ' | |
385 fdb LC22A-LC251 ffd9 ( | |
386 fdb LC22E-LC251 ffdd ) | |
387 fdb LC22E-LC251 ffdd * | |
388 fdb LC52D-LC251 02dc + | |
389 fdb LC22E-LC251 ffdd , | |
390 fdb LC529-LC251 02d8 - | |
68 | 391 |
70 | 392 LC269 BSR LC279 |
69 | 393 LEAY D,Y |
394 RTS | |
82 | 395 LC26E CMPA #$28 A(I) pointer of word array |
69 | 396 BNE LC292 |
397 BSR LC279 | |
398 LSLB | |
399 ROLA | |
400 LEAY D,Y | |
401 RTS | |
70 | 402 LC279 BSR LC292 |
69 | 403 LDY ,Y |
404 PSHS Y | |
405 LEAX +$01,X | |
406 LBSR LC1F6 | |
407 PULS PC,Y | |
70 | 408 LC287 LDB ,X+ |
409 LC289 LDA ,X+ | |
69 | 410 CMPA #$41 |
411 BPL LC289 | |
412 LEAX -$01,X | |
413 RTS | |
68 | 414 |
70 | 415 LC292 ANDB #$3F |
69 | 416 CLRA |
417 LSLB | |
82 | 418 ADDD <VAROFS |
69 | 419 TFR D,Y |
420 RTS | |
70 | 421 LC29C PSHU B,A |
69 | 422 LDD ,X+ |
423 PSHS B,A | |
424 SUBB #$3D | |
425 BEQ LC2A9 | |
426 DECB | |
427 BNE LC2AB | |
70 | 428 LC2A9 LEAX +$01,X |
82 | 429 LC2AB LBSR EXPR |
69 | 430 PULU Y |
431 EXG D,Y | |
432 PSHU Y,B,A | |
433 PULS B,A | |
434 CMPA #$3D | |
435 BNE LC2C4 | |
436 PULU B,A | |
437 SUBD ,U++ | |
438 BNE LC2E4 | |
70 | 439 LC2C0 CLRA |
69 | 440 LDB #$01 |
441 RTS | |
70 | 442 LC2C4 CMPA #$3C |
69 | 443 BNE LC2E7 |
444 CMPB #$3D | |
445 BEQ LC2D7 | |
446 CMPB #$3E | |
447 PULU B,A | |
448 BNE LC2E0 | |
449 SUBD ,U++ | |
450 BNE LC2C0 | |
451 RTS | |
70 | 452 LC2D7 PULU B,A |
69 | 453 SUBD ,U++ |
454 BLE LC2C0 | |
455 CLRA | |
456 CLRB | |
457 RTS | |
70 | 458 LC2E0 SUBD ,U++ |
69 | 459 BLT LC2C0 |
70 | 460 LC2E4 CLRA |
69 | 461 CLRB |
462 RTS | |
70 | 463 LC2E7 CMPA #$3E |
69 | 464 BNE LC2FF |
465 CMPB #$3D | |
466 PULU B,A | |
467 BNE LC2F8 | |
468 SUBD ,U++ | |
469 BGE LC2C0 | |
470 CLRA | |
471 CLRB | |
472 RTS | |
70 | 473 LC2F8 SUBD ,U++ |
69 | 474 BGT LC2C0 |
475 CLRA | |
476 CLRB | |
477 RTS | |
70 | 478 LC2FF CMPA #$2B |
69 | 479 BNE LC308 |
480 PULU B,A | |
481 ADDD ,U++ | |
482 RTS | |
70 | 483 LC308 CMPA #$2D |
69 | 484 BNE LC311 |
485 PULU B,A | |
486 SUBD ,U++ | |
487 RTS | |
70 | 488 LC311 CMPA #$2A |
69 | 489 LBNE LC653 |
490 PULU B,A | |
70 | 491 LC319 EXG A,B |
69 | 492 PSHU B,A |
493 LDB +$03,U | |
494 MUL | |
495 STD <$82 | |
496 BSR LC32B | |
497 BSR LC32B | |
498 LDD <$82 | |
499 LEAU +$02,U | |
500 RTS | |
70 | 501 LC32B PULU A |
69 | 502 LDB +$01,U |
503 MUL | |
504 ADDB <$82 | |
505 STB <$82 | |
506 RTS | |
70 | 507 LC335 CLR ,-S |
508 LC337 INC ,S | |
69 | 509 LSL +$01,U |
510 ROL ,U | |
511 BCC LC337 | |
512 ROR ,U | |
513 ROR +$01,U | |
514 CLR <$82 | |
515 CLR <$83 | |
70 | 516 LC347 SUBD ,U |
69 | 517 BCC LC351 |
518 ADDD ,U | |
519 ANDCC #$FE | |
520 BRA LC353 | |
70 | 521 LC351 ORCC #$01 |
74
c29030b5e4b4
program is correctly stored. fix d09 ror bug
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
73
diff
changeset
|
522 LC353 ROL <$83 |
c29030b5e4b4
program is correctly stored. fix d09 ror bug
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
73
diff
changeset
|
523 ROL <$82 |
69 | 524 DEC ,S |
525 BEQ LC361 | |
526 LSR ,U | |
527 ROR +$01,U | |
528 BRA LC347 | |
70 | 529 LC361 LEAS +$01,S |
69 | 530 RTS |
70 | 531 LC364 LDB ,X |
69 | 532 CMPB #$30 |
533 BCS LC36D | |
534 CMPB #$3A | |
535 RTS | |
70 | 536 LC36D ANDCC #$FE |
69 | 537 RTS |
82 | 538 GETCLN LBSR GETLIN |
70 | 539 LC373 BSR LC364 |
69 | 540 BCC LC396 |
541 CLRA | |
542 CLRB | |
70 | 543 LC379 ADDB ,X+ |
69 | 544 ADCA #$00 |
545 SUBD #$030 | |
546 PSHU B,A | |
547 BSR LC364 | |
548 LDD ,U | |
549 BCC LC392 | |
550 LSLB | |
551 ROLA | |
552 LSLB | |
553 ROLA | |
554 ADDD ,U++ | |
555 LSLB | |
556 ROLA | |
557 BRA LC379 | |
70 | 558 LC392 PULU B,A |
69 | 559 ORCC #$01 |
70 | 560 LC396 RTS |
561 LC397 LDB #$0D | |
69 | 562 BSR LC39D |
70 | 563 LC39B LDB #$0A |
564 LC39D BRA LC412 | |
113
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
565 LVALUE PSHS B,A |
69 | 566 LDA #$01 |
567 STA <$8C | |
568 LDX <$84 | |
569 LDB ,X | |
570 CMPB #$2E | |
571 BNE LC3BA | |
572 PULS A | |
573 LDA ,S+ | |
70 | 574 LC3B1 BEQ LC3C4 |
69 | 575 LDB #$20 |
576 BSR LC412 | |
577 DECA | |
578 BRA LC3B1 | |
70 | 579 LC3BA CMPB #$3B |
69 | 580 BNE LC3C5 |
581 LDD ,S++ | |
582 LBEQ LC057 | |
70 | 583 LC3C4 RTS |
584 LC3C5 CMPB #$40 | |
69 | 585 BNE LC3E4 |
586 LDB +$02,X | |
587 LBSR LC292 | |
588 PULS B,A | |
589 STD ,Y | |
590 PULU B,A | |
591 SUBD ,Y | |
592 BLT LC3E1 | |
593 PULU X,B,A | |
594 STD <$46 | |
595 STX <$42 | |
596 LEAU -$06,U | |
597 RTS | |
70 | 598 LC3E1 LEAU +$04,U |
69 | 599 RTS |
70 | 600 LC3E4 CMPB #$26 |
69 | 601 BNE LC3FA |
113
a8b7dfc1baf5
program code switch in game09
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
112
diff
changeset
|
602 LDB +$01,X |
69 | 603 CMPB #$3D |
604 BNE LC3FA | |
605 LDD ,S++ | |
606 BNE LC3F9 | |
607 LDX <$7E | |
608 STX <$50 | |
609 DECA | |
610 STA ,X | |
70 | 611 LC3F9 RTS |
612 LC3FA CMPB #$21 | |
69 | 613 BNE LC40C |
614 PULS B,A | |
615 STD <$4A | |
616 BEQ LC40B | |
617 LDY <$42 | |
618 LDX <$46 | |
619 PSHU Y,X | |
70 | 620 LC40B RTS |
621 LC40C CMPB #$24 | |
69 | 622 BNE LC415 |
623 PULS B,A | |
82 | 624 LC412 LBRA OUTC1 |
70 | 625 LC415 CMPB #$3F |
69 | 626 BNE LC449 |
627 LDB +$01,X | |
628 CMPB #$28 | |
629 LBNE LC56E | |
630 LBSR LC51F | |
70 | 631 LC424 STB <$8E |
69 | 632 PULS B,A |
633 BSR LC433 | |
634 ADDA <$8E | |
635 BMI LC430 | |
636 BSR LC3B1 | |
82 | 637 LC430 LBRA LPRNT |
70 | 638 LC433 TSTA |
69 | 639 LBPL LC11A |
640 LBSR LC4F3 | |
641 LBSR LC11A | |
642 LDB #$2D | |
643 STB ,-X | |
644 RTS | |
70 | 645 LC443 PSHS B,A |
69 | 646 LDB #$05 |
647 BRA LC424 | |
70 | 648 LC449 CMPB #$3D |
69 | 649 BNE LC460 |
650 PULS B,A | |
651 STD <$7E | |
71 | 652 LDX #$FFFF |
69 | 653 STX <$4A |
654 LBSR LC09C | |
655 STX <$50 | |
82 | 656 LBRA GAMETP |
70 | 657 LC45E PULS PC,B,A |
658 LC460 CMPB #$3E | |
69 | 659 BNE LC46C |
660 LDD ,S | |
661 BEQ LC45E | |
662 JSR [,S++] | |
663 PSHS B,A | |
70 | 664 LC46C LDX <$84 |
69 | 665 LBSR LC287 |
666 CMPA #$3A | |
667 BNE LC47D | |
668 LBSR LC269 | |
669 PULS B,A | |
670 STB ,Y | |
671 RTS | |
70 | 672 LC47D LBSR LC26E |
69 | 673 PULS B,A |
674 STD ,Y | |
675 RTS | |
676 LDA +$01,X | |
677 CMPA #$4E | |
678 BEQ LC48E | |
71 | 679 LBRA SYSTEM |
70 | 680 LC48E TST +$02,X |
69 | 681 BNE LC494 |
682 CLR +$03,X | |
70 | 683 LC494 LEAX +$03,X |
69 | 684 CLR <$8C |
685 LBSR LC373 | |
686 BCS LC4A0 | |
112 | 687 LDD #1000 |
70 | 688 LC4A0 STD <$88 |
69 | 689 LDB ,X |
690 CMPB #$2C | |
691 BNE LC4AF | |
692 LEAX +$01,X | |
693 LBSR LC373 | |
694 BCS LC4B2 | |
70 | 695 LC4AF LDD #$00A |
696 LC4B2 STD <$8A | |
69 | 697 RTS |
70 | 698 LC4B5 CMPA #$2F |
69 | 699 BNE LC4F9 |
700 CLR <$8D | |
701 LDD +$02,U | |
702 BEQ LC4F9 | |
703 BMI LC4D4 | |
704 CMPD #LC002 | |
705 BNE LC4DE | |
706 PULU B,A | |
707 CLR <$4E | |
708 CLR <$4F | |
709 ASRA | |
710 RORB | |
74
c29030b5e4b4
program is correctly stored. fix d09 ror bug
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
73
diff
changeset
|
711 ROL <$4F |
69 | 712 LEAU +$02,U |
713 RTS | |
70 | 714 LC4D4 INC <$8D |
69 | 715 NEG +$03,U |
716 BNE LC4DC | |
717 DEC +$02,U | |
70 | 718 LC4DC COM +$02,U |
719 LC4DE LDD ,U++ | |
69 | 720 BPL LC4E6 |
721 DEC <$8D | |
722 BSR LC4F3 | |
70 | 723 LC4E6 LBSR LC335 |
69 | 724 LEAU +$02,U |
725 STD <$4E | |
726 LDD <$82 | |
727 TST <$8D | |
728 BEQ LC4F8 | |
70 | 729 LC4F3 NEGB |
69 | 730 BNE LC4F7 |
731 DECA | |
70 | 732 LC4F7 COMA |
733 LC4F8 RTS | |
734 LC4F9 LBSR LC397 | |
69 | 735 LDB #$3F |
736 STB <$8C | |
737 LBSR LC412 | |
738 TFR A,B | |
739 LBSR LC412 | |
740 LDB #$20 | |
741 LBSR LC412 | |
742 LDX <$42 | |
71 | 743 STY ,S |
74
c29030b5e4b4
program is correctly stored. fix d09 ror bug
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
73
diff
changeset
|
744 CMPX <linetop |
69 | 745 BNE LC519 |
82 | 746 LBSR LPRNT |
69 | 747 BRA LC51C |
70 | 748 LC519 LBSR LC087 |
82 | 749 LC51C LBRA GAMETP |
70 | 750 LC51F LEAX +$01,X |
82 | 751 EXPR LBSR LC373 |
69 | 752 BCS LC532 |
753 LBRA LC23F | |
76 | 754 LC529 BSR LC51F - |
69 | 755 BRA LC4F3 |
76 | 756 LC52D BSR LC51F + |
69 | 757 TSTA |
758 BMI LC4F3 | |
70 | 759 LC532 RTS |
76 | 760 LC535 BSR LC51F |
761 PSHS B,A | |
69 | 762 LDD ,S++ |
763 LBNE LC2E4 | |
764 INCB | |
765 RTS | |
70 | 766 LC53F BSR LC51F |
69 | 767 LDD <$4E |
768 RTS | |
769 LC545 | |
770 BSR LC51F | |
771 PSHU B,A | |
772 LDD <$52 | |
773 PSHU B,A | |
71 | 774 LDD #$3D09 |
69 | 775 LBSR LC319 |
776 ADDD #1 | |
777 STD <$52 | |
778 TFR A,B | |
779 CLRA | |
780 LBSR LC319 | |
781 TFR A,B | |
782 CLRA | |
783 ADDD #1 | |
784 RTS | |
785 LC568 | |
786 CLRA | |
787 LDB +$01,X | |
788 LEAX +$03,X | |
789 RTS | |
70 | 790 LC56E CMPB #$3F |
69 | 791 BEQ LC57E |
792 CMPB #$24 | |
793 BEQ LC582 | |
794 PULS B,A | |
795 LBSR LC433 | |
82 | 796 LBRA LPRNT |
70 | 797 LC57E LDB ,S |
69 | 798 BSR LC584 |
70 | 799 LC582 PULS B,A |
800 LC584 TFR B,A | |
69 | 801 BSR LC58E |
802 TFR A,B | |
803 ANDB #$0F | |
804 BRA LC592 | |
70 | 805 LC58E LSRB |
69 | 806 LSRB |
807 LSRB | |
808 LSRB | |
70 | 809 LC592 CMPB #$0A |
69 | 810 BMI LC598 |
811 ADDB #$07 | |
70 | 812 LC598 ADDB #$30 |
69 | 813 LBRA LC412 |
76 | 814 LC5A1 CLRA |
69 | 815 BSR LC5BD |
82 | 816 LBCC GETC1 |
70 | 817 LC5A4 PSHS B |
69 | 818 BSR LC5BD |
819 PSHU B | |
820 PULS B | |
821 BCC LC5BA | |
822 LSLB | |
823 ROLA | |
824 LSLB | |
825 ROLA | |
826 LSLB | |
827 ROLA | |
828 LSLB | |
829 ROLA | |
830 ADDB ,U+ | |
831 BRA LC5A4 | |
70 | 832 LC5BA LEAU +$01,U |
69 | 833 RTS |
70 | 834 LC5BD LEAX +$01,X |
69 | 835 LDB ,X |
836 SUBB #$30 | |
837 BCS LC5D2 | |
838 CMPB #$0A | |
839 BCS LC5D1 | |
840 SUBB #$07 | |
841 CMPB #$0A | |
842 BCS LC5D2 | |
843 CMPB #$10 | |
70 | 844 LC5D1 RTS |
845 LC5D2 ANDCC #$FE | |
69 | 846 RTS |
70 | 847 LC5D5 LBSR LC397 |
82 | 848 GETLIN LDB #$3A |
849 LBSR OUTC1 | |
73 | 850 LDX <linetop |
69 | 851 TST <$8C |
852 BNE LC5F2 | |
853 LDD <$88 | |
854 LBMI LC020 | |
855 LBSR LC443 | |
856 LDB #$20 | |
857 STB -$01,X | |
82 | 858 BSR OUTC1 |
859 LC5F2 BSR GETC1 | |
69 | 860 CMPB #$08 |
861 BEQ LC634 | |
862 CMPB #$0D | |
863 BCS LC5F2 | |
864 BEQ LC611 | |
865 CMPB #$18 | |
866 BEQ LC5D5 | |
867 STB ,X+ | |
73 | 868 CMPX <lineend |
69 | 869 BNE LC5F2 |
870 LEAX -$01,X | |
871 LDB #$08 | |
82 | 872 BSR OUTC1 |
69 | 873 BRA LC5F2 |
70 | 874 LC611 TST <$8C |
69 | 875 BNE LC626 |
73 | 876 CMPX <lineb9b |
69 | 877 BEQ LC61F |
73 | 878 CMPX <lineb9a |
69 | 879 BCC LC626 |
70 | 880 LC61F COM <$8C |
69 | 881 LBSR LC39B |
82 | 882 BRA GETLIN |
70 | 883 LC626 LDD <$88 |
69 | 884 ADDD <$8A |
885 STD <$88 | |
886 CLR ,X | |
73 | 887 LDX <linetop |
69 | 888 LBRA LC39B |
70 | 889 LC634 LEAX -$01,X |
73 | 890 CMPX <lineb0 |
69 | 891 BNE LC5F2 |
892 STB <$8C | |
82 | 893 LBRA GETLIN |
894 PRMPT | |
69 | 895 FCB $D,$A |
72 | 896 FCC "*READY" |
69 | 897 FCB $D,$A,0 |
68 | 898 |
82 | 899 OUTC1 LBRA OUTCH |
900 GETC1 LBRA GETCH | |
71 | 901 LC650 LBRA SENSE |
70 | 902 |
903 LC653 CMPA #$2E EXBOP | |
69 | 904 BNE LC65E |
905 PULU B,A | |
906 ORA ,U+ | |
907 ORB ,U+ | |
908 RTS | |
70 | 909 LC65E CMPA #$26 |
69 | 910 BNE LC669 |
911 PULU B,A | |
912 ANDA ,U+ | |
913 ANDB ,U+ | |
914 RTS | |
70 | 915 LC669 CMPA #$21 |
69 | 916 LBNE LC4B5 |
917 PULU B,A | |
918 EORA ,U+ | |
919 EORB ,U+ | |
920 RTS | |
70 | 921 LC676 LDD +$01,X EXTEND |
69 | 922 LEAX +$03,X |
923 PSHS U,X,B,A | |
924 LEAY >OPCMD,PCR | |
70 | 925 LC680 LDX ,Y |
69 | 926 BMI LC6E7 |
927 CMPX ,S | |
928 BEQ LC68C | |
929 LEAY +$05,Y | |
930 BRA LC680 | |
70 | 931 LC68C LEAY +$03,Y |
69 | 932 LEAS +$02,S |
933 LDX ,S | |
934 LDA -$01,Y | |
935 BEQ LC6C3 | |
936 PSHS Y,A | |
937 LDA #$20 | |
70 | 938 LC69A CMPA ,X+ |
69 | 939 BEQ LC69A |
940 LDA ,-X | |
941 STX +$03,S | |
70 | 942 LC6A2 BITA #$DF |
69 | 943 BEQ LC6B0 |
112 | 944 CMPA #$2C , |
69 | 945 BEQ LC6AE |
112 | 946 CMPA #$22 " |
947 BNE LCXXX | |
948 leax 1,x | |
949 PSHS X | |
950 LDA #$22 | |
951 LXX1 tst ,x | |
952 beq LXX2 | |
953 cmpa ,x+ | |
954 bne LXX1 | |
955 clr -1,x | |
956 leax 1,x | |
957 LXX2 PULS D | |
958 BRA LC6B3 | |
959 LCXXX BSR LC6C9 | |
69 | 960 BRA LC6B3 |
70 | 961 LC6AE LEAX +$01,X |
71 | 962 LC6B0 LDD #$FFFF |
70 | 963 LC6B3 PSHU B,A |
69 | 964 LDA ,X |
965 DEC ,S | |
966 BNE LC6A2 | |
967 LDD +$03,S | |
968 STX +$03,S | |
969 TFR D,X | |
970 PULS Y,A | |
70 | 971 LC6C3 LDD ,Y |
69 | 972 JSR D,Y |
973 PULS PC,U,X | |
82 | 974 LC6C9 LBSR EXPR |
70 | 975 LC6CC PSHS B |
69 | 976 LDB ,X |
977 BITB #$DF | |
978 BEQ LC6E5 | |
979 CMPB #$2C | |
980 BEQ LC6E3 | |
981 CMPB #$29 | |
982 BEQ LC6E3 | |
983 PULS B | |
984 LBSR LC29C | |
985 BRA LC6CC | |
70 | 986 LC6E3 LEAX +$01,X |
987 LC6E5 PULS PC,B | |
988 LC6E7 PULS U,X,B,A | |
69 | 989 LBRA LC4F9 |
70 | 990 LC6EC LEAX +$01,X |
69 | 991 LDB ,X+ |
70 | 992 LC6F0 LDA ,X+ |
69 | 993 BEQ LC6F8 |
994 CMPA #$22 | |
995 BNE LC6F0 | |
70 | 996 LC6F8 CLRA |
69 | 997 RTS |
998 | |
72 | 999 OUTCH PSHS X,Y |
1000 BRA OUTCH1 | |
1001 GETCH | |
77
11e19ea1a7ea
save register in outch/getch
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
76
diff
changeset
|
1002 PSHS A,B,X,Y |
72 | 1003 GETCH0 |
1004 LDA #0 | |
77
11e19ea1a7ea
save register in outch/getch
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
76
diff
changeset
|
1005 LEAX 1,S |
70 | 1006 LDY #1 |
1007 OS9 I$Read | |
72 | 1008 BCS GETCH0 |
77
11e19ea1a7ea
save register in outch/getch
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
76
diff
changeset
|
1009 PULS A,B,X,Y,PC |
11e19ea1a7ea
save register in outch/getch
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
76
diff
changeset
|
1010 OUTCH1 PSHS A,B |
11e19ea1a7ea
save register in outch/getch
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
76
diff
changeset
|
1011 LEAX 1,S |
70 | 1012 LDA #1 |
1013 LDY #1 | |
1014 OS9 I$Write | |
77
11e19ea1a7ea
save register in outch/getch
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
76
diff
changeset
|
1015 PULS A,B,X,Y,PC |
76 | 1016 SENSE PSHS X,Y,D |
72 | 1017 LDA #0 |
70 | 1018 LDB #SS.Ready |
76 | 1019 OS9 I$GetStt |
73 | 1020 CMPB #$F6 Not Ready |
1021 BNE RSENSE | |
1022 CLRB | |
76 | 1023 PULS X,Y,D,PC |
73 | 1024 RSENSE |
1025 ORCC #1 set carry to indicate ready | |
1026 RNSENSE | |
76 | 1027 PULS X,Y,D,PC |
70 | 1028 |
69 | 1029 |
68 | 1030 |
69 | 1031 * COMMAND TABLE CONSIST.... |
1032 * COMMAND NAME (2 BYTE) | |
1033 * PARAMETER COUNT (1 BYTE) | |
1034 * OFSET TO SUBROUTIE FROM HERE (1 WORD) | |
1035 ************************** | |
1036 OPCMD FCB 'A','T',2 START LINE,STEP | |
1037 FDB CAUTO-* | |
1038 FCB 'R','N',3 RENUM first line no,inc,renum start | |
1039 FDB RENUM-* | |
112 | 1040 FCB 'L','D',1 load file-name |
1041 FDB pload-* | |
69 | 1042 * FCB 'R','D',3 DISK READ address,track,sector |
1043 * FDB GETDK-* | |
1044 * FCB 'W','R',3 DISK WRITE | |
1045 * FDB PUTDK-* | |
1046 FCB 'S','Y',0 TO SYSTEM | |
1047 FDB SYSTEM-* | |
1048 FDB -1,-1,-1,-1,-1,-1 | |
1049 ************************* | |
1050 RENUM | |
1051 LDD ,U++ | |
1052 BPL LC762 | |
1053 CLRA | |
1054 CLRB | |
70 | 1055 LC762 STD <$4A |
69 | 1056 LBSR LC09C |
1057 BMI LC789 | |
1058 LDD ,U++ | |
1059 BPL LC770 | |
1060 LDD #$00A | |
70 | 1061 LC770 LDY ,U++ |
69 | 1062 BPL LC779 |
112 | 1063 LDY #1000 |
70 | 1064 LC779 STY ,X++ |
69 | 1065 LBSR LC173 |
1066 LEAY D,Y | |
70 | 1067 LC781 TST ,X+ |
69 | 1068 BNE LC781 |
1069 TST ,X | |
1070 BPL LC779 | |
70 | 1071 LC789 RTS |
69 | 1072 CAUTO |
1073 LDD ,U++ | |
1074 BPL LC791 | |
1075 LDD #$00A | |
70 | 1076 LC791 STD <$8A |
69 | 1077 LDD ,U |
1078 BEQ LC79E | |
1079 BPL LC79C | |
112 | 1080 LDD #1000 |
70 | 1081 LC79C STD <$88 |
1082 LC79E CLR <$8C | |
69 | 1083 RTS |
1084 BSR LC7B6 | |
71 | 1085 * LBSR LCD09 |
69 | 1086 BNE LC7B1 |
1087 RTS | |
1088 BSR LC7B6 | |
71 | 1089 * LBSR LCD0C |
69 | 1090 BNE LC7B1 |
1091 RTS | |
70 | 1092 LC7B1 LDA #$44 |
69 | 1093 LBRA LC4F9 |
70 | 1094 LC7B6 LDX +$04,U |
69 | 1095 LDA +$03,U |
1096 LDB +$01,U | |
1097 RTS | |
70 | 1098 SYSTEM clrb |
1099 os9 F$Exit | |
1100 rts | |
112 | 1101 |
1102 pload pshs a,x,y | |
1103 ldx ,u | |
1104 lda #1 | |
1105 os9 I$Open | |
116 | 1106 bcs ploader1 |
112 | 1107 sta ,s |
1108 ploadloop | |
1109 lda ,s | |
1110 ldx <DPWORK | |
1111 leax linebuf,x | |
1112 ldy #252 | |
1113 os9 I$ReadLn | |
1114 bcs ploaderr | |
1115 lbsr LC373 | |
1116 bcc ploadloop | |
1117 ldy <$50 | |
1118 std ,y++ | |
1119 lda ,x+ | |
1120 cmpa #$20 | |
1121 bne ploaderr | |
1122 pl01 lda ,x+ | |
1123 beq pl02 | |
1124 cmpa #$d | |
1125 beq pl02 | |
1126 cmpa #$a | |
1127 beq pl02 | |
1128 sta ,y+ | |
1129 bra pl01 | |
1130 pl02 clra | |
1131 sta ,y+ | |
1132 ldd #-1 | |
1133 std ,y | |
1134 sty <$50 | |
1135 bra ploadloop | |
1136 ploaderr | |
1137 lda ,s | |
1138 os9 I$Close | |
116 | 1139 ploader1 |
112 | 1140 puls a,x,y |
1141 lbra warmst | |
1142 | |
70 | 1143 emod |
71 | 1144 eom equ * |
70 | 1145 end |