167 lines
1.8 KiB
Plaintext
167 lines
1.8 KiB
Plaintext
bootrom ../bootrom.gb
|
|
echo Running test...
|
|
set quiet 1
|
|
|
|
assert $pc == 0
|
|
step
|
|
|
|
# Executed LD SP, D16 (0xfffe)
|
|
assert $pc == 3
|
|
assert $sp == 0xfffe
|
|
step
|
|
|
|
# Executed XOR A
|
|
assert $pc == 4
|
|
assert $a == 0
|
|
step
|
|
|
|
assert $pc == 7
|
|
assert $hl == 0x9fff
|
|
step
|
|
|
|
assert $pc == 8
|
|
assert $hl == 0x9ffe
|
|
step
|
|
|
|
assert $pc == 10
|
|
assert $f == 0x2
|
|
step
|
|
|
|
breakpoint add 0xc
|
|
step 100000
|
|
breakpoint del 0
|
|
|
|
assert $pc == 0xc
|
|
assert $hl == 0x7fff
|
|
|
|
# TODO: There is a bug in GBDB where breakpoints fire at the start of an
|
|
# instruction and "step" stops at the end of an instruction
|
|
step; step
|
|
|
|
assert $pc == 0xf
|
|
assert $hl == 0xff26
|
|
|
|
step
|
|
assert $pc == 0x11
|
|
assert $c == 0x11
|
|
|
|
step
|
|
assert $pc == 0x13
|
|
assert $a == 0x80
|
|
|
|
step
|
|
assert $pc == 0x14
|
|
assert $hl == 0xff25
|
|
|
|
step
|
|
assert $pc == 0x15
|
|
# LD (0xFF00 + $C), A
|
|
|
|
step
|
|
assert $pc == 0x16
|
|
assert $c == 0x12
|
|
|
|
|
|
break add 0x27
|
|
step 1000
|
|
assert $pc == 0x27
|
|
break del 0
|
|
|
|
step; step
|
|
assert $pc == 0x28
|
|
|
|
step
|
|
assert $pc == 0x95
|
|
|
|
step
|
|
assert $pc == 0x96
|
|
|
|
step
|
|
assert $pc == 0x98
|
|
|
|
step
|
|
assert $pc == 0x99
|
|
|
|
step
|
|
assert $pc == 0x9b
|
|
|
|
step
|
|
assert $pc == 0x9c
|
|
|
|
step
|
|
assert $pc == 0x9d
|
|
|
|
step
|
|
assert $pc == 0x9f
|
|
|
|
step
|
|
assert $pc == 0xa0
|
|
|
|
step
|
|
assert $pc == 0xa1
|
|
|
|
break add 0xa3
|
|
step 100000
|
|
break del 0
|
|
assert $pc == 0xa3
|
|
step #FIXME: bugs
|
|
|
|
step
|
|
assert $pc == 0xa4
|
|
|
|
step
|
|
assert $pc == 0xa5
|
|
|
|
step
|
|
assert $pc == 0xa6
|
|
|
|
step
|
|
assert $pc == 0xa7
|
|
|
|
step
|
|
assert $pc == 0x2b
|
|
|
|
step
|
|
assert $pc == 0x96
|
|
|
|
break add 0x34
|
|
step 10000
|
|
assert $pc == 0x34
|
|
break del 0
|
|
|
|
step; step
|
|
assert $pc == 0x37
|
|
assert $de == 0xd8
|
|
|
|
step;
|
|
assert $pc == 0x39
|
|
assert $b == 0x08
|
|
|
|
break add 0x40
|
|
step 10000
|
|
assert $pc == 0x40
|
|
assert $b == 0
|
|
break del 0
|
|
|
|
step; step
|
|
assert $pc == 0x42
|
|
assert $a == 0x19
|
|
|
|
step
|
|
assert $pc == 0x45
|
|
|
|
step
|
|
assert $pc == 0x48
|
|
assert $hl == 0x992f
|
|
|
|
step
|
|
assert $pc == 0x4a
|
|
assert $c == 0x0c
|
|
|
|
echo Test passed!
|
|
step 10000000
|
|
regs
|
|
stat
|
|
|
|
exit
|