EMS Page Frame Memory Range in MS-DOS 6.22
This article explains the memory ranges used to define the Expanded Memory Specification (EMS) page frame in MS-DOS 6.22. It covers the specific Upper Memory Area (UMA) segments where the page frame can reside, its standard default address, its 64 KB physical size, and the configuration syntax used with the EMM386.EXE driver.
The EMS Page Frame Memory Range
In MS-DOS 6.22, the Expanded Memory Specification (LIM EMS 4.0) page
frame must reside within the Upper Memory Area (UMA), which spans from
640 KB to 1024 KB (hexadecimal addresses
A0000h to FFFFFh).
Because video adapters and system BIOS ROMs occupy the lower and
upper bounds of the UMA, the page frame is restricted to the range
between C0000h and EFFFFh
(hexadecimal segments C000h to EFFFh, or 768
KB to 960 KB).
The most common default location assigned by MS-DOS 6.22 is:
- Segment Range:
D000htoDFFFh - Linear Memory Address:
D0000htoDFFFFh(832 KB to 896 KB)
Page Frame Structure and Size
The EMS page frame requires a contiguous 64 KB block of unreserved physical memory. This 64 KB window is subdivided into four independent 16 KB pages:
- Page 0:
D000h–D3FFh - Page 1:
D400h–D7FFh - Page 2:
D800h–DBFFh - Page 3:
DC00h–DFFFh
Real-mode DOS applications access expanded memory outside the 1 MB address space by instructing the expanded memory manager to bank-switch 16 KB segments into and out of these four physical windows.
Configuring the Range in MS-DOS 6.22
The page frame is initialized in the CONFIG.SYS file
using HIMEM.SYS alongside the expanded memory emulator
EMM386.EXE.
If hardware conflicts (such as network adapters or SCSI controllers)
occupy D000h–DFFFh, the frame parameter allows manual
reassignment to another contiguous 64 KB block within the
C000h–EFFFh range:
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM FRAME=C800
In this example, the page frame range shifts to
C8000h–D7FFFh. If set to NOEMS,
EMM386.EXE disables the 64 KB page frame entirely, freeing
the upper memory space for loading device drivers and TSR programs into
Upper Memory Blocks (UMBs).