mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-09-09 09:51:34 -07:00
99e66c2557
- Remove "Buffer" suffix from some byte and word quantities - Change "Ptr" to "Pointer" Fixes #789
53 lines
755 B
NASM
53 lines
755 B
NASM
Predef::
|
|
; Call predefined function a.
|
|
; Preserves bc, de, hl and f.
|
|
|
|
ld [wPredefID], a
|
|
ldh a, [hROMBank]
|
|
push af
|
|
|
|
ld a, BANK(GetPredefPointer)
|
|
rst Bankswitch
|
|
call GetPredefPointer ; stores hl in wPredefHL
|
|
|
|
; Switch to the new function's bank
|
|
rst Bankswitch
|
|
|
|
; Instead of directly calling stuff,
|
|
; push it to the stack in reverse.
|
|
|
|
ld hl, .Return
|
|
push hl
|
|
|
|
; Call the Predef function
|
|
ld a, [wPredefAddress]
|
|
ld h, a
|
|
ld a, [wPredefAddress + 1]
|
|
ld l, a
|
|
push hl
|
|
|
|
; Get hl back
|
|
ld a, [wPredefHL]
|
|
ld h, a
|
|
ld a, [wPredefHL + 1]
|
|
ld l, a
|
|
ret
|
|
|
|
.Return:
|
|
; Clean up after the Predef call
|
|
|
|
ld a, h
|
|
ld [wPredefHL], a
|
|
ld a, l
|
|
ld [wPredefHL + 1], a
|
|
|
|
pop hl
|
|
ld a, h
|
|
rst Bankswitch
|
|
|
|
ld a, [wPredefHL]
|
|
ld h, a
|
|
ld a, [wPredefHL + 1]
|
|
ld l, a
|
|
ret
|