source: vendor/emx/current/src/dos/headers.inc

Last change on this file was 18, checked in by bird, 22 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 4.0 KB
Line 
1;
2; HEADERS.INC -- Header structures
3;
4; Copyright (c) 1991-1995 by Eberhard Mattes
5;
6; This file is part of emx.
7;
8; emx is free software; you can redistribute it and/or modify it
9; under the terms of the GNU General Public License as published by
10; the Free Software Foundation; either version 2, or (at your option)
11; any later version.
12;
13; emx is distributed in the hope that it will be useful,
14; but WITHOUT ANY WARRANTY; without even the implied warranty of
15; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16; GNU General Public License for more details.
17;
18; You should have received a copy of the GNU General Public License
19; along with emx; see the file COPYING. If not, write to
20; the Free Software Foundation, 59 Temple Place - Suite 330,
21; Boston, MA 02111-1307, USA.
22;
23; See emx.asm for a special exception.
24;
25
26;
27; emxbind header
28;
29BIND_HEADER STRUC
30BND_SIGNATURE BYTE 16 DUP (?)
31BND_BIND_FLAG BYTE FALSE
32BND_FILL_1 BYTE ?
33BND_HDR_LOC DWORD ?
34BND_OPTIONS BYTE 64 DUP (0)
35BIND_HEADER ENDS
36
37;
38; EXE header
39;
40EXE1_HEADER STRUC
41EXE_MAGIC DW ?
42EXE_LAST_PAGE DW ?
43EXE_PAGES DW ?
44EXE_RELOC_SIZE DW ?
45EXE_HDR_SIZE DW ?
46EXE_MIN_ALLOC DW ?
47EXE_MAX_ALLOC DW ?
48EXE_SS DW ?
49EXE_SP DW ?
50EXE_CHKSUM DW ?
51EXE_IP DW ?
52EXE_CS DW ?
53EXE_RELOC_PTR DW ?
54EXE_OVL DW ?
55EXE1_HEADER ENDS
56
57;
58; Additional data of EXE header
59;
60EXE2_HEADER STRUC
61EXE_RES1 DW 16 DUP (?)
62EXE_NEW_LO DW ?
63EXE_NEW_HI DW ?
64EXE2_HEADER ENDS
65
66;
67; a.out header
68;
69A_OUT_HEADER STRUC
70A_MAGIC DW ?
71A_MACHTYPE DB ?
72A_FLAGS DB ?
73A_TEXT_SIZE DD ?
74A_DATA_SIZE DD ?
75A_BSS_SIZE DD ?
76A_SYM_SIZE DD ?
77A_ENTRY DD ?
78A_TRSIZE DD ?
79A_DRSIZE DD ?
80A_OUT_HEADER ENDS
81
82A_OUT_MAGIC = 010BH
83A_OUT_OFFSET = 0400H ; First page of code
84UMAGIC = 010FH
85U_OFFSET = 0400H ; First page of data
86KERNEL_U_ADDR = 0E0000000H ; Subtract this from U_AR0
87
88;
89; This structure that starts a core file
90;
91USER_AREA STRUC
92U_MAGIC DW ?
93U_RESERVED1 DW ?
94U_DATA_BASE DD ?
95U_DATA_END DD ?
96U_DATA_OFF DD ?
97U_HEAP_BASE DD ?
98U_HEAP_END DD ?
99U_HEAP_OFF DD ?
100U_HEAP_BRK DD ?
101U_STACK_BASE DD ?
102U_STACK_END DD ?
103U_STACK_OFF DD ?
104U_STACK_LOW DD ?
105U_AR0 DD ?
106U_FPVALID DB ?
107U_RESERVED2 DB 3 DUP (?)
108U_FPSTATE DD 27 DUP (?)
109U_FPSTATUS DD ?
110U_RESERVED3 DD 23 DUP (?)
111U_GS DW ?, 0
112U_FS DW ?, 0
113U_ES DW ?, 0
114U_DS DW ?, 0
115U_EDI DD ?
116U_ESI DD ?
117U_EBP DD ?
118U_ESP DD ?
119U_EBX DD ?
120U_EDX DD ?
121U_ECX DD ?
122U_EAX DD ?
123U_TRAPNO DD ?
124U_ERRCD DD ?
125U_EIP DD ?
126U_CS DW ?, 0
127U_EFL DD ?
128U_UESP DD ?
129U_SS DW ?, 0
130USER_AREA ENDS
131
132U_REGS EQU U_GS
133
134L_FLAG_DLL = 0001H ; Executable is a DLL
135L_FLAG_LINK386 = 0002H ; Linked by LINK386
136
137;
138; This table is at the beginning of the data section
139;
140LAYOUT_TABLE STRUC
141L_TEXT_BASE DD ?
142L_TEXT_END DD ?
143L_DATA_BASE DD ?
144L_DATA_END DD ?
145L_BSS_BASE DD ?
146L_BSS_END DD ?
147L_HEAP_BASE DD ?
148L_HEAP_END DD ?
149L_HEAP_BRK DD ?
150L_HEAP_OFF DD ?
151L_OS2_DLL DD ?
152L_STACK_BASE DD ?
153L_STACK_END DD ?
154L_FLAGS DD ?
155L_RESERVED DD 2 DUP (?)
156L_OPTIONS DB 64 DUP (?)
157LAYOUT_TABLE ENDS
Note: See TracBrowser for help on using the repository browser.