ref: 9303752e3fac18a5245870a992a04d11772bed52
parent: 0fa7b553bddeb4ba70b216c93eb09226b2674beb
author: yenatch <yenatch@gmail.com>
date: Tue Jan 20 09:10:55 EST 2015
Start moving relevant macros into macros/text.asm.
--- a/macros.asm
+++ b/macros.asm
@@ -8,20 +8,11 @@
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).
+RGB: MACRO
+ dw ((\3) << 10) + ((\2) << 5) + (\1)
+ ENDM
-; 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.
-
percent EQUS "* $ff / 100"
; macros require rst vectors to be defined
@@ -29,10 +20,24 @@
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
dw \1
db \2
@@ -54,37 +59,64 @@
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
-lb: MACRO ; r, hi, lo
- ld \1, (\2) << 8 + (\3)
+hlcoord: MACRO
+ coord hl, \1, \2
ENDM
+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
+
+
; Constant enumeration
const_def: MACRO
@@ -97,24 +129,9 @@
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,37 +162,7 @@
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
map: MACRO
@@ -193,20 +180,13 @@
; 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
--- a/macros/text.asm
+++ b/macros/text.asm
@@ -1,8 +1,31 @@
-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
endm
@@ -58,8 +81,4 @@
db $15
endm
-text_jump: macro
- db $16
- dw \1
- db BANK(\1)
- endm
+text_jump EQUS "TX_FAR"