2018-06-24 14:09:41 +00:00
|
|
|
FarCall_de::
|
2013-09-05 18:24:29 +00:00
|
|
|
; Call a:de.
|
|
|
|
; Preserves other registers.
|
2020-04-06 17:02:23 +00:00
|
|
|
ldh [hTempBank], a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hROMBank]
|
2013-09-05 18:24:29 +00:00
|
|
|
push af
|
2020-04-06 17:02:23 +00:00
|
|
|
ldh a, [hTempBank]
|
2013-09-05 18:24:29 +00:00
|
|
|
rst Bankswitch
|
2020-06-29 23:35:47 +00:00
|
|
|
call FarCall_JumpToDE
|
2013-09-05 18:24:29 +00:00
|
|
|
jr ReturnFarCall
|
|
|
|
|
2020-06-29 23:35:47 +00:00
|
|
|
FarCall_JumpToDE:
|
2013-09-05 18:24:29 +00:00
|
|
|
push de
|
|
|
|
ret
|
|
|
|
|
2018-06-24 14:09:41 +00:00
|
|
|
FarCall_hl::
|
2013-09-05 18:24:29 +00:00
|
|
|
; Call a:hl.
|
|
|
|
; Preserves other registers.
|
2020-04-06 17:02:23 +00:00
|
|
|
ldh [hTempBank], a
|
2018-08-25 18:28:22 +00:00
|
|
|
ldh a, [hROMBank]
|
2013-09-05 18:24:29 +00:00
|
|
|
push af
|
2020-04-06 17:02:23 +00:00
|
|
|
ldh a, [hTempBank]
|
2013-09-05 18:24:29 +00:00
|
|
|
rst Bankswitch
|
2019-11-24 01:56:22 +00:00
|
|
|
call FarCall_JumpToHL
|
2020-06-21 22:33:31 +00:00
|
|
|
; fallthrough
|
2013-09-05 18:24:29 +00:00
|
|
|
|
2018-06-24 14:09:41 +00:00
|
|
|
ReturnFarCall::
|
2013-09-05 18:24:29 +00:00
|
|
|
; We want to retain the contents of f.
|
|
|
|
; To do this, we can pop to bc instead of af.
|
|
|
|
ld a, b
|
2020-12-23 21:29:30 +00:00
|
|
|
ld [wFarCallBC], a
|
2013-09-05 18:24:29 +00:00
|
|
|
ld a, c
|
2020-12-23 21:29:30 +00:00
|
|
|
ld [wFarCallBC + 1], a
|
2016-04-10 18:42:14 +00:00
|
|
|
|
2013-09-05 18:24:29 +00:00
|
|
|
; Restore the working bank.
|
|
|
|
pop bc
|
|
|
|
ld a, b
|
|
|
|
rst Bankswitch
|
2016-04-10 18:42:14 +00:00
|
|
|
|
2020-06-29 23:35:47 +00:00
|
|
|
; Restore the contents of bc.
|
2020-12-23 21:29:30 +00:00
|
|
|
ld a, [wFarCallBC]
|
2013-09-05 18:24:29 +00:00
|
|
|
ld b, a
|
2020-12-23 21:29:30 +00:00
|
|
|
ld a, [wFarCallBC + 1]
|
2013-09-05 18:24:29 +00:00
|
|
|
ld c, a
|
|
|
|
ret
|
|
|
|
|
2019-11-24 01:56:22 +00:00
|
|
|
FarCall_JumpToHL::
|
2017-06-09 21:01:10 +00:00
|
|
|
jp hl
|