diff options
author | libjet <libj3t@gmail.com> | 2020-03-16 00:44:13 +0000 |
---|---|---|
committer | libjet <libj3t@gmail.com> | 2020-03-16 00:44:13 +0000 |
commit | 6231351906960364a5ad2f34efefd809cceb0eb8 (patch) | |
tree | 709f2f908d9e1c2f7a882d628ff09b80de3c9e8b /home/farcall.asm | |
parent | 4ad17cc30e6b70be19badd175558c438fc9adaf6 (diff) |
Sync home/ with pokecrystal
Diffstat (limited to 'home/farcall.asm')
-rw-r--r-- | home/farcall.asm | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/home/farcall.asm b/home/farcall.asm index f42133b3..1c8b6f3f 100644 --- a/home/farcall.asm +++ b/home/farcall.asm @@ -1,22 +1,33 @@ -FarCall_hl:: ; 2e27 (0:2e27) +FarCall_hl:: +; Call a:hl. +; Preserves other registers. + ld [wBuffer], a ldh a, [hROMBank] push af ld a, [wBuffer] rst Bankswitch - call ._hl_ + call FarCall_JumpToHL + +ReturnFarCall:: +; We want to retain the contents of f. +; To do this, we can pop to bc instead of af. + ld a, b ld [wFarCallBCBuffer], a ld a, c ld [wFarCallBCBuffer + 1], a + +; Restore the working bank. pop bc ld a, b rst Bankswitch + ld a, [wFarCallBCBuffer] ld b, a ld a, [wFarCallBCBuffer + 1] ld c, a ret -._hl_ +FarCall_JumpToHL:: jp hl |