diff options
author | yenatch <yenatch@gmail.com> | 2015-01-20 14:26:16 -0800 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2015-01-20 14:26:16 -0800 |
commit | f036cdf13b0e215cd9a14cc9dba24f821a9679c0 (patch) | |
tree | 2f517ab85b4e173a6d8b47c8d1dfb22a20ff9811 /macros | |
parent | 9303752e3fac18a5245870a992a04d11772bed52 (diff) |
Move around some more macros.
Diffstat (limited to 'macros')
-rw-r--r-- | macros/map.asm | 26 | ||||
-rw-r--r-- | macros/predef.asm | 21 | ||||
-rw-r--r-- | macros/rst.asm | 17 | ||||
-rw-r--r-- | macros/sound.asm | 32 |
4 files changed, 96 insertions, 0 deletions
diff --git a/macros/map.asm b/macros/map.asm index 297646a79..ef62f386f 100644 --- 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 diff --git a/macros/predef.asm b/macros/predef.asm new file mode 100644 index 000000000..d6c0344e6 --- /dev/null +++ b/macros/predef.asm @@ -0,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 diff --git a/macros/rst.asm b/macros/rst.asm new file mode 100644 index 000000000..50259c968 --- /dev/null +++ b/macros/rst.asm @@ -0,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 diff --git a/macros/sound.asm b/macros/sound.asm index 38c72f1cf..8b8de34b2 100644 --- 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 |