EMM386
Encyclopedia
The name EMM386 was used for the expanded memory
managers of both Microsoft
's MS-DOS
and Digital Research
's DR-DOS
, which created expanded memory using extended memory
on Intel 80386
CPUs. There also is an EMM386.EXE available in FreeDOS
.
The technique probably first appeared with the development of CEMM
, included with Compaq DOS 3.31 in 1987. Microsoft's version first appeared, built-in, with Windows/386 2.1 in 1988 and as standalone EMM386.SYS with MS-DOS 4.01 in 1989; the more flexible EMM386.EXE version appeared in MS-DOS
5.0 in 1991.
Just as the other expanded memory managers, EMM386 uses the processor's virtual 8086 mode
. It temporarily shuts down during a Windows session in 386 Enhanced mode, with Windows' protected mode
kernel taking over its role.
EMM386.EXE can map memory into unused blocks in the upper memory area
(UMA), allowing device drivers and TSR
s to be "loaded high", preserving conventional memory
.
Expanded memory
In DOS memory management, expanded memory is a system of bank switching introduced April 24, 1985 that provided additional memory to DOS programs beyond the limit of conventional memory. Expanded memory uses parts of the address space normally dedicated to communication with peripherals for program...
managers of both Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
's MS-DOS
MS-DOS
MS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...
and Digital Research
Digital Research
Digital Research, Inc. was the company created by Dr. Gary Kildall to market and develop his CP/M operating system and related products. It was the first large software company in the microcomputer world...
's DR-DOS
DR-DOS
DR-DOS is an MS-DOS-compatible operating system for IBM PC-compatible personal computers, originally developed by Gary Kildall's Digital Research and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86...
, which created expanded memory using extended memory
Extended memory
In DOS memory management, extended memory refers to memory above the first megabyte of address space in an IBM PC or compatible with an 80286 or later processor. The term is mainly used under the DOS and Windows operating systems...
on Intel 80386
Intel 80386
The Intel 80386, also known as the i386, or just 386, was a 32-bit microprocessor introduced by Intel in 1985. The first versions had 275,000 transistors and were used as the central processing unit of many workstations and high-end personal computers of the time...
CPUs. There also is an EMM386.EXE available in FreeDOS
FreeDOS
FreeDOS is an operating system for IBM PC compatible computers. FreeDOS is made up of many different, separate programs that act as "packages" to the overall FreeDOS Project...
.
The technique probably first appeared with the development of CEMM
CEMM
CEMM, for Compaq Expanded Memory Manager was the first so-called PC "memory manager" for Intel 80386 CPUs, able to transform "XMS" extended memory into "EMS" expanded memory by using the virtual memory features and the virtual 8086 mode of the CPU....
, included with Compaq DOS 3.31 in 1987. Microsoft's version first appeared, built-in, with Windows/386 2.1 in 1988 and as standalone EMM386.SYS with MS-DOS 4.01 in 1989; the more flexible EMM386.EXE version appeared in MS-DOS
MS-DOS
MS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...
5.0 in 1991.
Just as the other expanded memory managers, EMM386 uses the processor's virtual 8086 mode
Virtual 8086 mode
In the 80386 microprocessor and later, virtual 8086 mode allows the execution of real mode applications that are incapable of running directly in protected mode while the processor is running a protected mode operating system.VM86 mode uses a segmentation scheme identical to that of real mode In...
. It temporarily shuts down during a Windows session in 386 Enhanced mode, with Windows' protected mode
Protected mode
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units...
kernel taking over its role.
EMM386.EXE can map memory into unused blocks in the upper memory area
Upper Memory Area
In DOS memory management, the upper memory area refers to memory between the addresses of 640 KB and 1024 KB in an IBM PC or compatible. IBM reserved the uppermost 384 KB of the 8088 CPU's 1024 KB address space for ROM, RAM on peripherals, and memory-mapped input/output...
(UMA), allowing device drivers and TSR
Terminate and Stay Resident
Terminate and Stay Resident is a computer system call in DOS computer operating systems that returns control to the system as if the program has quit, but keeps the program in memory...
s to be "loaded high", preserving conventional memory
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 usable by the operating system and application programs...
.