diff options
author | Bryan Bishop <kanzure@gmail.com> | 2013-09-09 15:56:49 -0500 |
---|---|---|
committer | Bryan Bishop <kanzure@gmail.com> | 2013-09-09 15:56:49 -0500 |
commit | 37e1aa4e8ec2400ba97db4c767bd3a9fcd43a1ac (patch) | |
tree | 68cb6273ed885d69512c4ba099298aad1534c6e4 /common/farcall.asm | |
parent | 35324ae43f845f4ce8346ef05fdf1bed8bed1e28 (diff) | |
parent | 705e6824687ed247a28cfbaedd47bf33bd1da32a (diff) |
Merge branch 'yenatch/split-predefs-specials-stds' into fix-split-predefs-specials-stds
https://github.com/kanzure/pokecrystal/pull/198
Diffstat (limited to 'common/farcall.asm')
-rw-r--r-- | common/farcall.asm | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/common/farcall.asm b/common/farcall.asm new file mode 100644 index 000000000..bdee3bf38 --- /dev/null +++ b/common/farcall.asm @@ -0,0 +1,55 @@ +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 + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + call Function2d82 +; 2d6e + +ReturnFarCall: ; 2d6e +; We want to retain the contents of f. +; To do this, we can pop to bc instead of af. + + ld a, b + ld [$cfb9], a + ld a, c + ld [$cfba], a + +; Restore the working bank. + pop bc + ld a, b + rst Bankswitch + + ld a, [$cfb9] + ld b, a + ld a, [$cfba] + ld c, a + ret +; 2d82 + +Function2d82: ; 2d82 + jp [hl] +; 2d83 + |