high memory area

(HMA) The first 64 kilobytes (minus 16 byte) of the extended memory on an IBM PC. By a strange design glitch the Intel 80x86 processors can actually address 17*64 kbyte minus 16 byte of memory (from 0000:0000 to ffff:ffff) 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. For compatibility reasons, later processors still wrapped around by default, but this feature could be switched off. Special programs called A20 handlers can control the addressing mode dynamically, thereby allowing programs to load themselves into the 1024--1088 kbyte region and run in real mode. From version 5.0 parts of MS-DOS can be loaded into HMA as well freeing up to 46 kbytes of conventional memory.