diff options
author | yenatch <yenatch@gmail.com> | 2015-01-20 14:10:55 -0800 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2015-01-20 14:10:55 -0800 |
commit | 9303752e3fac18a5245870a992a04d11772bed52 (patch) | |
tree | a5c9779df1f77b8a3f0d2402357cb8645fd1bd81 /macros.asm | |
parent | 0fa7b553bddeb4ba70b216c93eb09226b2674beb (diff) |
Start moving relevant macros into macros/text.asm.
Diffstat (limited to 'macros.asm')
-rw-r--r-- | macros.asm | 150 |
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 |