]> git.sur5r.net Git - cc65/blobdiff - src/da65/attrtab.h
Merge remote-tracking branch 'upstream/master' into a5200
[cc65] / src / da65 / attrtab.h
index 2abe26576f5cf5f63b9c1ec8bcb0b9636d34dc2a..c9fb9c35fde0f98a18234914c7ba6e1a761da175 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                                        attrtab.h                                 */
+/*                                 attrtab.h                                 */
 /*                                                                           */
-/*                              Disassembler attribute table                        */
+/*                       Disassembler attribute table                        */
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
@@ -39,7 +39,7 @@
 
 
 /*****************************************************************************/
-/*                                          Data                                    */
+/*                                   Data                                    */
 /*****************************************************************************/
 
 
 typedef enum attr_t {
 
     /* Styles */
-    atDefault              = 0x0000,   /* Default style */
-    atCode                 = 0x0001,
-    atIllegal              = 0x0002,
-    atByteTab              = 0x0003,   /* Same as illegal */
+    atDefault       = 0x0000,   /* Default style */
+    atCode          = 0x0001,
+    atIllegal       = 0x0002,
+    atByteTab       = 0x0003,   /* Same as illegal */
     atDByteTab      = 0x0004,
-    atWordTab              = 0x0005,
-    atDWordTab             = 0x0006,
-    atAddrTab              = 0x0007,
-    atRtsTab               = 0x0008,
+    atWordTab       = 0x0005,
+    atDWordTab      = 0x0006,
+    atAddrTab       = 0x0007,
+    atRtsTab        = 0x0008,
     atTextTab       = 0x0009,
     atSkip          = 0x000A,   /* Skip code completely */
 
     /* Label flags */
-    atNoLabel              = 0x0000,   /* No label for this address */
-    atExtLabel             = 0x0010,   /* External label */
-    atIntLabel      = 0x0020,  /* Internally generated label */
-    atDepLabel             = 0x0040,   /* Dependent label */
+    atNoLabel       = 0x0000,   /* No label for this address */
+    atExtLabel      = 0x0010,   /* External label */
+    atIntLabel      = 0x0020,   /* Internally generated label */
+    atDepLabel      = 0x0040,   /* Dependent label */
     atUnnamedLabel  = 0x0080,   /* Unnamed label */
 
     atLabelDefined  = 0x0100,   /* True if we defined the label */
 
-    atStyleMask     = 0x000F,  /* Output style */
-    atLabelMask     = 0x00F0   /* Label information */
+    atStyleMask     = 0x000F,   /* Output style */
+    atLabelMask     = 0x00F0,   /* Label information */
+
+    /* Segment */
+    atSegment       = 0x0100,   /* Code is in a segment */
+    atSegmentChange = 0x0200,   /* Either segment start or segment end */
 } attr_t;
 
 
 
 /*****************************************************************************/
-/*                                          Code                                    */
+/*                                   Code                                    */
 /*****************************************************************************/
 
 
@@ -83,6 +87,12 @@ typedef enum attr_t {
 void AddrCheck (unsigned Addr);
 /* Check if the given address has a valid range */
 
+int SegmentDefined (unsigned Start, unsigned End);
+/* Return true if the atSegment bit is set somewhere in the given range */
+
+int HaveSegmentChange (unsigned Addr);
+/* Return true if the segment change attribute is set for the given address */
+
 unsigned GetGranularity (attr_t Style);
 /* Get the granularity for the given style */
 
@@ -92,6 +102,9 @@ void MarkRange (unsigned Start, unsigned End, attr_t Attr);
 void MarkAddr (unsigned Addr, attr_t Attr);
 /* Mark an address with an attribute */
 
+attr_t GetAttr (unsigned Addr);
+/* Return the attribute for the given address */
+
 attr_t GetStyleAttr (unsigned Addr);
 /* Return the style attribute for the given address */
 
@@ -101,7 +114,5 @@ attr_t GetLabelAttr (unsigned Addr);
 
 
 /* End of attrtab.h */
-#endif
-
-
 
+#endif