High memory area

This requires that any such requests are tunneled through a stub remaining in memory outside the HMA, which would invoke the A20 handler in order to (temporarily) enable the A20 gate.

Starting in 1990 with Digital Research's DR DOS 5.0[3] (via HIDOS.SYS /BDOS=FFFF[4] and CONFIG.SYS HIDOS=ON) and since 1991 with MS-DOS 5.0[3] (via DOS=HIGH), parts of the operating system's BIOS and kernel could be loaded into the HMA as well,[3][5] freeing up to 46 KB of conventional memory.

[1] Other components, such as device drivers and terminate-and-stay-resident programs (TSRs), could at least be loaded into the upper memory area (UMA), but not into the HMA.

[5] Under DR DOS 6.0 (1991) and higher, the disk buffers (via HIBUFFERS, and later also BUFFERSHIGH), parts of the command processor COMMAND.COM as well as several special self-relocating drivers like KEYB, NLSFUNC and SHARE could load into the HMA as well (using their /MH option), thereby freeing up even more conventional memory and upper memory for conventional DOS software to work with.

[13] Under MS-DOS 7.0 (1995) to 8.0 (2000), parts of the HMA are also used as a scratchpad to hold a growing data structure recording various properties of the loaded real-mode drivers.

The high memory area is highlighted.