From 7d216ad14f09dbc70f0ce8f6c0fd814c68a4a97e Mon Sep 17 00:00:00 2001 From: Ian Burgmyer Date: Mon, 7 Sep 2020 21:59:32 -0400 Subject: [PATCH] Added SP validation to cpu/callRet.asm. --- cpu/callRet.asm | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/cpu/callRet.asm b/cpu/callRet.asm index b0b438f..464dd08 100644 --- a/cpu/callRet.asm +++ b/cpu/callRet.asm @@ -18,14 +18,16 @@ SECTION "home", ROM0 ProgramStart: call waitVBlank - ld b, $ff ; Fill color. + ld b, $ff ; Fill pattern. call clearLogo + ; Simple call. call waitVBlank ld hl, $8010 call fillTile + ; Conditional returns. call waitVBlank call retNz ld hl, $8040 @@ -46,30 +48,43 @@ ProgramStart: ld hl, $80a0 call fillTile + ; Conditional calls. call waitVBlank ld a, 2 dec a - ld hl, $8110 + ld hl, $80f0 call nz, fillTile call waitVBlank ld a, 1 dec a - ld hl, $8130 + ld hl, $8110 call z, fillTile call waitVBlank ld a, 200 add a, 55 - ld hl, $8150 + ld hl, $8130 call nc, fillTile call waitVBlank ld a, 255 add a, 1 - ld hl, $8170 + ld hl, $8150 call c, fillTile + ; Stack pointer validation. + ld hl, sp+$00 + ld a, h + cp $ff + jr nz, loop + ld a, l + cp $fe + jr nz, loop + ld hl, $8180 + call waitVBlank + call fillTile + loop: jr loop