Add some failing tests for looping on the `n` flag.
Chris Pressey
4 years ago
5 | 5 |
dcc6502 -o 0xf000 -m 200 smiley.bin > smiley.bin.disasm.txt
|
6 | 6 |
dcc6502 -o 0xf000 -m 200 smiley-60p.bin > smiley-60p.bin.disasm.txt
|
7 | 7 |
paste smiley.bin.disasm.txt smiley-60p.bin.disasm.txt | pr -t -e24
|
|
8 |
#diff -ru smiley.bin.disasm.txt smiley-60p.bin.disasm.txt
|
8 | 9 |
fi
|
356 | 356 |
= $0813 LDY #$01
|
357 | 357 |
= $0815 RTS
|
358 | 358 |
|
359 | |
Compiling `repeat`.
|
|
359 |
Compiling `repeat ... until z`.
|
360 | 360 |
|
361 | 361 |
| routine main
|
362 | 362 |
| trashes a, y, z, n, c
|
|
375 | 375 |
= $0813 BNE $080F
|
376 | 376 |
= $0815 RTS
|
377 | 377 |
|
378 | |
Compiling `repeat until not`.
|
|
378 |
Compiling `repeat ... until not z`.
|
379 | 379 |
|
380 | 380 |
| routine main
|
381 | 381 |
| trashes a, y, z, n, c
|
|
393 | 393 |
= $0811 CPY #$5B
|
394 | 394 |
= $0813 BEQ $080F
|
395 | 395 |
= $0815 RTS
|
|
396 |
|
|
397 |
Compiling `repeat ... until n`.
|
|
398 |
|
|
399 |
| routine main
|
|
400 |
| trashes a, y, z, n, c
|
|
401 |
| {
|
|
402 |
| ld y, 65
|
|
403 |
| repeat {
|
|
404 |
| ld a, y
|
|
405 |
| dec y
|
|
406 |
| } until n
|
|
407 |
| }
|
|
408 |
= $080D LDY #$41
|
|
409 |
= $080F TYA
|
|
410 |
= $0810 DEY
|
|
411 |
= $0811 BPL $080F
|
|
412 |
= $0813 RTS
|
|
413 |
|
|
414 |
Compiling `repeat ... until not n`.
|
|
415 |
|
|
416 |
| routine main
|
|
417 |
| trashes a, y, z, n, c
|
|
418 |
| {
|
|
419 |
| ld y, 65
|
|
420 |
| repeat {
|
|
421 |
| ld a, y
|
|
422 |
| inc y
|
|
423 |
| } until not n
|
|
424 |
| }
|
|
425 |
= $080D LDY #$41
|
|
426 |
= $080F TYA
|
|
427 |
= $0810 INY
|
|
428 |
= $0811 BMI $080F
|
|
429 |
= $0813 RTS
|
396 | 430 |
|
397 | 431 |
Compiling `repeat forever`.
|
398 | 432 |
|