diff options
author | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-09-12 13:36:53 -0400 |
---|---|---|
committer | Rangi <remy.oukaour+rangi42@gmail.com> | 2020-09-12 13:36:53 -0400 |
commit | 4ffbbdfa129314e39a2b9487385d5c52eac9d04d (patch) | |
tree | a417174fb0d0b0d7cbfdbb02c92aa20344fc1f7d /include | |
parent | df67e27500c2149bca5f444dbe278d734a6ba17d (diff) |
Port const macros from pokecrystal, and add const_dw for jumptables
Diffstat (limited to 'include')
-rw-r--r-- | include/macros.inc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/include/macros.inc b/include/macros.inc index 85272c4..86c3fb3 100644 --- a/include/macros.inc +++ b/include/macros.inc @@ -22,9 +22,63 @@ farjp: macro jp _farjp endm + +lb: macro + ld \1, ((\2) & $ff) << 8 | ((\3) & $ff) +endm + +ln: macro + ld \1, ((\2) & $f) << 4 | ((\3) & $f) +endm + ld16: macro ld a, LOW(\2) ld [\1 + 0], a ld a, HIGH(\2) ld [\1 + 1], a endm + + +const_def: macro +if _NARG >= 1 +const_value = \1 +else +const_value = 0 +endc +if _NARG >= 2 +const_inc = \2 +else +const_inc = 1 +endc +endm + +const: macro +\1 EQU const_value +const_value = const_value + const_inc +endm + +shift_const: macro +\1 EQU (1 << const_value) +const_value = const_value + const_inc +endm + +const_skip: macro +if _NARG >= 1 +const_value = const_value + const_inc * (\1) +else +const_value = const_value + const_inc +endc +endm + +const_next: macro +if (const_value > 0 && \1 < const_value) || (const_value < 0 && \1 > const_value) +fail "const_next cannot go backwards from {const_value} to \1" +else +const_value = \1 +endc +endm + +const_dw: macro + const \1 + dw \2 +endm |