diff options
| author | vulcandth <vulcandth@gmail.com> | 2022-06-06 16:25:34 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-06 17:25:34 -0400 |
| commit | c1ef7b75972fa4fbdf125bc85cc1a66f358151cd (patch) | |
| tree | bcf71939ec5573ed5001c4a4b4342d26e5d8f9b1 /macros/data.asm | |
| parent | Improved Virtual Console patch identifiers (#85) (diff) | |
| download | pokeyellow-c1ef7b75972fa4fbdf125bc85cc1a66f358151cd.tar.gz pokeyellow-c1ef7b75972fa4fbdf125bc85cc1a66f358151cd.tar.xz pokeyellow-c1ef7b75972fa4fbdf125bc85cc1a66f358151cd.zip | |
RGBDS syntax updates (#86)
New MACRO and DEF syntax
Diffstat (limited to 'macros/data.asm')
| -rw-r--r-- | macros/data.asm | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/macros/data.asm b/macros/data.asm index 58e8f740..38ec8c9f 100644 --- a/macros/data.asm +++ b/macros/data.asm @@ -1,80 +1,80 @@ ; Value macros -percent EQUS "* $ff / 100" +DEF percent EQUS "* $ff / 100" -bcd2: MACRO +MACRO bcd2 dn ((\1) / 1000) % 10, ((\1) / 100) % 10 dn ((\1) / 10) % 10, (\1) % 10 ENDM -bcd3: MACRO +MACRO bcd3 dn ((\1) / 100000) % 10, ((\1) / 10000) % 10 dn ((\1) / 1000) % 10, ((\1) / 100) % 10 dn ((\1) / 10) % 10, (\1) % 10 ENDM ; used in data/pokemon/base_stats/*.asm -tmhm: MACRO +MACRO tmhm ; initialize bytes to 0 -FOR n, (NUM_TM_HM + 7) / 8 -_tm{d:n} = 0 -ENDR -; set bits of bytes -REPT _NARG - IF DEF(\1_TMNUM) -n = (\1_TMNUM - 1) / 8 -i = (\1_TMNUM - 1) % 8 -_tm{d:n} |= 1 << i - ELSE - FAIL "\1 is not a TM or HM move" - ENDC - SHIFT -ENDR -; output bytes -FOR n, (NUM_TM_HM + 7) / 8 - db _tm{d:n} -ENDR + FOR n, (NUM_TM_HM + 7) / 8 + DEF _tm{d:n} = 0 + ENDR + ; set bits of bytes + REPT _NARG + IF DEF(\1_TMNUM) + DEF n = (\1_TMNUM - 1) / 8 + DEF i = (\1_TMNUM - 1) % 8 + DEF _tm{d:n} |= 1 << i + ELSE + FAIL "\1 is not a TM or HM move" + ENDC + SHIFT + ENDR + ; output bytes + FOR n, (NUM_TM_HM + 7) / 8 + db _tm{d:n} + ENDR ENDM ; Constant data (db, dw, dl) macros -dbw: MACRO +MACRO dbw db \1 dw \2 ENDM -dwb: MACRO +MACRO dwb dw \1 db \2 ENDM -dn: MACRO ; nybbles -REPT _NARG / 2 - db ((\1) << 4) | (\2) - SHIFT 2 -ENDR +MACRO dn ; nybbles + REPT _NARG / 2 + db ((\1) << 4) | (\2) + SHIFT 2 + ENDR ENDM -dba: MACRO ; dbw bank, address -REPT _NARG - dbw BANK(\1), \1 - SHIFT -ENDR +MACRO dba ; dbw bank, address + REPT _NARG + dbw BANK(\1), \1 + SHIFT + ENDR ENDM -dab: MACRO ; dwb address, bank -REPT _NARG - dwb \1, BANK(\1) - SHIFT -ENDR +MACRO dab ; dwb address, bank + REPT _NARG + dwb \1, BANK(\1) + SHIFT + ENDR ENDM -sine_table: MACRO +MACRO sine_table ; \1 samples of sin(x) from x=0 to x<32768 (pi radians) -x = 0 -REPT \1 - dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up -x += DIV(32768, \1) ; a circle has 65536 "degrees" -ENDR + DEF x = 0 + REPT \1 + dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up + DEF x += DIV(32768, \1) ; a circle has 65536 "degrees" + ENDR ENDM |
