From e7a3ba05929c27b3cc5b1f5c2725ab8dba9efb43 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 13 Apr 2015 21:30:51 -0700 Subject: [PATCH] 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. --- macros.asm | 13 ++----------- macros/enum.asm | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 11 deletions(-) create mode 100644 macros/enum.asm 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