summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2015-01-20 14:10:55 -0800
committeryenatch <yenatch@gmail.com>2015-01-20 14:10:55 -0800
commit9303752e3fac18a5245870a992a04d11772bed52 (patch)
treea5c9779df1f77b8a3f0d2402357cb8645fd1bd81
parent0fa7b553bddeb4ba70b216c93eb09226b2674beb (diff)
Start moving relevant macros into macros/text.asm.
-rw-r--r--macros.asm150
-rw-r--r--macros/text.asm33
2 files changed, 91 insertions, 92 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
diff --git a/macros/text.asm b/macros/text.asm
index ae49d8fbb..8174c5200 100644
--- a/macros/text.asm
+++ b/macros/text.asm
@@ -1,7 +1,30 @@
-text_from_ram: macro
+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.
+
+
+TX_RAM: MACRO
db 1
dw \1
- endm
+ ENDM
+
+TX_FAR: MACRO
+ db $16
+ dw \1
+ db BANK(\1)
+ ENDM
+
+
+text_from_ram EQUS "TX_RAM"
text_dunno1: macro
db 5
@@ -58,8 +81,4 @@ current_day: macro
db $15
endm
-text_jump: macro
- db $16
- dw \1
- db BANK(\1)
- endm
+text_jump EQUS "TX_FAR"