]> git.sur5r.net Git - cc65/blobdiff - src/common/symdefs.h
Updated PETSCII mappings
[cc65] / src / common / symdefs.h
index f4e192bf5f79144120d5de84db357357d97d2dbc..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                 0x20            /* Export as zero page value */
-#define EXP_MASK_SIZE  0x20            /* 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       0x40            /* Mask bit for expr values */
-#define EXP_MASK_VAL   0x40            /* 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_MIN   0x01            /* Minimum value */
-#define EXP_INIT_MAX   0x1F            /* Maximum value */
-#define EXP_INIT_DEF   0x18            /* Default value */
-#define EXP_MASK_INIT  0x1F            /* Initializer 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) != 0)
-#define GET_EXP_INIT_VAL(x)    ((x) & EXP_MASK_INIT)
+#define IS_EXP_EQUATE(x)        (((x) & EXP_MASK_LABEL) == EXP_EQUATE)
+#define IS_EXP_LABEL(x)         (((x) & EXP_MASK_LABEL) == EXP_LABEL)