shithub: pokecrystal

Download patch

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"