summaryrefslogtreecommitdiff
path: root/macros.asm
diff options
context:
space:
mode:
authorBryan Bishop <kanzure@gmail.com>2013-09-05 11:30:12 -0700
committerBryan Bishop <kanzure@gmail.com>2013-09-05 11:30:12 -0700
commit40b4c87db7e9472d99186b67bdec3d48a2132e73 (patch)
treeb0ea0d40187c103dbb9f8bd185ee5f40770b5b53 /macros.asm
parent4e36d85ee966f8f22531183679549061263b2166 (diff)
parent60dde1d03ed43de1e7ef777e4198963620c73958 (diff)
Merge pull request #188 from yenatch/split-common
recomment and split out a ton of common asm (bank 0)
Diffstat (limited to 'macros.asm')
-rw-r--r--macros.asm95
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
+