X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fo65.h;h=3003f2c93e94732e47dd5fef6c147b348125c0bf;hb=209954a4a295c7d53e89981c421e6789f124a391;hp=148b60b4ea9f034ee50d94f9829b88f508cdab4f;hpb=b8ab2e23e4b587811b9e93c5a42f709c480bed3e;p=cc65 diff --git a/include/o65.h b/include/o65.h index 148b60b4e..3003f2c93 100644 --- a/include/o65.h +++ b/include/o65.h @@ -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