EMM386 is the
expanded memory
In DOS memory management, expanded memory is a system of bank switching that provided additional memory to DOS programs beyond the limit of conventional memory (640 KiB).
''Expanded memory'' is an umbrella term for several incompatible tech ...
manager of
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
's
MS-DOS
MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few op ...
,
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
's
PC DOS
PC or pc may refer to:
Arts and entertainment
* Player character or playable character, a fictional character controlled by a human player, usually in role-playing games or computer games
* '' Port Charles'', an American daytime TV soap opera
* ...
,
Digital Research
Digital Research, Inc. (DR or DRI) was a privately held American software company created by Gary Kildall to market and develop his CP/M operating system and related 8-bit, 16-bit and 32-bit systems like MP/M, Concurrent DOS, FlexOS, Multiuser ...
's
DR-DOS
DR-DOS is a disk operating system for IBM PC compatibles, originally developed by Gary A. Kildall's Digital Research, Inc. and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86. Upon its introduction in 198 ...
, and
Datalight's
ROM-DOS which is used to create expanded memory using
extended memory on
Intel 80386
The Intel 386, originally released as the 80386 and later renamed i386, is the third-generation x86 architecture microprocessor from Intel. It was the first 32-bit computing, 32-bit processor in the line, making it a significant evolution in ...
CPUs. There also is an EMM386.EXE available in
FreeDOS
FreeDOS (formerly PD-DOS) is a free software operating system for IBM PC compatible computers. It intends to provide a complete MS-DOS-compatible environment for running Legacy system, legacy software and supporting embedded systems. FreeDOS ca ...
.
Overview
EMM386.EXE can map memory into unused blocks in the
upper memory area
In DOS memory management, the upper memory area (UMA) is the memory between the addresses of 640 KB and 1024 KB ( 0xA0000–0xFFFFF) in an IBM PC or compatible. IBM reserved the uppermost 384 KB of the 8088 CPU's 1024 KB ...
(UMA), allowing device drivers and
terminate-and-stay-resident program
A terminate-and-stay-resident program (commonly TSR) is a computer program running under DOS that uses a system call to return control to DOS as though it has finished, but remains in computer memory so it can be reactivated later. This techni ...
s to be "loaded high", preserving
conventional memory
In DOS memory management, conventional memory, also called base memory, is the first 640 kilobytes of the memory on IBM PC or compatible systems. It is the read-write memory directly addressable by the processor for use by the operating system ...
.
The technique probably first appeared with the development of
CEMM, included with Compaq's OEM
MS-DOS
MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few op ...
for the
Compaq Deskpro 386 in 1986. Microsoft's version first appeared, built-in, with
Windows/386 2.0 in 1987 and as standalone EMM386.SYS with
MS-DOS 4.0 in 1988; the more flexible EMM386.EXE version appeared in
MS-DOS 5.0 in 1991.
EMM386 uses the processor's
virtual 8086 mode
In the 80386 microprocessor and later, virtual 8086 mode (also called virtual real mode, V86-mode, or VM86) allows the execution of real mode applications that are incapable of running directly in protected mode while the processor is running ...
. This forces memory accesses made by DOS applications to go through the processor's
MMU (introduced in the 386), and the page table entries used by the MMU are configured by EMM386 to map certain regions in upper memory to areas of extended memory (obtained by EMM386 through the extended memory manager
HIMEM.SYS). This technique enabled both EMS (expanded memory) as well as
UMBs - both of which appear to DOS applications to be memory in the upper area but are in fact mapped to physical memory locations beyond 1MB.
It temporarily shuts down during a Windows session in ''386 Enhanced'' mode, with Windows'
protected mode
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as Memory_segmentation, segmentation, virtual mem ...
kernel taking over its role.
Windows uses the GEMMIS API to take over memory management from EMM386.EXE. Global EMM Import Specification (GEMMIS) is supported via a document available to a select number of memory-manager vendors ("Windows/386 Paging Import Specification").
Only a few memory managers implemented the GEMMIS API, some of the ones that include it are: EMM386.EXE, Quarterdeck
QEMM, Qualitas
386MAX,
Helix Netroom and
DOSBox builtin DOS. Notably missing are FreeDOS's memory managers.
None of the FreeDOS memory managers (HIMEMX.EXE, JEMM386.EXE, JEMMEX.EXE) implement the GEMMIS API and Windows fails to start when running in conjunction with JEMMxxx since Windows fails to take over the memory management role.
Windows ME
Windows Me (Millennium Edition) is an operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. It was the successor to Windows 98, and was released to manufacturing on June 19, 2000, and t ...
,
Windows 98
Windows 98 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. It was the second operating system in the 9x line, as the successor to Windows 95. It was Software ...
,
Windows 95
Windows 95 is a consumer-oriented operating system developed by Microsoft and the first of its Windows 9x family of operating systems, released to manufacturing on July 14, 1995, and generally to retail on August 24, 1995. Windows 95 merged ...
,
Windows for Workgroups 3.1x, and
Windows 3
Windows 3.x means either of, or all of the following versions of Microsoft Windows:
* Windows 3.0
* Windows 3.1
Windows NT
* Windows NT 3.x
{{Set index article
Microsoft Windows, 3.x ...
.xx, all will fail with JEMMxxx displaying:
Cannot run Windows while the currently installed protected-mode software is
running.
Quit the protected-mode software, and then try again.
You may need to restart your computer.
With JEMMxx, it is possible to run Windows 3.x and Windows for Workgroups 3.1x in limited capabilities by forcing Windows to use Standard Mode; i.e. using 80286 Protected Mode, not 80386 Enhanced Mode. Three conditions are required:
# limit total XMS to 64MB
# EMS must be enabled, can't use NOEMS option. For example JEMMEX X2MAX=65422
# Windows operate in Standard Mode only, WIN /S or WIN /2
Note that Windows in standard mode is limited in functionality, it lacks virtual memory, it skips the
86Enhsection in SYSTEM.INI and any device drivers in
86Enhare not loaded.
History
See also
*
Upper memory area
In DOS memory management, the upper memory area (UMA) is the memory between the addresses of 640 KB and 1024 KB ( 0xA0000–0xFFFFF) in an IBM PC or compatible. IBM reserved the uppermost 384 KB of the 8088 CPU's 1024 KB ...
(UMA)
*
Extended memory (XMS)
*
Expanded memory
In DOS memory management, expanded memory is a system of bank switching that provided additional memory to DOS programs beyond the limit of conventional memory (640 KiB).
''Expanded memory'' is an umbrella term for several incompatible tech ...
(EMS)
*
List of DOS commands
This article lists notable commands provided by the MS-DOS disk operating system (DOS), especially as used on an IBM PC compatible computer. Other DOS variants as well as the legacy Windows shell, Command Prompt (cmd.exe), provide many of these c ...
References
External DOS commands
DOS memory management
Expanded memory managers
{{DOS-stub