mirror of
https://github.com/pret/pokered.git
synced 2024-10-23 06:58:24 +00:00
bbf2f51a02
This results in 64 home/*.asm files, comparable to pokecrystal's 57.
47 lines
550 B
NASM
47 lines
550 B
NASM
CallFunctionInTable::
|
|
; Call function a in jumptable hl.
|
|
; de is not preserved.
|
|
push hl
|
|
push de
|
|
push bc
|
|
add a
|
|
ld d, 0
|
|
ld e, a
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld de, .returnAddress
|
|
push de
|
|
jp hl
|
|
.returnAddress
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
ret
|
|
|
|
IsInArray::
|
|
; Search an array at hl for the value in a.
|
|
; Entry size is de bytes.
|
|
; Return count b and carry if found.
|
|
ld b, 0
|
|
|
|
IsInRestOfArray::
|
|
ld c, a
|
|
.loop
|
|
ld a, [hl]
|
|
cp -1
|
|
jr z, .notfound
|
|
cp c
|
|
jr z, .found
|
|
inc b
|
|
add hl, de
|
|
jr .loop
|
|
|
|
.notfound
|
|
and a
|
|
ret
|
|
|
|
.found
|
|
scf
|
|
ret
|