GameBoy test ROMs for Plip.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

129 lines
1.5 KiB

HeaderTitle EQUS "\"CALLRET\""
include "common/defines.inc"
include "common/header.inc"
include "common/functions.inc"
; 1: call / ret
; 2: call / ret nz
; 3: call / ret z
; 4: call / ret nc
; 5: call / ret c
; 6: call nz / ret
; 7: call z / ret
; 8: call nc / ret
; 9: call c / ret
SECTION "home", ROM0
ProgramStart:
call waitVBlank
ld b, $ff ; Fill color.
; disable the LCD while we clear the logo
ld hl, $ff40
ld a, [hl]
res 7, a
ld [hl], a
call clearLogo
; enable the LCD
ld hl, $ff40
ld a, [hl]
set 7, a
ld [hl], a
call waitVBlank
ld hl, $8010
call fillTile
call waitVBlank
call retNz
ld hl, $8040
call fillTile
call waitVBlank
call retZ
ld hl, $8060
call fillTile
call waitVBlank
call retNc
ld hl, $8080
call fillTile
call waitVBlank
call retC
ld hl, $80a0
call fillTile
call waitVBlank
ld a, 2
dec a
ld hl, $8110
call nz, fillTile
call waitVBlank
ld a, 1
dec a
ld hl, $8130
call z, fillTile
call waitVBlank
ld a, 200
add a, 55
ld hl, $8150
call nc, fillTile
call waitVBlank
ld a, 255
add a, 1
ld hl, $8170
call c, fillTile
loop:
jr loop
SECTION "clearLogo", ROM0[$200]
clearLogo:
ld hl, $81A0
.clearLoop:
ld a, $0
ld [hld], a
ld a, h
cp $80
jr nz, .clearLoop
ld a, l
cp $10
jr nz, .clearLoop
ret
SECTION "retTests", ROM0[$220]
retError:
jr retError
retNz:
ld a, 2
dec a
ret nz
jr retError
retZ:
ld a, 1
dec a
ret z
jr retError
retNc:
ld a, 200
add a, 55
ret nc
jr retError
retC:
ld a, 255
add a, 1
ret c
jr retError