mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-09-09 09:51:34 -07:00
split Predef into common/predef.asm
This commit is contained in:
parent
4778276f33
commit
abb7f2fa20
54
common/predef.asm
Normal file
54
common/predef.asm
Normal file
@ -0,0 +1,54 @@
|
||||
Predef: ; 2d83
|
||||
; Call predefined function a.
|
||||
; Preserves bc, de, hl and f.
|
||||
|
||||
ld [PredefID], a
|
||||
ld a, [hROMBank]
|
||||
push af
|
||||
|
||||
ld a, BANK(GetPredefPointer)
|
||||
rst Bankswitch
|
||||
call GetPredefPointer ; stores hl in PredefTemp
|
||||
|
||||
; 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, [PredefAddress]
|
||||
ld h, a
|
||||
ld a, [PredefAddress + 1]
|
||||
ld l, a
|
||||
push hl
|
||||
|
||||
; Get hl back
|
||||
ld a, [PredefTemp]
|
||||
ld h, a
|
||||
ld a, [PredefTemp + 1]
|
||||
ld l, a
|
||||
ret
|
||||
|
||||
.Return
|
||||
; Clean up after the Predef call
|
||||
|
||||
ld a, h
|
||||
ld [PredefTemp], a
|
||||
ld a, l
|
||||
ld [PredefTemp+1], a
|
||||
|
||||
pop hl
|
||||
ld a, h
|
||||
rst Bankswitch
|
||||
|
||||
ld a, [PredefTemp]
|
||||
ld h, a
|
||||
ld a, [PredefTemp + 1]
|
||||
ld l, a
|
||||
ret
|
||||
; 2dba
|
||||
|
55
main.asm
55
main.asm
@ -505,60 +505,7 @@ Function2d43: ; 2d43
|
||||
|
||||
INCLUDE "common/farcall.asm"
|
||||
|
||||
|
||||
Predef: ; 2d83
|
||||
; Call predefined function a.
|
||||
; Preserves bc, de, hl and f.
|
||||
|
||||
ld [PredefID], a
|
||||
ld a, [hROMBank]
|
||||
push af
|
||||
|
||||
ld a, BANK(GetPredefPointer)
|
||||
rst Bankswitch
|
||||
call GetPredefPointer ; stores hl in PredefTemp
|
||||
|
||||
; 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, [PredefAddress]
|
||||
ld h, a
|
||||
ld a, [PredefAddress + 1]
|
||||
ld l, a
|
||||
push hl
|
||||
|
||||
; Get hl back
|
||||
ld a, [PredefTemp]
|
||||
ld h, a
|
||||
ld a, [PredefTemp + 1]
|
||||
ld l, a
|
||||
ret
|
||||
|
||||
.Return
|
||||
; Clean up after the Predef call
|
||||
|
||||
ld a, h
|
||||
ld [PredefTemp], a
|
||||
ld a, l
|
||||
ld [PredefTemp+1], a
|
||||
|
||||
pop hl
|
||||
ld a, h
|
||||
rst Bankswitch
|
||||
|
||||
ld a, [PredefTemp]
|
||||
ld h, a
|
||||
ld a, [PredefTemp + 1]
|
||||
ld l, a
|
||||
ret
|
||||
; 2dba
|
||||
INCLUDE "common/predef.asm"
|
||||
|
||||
|
||||
ResetWindow: ; 2dba
|
||||
|
Loading…
Reference in New Issue
Block a user