How to View Memory Map Details in MS-DOS 6.22
Managing system memory effectively in MS-DOS 6.22 requires understanding how resident programs, drivers, and system resources occupy conventional, upper, and extended memory. This guide details the native MS-DOS command used to display the active memory map, outlines the specific switches required to reveal detailed diagnostic data, and explains how to interpret the resulting memory layout.
The primary command used to inspect memory allocation in MS-DOS 6.22
is MEM. Running MEM by itself provides a
high-level summary of total, used, and free memory across conventional,
upper, reserved, and extended (XMS) memory regions.
To view the active, low-level memory map details, the
MEM command must be run with specific command-line
switches:
The MEM /DEBUG Command
The /DEBUG (or /D) switch provides the most
exhaustive active memory map available in MS-DOS 6.22. It outputs:
- Internal device drivers loaded by the system (such as
CON,AUX, andPRN). - Installed third-party device drivers (such as
HIMEM.SYSor mouse drivers). - Active memory blocks, including terminate-and-stay-resident (TSR) programs.
- Segment addresses (in hexadecimal notation), block sizes, and allocation status.
To prevent the extensive output from scrolling off the screen, append
the /PAGE (or /P) switch:
MEM /D /P
The MEM /CLASSIFY
Command
For a cleaner breakdown that focuses on executable programs and
drivers rather than raw memory segments, use the /CLASSIFY
(or /C) switch. This command groups loaded programs by
memory region and displays:
- The name of each resident program and driver.
- The exact amount of conventional memory each module consumes.
- The amount of upper memory (UMB) each module consumes, if applicable.
- The largest executable program size remaining in conventional memory.
Run this command with the pagination switch:
MEM /C /P
Additional Useful Memory Switches
MEM /FREE(or/F): Displays a list of the free space remaining in both conventional and upper memory areas, including the segment addresses and sizes of each free block.MEM /MODULE <name>(or/M <name>): Displays a detailed memory map for a single specified program or driver currently residing in memory (e.g.,MEM /M DOSKEY).
Interpreting the Memory Map Output
When running MEM /D, the output columns indicate:
- Address: The starting hexadecimal segment address of the memory allocation block.
- Name: The program, driver, or system component
owning the block (or
freeif unallocated). - Size: The total byte size of that allocation block, displayed in both decimal and hexadecimal.
- Type: The classification of the block, such as
System Program,Device Driver,Data, orProgram.