/* */
/* */
/* */
-/* (C) 1998 Ullrich von Bassewitz */
-/* Wacholderweg 14 */
-/* D-70597 Stuttgart */
-/* EMail: uz@musoftware.de */
+/* (C) 1998-2003 Ullrich von Bassewitz */
+/* Römerstraße 52 */
+/* D-70794 Filderstadt */
+/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
-/* Import size */
-#define IMP_ABS 0x00 /* Import as normal value */
-#define IMP_ZP 0x01 /* Import as zero page symbol */
-#define IMP_MASK_SIZE 0x01 /* Size mask */
+/* Number of module constructor/destructor declarations for an export */
+#define EXP_CONDES_MASK 0x07
-#define IS_IMP_ABS(x) (((x) & IMP_MASK_SIZE) == IMP_ABS)
-#define IS_IMP_ZP(x) (((x) & IMP_MASK_SIZE) == IMP_ZP)
-
-/* 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 */
-
-#define IS_EXP_ABS(x) (((x) & EXP_MASK_SIZE) == EXP_ABS)
-#define IS_EXP_ZP(x) (((x) & EXP_MASK_SIZE) == EXP_ZP)
+#define IS_EXP_CONDES(x) (((x) & EXP_CONDES_MASK) != 0)
+#define GET_EXP_CONDES_COUNT(x) ((x) & EXP_CONDES_MASK)
+#define INC_EXP_CONDES_COUNT(x) ((x)++)
/* 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 EXP_CONST 0x00 /* Mask bit for const values */
+#define EXP_EXPR 0x10 /* Mask bit for expr values */
+#define EXP_MASK_VAL 0x10 /* Value mask */
-#define IS_EXP_CONST(x) (((x) & EXP_MASK_VAL) == EXP_CONST)
-#define IS_EXP_EXPR(x) (((x) & EXP_MASK_VAL) == EXP_EXPR)
+#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 */
+/* Export usage */
+#define EXP_EQUATE 0x00 /* Mask bit for an equate */
+#define EXP_LABEL 0x20 /* Mask bit for a label */
+#define EXP_MASK_LABEL 0x20 /* Value mask */
-#define IS_EXP_INIT(x) (((x) & EXP_MASK_INIT) == EXP_INIT)
+#define IS_EXP_EQUATE(x) (((x) & EXP_MASK_LABEL) == EXP_EQUATE)
+#define IS_EXP_LABEL(x) (((x) & EXP_MASK_LABEL) == EXP_LABEL)