LOADHIGH

In computing, LOADHIGH (abbreviated LH) is an internal DOS command in COMMAND.COM that is used to load a program into the upper memory area (UMA) instead of conventional memory.

The command was introduced with MS-DOS 5.0 / PC DOS 5.0 in 1991, copying the built-in HILOAD command earlier introduced with DR DOS 5.0 in 1990. DR DOS 6.0 added support for this naming variant as well in 1991.

Overview
Due to design of the IBM PC, DOS suffered from what was known as the 640 KB barrier. The size of this memory area, known as conventional memory, was fixed and independent of the amount of system memory actually installed. Various schemes were developed to support extra memory (see also EMS, XMS) and DOS extenders, but conventional memory was still an issue due to compatibility issues. It was a scarce resource as many applications demanded a large part of this basic memory fragment at runtime. Therefore, it was often necessary to move high some TSR programs like the mouse driver or the disk caching driver (like SMARTDRV) prior to running a memory-hungry application. This was achieved by using LOADHIGH called with the program's name as the parameter.

To load TSRs high within CONFIG.SYS, the INSTALLHIGH directive must be used instead of the LOADHIGH command. The equivalent of LOADHIGH for device drivers is DEVICEHIGH (usable only within CONFIG.SYS). These are also supported since DR DOS 6.0. DR DOS 5.0 and higher also support HIINSTALL and HIDEVICE, respectively.

Most modern operating systems now run in protected mode with support for an unsegmented (flat) memory model and do not have a 640 KB constraint. LOADHIGH and other methods of freeing conventional memory have largely become obsolete.

LOADHIGH is part of the Windows XP MS-DOS subsystem to maintain MS-DOS and MS OS/2 version 1.x syntax compatibility only. It is not available at all on Windows XP 64-Bit Edition and also no longer available in the command interpreter of newer Windows operating systems.