NE: Difference between revisions
[unchecked revision] | [unchecked revision] |
m (Added 64 bit incompatibility) |
(Added info opn fromat. Incomplete, more to be added soon (time restriction). Please do not delete.) |
||
Line 1: | Line 1: | ||
{{Stub}} |
{{Stub}} |
||
{{File formats}} |
{{File formats}} |
||
=NE= |
|||
==Introduction== |
|||
The WIN-NE executable format, designed for Windows 3.x, was the "NE", or "New Executable" format. Again, a 16bit format, it alleviated the maximum size restrictions that the [[MZ]] format had. |
The WIN-NE executable format, designed for Windows 3.x, was the "NE", or "New Executable" format. Again, a 16bit format, it alleviated the maximum size restrictions that the [[MZ]] format had. |
||
==Support== |
|||
Operating Systems that use it: Windows 1.01 through 3.xx. |
Operating Systems that use it: Windows 1.01 through 3.xx. |
||
The format '''can''' be run on later 32 bit windows systems (in a VDM), but is not the native format.<br /> |
The format '''can''' be run on later 32 bit windows systems (in a VDM), but is not the native format.<br /> |
||
Because of 64 bit lack of v8086, support is discarded on 64 bit windows. |
Because of 64 bit lack of v8086, support is discarded on 64 bit windows. |
||
=Inside the NE file= |
|||
==Overview== |
|||
===DOS Stub=== |
|||
The DOS stub is a valid MZ exe. This enables the develper to package both an MS-DOS and Win16 version of the program, but nromally just prints "This Program requires Microsoft Windows". The e_lfanew field (offset 0x3C) points to the NE header. |
|||
===NE Header=== |
|||
The NE header is a relatively large structure with multiple characteristics. The structure is as below: |
|||
<source lang="c"> |
|||
struct NE_header { |
|||
char sig[2]; //"NE" |
|||
uint8 MajLinkerVersion; //The major linker version |
|||
uint8 MinLinkerVersion; //The minor linker version |
|||
uint16 EntryTableOffset; //Offset of entry table, see below |
|||
uint16 EntryTableLength; //Length of entry table in bytes |
|||
uint32 FileLoadCRC; // |
|||
}; |
|||
</source> |
|||
==See Also== |
==See Also== |
||
===NE=== |
===NE=== |
||
*[http://www.nondot.org/sabre/os/files/Executables/EXE-3.1.txt OSRC] |
*[http://www.nondot.org/sabre/os/files/Executables/EXE-3.1.txt OSRC] |
||
*[http://www.fileformat.info/format/exe/corion-ne.htm fileformat.info] |
|||
===Executables=== |
===Executables=== |
||
*[[MZ]] |
*[[MZ]] |
Revision as of 07:59, 15 October 2012
Executable Formats |
---|
Microsoft |
*nix |
Apple |
NE
Introduction
The WIN-NE executable format, designed for Windows 3.x, was the "NE", or "New Executable" format. Again, a 16bit format, it alleviated the maximum size restrictions that the MZ format had.
Support
Operating Systems that use it: Windows 1.01 through 3.xx.
The format can be run on later 32 bit windows systems (in a VDM), but is not the native format.
Because of 64 bit lack of v8086, support is discarded on 64 bit windows.
Inside the NE file
Overview
DOS Stub
The DOS stub is a valid MZ exe. This enables the develper to package both an MS-DOS and Win16 version of the program, but nromally just prints "This Program requires Microsoft Windows". The e_lfanew field (offset 0x3C) points to the NE header.
NE Header
The NE header is a relatively large structure with multiple characteristics. The structure is as below:
struct NE_header {
char sig[2]; //"NE"
uint8 MajLinkerVersion; //The major linker version
uint8 MinLinkerVersion; //The minor linker version
uint16 EntryTableOffset; //Offset of entry table, see below
uint16 EntryTableLength; //Length of entry table in bytes
uint32 FileLoadCRC; //
};