summaryrefslogtreecommitdiff
path: root/home/farcall.asm
diff options
context:
space:
mode:
Diffstat (limited to 'home/farcall.asm')
-rw-r--r--home/farcall.asm42
1 files changed, 5 insertions, 37 deletions
diff --git a/home/farcall.asm b/home/farcall.asm
index 7c9fe105..cff96439 100644
--- a/home/farcall.asm
+++ b/home/farcall.asm
@@ -1,54 +1,22 @@
-FarCall_de:: ; 2d54
-; Call a:de.
-; Preserves other registers.
-
- ld [hBuffer], a
- ld a, [hROMBank]
- push af
- ld a, [hBuffer]
- rst Bankswitch
- call .de
- jr ReturnFarCall
-
-.de
- push de
- ret
-; 2d63
-
-
-FarCall_hl:: ; 2d63
-; Call a:hl.
-; Preserves other registers.
-
- ld [hBuffer], a
+FarCall_hl:: ; 2e27 (0:2e27)
+ ld [wBuffer], a
ld a, [hROMBank]
push af
- ld a, [hBuffer]
+ ld a, [wBuffer]
rst Bankswitch
- call FarJump_hl
-; 2d6e
-
-ReturnFarCall:: ; 2d6e
-; We want to retain the contents of f.
-; To do this, we can pop to bc instead of af.
-
+ call ._hl_
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
-; 2d82
-FarJump_hl:: ; 2d82
+._hl_
jp [hl]
-; 2d83