DOS extender
DOS extender is a rather curious name invented in the 1980s for programs started from MS-DOS, but which actually need to run in protected mode. DOS extenders could be either 16-bit, which required an Intel 80286 or better CPU, or they could be 32-bit, which required an Intel 80386. The idea behind running in protected mode was that it allowed to access more than 640 KB of memory, without relying on tricks like expanded memory.
The 1991 QEMM documentation uses the DOS-extended program expression.
Famous DOS extenders were Autocad and Microsoft Windows, starting from the Windows/386 2.1 release (Windows/286 2.1 was not a DOS extender, it just made use of the HMA and of expanded memory). The first 16-bit DOS extender in the Windows series was Windows 3.0 when running in "standard" mode. In the "386 enhanced" mode the kernel was 32-bit, but the applications were protected 16-bit mode, giving a hybrid nature to the system.
All DOS extenders needed to invoke DOS in order to access the disk services. On Intel 80386 CPUs this was easy, because DOS could be left running inside a virtual 8086 mode task which either 16-bit or the 32-bit code could invoke. However on Intel 80286 CPUs invoking DOS was probably trickier as it is not possible to switch to real mode easily; either a CPU reset through the keyboard controller or the undocumented LOADALL machine instruction were probably used, or maybe some BIOS function which used one of those methods internally.
Initially, DOS extenders performed the switch into protected mode and managed the protected mode all by themselves. Later, when protected mode started to be used on 80386 to emulate expanded memory using extended memory it became necessary to create a way for subsequent programs to enter protected mode as well, so the VCPI API was created. This API was difficult to conciliate with multitasking operating systems and DPMI has been introduced instead.
Famous DOS extenders
According to the 1991 QEMM 6.0 manual:
- AutoCAD 11
- Lotus 1–2–3 Rel 3
- Oracle Professional
- IBM Interleaf
- Microsoft Windows 3.0 (in standard or enhanced mode)
Others (often later ones):
- Quarterdeck Desqview and Desqview /X (includes QEMM, same vendor)
- Dos4gw (Watcom compilers)
- go32 (used by GNU compiler collection and Free Pascal).
- pmode/32 (used a lot in Demoes)
- wdosx (emulates a subset of win32 calls, to allow e.g. Delphi win32 console programs to run on dos)
- CWSDPMI Used in DOS programs which were programmed using DJGPP, this is a replacement the go32 Dos Extender.