79 lines
1.1 KiB
ArmAsm
79 lines
1.1 KiB
ArmAsm
; Tests instructions that don't fit template
|
|
|
|
.include "shell.inc"
|
|
|
|
main:
|
|
set_test 2,"JR negative"
|
|
ld a,0
|
|
jp jr_neg
|
|
inc a
|
|
- inc a
|
|
inc a
|
|
cp 2
|
|
jp nz,test_failed
|
|
jp +
|
|
jr_neg:
|
|
jr -
|
|
+
|
|
|
|
set_test 3,"JR positive"
|
|
ld a,0
|
|
jr +
|
|
inc a
|
|
+ inc a
|
|
inc a
|
|
cp 2
|
|
jp nz,test_failed
|
|
|
|
|
|
set_test 4,"LD PC,HL"
|
|
ld hl,+
|
|
ld a,0
|
|
ld pc,hl
|
|
inc a
|
|
+ inc a
|
|
inc a
|
|
cp 2
|
|
jp nz,test_failed
|
|
|
|
|
|
set_test 5,"POP AF"
|
|
ld bc,$1200
|
|
- push bc
|
|
pop af
|
|
push af
|
|
pop de
|
|
ld a,c
|
|
and $F0
|
|
cp e
|
|
jp nz,test_failed
|
|
inc b
|
|
inc c
|
|
jr nz,-
|
|
|
|
|
|
set_test 6,"DAA"
|
|
; Test all combinations of A and flags (256*16 total)
|
|
ld de,0
|
|
- push de
|
|
pop af
|
|
daa
|
|
|
|
push af
|
|
call update_crc
|
|
pop hl
|
|
ld a,l
|
|
call update_crc
|
|
|
|
inc d
|
|
jr nz,-
|
|
|
|
ld a,e
|
|
add $10
|
|
ld e,a
|
|
jr nz,-
|
|
|
|
check_crc $6A9F8D8A
|
|
|
|
jp tests_passed
|