Format of new executable header |
| Offset | Size | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
00h |
2 BYTEs |
"NE" (4Eh 45h) signature | ||||||||||||||||||||||||
|
02h |
2 BYTEs |
linker version (major, then minor) | ||||||||||||||||||||||||
|
04h |
WORD |
offset from start of this header to entry table (see #01603) | ||||||||||||||||||||||||
|
06h |
WORD |
length of entry table in bytes | ||||||||||||||||||||||||
|
08h |
DWORD |
file load CRC (0 in Borland's TPW) | ||||||||||||||||||||||||
|
0Ch |
BYTE |
program flags (see #01597) | ||||||||||||||||||||||||
|
0Dh |
BYTE |
application flags (see #01598) | ||||||||||||||||||||||||
|
0Eh |
WORD |
auto data segment index | ||||||||||||||||||||||||
|
10h |
WORD |
initial local heap size | ||||||||||||||||||||||||
|
12h |
WORD |
initial stack size (added to data seg, 0000h if SS <> DS) | ||||||||||||||||||||||||
|
14h |
DWORD |
program entry point (CS:IP), "CS" is index into segment table | ||||||||||||||||||||||||
|
18h |
DWORD |
initial stack pointer (SS:SP), "SS" is segment index if SS=automatic data segment and SP=0000h, the stack pointer is set to the top of the automatic data segment, just below the local heap |
||||||||||||||||||||||||
|
1Ch |
WORD |
segment count | ||||||||||||||||||||||||
|
1Eh |
WORD |
module reference count | ||||||||||||||||||||||||
|
20h |
WORD |
length of nonresident names table in bytes | ||||||||||||||||||||||||
|
22h |
WORD |
offset from start of this header to segment table (see #01601) | ||||||||||||||||||||||||
|
24h |
WORD |
offset from start of this header to resource table | ||||||||||||||||||||||||
|
26h |
WORD |
offset from start of this header to resident names table | ||||||||||||||||||||||||
|
28h |
WORD |
offset from start of this header to module reference table | ||||||||||||||||||||||||
|
2Ah |
WORD |
offset from start of this header to imported names table (array of counted strings, terminated with a string of length 00h) |
||||||||||||||||||||||||
|
2Ch |
DWORD |
offset from start of file to nonresident names table | ||||||||||||||||||||||||
|
30h |
WORD |
count of moveable entry point listed in entry table | ||||||||||||||||||||||||
|
32h |
WORD |
file alignment size shift count 0 is equivalent to 9 (default 512-byte pages) |
||||||||||||||||||||||||
|
34h |
WORD |
number of resource table entries | ||||||||||||||||||||||||
|
36h |
BYTE |
target operating system
|
||||||||||||||||||||||||
|
37h |
BYTE |
other EXE flags (see #01599) | ||||||||||||||||||||||||
|
38h |
WORD |
offset to return thunks or start of gangload area | ||||||||||||||||||||||||
|
3Ah |
WORD |
offset to segment reference thunks or length of gangload area | ||||||||||||||||||||||||
|
3Ch |
WORD |
minimum code swap area size | ||||||||||||||||||||||||
|
3Eh |
2 BYTEs |
expected Windows version (minor version first) |
|
Note: |
This header is documented in detail in the Windows 3.1 SDK Programmer's Reference, Vol. 4. |
|
See Also: |