summaryrefslogtreecommitdiff
path: root/macros/coords.asm
diff options
context:
space:
mode:
authorRemy Oukaour <remy.oukaour@gmail.com>2017-12-14 00:36:24 -0500
committerRemy Oukaour <remy.oukaour@gmail.com>2017-12-14 00:36:24 -0500
commite48a401290e794854880f06fc230a369f37e6b9b (patch)
treedcad6cd5d1a7e62a2f2a92522c5619d41dc416cf /macros/coords.asm
parent8745915dbd38e9647e0b27d20cb73da0fdde353f (diff)
Reorganize macros
Diffstat (limited to 'macros/coords.asm')
-rw-r--r--macros/coords.asm51
1 files changed, 51 insertions, 0 deletions
diff --git a/macros/coords.asm b/macros/coords.asm
new file mode 100644
index 000000000..2a672c3d0
--- /dev/null
+++ b/macros/coords.asm
@@ -0,0 +1,51 @@
+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
+ ld \1, \4 + SCREEN_WIDTH * (\3) + (\2)
+ endc
+ ENDM
+
+dwcoord: MACRO
+ rept _NARG / 2
+ dw TileMap + SCREEN_WIDTH * (\2) + (\1)
+ shift
+ shift
+ endr
+ ENDM
+
+ldcoord_a: MACRO
+ if _NARG < 3
+ ld [TileMap + SCREEN_WIDTH * (\2) + (\1)], a
+ else
+ ld [\3 + SCREEN_WIDTH * (\2) + (\1)], a
+ 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
+
+
+bgrows EQUS "* $20" ; SCREEN_WIDTH
+
+hlbgcoord EQUS "bgcoord hl,"
+debgcoord EQUS "bgcoord de,"
+bcbgcoord EQUS "bgcoord bc,"
+
+bgcoord: MACRO
+IF _NARG >= 4
+ ld \1, \3 bgrows + \2 + \4
+ELSE
+ ld \1, \3 bgrows + \2 + VBGMap0
+ENDC
+ENDM