|
|
1.1 ! root 1: /* (-lgl ! 2: * COHERENT Version 4.0 ! 3: * Copyright (c) 1982, 1992 by Mark Williams Company. ! 4: * All rights reserved. May not be copied without permission. ! 5: -lgl) */ ! 6: /* COFF excerpted from Intel 386 Architecture BCS Supplement, draft 3/3/90 */ ! 7: ! 8: struct filehdr { ! 9: unsigned short f_magic; /* I386MAGIC */ ! 10: unsigned short f_nscns; /* unused by system */ ! 11: long f_timdat; /* unused by system */ ! 12: long f_symptr; /* unused by system */ ! 13: long f_nsyms; /* unused by system */ ! 14: unsigned short f_opthdr; /* sizeof(opthdr) */ ! 15: unsigned short f_flags; /* unused by system */ ! 16: }; ! 17: ! 18: #define I286MAGIC 0x152 ! 19: #define I386MAGIC 0x14C ! 20: ! 21: #define F_RELFLG 00001 ! 22: #define F_EXEC 00002 ! 23: #define F_LNNO 00004 ! 24: #define F_LSYMS 00008 ! 25: #define F_SWABD 00100 ! 26: #define F_AR16WR 00200 ! 27: #define F_AR12WR 00400 ! 28: ! 29: struct aouthdr { ! 30: short magic; /* [ONZ]_MAGIC */ ! 31: short vstamp; /* unused by system */ ! 32: long tsize; /* unused by system */ ! 33: long dsize; /* unused by system */ ! 34: long bsize; /* unused by system */ ! 35: long entry; /* address to start execution */ ! 36: long tstart; /* unused by system */ ! 37: long dstart; /* unused by system */ ! 38: }; ! 39: ! 40: #define O_MAGIC 0407 ! 41: #define N_MAGIC 0410 ! 42: #define I_MAGIC 0411 ! 43: #define Z_MAGIC 0413 ! 44: ! 45: struct scnhdr { ! 46: char s_name[8]; /* unused by system */ ! 47: long s_paddr; /* unused by system */ ! 48: long s_vaddr; /* offset of section - memory(bytes)*/ ! 49: long s_size; /* section size (bytes) */ ! 50: long s_scnptr; /* offset of section - file (bytes) */ ! 51: /* if zero -> BSS segment */ ! 52: long s_relptr; /* unused by system */ ! 53: long s_lnnoptr; /* unused by system */ ! 54: unsigned short s_nreloc; /* unused by system */ ! 55: unsigned short s_lnno; /* unused by system */ ! 56: long s_flags; /* see below */ ! 57: }; ! 58: ! 59: #define STYP_REG 0x000 ! 60: #define STYP_DSECT 0x001 ! 61: #define STYP_NOLOAD 0x002 ! 62: #define STYP_GROUP 0x004 ! 63: #define STYP_PAD 0x008 ! 64: #define STYP_COPY 0x010 ! 65: #define STYP_TEXT 0x020 ! 66: #define STYP_DATA 0x040 ! 67: #define STYP_BSS 0x080 ! 68: #define STYP_INFO 0x200 ! 69: #define STYP_OVER 0x400 /* not supported */ ! 70: #define STYP_LIB 0x800 /* not supported */ ! 71: ! 72: /* exechdr corresponds to the least commmon denominator ! 73: * of the COFF format and the <l.out> format 286 Coherent used ! 74: */ ! 75: ! 76: struct xecseg { ! 77: unsigned mbase; ! 78: unsigned size; ! 79: unsigned fbase; ! 80: }; ! 81: ! 82: struct xechdr { ! 83: unsigned magic; ! 84: unsigned entry; ! 85: unsigned initsp; ! 86: struct xecseg segs[NUSEG+1]; /* text, data, bss, stack */ ! 87: }; ! 88: ! 89: #define XMAGIC(a, b) ((a<< 16) | b)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.