]> git.sur5r.net Git - cc65/blobdiff - include/o65.h
Remove this copy of the apple include file - a copy was added to asminc
[cc65] / include / o65.h
index 148b60b4ea9f034ee50d94f9829b88f508cdab4f..3003f2c93e94732e47dd5fef6c147b348125c0bf 100644 (file)
@@ -6,10 +6,10 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2002      Ullrich von Bassewitz                                       */
-/*               Wacholderweg 14                                             */
-/*               D-70597 Stuttgart                                           */
-/* EMail:        uz@musoftware.de                                            */
+/* (C) 2002-2005 Ullrich von Bassewitz                                       */
+/*               Römerstrasse 52                                             */
+/*               D-70794 Filderstadt                                         */
+/* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
@@ -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,13 +107,22 @@ 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
-#define O65_SEG_TEXT                   0x02
-#define O65_SEG_DATA           0x03
-#define O65_SEG_BSS            0x04
-#define O65_SEG_ZP             0x05
+#define O65_SEGID_UNDEF        0x00
+#define O65_SEGID_ABS          0x01
+#define O65_SEGID_TEXT         0x02
+#define O65_SEGID_DATA         0x03
+#define O65_SEGID_BSS          0x04
+#define O65_SEGID_ZP           0x05
+#define O65_SEGID_MASK          0x07
 
 /* Relocation type codes */
 #define O65_RTYPE_WORD          0x80
@@ -134,7 +151,8 @@ struct o65_header {
 /* Operating system codes for O65_OPT_OS */
 #define O65_OS_OSA65           1
 #define O65_OS_LUNIX           2
-#define O65_OS_CC65_MODULE      3
+#define O65_OS_CC65             3
+#define O65_OS_OPENCBM          4