MS-DOS 6.22 MEM Command Memory Addresses
This guide explains how to view specific program memory address
locations in MS-DOS 6.22 using the MEM utility. While
standard memory reports display only high-level memory totals and
program sizes, using a specific command-line switch enables low-level
troubleshooting by revealing the exact segment addresses of active
drivers, resident programs, and free memory blocks.
To display program memory address locations in MS-DOS 6.22, use the
/D (or /DEBUG) parameter with the
MEM command.
Syntax and Execution
Enter either of the following commands at the MS-DOS command prompt:
MEM /D
or
MEM /DEBUG
Because the debug output produces a lengthy list of all internal device drivers, installed TSR (Terminate and Stay Resident) programs, and system data structures, it typically scrolls off the screen quickly. To pause the output one screen at a time, pair it with the /P (page) switch:
MEM /D /P
Alternatively, you can pipe the output to the MORE
filter:
MEM /D | MORE
Information Displayed by the /D Switch
When invoked with the /D parameter, the MEM
command shifts from an aggregated view to a detailed map of conventional
and Upper Memory Blocks (UMBs). The output provides:
- Segment Addresses: The starting memory location in
hexadecimal format (e.g.,
002B0,009C0) for every allocated block. - Module Name: The name of the program, driver, or system component occupying that address space.
- Total Size: The exact byte size of the allocated memory block, displayed in both hexadecimal and decimal notations.
- Type/Sub-type: Identifiers indicating whether a block represents an environment block, program code, data area, or free space.
Comparison with the /C Switch
The other common switch, /C (or
/CLASSIFY), only summarizes the memory footprint of
programs in conventional and upper memory, listing their sizes without
memory addresses. The /D switch is the only native
MS-DOS 6.22 MEM option that exposes the physical starting
address of each memory segment.