diff options
Diffstat (limited to 'macros.asm')
-rw-r--r-- | macros.asm | 48 |
1 files changed, 22 insertions, 26 deletions
diff --git a/macros.asm b/macros.asm index e366ad498..b91fa2e3d 100644 --- a/macros.asm +++ b/macros.asm @@ -14,6 +14,7 @@ INCLUDE "macros/predef.asm" INCLUDE "macros/rst.asm" INCLUDE "macros/mobile.asm" INCLUDE "macros/trainer.asm" +INCLUDE "macros/map_setup.asm" @@ -78,17 +79,28 @@ bigdw: MACRO ; big-endian word dx 2, \1 ENDM +dba: MACRO ; dbw bank, address + dbw BANK(\1), \1 + ENDM + +dab: MACRO ; dwb address, bank + dwb \1, BANK(\1) + ENDM lb: MACRO ; r, hi, lo ld \1, (\2) << 8 + (\3) ENDM +ln: MACRO ; r, hi, lo + ld \1, (\2) << 4 + (\3) + ENDM bccoord equs "coord bc," decoord equs "coord de," hlcoord equs "coord hl," coord: MACRO +; register, x, y[, origin] if _NARG < 4 ld \1, TileMap + SCREEN_WIDTH * (\3) + (\2) else @@ -104,7 +116,7 @@ dwcoord: MACRO endr ENDM -ldcoord: MACRO +ldcoord_a: MACRO if _NARG < 3 ld [TileMap + SCREEN_WIDTH * (\2) + (\1)], a else @@ -112,6 +124,14 @@ ldcoord: MACRO endc ENDM +lda_coord: MACRO + if _NARG < 3 + ld a, [TileMap + SCREEN_WIDTH * (\2) + (\1)] + else + ld a, [\3 + SCREEN_WIDTH * (\2) + (\1)] + endc + ENDM + ; pic animations frame: MACRO db \1 @@ -150,28 +170,4 @@ bcd: MACRO endr ENDM -ln: MACRO - if _NARG == 5 - lb \1, \2 << 4 + \3, \4 << 4 + \5 - else - if _NARG == 3 - ld \1, \2 << 4 + \3 - else - fail "incorrect number of arguments for ln" - endc - endc -ENDM - -dwtile: MACRO - dw (\1 << 4) + \2 - if _NARG > 2 - rept _NARG + -2 - dw \3 - shift - endr - endc -ENDM - -ldtile: MACRO - ld \1, (\2 << 4) + \3 -ENDM +tile EQUS "+ $10 *" |