diff options
author | yenatch <yenatch@gmail.com> | 2015-04-13 21:30:51 -0700 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2015-04-13 21:41:32 -0700 |
commit | e7a3ba05929c27b3cc5b1f5c2725ab8dba9efb43 (patch) | |
tree | 678a49cd546a3e24fb63e8547b5b0ce2ef63948d | |
parent | 50734c961c436c4e4a996f120befcab5ee74d15e (diff) |
Add a macro for enumeration.
"enum" is like "const" but uses variables instead. This might not be desired.
It has been moved to the top of macros.asm so that included macros can be enumerated.
-rw-r--r-- | macros.asm | 13 | ||||
-rw-r--r-- | macros/enum.asm | 31 |
2 files changed, 33 insertions, 11 deletions
diff --git a/macros.asm b/macros.asm index 79f6df03f..739df1bd4 100644 --- a/macros.asm +++ b/macros.asm @@ -1,3 +1,5 @@ +INCLUDE "macros/enum.asm" + INCLUDE "macros/event.asm" INCLUDE "macros/sound.asm" INCLUDE "macros/text.asm" @@ -113,17 +115,6 @@ endanim: MACRO ENDM -; Constant enumeration - -const_def: MACRO -const_value SET 0 -ENDM - -const: MACRO -\1 EQU const_value -const_value SET const_value + 1 -ENDM - sine_wave: MACRO ; \1: amplitude diff --git a/macros/enum.asm b/macros/enum.asm new file mode 100644 index 000000000..0a72d49d8 --- /dev/null +++ b/macros/enum.asm @@ -0,0 +1,31 @@ +; Enumerate variables + +enum_start: macro +if _NARG >= 1 +__enum__ = \1 +else +__enum__ = 0 +endc +if _NARG >= 2 +__enumdir__ = \2 +else +__enumdir__ = +1 +endc +endm + +enum: macro +\1 = __enum__ +__enum__ = __enum__ + __enumdir__ +endm + + +; Enumerate constants + +const_def: MACRO +const_value = 0 +ENDM + +const: MACRO +\1 EQU const_value +const_value = const_value + 1 +ENDM |