]> git.sur5r.net Git - cc65/blobdiff - src/common/symdefs.h
Updated PETSCII mappings
[cc65] / src / common / symdefs.h
index ede76d63ede0ecd32717610a37a0efde3f5e2757..bcfabfd6a5bf3a107cced090c5a1a31d163e0ec8 100644 (file)
 
 
 /* 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 */
+#define IMP_ABS                0x00    /* Import as normal value */
+#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)
+#define IS_IMP_ABS(x)                  (((x) & IMP_MASK_SIZE) == IMP_ABS)
+#define IS_IMP_ZP(x)           (((x) & IMP_MASK_SIZE) == IMP_ZP)
+
+/* Number of module constructor/destructor declarations for an export */
+#define EXP_CONDES_MASK                0x07
+
+#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 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 EXP_ABS                        0x00    /* Export as normal value */
+#define EXP_ZP                         0x08    /* Export as zero page value */
+#define EXP_MASK_SIZE          0x08    /* 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_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 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) & 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)