|
|
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.