blob: b3dac5bf4409d07e09bc8ee0487d1df90777945d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
FarCall_hl::
; Call a:hl.
; Preserves other registers.
ld [wTempBank], a
ldh a, [hROMBank]
push af
ld a, [wTempBank]
rst Bankswitch
call FarCall_JumpToHL
; We want to retain the contents of f.
; To do this, we can pop to bc instead of af.
ld a, b
ld [wFarCallBC], a
ld a, c
ld [wFarCallBC + 1], a
; Restore the working bank.
pop bc
ld a, b
rst Bankswitch
; Restore the contents of bc.
ld a, [wFarCallBC]
ld b, a
ld a, [wFarCallBC + 1]
ld c, a
ret
FarCall_JumpToHL::
jp hl
|