pokecrystal/macros/enum.asm

52 lines
579 B
NASM
Raw Normal View History

; Enumerate variables
enum_start: MACRO
if _NARG >= 1
__enum__ = \1
else
__enum__ = 0
endc
if _NARG >= 2
__enumdir__ = \2
else
2020-03-21 17:07:18 +00:00
__enumdir__ = 1
endc
2017-12-28 21:31:16 +00:00
ENDM
enum: MACRO
\1 EQU __enum__
__enum__ = __enum__ + __enumdir__
2017-12-28 21:31:16 +00:00
ENDM
enum_set: MACRO
2015-10-30 14:34:35 +00:00
__enum__ = \1
2017-12-28 21:31:16 +00:00
ENDM
2015-10-30 14:34:35 +00:00
; Enumerate constants
const_def: MACRO
2018-01-31 16:38:45 +00:00
if _NARG >= 1
const_value = \1
else
const_value = 0
2018-01-31 16:38:45 +00:00
endc
ENDM
const: MACRO
\1 EQU const_value
const_value = const_value + 1
ENDM
2015-07-13 04:16:35 +00:00
shift_const: MACRO
\1 EQU (1 << const_value)
2015-07-13 04:16:35 +00:00
const_value = const_value + 1
ENDM
; Enumerate strings
define: MACRO
if !DEF(\1)
\1 EQUS \2
endc
ENDM