In
DOS memory management, the
upper memory area (
UMA) refers to
memory between the
addresses of 640
KB and 1024 KB (
0xA0000–0xFFFFF) 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. 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 (
UMBs).
Usage
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