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.
148 lines
1.7 KiB
148 lines
1.7 KiB
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
|
|
|