diff options
author | Astatin <[email protected]> | 2024-11-05 19:42:46 +0900 |
---|---|---|
committer | Astatin <[email protected]> | 2024-11-05 19:42:46 +0900 |
commit | 6c8f7c72cb96ce59ffcda5279225381ecb394b4f (patch) | |
tree | 941e6b464bd0fe90b325ae792b3a6fdbdc9b40fe /utils.gbasm | |
parent | 14ae7d8def1159b395bf1176b351651cbd98ba19 (diff) |
Add a jump table macro
Diffstat (limited to 'utils.gbasm')
-rw-r--r-- | utils.gbasm | 24 |
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 |