How to List Loaded Drivers in MS-DOS 6.22

In MS-DOS 6.22, system administrators and users can inspect physical memory and view all active device drivers using the native MEM command. This article explains the exact syntax, the necessary command-line switches to reveal both standard and third-party drivers, and practical techniques to review the output effectively.

The Command: MEM /D

The primary command to list all loaded device drivers in physical memory under MS-DOS 6.22 is:

MEM /D

The /D switch stands for "Debug." It queries the system memory control blocks (MCBs) and displays a comprehensive, low-level breakdown of all conventional and upper memory areas. This includes internally loaded DOS drivers (such as CON, AUX, and PRN), drivers loaded via CONFIG.SYS (such as HIMEM.SYS, EMM386.EXE, or hardware CD-ROM/mouse drivers), and active TSR (Terminate and Stay Resident) programs.

Managing Long Output

Because MEM /D produces a lengthy output that quickly scrolls past the screen, you should use the /P (Page) switch to pause the output at each screen:

MEM /D /P

Alternatively, you can pipe the output through the MORE utility:

MEM /D | MORE

Understanding the Output

When executed, MEM /D outputs several columns of data:

  • Address: The hexadecimal segment address in physical memory where the driver or data block begins.
  • Name: The name of the driver module or program currently occupying that block.
  • Size: The total amount of physical memory used by the driver, represented in both decimal bytes and hexadecimal notation.
  • Type: The classification of the block, such as System Device Driver, Program, or Data.

MS-DOS 6.22 provides additional switches for the MEM command that help analyze loaded drivers in different formats:

  • MEM /C /P (Classify): Groups loaded drivers and programs by memory usage, categorizing them into conventional memory and upper memory blocks (UMBs). While less detailed than /D, it provides a cleaner overview of how much space each driver consumes.
  • MEM /M [name] (Module): Displays detailed memory allocation for a single specific driver. For example, typing MEM /M HIMEM lists only the memory blocks allocated to the HIMEM.SYS driver.