summaryrefslogtreecommitdiff
path: root/macros.asm
diff options
context:
space:
mode:
Diffstat (limited to 'macros.asm')
-rw-r--r--macros.asm48
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 *"