Used to load device drivers into conventional and upper memory respectively.
The DEVICE and DEVICEHIGH commands can only be invoked from within Config.sys.


To load a device driver into conventional memory:
DEVICE=filename [dd-parameters]

To load a device driver into upper memory:
DEVICEHIGH [/Switches] = filename [dd-parameters]

filenameThe device driver to be installed
dd-parametersAny command-line information required by the device driver.
SwitchesOptionally used to define the location of device drivers in upper memory.
/L:region1[,minsize1]... One (or more) regions of memory into which the device driver should be loaded. By default, MS-DOS loads the driver into the largest free upper memory block (UMB) and makes all other UMBs available for the driver's use.
/SShrinks the UMB to its minimum size while the driver is loading. Using this switch makes the most efficient use of memory. This switch is generally used only by the MemMaker program, which can analyze a device driver's memory use to determine whether the /S switch can safely be used when loading that driver. This switch can be used only in conjunction with the /L switch and affects only UMBs for which a minimum size was specified.


Before using DEVICEHIGH to load device drivers into the upper memory area, Himem.sys and a UMB provider, such as Emm386.sys, must be loaded in conventional memory (using DEVICE=himem.sys and DEVICE=emm386.exe commands). The DOS=umb command must also be included in Config.sys.

If DEVICEHIGH is used but there is insufficient upper memory area available to load the specified device driver (or if the DOS=umb command is missing), the driver will be loaded into conventional memory instead.

By default, if a region is specified, DEVICEHIGH will load a driver into the largest UMB in that region so long as that UMB is larger than the driver's load size (usually equal to the size of the file).

Some drivers require extra memory when running and it is for these that minsize can be used to ensure that the driver will not be loaded into a UMB that is too small for it. If minsize is specified, the driver is loaded into that region only if it contains a UMB that is larger than both the driver's load size and the minsize value.

If a device drivers requires the use of more than one area of memory, these can be specified by separating the block numbers with a semicolon.

To determine how a particular device driver uses memory, and to list the free areas of memory, see the MEM command.


To load the device driver Ctmmsys.sys into region 2 of upper memory, and noting that it requires 10416 bytes to run although its file size is only 10350 bytes:
DEVICEHIGH /L:2,10416 =c:\sb16\drv\ctmmsys.sys

To load the driver Pts.sys in blocks 2 and 3:
DEVICEHIGH /L:2;3 = c:\drv\pts.sys

This page last revised:
December 9, 1999.