diff options
author | Bryan Bishop <kanzure@gmail.com> | 2013-09-08 11:18:39 -0500 |
---|---|---|
committer | Bryan Bishop <kanzure@gmail.com> | 2013-09-08 11:18:39 -0500 |
commit | 5c4dc08ee451f699471ce69fc8f98265bc80939d (patch) | |
tree | 33223a7ef5c01b7fbf4a3a3a176c65b237d5e5ab /macros.asm | |
parent | d4aa6edfa744a45cc82b20cd813462af870b6fef (diff) | |
parent | 740f91370db08d2e30c16f34be83c6d14e7d1c60 (diff) |
Merge branch 'master' into refactor-preprocessor
Diffstat (limited to 'macros.asm')
-rw-r--r-- | macros.asm | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/macros.asm b/macros.asm new file mode 100644 index 000000000..e5291ade5 --- /dev/null +++ b/macros.asm @@ -0,0 +1,95 @@ +; rgbds macros + +dwb: MACRO + dw \1 + db \2 + ENDM + +dbw: MACRO + db \1 + dw \2 + ENDM + +dn: MACRO + db \1 << 4 + \2 + ENDM + +dt: MACRO ; three-byte (big-endian) + db (\1 >> 16) & $ff + db (\1 >> 8) & $ff + db \1 & $ff + ENDM + +bigdw: MACRO ; big-endian word + dw ((\1)/$100) + (((\1)&$ff)*$100) + ENDM + +callab: MACRO ; address, bank + ld hl, \1 + ld a, BANK(\1) + rst FarCall + ENDM + +callba: MACRO ; bank, address + ld a, BANK(\1) + ld hl, \1 + rst FarCall + ENDM + +TX_RAM: MACRO + db 1 + dw \1 + ENDM + +TX_FAR: MACRO + db $16 + dw \1 + db BANK(\1) + ENDM + +RGB: MACRO + dw ((\3 << 10) | (\2 << 5) | (\1)) + ENDM + +note: MACRO + db \1 + ENDM + +; It's better to use *coord than FuncCoord. +FuncCoord: MACRO +Coord = $c4a0 + 20 * \2 + \1 + ENDM + +bccoord: MACRO + FuncCoord \1, \2 + ld bc, Coord + ENDM + +decoord: MACRO + FuncCoord \1, \2 + ld de, Coord + ENDM + +hlcoord: MACRO + FuncCoord \1, \2 + ld hl, Coord + ENDM + + +; pic animations +frame: MACRO + db \1 + db \2 + ENDM +setrepeat: MACRO + db $fe + db \1 + ENDM +dorepeat: MACRO + db $fd + db \1 + ENDM +endanim: MACRO + db $ff + ENDM + |