|
Expanded Memory was a trick invented around 1984 that provided more memory to byte-hungry, business-oriented MS-DOS programs. These were typically spreadsheets and databases running on the original IBM PC, and on its successors like the IBM AT. Both machines used real mode memory architecture, which only allowed programs to use 1 megabyte of address space, of which only up to 640 KiB was reserved for use. To meet Wikipedias quality standards, this article or section may require cleanup. ...
A database is an organized collection of data. ...
IBM PC (IBM 5150) with keyboard and green screen monochrome monitor (IBM 5151), running MS-DOS 5. ...
The IBM AT, more formally known as the PC AT or PC/AT, was IBMs third-generation PC, designed around the Intel 80286 microprocessor and released in 1984. ...
Real mode (also called real address mode in Intels manuals) is an operating mode of 80286 and later x86-compatible CPUs. ...
According to the International Electrotechnical Commission a kibibyte (a contraction of kilo binary byte) is a unit of information or computer storage. ...
The idea behind expanded memory was to use part of the remaining 384 KiB, normally dedicated to communication with peripherals, for program memory as well. In order to fit potentially much more memory than the 384 KiB of free address space would allow, a banking scheme was devised, where only selected portions of the additional memory would be accessible at the same time. Originally, a single 64 KiB window of memory was possible; later this was made more flexible. Applications had to be written in a specific way in order to access expanded memory. Bank switching (also known as paging, but only loosely related to the ordinary meaning of this term in computing) was a technique common in 8-bit microcomputer systems, to increase the amount of addressable RAM and ROM without extending the address bus. ...
This insertion of a memory window into the peripheral address space could originally be accomplished only through specific expansion boards, plugged into the ISA expansion bus of the computer. Famous 1980's expanded memory boards were AST RAMpage, IBM PS/2 80286 Memory Expansion Option, AT&T Expanded Memory Adapter and the Intel Above Board. Given the price of RAM during the period, up to several hundred dollars per megabyte, and the quality and reputation of the above brand names, an expanded memory board was very expensive. Industry Standard Architecture (in practice almost always shortened to ISA) is a computer bus standard for IBM compatible computers. ...
It has been suggested that this article or section be merged with AST Computers, LLC. (Discuss) AST Research, Inc. ...
AT&T Inc. ...
Intel Corporation (NASDAQ: INTC, SEHK: 4335), founded in 1968 as Integrated Electronics Corporation, is a U.S.-based multinational corporation that is best known for designing and manufacturing microprocessors and specialized integrated circuits. ...
Later, some motherboards of Intel 80286-based computers implemented an expanded memory scheme that did not require add-on boards. Typically, software switches determined how much memory should be used as expanded memory and how much should be used as extended memory. An old Octek Jaguar V main board with an AMD 386DX-40 processor. ...
An Intel 80286 Microprocessor AMD 80286 with 12 Mhz. ...
Extended memory refers to memory above the first megabyte of address space in an IBM PC with an 80286 or later processor. ...
Beginning in 1987, the built-in memory management features of Intel 80386 processor freely modeled the address space when running legacy real mode software, making hardware solutions unnecessary. Expanded memory could be simulated only by the software. An Intel 80386 Microprocessor. ...
A more efficient way to access address space beyond 640KiB on 80286 and later processors, was by using the DOS Protected Mode Interface (DPMI). DOS extenders were drivers that allowed applications to run in protected mode. Rather than trying to access more memory through banking tricks, the drivers switched the processor into protected mode when running the application program, and back to real mode when accessing MS-DOS services. This allowed programs to directly access all memory which was configured as extended memory. DPMI is the method which Microsoft prescribes for a DOS program to run in protected mode and to access extended memory under a multitasking operating system like Microsoft Windows. ...
DOS extender is the name invented in the 1980s for a technology to allow programs started from MS-DOS, which ran in Real mode, to actually run in protected mode. ...
Protected mode is an operational mode of x86-compatible CPUs of the 80286 series or later. ...
The use of expanded memory by applications diminished through the early 1990s, as DOS extenders became more prevalent. The 1990s decade refers to the years from 1990 to 1999, inclusive. ...
Details
An expanded memory board being a hardware peripheral, it needed a software device driver, which exported its services. Such a device driver was called "expanded memory manager". Its name was variable; the previously mentioned boards used remm.sys (AST), ps2emm.sys (IBM), aemm.sys (AT&T) and emm.sys (Intel) respectively. Later, the expression became associated with software-only solutions requiring the 80386 processor, for example Quarterdeck's QEMM (see below). Windows XP loading drivers during a Safe Mode bootup A device driver, or a software driver is a specific type of computer software, typically developed to allow interaction with hardware devices. ...
Expanded memory was a common term for several incompatible technology variants. The Expanded Memory Specification (EMS) was developed jointly by Lotus, Intel, and Microsoft, so this specification was sometimes referred to as "LIM EMS". EEMS, a competing expanded memory management standard, was developed by AST Research, Quadram and Ashton-Tate. It allowed to also remap some or all of the lower 640 kB of memory, so that entire programs could be switched in and out of the extra RAM. The two standards were eventually combined as LIM EMS 4.0. Lotus Software (called Lotus Development Corporation before its acquisition by IBM) is an American software company with its headquarters in Cambridge, Massachusetts. ...
Intel Corporation (NASDAQ: INTC, SEHK: 4335), founded in 1968 as Integrated Electronics Corporation, is a U.S.-based multinational corporation that is best known for designing and manufacturing microprocessors and specialized integrated circuits. ...
Microsoft Corporation (NASDAQ: MSFT, HKSE: 4338) is an international computer technology corporation with 2005 global annual sales of US$42. ...
It has been suggested that this article or section be merged with AST Computers, LLC. (Discuss) AST Research, Inc. ...
Ashton-Tate (Ashton-Tate Corporation) was a US based software company best known for developing the popular dBASE database application. ...
Software emulations The first software expanded memory management (emulation) program was probably CEMM, available in November 1987 with Compaq DOS 3.31. A popular and well-featured commercial solution was Quarterdeck's QEMM. A contender was Qualitas' 386MAX. Functionality was later incorporated into MS-DOS 4.01 in 1989 and into DR-DOS 5.0 in 1990, as EMM386. CEMM, for Compaq Expanded Memory Manager was probably the first so-called PC memory manager for Intel 80386 CPUs, able to transform extended memory into EMS expanded memory by using the virtual memory features and the virtual 8086 mode of the CPU. It was present in Compaq DOS 3. ...
QEMM, the Quarterdeck Expanded Memory Manager by Quarterdeck, was the most popular memory manager for the DOS operating system. ...
386MAX (written as 386MAX, pronounced 386-to-the-max) was a computer memory manager for DOS-based personal computers. ...
DR-DOS is a DOS-family-compatible operating system for IBM PC-compatible personal computers, originally developed by Gary Kildalls Digital Research and derived from CP/M-86. ...
This article is about the year. ...
EMM386 was Microsofts expanded memory manager, which created expanded memory using extended memory on Intel 80386 CPUs. ...
Software expanded memory manager in general offered additional, but closely related functionality. Notably, they could create ordinary memory areas (Upper Memory Blocks) in the high 384 KiB of real mode address space and provided tools for loading small programs, typically TSRs inside ("loadhi" or "loadhigh"). The Upper Memory Area (UMA) is a feature of the design of IBM PC-compatible x86 computers. ...
TSR has a number of meanings. ...
Interaction between extended memory, expanded memory emulation and DOS extenders ended up being regulated by the XMS, VCPI and DPMI specifications. XMS or Extended Memory Specification is the specification describing the use of IBM PC extended memory in real mode for storing data (but not executable code). ...
DPMI is the method which Microsoft prescribes for a DOS program to run in protected mode and to access extended memory under a multitasking operating system like Microsoft Windows. ...
DPMI is the method which Microsoft prescribes for a DOS program to run in protected mode and to access extended memory under a multitasking operating system like Microsoft Windows. ...
Certain emulation programs did not rely on motherboard or 80386 features at all. Instead, they reserved 64 KiB of the base RAM for the expanded memory window, where they copied data to and from extended memory or hard disk when application programs requested page switches. This was programmatically easy to implement but performance was low. This technique was offered by AboveDisk from Above Software and by several shareware programs. Shareware is a marketing method for software, whereby a trial version is distributed in advance and without payment, as is common for proprietary software. ...
Programming A 64 KB block of memory called a page frame could be set to "point" to any block of expanded memory. Software would utilize this 64 KB block as desired, and then when a different block was desired, the EMS driver would point the page frame to a different 64 KB block. Since software could only read from or write to a single 64 KB block at a time, utilizing expanded memory was onerous, and the task was feared and hated by all PC programmers. All data needed to be stored in chunks smaller than 64 KB, and only one of these chunks was actually accessible at a time [no, the pages were 16KB and you could access any four of these at a time within those 64 KB -- Peter Lund]. Still, it was a way to use more memory, and for memory-demanding software, using it in a grueling way was better than not using it at all. A constant design challenge was determining what data should be stored in the easy-to-use lower 640 KB of memory, and what data should be stored in expanded memory with its inherent management overhead. Prior to the standardization imposed by LIM EMS, every memory card shipped with its own driver and different APIs. After LIM EMS, Microsoft slightly altered the implementation of LIM EMS on DOS 3.31, so that memory would be aligned on word boundaries instead of byte boundaries as the original LIM EMS specification determined, causing some applications to fail to function correctly. In practice, users had to alter the configuration of their computers to use LIM EMS or Microsoft EMS according to the application they wanted to use. An application programming interface (API) is the interface that a computer system, library or application provides in order to allow requests for service to be made of it by other computer programs, and/or to allow data to be exchanged between them. ...
See also Unreal mode is a mode in which the x86 processors and x86-64 processors can operate, as are real mode, protected mode and long mode. ...
Conventional Memory is the first 640 kilobytes of an IBM PCs memory. ...
The Upper Memory Area (UMA) is a feature of the design of IBM PC-compatible x86 computers. ...
The High Memory Area (HMA) is the RAM area consisting of the first 64 kilobytes (KB), minus 16 bytes, of the extended memory on an IBM PC or compatible microcomputer. ...
Extended memory refers to memory above the first megabyte of address space in an IBM PC with an 80286 or later processor. ...
XMS or Extended Memory Specification is the specification describing the use of IBM PC extended memory in real mode for storing data (but not executable code). ...
References - A complete discussion of EMS and programming examples can be found in ["PC System Programming for developers", 1989, ISBN 1-55755-035-2 (Book only) and ISBN 1-55755-036-0 (Book and diskette)].
- Understanding EMS 4.0 by Lloyd Borrett, Technical Cornucopia, January–February 1989
- This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.
|