aboutsummaryrefslogtreecommitdiff
path: root/utils.gbasm
diff options
context:
space:
mode:
Diffstat (limited to 'utils.gbasm')
-rw-r--r--utils.gbasm16
1 files changed, 15 insertions, 1 deletions
diff --git a/utils.gbasm b/utils.gbasm
index 5d6f9e7..5c50ed3 100644
--- a/utils.gbasm
+++ b/utils.gbasm
@@ -409,7 +409,6 @@ VBlank_Wait:
POP AF
RET
-
.MACRODEF CHANGE_BANK_TO_A
LD $reg_rom_bank, A
LD $saved_rom_bank, A
@@ -430,6 +429,21 @@ VBlank_Wait:
CALL ptr(=addr)
.END
+Call_Save_Bank: ; Address in DE (bank 0) ; Breaks A
+ LD A, $saved_rom_bank
+ PUSH AF
+ .CALL_DE
+ LD A, $saved_rom_bank
+ POP AF
+ .CHANGE_BANK_TO_A
+ RET
+
+.MACRODEF CALL_SAVE_BANK =addr
+ .ASSERT bank(=addr) $00
+ LD DE, ptr(=addr)
+ CALL =Call_Save_Bank
+.END
+
.MACRODEF COPY_4BYTES dest src
LD A, ($src)
LD ($dest), A