timcc@csv.viccol.edu.au (Tim Cook) (01/09/90)
I am trying to write a program to dump the header information in a TOS executable, but have come across a problem. I have two sources of information on the contents of this header, and they conflict. Source 1 says: 1> /* GEMDOS executable file format 1> */ 1> 1> /* CP/M-68K header 1> */ 1> typedef struct { 1> int c_magic; /* magic number (0x601A) */ 1> long c_text; /* size of text segment */ 1> long c_data; /* size of initialized data */ 1> long c_bss; /* size of uninitialized data */ 1> long c_syms; /* size of symbol table */ 1> long c_entry; /* entry point */ 1> long c_res; /* reserved, always zero */ 1> int c_reloc; /* size of data relocation */ 1> } header; while source 2 says: 2> /* 2> * output format for Alcyon 68K compiler 2> */ 2> 2> struct head { 2> short a_magic; /* a.out magic number */ 2> long a_tsize; /* # bytes in program text segment */ 2> long a_dsize; /* # bytes in program data segment */ 2> long a_bsize; /* # bytes in program bss segment */ 2> long a_ssize; /* # bytes in symbol table */ 2> long a_stksize; /* initial stack size */ 2> long a_entry; /* entry point */ 2> short a_rlbflg; /* relocation bits suppressed flag */ 2> }; 2> 2> struct more { 2> long a_dstart; /* address of data segment */ 2> long a_bstart; /* address of bss segment */ 2> }; 2> 2> #define A_MAGICA 0x601A /* contiguous file with short format */ 2> #define A_MAGICB 0x601B /* noncontiguous file, 'more' added */ 2> #define A_MAGICC 0x601C /* as MAGICA, but data aligned on 2k */ 2> #define A_MAGICD 0x601D /* as MAGICA, but data starts on 0 */ 2> #define A_MAGICE 0x601E /* as MAGICA, but data aligned on 4k */ Does anyone know which is correct, or is there anything not covered by either? I would also like to know the function of the a_rlbflg field, mentioned by source 1. Surely this information is not "TOP SECRET HAND-KISSING DEVELOPERS ONLY" information? (Add :-) as required.) (For all the Kopyright Kops out there: keep your hair on; the above information was not accompanied by copyright notices in any form.) -- Tim Cook Systems Administrator, Victoria College Computer Services parrot - n. An animal that has the ability to imitate man, but not the intelligence to refrain from doing so.