+/* Object file tags for imports and exports */
+
+
+
#ifndef SYMDEFS_H
#define SYMDEFS_H
-/* Object file tags for imports and exports */
+/* Import size */
#define IMP_ABS 0x00 /* Import as normal value */
-#define IMP_ZP 0x01 /* Import as zero page symbol */
+#define IMP_ZP 0x01 /* Import as zero page symbol */
+#define IMP_MASK_SIZE 0x01 /* Size mask */
+
+#define IS_IMP_ABS(x) (((x) & IMP_MASK_SIZE) == IMP_ABS)
+#define IS_IMP_ZP(x) (((x) & IMP_MASK_SIZE) == IMP_ZP)
-/* Size */
-#define EXP_ABS 0x00 /* Export as normal value */
-#define EXP_ZP 0x01 /* Export as zero page value */
+/* Export size */
+#define EXP_ABS 0x00 /* Export as normal value */
+#define EXP_ZP 0x01 /* Export as zero page value */
#define EXP_MASK_SIZE 0x01 /* Size mask */
-
-/* Type of value */
-#define EXP_CONST 0x00 /* Mask bit for const values */
-#define EXP_EXPR 0x02 /* Mask bit for expr values */
-#define EXP_MASK_VAL 0x02 /* Value mask */
-
-/* Initializer bit */
-#define EXP_INITIALIZER 0x04 /* Mask bit for initializer export */
+
+#define IS_EXP_ABS(x) (((x) & EXP_MASK_SIZE) == EXP_ABS)
+#define IS_EXP_ZP(x) (((x) & EXP_MASK_SIZE) == EXP_ZP)
+
+/* Export value type */
+#define EXP_CONST 0x00 /* Mask bit for const values */
+#define EXP_EXPR 0x02 /* Mask bit for expr values */
+#define EXP_MASK_VAL 0x02 /* Value mask */
+
+#define IS_EXP_CONST(x) (((x) & EXP_MASK_VAL) == EXP_CONST)
+#define IS_EXP_EXPR(x) (((x) & EXP_MASK_VAL) == EXP_EXPR)
+
+/* Export initializer flag */
+#define EXP_INIT 0x04 /* Mask bit for initializer export */
+#define EXP_MASK_INIT 0x04 /* Value mask */
+
+#define IS_EXP_INIT (((x) & EXP_MASK_INIT) == EXP_INIT)