diff options
author | Remy Oukaour <remy.oukaour@gmail.com> | 2017-12-29 16:05:33 -0500 |
---|---|---|
committer | Remy Oukaour <remy.oukaour@gmail.com> | 2017-12-29 16:05:33 -0500 |
commit | 2acc7f378a0a5a43de213d5dd791af3e95a05035 (patch) | |
tree | 97d0ed95d8729c652a5edbd6515725da4576e3d6 | |
parent | ab823e2b5473f840c038ea6f01ad43dadbddcb08 (diff) |
Coordinate macros all have similar structure
-rw-r--r-- | macros/coords.asm | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/macros/coords.asm b/macros/coords.asm index b889be765..777e798c9 100644 --- a/macros/coords.asm +++ b/macros/coords.asm @@ -1,51 +1,55 @@ +screenrows EQUS "* SCREEN_WIDTH" +bgrows EQUS "* BG_MAP_WIDTH" + +hlcoord EQUS "coord hl," 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) + ld \1, (\3) screenrows + (\2) + TileMap else - ld \1, \4 + SCREEN_WIDTH * (\3) + (\2) + ld \1, (\3) screenrows + (\2) + \4 + endc +ENDM + +hlbgcoord EQUS "bgcoord hl," +bcbgcoord EQUS "bgcoord bc," +debgcoord EQUS "bgcoord de," + +bgcoord: MACRO +; register, x, y[, origin] + if _NARG < 4 + ld \1, (\3) bgrows + (\2) + vBGMap0 + else + ld \1, (\3) bgrows + (\2) + \4 endc ENDM dwcoord: MACRO +; x, y rept _NARG / 2 - dw TileMap + SCREEN_WIDTH * (\2) + (\1) + dw (\2) screenrows + (\1) + TileMap shift shift endr ENDM ldcoord_a: MACRO +; x, y[, origin] if _NARG < 3 - ld [TileMap + SCREEN_WIDTH * (\2) + (\1)], a + ld [(\2) screenrows + (\1) + TileMap], a else - ld [\3 + SCREEN_WIDTH * (\2) + (\1)], a + ld [(\2) screenrows + (\1) + \3], a endc ENDM lda_coord: MACRO +; x, y[, origin] 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 + ld a, [(\2) screenrows + (\1) + TileMap] else - ld \1, \3 bgrows + \2 + vBGMap0 + ld a, [(\2) screenrows + (\1) + \3] endc ENDM |