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
- HIMEM.SYS: Initializes extended memory (XMS) and provides access to the High Memory Area (HMA).
- EMM386.EXE (Optional): Manages Upper Memory Blocks (UMBs) located between 640 KB and 1 MB.
- DOS=HIGH,UMB: Tells the operating system kernel to
relocate itself to the HMA and allows subsequent drivers to load into
UMBs via
DEVICEHIGHandLOADHIGH.
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.