summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorpikalaxalt <PikalaxALT@gmail.com>2016-06-21 09:52:00 -0400
committerpikalaxalt <PikalaxALT@gmail.com>2016-06-21 09:52:00 -0400
commitdc48fd153a0ed7a9236da657f72a7b7fde4034fd (patch)
tree4fcdaecf5f52fab634bf57e2a43ac6f750f0e191 /macros
parentb0e462675fbb88ec029d43846a9d70dcdb801e27 (diff)
Implement macros for engine flags
Diffstat (limited to 'macros')
-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