-; Core instruction basic acceptance tests.
-insntest:
- ld hl, .insnteststr
- call puts
-
- ; Test PUSH and POP.
- ld b, $12
- ld c, $34
- ld d, $56
- ld e, $78
- push bc
- pop de
- ld hl, .pushpopfail
- ld a, d
- cp b
- jp nz,.fail
- ld a, e
- cp c
- jp nz,.fail
-
- ; Test ALU (HL).
- ld hl, .ff
- ld a, $FF
- xor [hl]
- ld hl, .xorhlfail
- jp nz, .fail
-
- ; Test CP.
- ld hl, .cpfail
- ld a, $10
- ld b, $20
- cp b
- jp nc,.fail
- ld a, $20
- ld b, $10
- cp b
- jp c,.fail
-
- ; Test CPL
- ld hl, .cplfail
- ld a, $55
- ld b, $AA
- cpl
- cp b
- jp nz,.fail
-
- ld hl, .ok
- call puts
- ret
-.fail:
- call puts
- ret
-.insnteststr:
- db "Testing instructions... ",$0
-.pushpopfail:
- db "PUSH/POP test failed.",$0D,$0A,0
-.ff:
- db $FF
-.xorhlfail:
- db "XOR [HL] test failed.",$0D,$0A,0
-.cpfail:
- db "CP test failed.",$0D,$0A,0
-.cplfail:
- db "CPL test failed.",$0D,$0A,0
-.ok:
- db "OK!",$0D,$0A,0
+ POP HL
+ POP DE
+ POP BC
+ POP AF
+ RETI
+ db $18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE
+ db $18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE
+ db $18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE,$18,$FE