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.[1]

LOADHIGH / LH / HILOAD
Developer(s)Digital Research, Novell, Microsoft, IBM, Caldera
Initial release11 June 1991; 32 years ago (1991-06-11)
Operating systemDOS
TypeCommand

The command was introduced with MS-DOS 5.0 / PC DOS 5.0 in 1991,[2][1] 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.[3][4]

Overview edit

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.[4]

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.[5] It is not available at all on Windows XP 64-Bit Edition[6] and also no longer available in the command interpreter of newer Windows operating systems.[7][clarification needed]

See also edit

References edit

  1. ^ a b "Overview of Memory-Management Functionality in MS-DOS". Microsoft. 2001-06-06. Q95555. Archived from the original on 2020-02-08. Retrieved 2020-02-08.
  2. ^ Wolverton, Van (2003). Running MS-DOS Version 6.22. 20th Anniversary Edition (6th revised ed.). Microsoft Press. ISBN 0-7356-1812-7.
  3. ^ Paul, Matthias R. (1997-07-30). NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds [Tips & tricks for Novell DOS 7, with a focus on undocumented details, bugs and workarounds]. MPDOSTIP (in German) (3 ed.). Archived from the original on 2016-11-05. Retrieved 2012-01-11. (NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. It is part of the author's yet larger MPDOSTIP.ZIP collection maintained up to 2001 and distributed on many sites at the time. The provided link points to a HTML-converted older version of the NWDOSTIP.TXT file.)
  4. ^ a b "Chapter 10 Managing Memory". Caldera DR-DOS 7.02 User Guide. Caldera, Inc. 1998 [1993, 1997]. Archived from the original on 2017-08-30. Retrieved 2017-08-30.
  5. ^ "Loadhigh". Technet. Microsoft. Archived from the original on 2019-08-13. Retrieved 2020-02-08. Windows XP does not use this command. It is accepted only for compatibility with MS-DOS files.
  6. ^ "MS-DOS subsystem commands". Microsoft.
  7. ^ "Windows Commands". Microsoft. 2023-04-26.

Further reading edit