Expanded memory

The Expanded Memory Specification ( briefly called EMS), a software interface for accessing so-called expanded memory (often unhappy to " expanded memory " Germanized ) on an x86 - compatible PC in real mode.

It was designed for PC -based processors of types 8088, 8086, 80186 and possibly 80286. With the 8088, 8086 and 80186 only an address space of up to 1 MB was directly addressing ( ie without memory management functions = so-called Real Mode). This restriction also was still for succession processors when they are run in real mode.

With EMS, the limit of 1 MB of physical memory could be circumvented by additional memory was displayed in small pages at a certain (usually not with RAM stored ) position in the 1 MB address space.

Today, EMS has no practical significance, since modern protected-mode operating systems are on these memory expansion no longer dependent and because modern processors can use both more memory as well as the protected-mode operating systems provide the necessary hardware support for flexible storage management. Virtual expanded memory, which is emulated by the memory management methods of the protected mode, however, enjoys a great popularity since it is easier to operate ( eg switch XMS, DPMIs or even in protected mode ) than other methods → see Section EMS from the 386.

Genesis

The mid- 1980s, when the operating system MS- DOS dominated the PC market, the 640 KB of conventional memory that it was providing a maximum for programs for many major programs ranged already no longer sufficient. Various solutions have been implemented to access more memory. Thus, special cards were sold, containing additional memory. These cards hidden some of its memory one at a certain point in the 1 -MB address space, so that a program could access it. Using special commands could be controlled, which part of the card memory ( often between 512 KB and 2 MB was great ) to be displayed in the address space of the processor (memory bank switching). This was a program never use all of the memory cards at once, but only the part that was just displayed. These cards were called memory expander, and the memory of them expanded memory.

These cards were incompatible with each other and a program that they wanted to use memory expander, had for each of these cards come with extra program functions. So agreed in 1985, the company Lotus ( the manufacturer of the spreadsheet Lotus 1-2-3), Intel and Microsoft was called to a default, the LIM EMS. In most cases, this standard is meant when expanded memory are talking about.

LIM EMS

LIM EMS writes a so-called "expanded memory manager" (EMM ) ago. This is a device driver that provides its functionality via a software interrupt. The expanded memory is in pages ( engl: pages ) divided by 16 KB. In the address space a 64 KB large window ( engl: pageFrame page or window ) is reserved in which then carries 4 EMS memory pages are mapped. The EMS window usually occupies addresses D0000hex to DFFFFhex; 4 superimposed EMS pages start at addresses D0000hex, D4000hex, D8000hex and DC000hex.

The supplied by the card manufacturer EMS driver ( often called EMM.SYS ) provides a standardized set of functions, for example to query the size of the entire expanded memory, the number of free pages, documents and sharing of memory pages and of course the A - hiding certain pages in the EMS window.

The functions of the EMS driver are at the software interrupt 67hex available.

EMS from 386

The EMS memory cards gained pretty rare, as they were quite expensive. However, from the 80386 processors dominated a special operating mode, which is called Virtual 8086 Mode. This mode can be a real mode environment (as DOS uses ) emulate within a protected mode environment. In protected mode, the x86 - compatible processors dominate from the 80386 also known as paging technique by which an image of the (virtual) program addresses to which various real (physical ) memory addresses is possible.

Both of these techniques allow a storage driver that provides an EMS window, and it redirects the requests to other storage areas ( beyond 1 MB line ). Emm386.exe The EMS driver who is in MS - ​​DOS version 4.00 here, or corresponding counterparts third party such as qemm386.exe Quarterdeck, thus enabling the provision of EMS memory without an EMS card in the computer is available.

323005
de