Load MS-DOS 6.22 Core into High Memory

In MS-DOS 6.22, the configuration directive used to load the core operating system into memory outside the standard 640 KB conventional area is DOS=HIGH. By adding this command to the CONFIG.SYS file alongside an extended memory manager, the DOS kernel relocates to the High Memory Area (HMA). This article explains the exact directive syntax, the necessary driver prerequisites, and how to verify that conventional memory has been successfully freed.

The Directive: DOS=HIGH

To move the MS-DOS kernel out of conventional memory, the primary directive is:

DOS=HIGH

When this line is executed during boot, MS-DOS transfers the majority of its operating system code into the High Memory Area (HMA)—the first 64 KB of extended memory located just above the 1 MB address boundary. Doing so typically frees between 40 KB and 60 KB of conventional memory, providing critical space for memory-intensive DOS applications and games.

To also enable support for Upper Memory Blocks (UMBs)—the address space between 640 KB and 1024 KB used for loading device drivers and TSR programs—the directive can be combined:

DOS=HIGH,UMB

Prerequisites in CONFIG.SYS

The DOS=HIGH directive cannot function on its own because MS-DOS requires an extended memory specification (XMS) driver to access the HMA. Therefore, HIMEM.SYS must be initialized before the DOS directive is processed.

If using DOS=HIGH,UMB, an expanded memory manager such as EMM386.EXE is also required to map and manage the UMBs on an 80386 processor or higher.

A standard CONFIG.SYS configuration looks like this:

DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS
DOS=HIGH,UMB

Order of Execution

  1. HIMEM.SYS: Initializes extended memory (XMS) and provides access to the High Memory Area (HMA).
  2. EMM386.EXE (Optional): Manages Upper Memory Blocks (UMBs) located between 640 KB and 1 MB.
  3. DOS=HIGH,UMB: Tells the operating system kernel to relocate itself to the HMA and allows subsequent drivers to load into UMBs via DEVICEHIGH and LOADHIGH.

Verifying the Configuration

After saving the changes to CONFIG.SYS and rebooting the system, you can verify that the core operating system is residing in high memory by running the following command at the DOS prompt:

MEM

At the bottom of the memory report, MS-DOS will confirm the status with the message:

MS-DOS is resident in the high memory area.