]> git.sur5r.net Git - cc65/blobdiff - include/o65.h
More o65 definitions
[cc65] / include / o65.h
index 148b60b4ea9f034ee50d94f9829b88f508cdab4f..e5957e5b67188f6530435df050f8fab44a9ccca7 100644 (file)
@@ -52,7 +52,7 @@
 typedef unsigned o65_size;
 
 
-/* Define a structure that defines the o65 file header */
+/* Structure that defines the o65 file header */
 typedef struct o65_header o65_header;
 struct o65_header {
     char        marker[2];      /* Non-C64 marker */
@@ -72,6 +72,14 @@ struct o65_header {
 
 
 
+/* Marker, magic and version number */
+#define O65_MARKER_0            0x01
+#define O65_MARKER_1            0x00
+#define O65_MAGIC_0             0x6F    /* 'o' */
+#define O65_MAGIC_1             0x36    /* '6' */
+#define O65_MAGIC_2             0x35    /* '5' */
+#define O65_VERSION             0x00
+
 /* Defines for the mode word */
 #define O65_CPU_65816           0x8000         /* Executable is for 65816 */
 #define O65_CPU_6502            0x0000  /* Executable is for the 6502 */
@@ -99,6 +107,14 @@ struct o65_header {
 #define O65_ALIGN_256           0x0003  /* Align pages (256 bytes) */
 #define O65_ALIGN_MASK          0x0003  /* Mask to extract alignment */
 
+/* The mode word as generated by the ld65 linker */
+#define O65_MODE_CC65           (O65_CPU_6502    |      \
+                                 O65_RELOC_BYTE  |      \
+                                 O65_SIZE_16BIT  |      \
+                                 O65_FTYPE_EXE   |      \
+                                 O65_ADDR_SIMPLE |      \
+                                 O65_ALIGN_1)
+
 /* The four o65 segment types. */
 #define O65_SEG_UNDEF                  0x00
 #define O65_SEG_ABS            0x01