*** Welcome to piglix ***

EMM386


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.

EMM386.EXE can map memory into unused blocks in the upper memory area (UMA), allowing device drivers and TSRs to be "loaded high", preserving conventional memory.

The technique probably first appeared with the development of CEMM, included with Compaq MS-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.

Only a few memory managers implemented the GEMMIS API, some of the ones that include it are: EMM386.EXE, Quarterdeck QEMM386.SYS and DOSBox builtin DOS. Notably missing are FreeDOS's memory managers.

All of FreeDOS memory managers (HIMEMX.EXE, JEMM386.EXE, JEMMEX.EXE), do not 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 98, Windows 95, Windows for Workgroups 3.1x, and Windows 3.xx, all will fail with JEMMxxx displaying:


...
Wikipedia

...