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