ref: f036cdf13b0e215cd9a14cc9dba24f821a9679c0
parent: 9303752e3fac18a5245870a992a04d11772bed52
author: yenatch <yenatch@gmail.com>
date: Tue Jan 20 09:26:16 EST 2015
Move around some more macros.
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -1,3 +1,5 @@
+NONE EQU 0
+
PARTY_LENGTH EQU 6
MAX_ITEMS EQU 20
--- a/macros.asm
+++ b/macros.asm
@@ -6,6 +6,8 @@
INCLUDE "macros/move_anim.asm"
INCLUDE "macros/movement.asm"
INCLUDE "macros/map.asm"
+INCLUDE "macros/predef.asm"
+INCLUDE "macros/rst.asm"
RGB: MACRO
@@ -15,29 +17,7 @@
percent EQUS "* $ff / 100"
-; macros require rst vectors to be defined
-FarCall EQU $08
-Bankswitch EQU $10
-JumpTable EQU $28
-farcall: MACRO ; bank, address
- ld a, BANK(\1)
- ld hl, \1
- rst FarCall
- ENDM
-
-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
@@ -82,6 +62,7 @@
ld \1, (\2) << 8 + (\3)
ENDM
+
bccoord: MACRO
coord bc, \1, \2
ENDM
@@ -129,68 +110,6 @@
ENDM
-
-note: MACRO
- dn (\1), (\2) - 1
- ENDM
-
-sound: macro
- db \1 ; duration
- db \2 ; intensity
- dw \3 ; frequency
- endm
-
-noise: macro
- db \1 ; duration
- db \2 ; intensity
- db \3 ; frequency
- endm
-
-; pitch
-__ EQU 0
-C_ EQU 1
-C# EQU 2
-D_ EQU 3
-D# EQU 4
-E_ EQU 5
-F_ EQU 6
-F# EQU 7
-G_ EQU 8
-G# EQU 9
-A_ EQU 10
-A# EQU 11
-B_ EQU 12
-
-
-
-; maps
-
-map: MACRO
-; This is a really silly hack to get around an rgbds bug.
-
-; Ideally:
-; db GROUP_\1, MAP_\1
-
-\1\@ EQUS "GROUP_\1"
-\1\@2 EQUS "MAP_\1"
- db \1\@, \1\@2
-ENDM
-
-roam_map: MACRO
-; A map and an arbitrary number of some more maps.
-
- map \1
- db \2
-
- rept \2
- map \3
- shift
- endr
-
- db 0
-ENDM
-
-
sine_wave: MACRO
; \1: amplitude
@@ -200,27 +119,4 @@
dw (sin(x) + (sin(x) & $ff)) >> 8
x = x + (\1) * $40000
endr
-ENDM
-
-
-add_predef: MACRO
-\1Predef::
- dw \1
- db BANK(\1)
-ENDM
-
-predef_id: MACRO
-; Some functions load the predef id
-; without immediately calling Predef.
- ld a, (\1Predef - PredefPointers) / 3
-ENDM
-
-predef: MACRO
- predef_id \1
- call Predef
-ENDM
-
-predef_jump: MACRO
- predef_id \1
- jp Predef
ENDM
--- a/macros/map.asm
+++ b/macros/map.asm
@@ -1,3 +1,29 @@
+map: MACRO
+; This is a silly hack to get around an rgbds bug.
+
+; Ideally:
+; db GROUP_\1, MAP_\1
+
+\1\@ EQUS "GROUP_\1"
+\1\@2 EQUS "MAP_\1"
+ db \1\@, \1\@2
+ENDM
+
+roam_map: MACRO
+; A map and an arbitrary number of some more maps.
+
+ map \1
+ db \2
+
+ rept \2
+ map \3
+ shift
+ endr
+
+ db 0
+ENDM
+
+
person_event: macro
db \1 ; sprite
db \2 ; y
--- /dev/null
+++ b/macros/predef.asm
@@ -1,0 +1,21 @@
+add_predef: MACRO
+\1Predef::
+ dw \1
+ db BANK(\1)
+ENDM
+
+predef_id: MACRO
+; Some functions load the predef id
+; without immediately calling Predef.
+ ld a, (\1Predef - PredefPointers) / 3
+ENDM
+
+predef: MACRO
+ predef_id \1
+ call Predef
+ENDM
+
+predef_jump: MACRO
+ predef_id \1
+ jp Predef
+ENDM
--- /dev/null
+++ b/macros/rst.asm
@@ -1,0 +1,17 @@
+FarCall EQU $08
+Bankswitch EQU $10
+JumpTable EQU $28
+
+farcall: MACRO ; bank, address
+ ld a, BANK(\1)
+ ld hl, \1
+ rst FarCall
+ ENDM
+
+callba EQUS "farcall"
+
+callab: MACRO ; address, bank
+ ld hl, \1
+ ld a, BANK(\1)
+ rst FarCall
+ ENDM
--- a/macros/sound.asm
+++ b/macros/sound.asm
@@ -1,3 +1,35 @@
+note: MACRO
+ dn (\1), (\2) - 1
+ ENDM
+
+sound: macro
+ db \1 ; duration
+ db \2 ; intensity
+ dw \3 ; frequency
+ endm
+
+noise: macro
+ db \1 ; duration
+ db \2 ; intensity
+ db \3 ; frequency
+ endm
+
+; pitch
+__ EQU 0
+C_ EQU 1
+C# EQU 2
+D_ EQU 3
+D# EQU 4
+E_ EQU 5
+F_ EQU 6
+F# EQU 7
+G_ EQU 8
+G# EQU 9
+A_ EQU 10
+A# EQU 11
+B_ EQU 12
+
+
octave: macro
db $d8 - (\1)
endm