aboutsummaryrefslogtreecommitdiff
path: root/utils.gbasm
diff options
context:
space:
mode:
Diffstat (limited to 'utils.gbasm')
-rw-r--r--utils.gbasm24
1 files changed, 24 insertions, 0 deletions
diff --git a/utils.gbasm b/utils.gbasm
index 5dad3a9..cb1822a 100644
--- a/utils.gbasm
+++ b/utils.gbasm
@@ -31,6 +31,30 @@ bzero: ; dest = HL, n = BC
$end:
.END
+.MACRODEF JUMP_TABLE ; Jump table pointer in BC, index in A, also overwrites DE
+ LD E, A
+ LD D, $00
+
+ SLA E
+ RL D
+ SLA E
+ RL D
+
+ LD A, E
+ ADD C
+ LD E, A
+ LD A, D
+ ADC B
+ LD D, A
+
+ ; CALL DE
+ LD BC, =$end
+ PUSH BC
+ PUSH DE
+ RET
+ $end:
+.END
+
Print_8bit: ; Number in A, Memory Tilemap position in HL
PUSH AF
PUSH BC