87 lines
1.4 KiB
ArmAsm
87 lines
1.4 KiB
ArmAsm
; Things that don't cause corruption
|
|
|
|
.include "oam_bug.inc"
|
|
|
|
main:
|
|
save_sp
|
|
|
|
set_test 2,"When LCD is off"
|
|
call disable_lcd
|
|
call fill_oam
|
|
ld bc,2 * 70224/11 ; a couple of frames
|
|
ld de,$FE00
|
|
- inc de
|
|
dec bc
|
|
dec de
|
|
ld a,b
|
|
or c
|
|
jr nz,-
|
|
call end
|
|
|
|
set_test 3,"LD DE,$FF00 : DEC DE"
|
|
call begin
|
|
ld de,$FF00
|
|
dec de
|
|
call end
|
|
|
|
set_test 4,"LD DE,$FDFF : INC DE"
|
|
call begin
|
|
ld de,$FDFF
|
|
inc de
|
|
call end
|
|
|
|
set_test 5,"LD DE,$7E00 : INC DE"
|
|
call begin
|
|
ld de,$7E00
|
|
inc de
|
|
call end
|
|
|
|
set_test 6,"LD DE,$FE00 : INC E"
|
|
call begin
|
|
ld de,$FE00
|
|
inc e
|
|
call end
|
|
|
|
set_test 7,"LD SP,$FDFE : POP BC"
|
|
call begin
|
|
ld sp,$FDFE
|
|
pop bc
|
|
restore_sp
|
|
call end
|
|
|
|
set_test 8,"LD SP,$FE00 : LD HL,SP+1"
|
|
call begin
|
|
ld sp,$FE00
|
|
ld hl,sp+1
|
|
restore_sp
|
|
call end
|
|
|
|
set_test 9,"LD HL,$FE00 : LD BC,$0001 : ADD HL,BC"
|
|
call begin
|
|
ld hl,$FE00
|
|
ld bc,$0001
|
|
add hl,bc
|
|
call end
|
|
|
|
set_test 10,"LD SP,$FE00 : ADD SP,1"
|
|
call begin
|
|
ld sp,$FE00
|
|
add sp,1
|
|
restore_sp
|
|
call end
|
|
|
|
jp tests_passed
|
|
|
|
begin:
|
|
call disable_lcd
|
|
call fill_oam
|
|
wreg LCDC,$81
|
|
delay 70224 - 6
|
|
ret
|
|
|
|
end:
|
|
call disable_lcd
|
|
call cp_oam
|
|
jp nz,test_failed
|
|
ret
|