BIGpedia.com - High Memory Area - Encyclopedia and Dictionary Online
encyclopedia search

High Memory Area

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.

By a strange design glitch the Intel 80286 and subsequent processors can actually address 17×64 KB minus 16 bytes of memory (from 0000:0000 to FFFF:FFFF, written in PC memory segment notation with hexadecimal numbers) in real mode. In the Intel 8086 and Intel 8088 processors, unable to handle more than 1 megabyte of memory, addressing wrapped around, that is, address FFFF:0010 was equivalent to 0000:0000.

In order to allow running existing MS-DOS programs which relied on this feature on their newer IBM PC AT computers, IBM added special circuitry on the motherboard to simulate the wrapping around. This circuit was a simple logic gate which could disconnect the microprocessor's addressing line A20 from the rest of the motherboard. This gate could be controlled, initially through the keyboard controller, to allow running programs which wanted to access the entire RAM.

So-called A20 handlers could control the addressing mode dynamically, thereby allowing programs to load themselves into the 1024–1088 KB region and run in real mode. The first user of the HMA among Microsoft products was Windows/286 2.1 in 1988, which introduced the HIMEM.SYS device driver. Starting with versions 5.0 of DR-DOS (1990) and of MS-DOS (1991), parts of the operating system could be loaded into HMA as well, freeing up to 46 KB of conventional memory.

See also



The contents of this article are licensed from Wikipedia.org under the GNU Free Documentation License.
How to see transparent copy

01-04-2007 01:21:04