summaryrefslogtreecommitdiff
path: root/macros/flag.asm
diff options
context:
space:
mode:
Diffstat (limited to 'macros/flag.asm')
-rwxr-xr-xmacros/flag.asm45
1 files changed, 45 insertions, 0 deletions
diff --git a/macros/flag.asm b/macros/flag.asm
new file mode 100755
index 00000000..c2b307f0
--- /dev/null
+++ b/macros/flag.asm
@@ -0,0 +1,45 @@
+engine_flag_def: macro
+ const \1
+\1_ADDR EQUS "\2"
+\1_BIT EQU \3
+endm
+
+engine_flag: macro
+ dwb \1_ADDR, (1 << \1_BIT)
+endm
+
+CheckFlag: macro
+ ld a, [\1_ADDR]
+ bit \1_BIT, a
+endm
+
+CheckFlagHL: macro
+ ld hl, \1_ADDR
+ bit \1_BIT, [hl]
+endm
+
+SetFlag: macro
+ ld hl, \1_ADDR
+ set \1_BIT, [hl]
+endm
+
+ClearFlag: macro
+ ld hl, \1_ADDR
+ res \1_BIT, [hl]
+endm
+
+CheckFlagForceReuseA: macro
+ bit \1_BIT, a
+endm
+
+CheckFlagForceReuseHL: macro
+ bit \1_BIT, [hl]
+endm
+
+SetFlagForceReuseHL: macro
+ set \1_BIT, [hl]
+endm
+
+ClearFlagForceReuseHL: macro
+ res \1_BIT, [hl]
+endm