You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-09-08 08:13:02 -07:00
split Predef into common/predef.asm
This commit is contained in:
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"
|
INCLUDE "common/farcall.asm"
|
||||||
|
|
||||||
|
INCLUDE "common/predef.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
|
|
||||||
|
|
||||||
|
|
||||||
ResetWindow: ; 2dba
|
ResetWindow: ; 2dba
|
||||||
|
Reference in New Issue
Block a user