In DOS memory management
, the upper memory area
) refers to memory
between the addresses
of 640 KB
and 1024 KB (0xA
0000–0xFFFFF) in an IBM PC
or compatible. IBM reserved the uppermost 384 KB of the 8088 CPU
's 1024 KB address space for ROM
, and memory-mapped input/output. For example, the monochrome video memory area runs from 704 to 736 KB (0xB0000–B7FFF).
However, even with video RAM, the ROM BIOS
and I/O ports for expansion cards, much of this 384 KB of address space was unused. As the 640 KB memory restriction became ever more of an obstacle, techniques were found to fill the empty areas with RAM. These areas were referred to as upper memory blocks
The next stage in the evolution of DOS was for the operating system to use upper memory blocks (UMBs) and the high memory area
(HMA). This occurred with the release of DR DOS
5.0 in 1990. DR DOS' built-in memory manager, EMM386.EXE
, could perform most of the basic functionality of QEMM
and comparable programs.
The advantage of DR DOS 5 over the combination of an older DOS plus QEMM was that the DR DOS kernel itself and almost all of its data structures could be loaded into high memory. This left virtually all
the base memory free, allowing configurations with up to 620 KB out of 640 KB free.
Configuration was not automatic - free UMBs had to be identified by hand, manually included in the line that loaded EMM386 from CONFIG.SYS, and then drivers and so on had to be manually loaded into... Read More