Ian Burgmyer
4 years ago
2 changed files with 166 additions and 3 deletions
@ -0,0 +1,148 @@ |
|||||||
|
HeaderTitle EQUS "\"CALLRET\"" |
||||||
|
|
||||||
|
include "common/defines.inc" |
||||||
|
include "common/header.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 |
||||||
|
|
||||||
|
; 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 drawRect |
||||||
|
|
||||||
|
call waitVBlank |
||||||
|
call retNz |
||||||
|
ld hl, $8040 |
||||||
|
call drawRect |
||||||
|
|
||||||
|
call waitVBlank |
||||||
|
call retZ |
||||||
|
ld hl, $8060 |
||||||
|
call drawRect |
||||||
|
|
||||||
|
call waitVBlank |
||||||
|
call retNc |
||||||
|
ld hl, $8080 |
||||||
|
call drawRect |
||||||
|
|
||||||
|
call waitVBlank |
||||||
|
call retC |
||||||
|
ld hl, $80a0 |
||||||
|
call drawRect |
||||||
|
|
||||||
|
call waitVBlank |
||||||
|
ld a, 2 |
||||||
|
dec a |
||||||
|
ld hl, $8110 |
||||||
|
call nz, drawRect |
||||||
|
|
||||||
|
call waitVBlank |
||||||
|
ld a, 1 |
||||||
|
dec a |
||||||
|
ld hl, $8130 |
||||||
|
call z, drawRect |
||||||
|
|
||||||
|
call waitVBlank |
||||||
|
ld a, 2 |
||||||
|
dec a |
||||||
|
ld hl, $8150 |
||||||
|
call nc, drawRect |
||||||
|
|
||||||
|
call waitVBlank |
||||||
|
ld a, 255 |
||||||
|
add a, 1 |
||||||
|
ld hl, $8170 |
||||||
|
call c, drawRect |
||||||
|
|
||||||
|
loop: |
||||||
|
jr loop |
||||||
|
|
||||||
|
|
||||||
|
SECTION "waitVBlank", ROM0[$200] |
||||||
|
waitVBlank: |
||||||
|
ldh a, [$ff44] |
||||||
|
cp $90 |
||||||
|
jr nz, waitVBlank |
||||||
|
ret |
||||||
|
|
||||||
|
|
||||||
|
SECTION "clearLogo", ROM0[$220] |
||||||
|
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 "drawRect", ROM0[$240] |
||||||
|
drawRect: |
||||||
|
push af |
||||||
|
push de |
||||||
|
ld d, 16 |
||||||
|
ld a, $ff |
||||||
|
.logoDraw: |
||||||
|
ld [hli], a |
||||||
|
dec d |
||||||
|
jr nz, .logoDraw |
||||||
|
pop de |
||||||
|
pop af |
||||||
|
ret |
||||||
|
|
||||||
|
SECTION "ret", ROM0[$300] |
||||||
|
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, 2 |
||||||
|
dec a |
||||||
|
ret nc |
||||||
|
jr retError |
||||||
|
|
||||||
|
retC: |
||||||
|
ld a, 255 |
||||||
|
add a, 1 |
||||||
|
ret c |
||||||
|
jr retError |
Loading…
Reference in new issue