summaryrefslogtreecommitdiff
path: root/macros.asm
diff options
context:
space:
mode:
Diffstat (limited to 'macros.asm')
-rw-r--r--macros.asm150
1 files changed, 65 insertions, 85 deletions
diff --git a/macros.asm b/macros.asm
index 7d934866a..caa8a6a1b 100644
--- a/macros.asm
+++ b/macros.asm
@@ -8,18 +8,9 @@ INCLUDE "macros/movement.asm"
INCLUDE "macros/map.asm"
-text EQUS "db $00," ; Start writing text.
-next EQUS "db $4e," ; Move a line down.
-line EQUS "db $4f," ; Start writing at the bottom line.
-para EQUS "db $51," ; Start a new paragraph.
-cont EQUS "db $55," ; Scroll to the next line.
-done EQUS "db $57" ; End a text box.
-prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some other event).
-
-; Pokedex text commands are only used with pokered.
-; They are included for compatibility.
-page EQUS "db $50," ; Start a new Pokedex page.
-dex EQUS "db $e8, $50" ; End a Pokedex entry.
+RGB: MACRO
+ dw ((\3) << 10) + ((\2) << 5) + (\1)
+ ENDM
percent EQUS "* $ff / 100"
@@ -29,8 +20,22 @@ FarCall EQU $08
Bankswitch EQU $10
JumpTable EQU $28
+farcall: MACRO ; bank, address
+ ld a, BANK(\1)
+ ld hl, \1
+ rst FarCall
+ ENDM
-NONE EQU 0
+callba EQUS "farcall"
+
+callab: MACRO ; address, bank
+ ld hl, \1
+ ld a, BANK(\1)
+ rst FarCall
+ ENDM
+
+
+NONE EQU 0
dwb: MACRO
@@ -54,34 +59,61 @@ dbwww: MACRO
ENDM
dn: MACRO
+ rept _NARG / 2
db (\1) << 4 + (\2)
+ shift
+ shift
+ endr
ENDM
dt: MACRO ; three-byte (big-endian)
- db (\1 >> 16) & $ff
- db (\1 >> 8) & $ff
- db \1 & $ff
+ db ((\1) >> 16) & $ff
+ db ((\1) >> 8) & $ff
+ db (\1) & $ff
ENDM
bigdw: MACRO ; big-endian word
- dw ((\1)/$100) + (((\1)&$ff)*$100)
+ db (\1) / $100
+ db (\1) % $100
ENDM
-callab: MACRO ; address, bank
- ld hl, \1
- ld a, BANK(\1)
- rst FarCall
+
+lb: MACRO ; r, hi, lo
+ ld \1, (\2) << 8 + (\3)
ENDM
-callba: MACRO ; bank, address
- ld a, BANK(\1)
- ld hl, \1
- rst FarCall
+bccoord: MACRO
+ coord bc, \1, \2
+ ENDM
+
+decoord: MACRO
+ coord de, \1, \2
ENDM
+hlcoord: MACRO
+ coord hl, \1, \2
+ ENDM
-lb: MACRO ; r, hi, lo
- ld \1, (\2) << 8 + (\3)
+coord: MACRO
+ ld \1, TileMap + SCREEN_WIDTH * (\3) + (\2)
+ 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
@@ -97,24 +129,9 @@ const_value SET const_value + 1
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) << 4 + ((\2) - 1)
+ dn (\1), (\2) - 1
ENDM
sound: macro
@@ -145,36 +162,6 @@ A# EQU 11
B_ EQU 12
-bccoord: MACRO
- ld bc, TileMap + SCREEN_WIDTH * (\2) + (\1)
- ENDM
-
-decoord: MACRO
- ld de, TileMap + SCREEN_WIDTH * (\2) + (\1)
- ENDM
-
-hlcoord: MACRO
- ld hl, TileMap + SCREEN_WIDTH * (\2) + (\1)
- 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
-
; maps
@@ -193,20 +180,13 @@ roam_map: MACRO
; A map and an arbitrary number of some more maps.
map \1
- db \2
+ db \2
-IF \2 > 0
+ rept \2
map \3
-ENDC
-IF \2 > 1
- map \4
-ENDC
-IF \2 > 2
- map \5
-ENDC
-IF \2 > 3
- map \6
-ENDC
+ shift
+ endr
+
db 0
ENDM