New Executable
Filename extension |
.exe, .dll |
---|---|
Type of format | Executable, dynamic-link library |
Extended from | DOS MZ executable |
The New Executable (abbreviated NE or NewEXE) is a 16-bit .exe file format, a successor to the DOS MZ executable format. It was used in Windows 1.0-3.x, multitasking MS-DOS 4.0,[1] OS/2 1.x, and the OS/2 subset of Windows NT up to version 5.0 (Windows 2000). A NE is also called a segmented executable.[2]
History
The first product to be released using the New Executable format was Windows 1.0 in 1985, followed by the 1986 multitasking MS-DOS 4.0, which was a separate branch of MS-DOS development, released between mainstream MS-DOS versions 3.2 and 3.3, and sometimes referred to as "European MS-DOS 4.0".
OS/2 1.0 was not released until 1987, but the "target operating system" field in the file header reserves value 01 for OS/2, and 02 for Windows,[3] suggesting that the format was designed with OS/2 already in mind, the Joint Development Agreement between IBM and Microsoft for OS/2 having been signed in August 1985, a few months before Windows 1.0 was released in November 1985.
The Portable Executable (PE) format replaced NE format in 32-bit and 64-bit versions of Windows, while Linear Executables (LX) replaced NE for 32-bit programs in OS/2.
Compatibility
While designed for 16-bit OSes, NE executables can be run on 32-bit Windows. Beginning with Windows Vista, icon resources inside New Executables are not extracted and shown even by the 32-bit shell.[4] 64-bit versions of Windows completely lack native support for running NE executables, because 64-bit Windows can't run 16-bit programs on the processor without the help of an emulator.
Due to the rare and fairly complex nature of these files, only a few .EXE packers support it: WinLite, PackWin, PKLite 2.01, and SLR Optloader or NeLite for OS/2. The NE format is also still used as (non-executable) container for .fon
Microsoft Windows bitmapped fonts.
DOS stub
New (NE), linear (LX), and portable (PE) executables retain the DOS MZ format file header for backward compatibility with DOS. When run under DOS, a so-called DOS stub is executed which usually prints a message and exits. However, Windows 1.0 executables have their file header formatted in such a way that DOS refuses to run them with the "program too large to fit in memory" error message; see Windows 1.0 Features.
See also
References
- ↑ Vernon Brooks. "Information about the little known multitasking MS-DOS 4.0". PC DOS Retro. Retrieved 2014-02-13.
- ↑ "Executable-File Header Format". Microsoft. Archived from the original on 2001-04-03. Retrieved 2014-02-13.
- ↑ http://www.ctyme.com/intr/rb-2939.htm#table1596
- ↑ 16-Bit Icons Are So Passé: Windows Confidential - TechNet Magazine