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.
 
 

119 lines
1.4 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 pattern.
ld sp, $e000
call clearLogo
; Simple call.
call waitVBlank
ld hl, $8010
call fillTile
; Conditional returns.
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
; Conditional calls.
call waitVBlank
ld a, 2
dec a
ld hl, $80f0
call nz, fillTile
call waitVBlank
ld a, 1
dec a
ld hl, $8110
call z, fillTile
call waitVBlank
ld a, 200
add a, 55
ld hl, $8130
call nc, fillTile
call waitVBlank
ld a, 255
add a, 1
ld hl, $8150
call c, fillTile
; Stack pointer validation.
ld hl, sp+$00
ld a, h
cp $e0
jr nz, loop
ld a, l
cp $00
jr nz, loop
ld hl, $8180
call waitVBlank
call fillTile
loop:
jr loop
SECTION "retTests", ROM0[$200]
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