MS-DOS 6.22 Compatibility Utility: How to Use SETVER

MS-DOS 6.22 provides backward compatibility for legacy software through a built-in utility called SETVER. This article explains what SETVER is, how it emulates older MS-DOS versions for specific programs, and the exact steps required to load the driver and modify its compatibility table.

What Is SETVER?

The SETVER utility (short for "Set Version") is a compatibility tool introduced by Microsoft to resolve issues with programs hardcoded to check for specific, older MS-DOS versions. When newer operating systems like MS-DOS 6.22 are released, older applications often display an "Incorrect DOS version" error and terminate. SETVER intercepts version-check calls and returns the version number the application expects, allowing it to execute normally.

SETVER functions in two parts:

  1. A device driver (SETVER.EXE) that loads into memory and monitors system calls.
  2. A command-line program (SETVER.EXE) used to view, add, or delete entries in an internal compatibility table.

How SETVER Emulates Older Versions

Programs typically detect the operating system version by issuing an interrupt call—specifically, INT 21h, Function 30h ("Get DOS Version"). When the SETVER.EXE device driver is active, it intercepts this interrupt.

If the executing file matches a name in SETVER's internal table, the driver spoofs the return value, reporting the version defined in the table (such as MS-DOS 3.30 or 5.00) instead of 6.22. If the program is not in the table, the driver returns the true version (6.22).

Loading the SETVER Driver

To enable version emulation, the SETVER driver must be loaded in the CONFIG.SYS file before the target application runs.

  1. Open CONFIG.SYS in a text editor like MS-DOS Editor:
    EDIT C:\CONFIG.SYS
  2. Add the following line:
    DEVICE=C:\DOS\SETVER.EXE
    (Alternatively, use DEVICEHIGH=C:\DOS\SETVER.EXE to load the driver into upper memory if available).
  3. Save the file and restart the computer.

Managing the Compatibility Table

MS-DOS 6.22 comes with a pre-populated table containing dozens of common applications, but you can manage the list manually using the command line.

Viewing the Table

To view the current list of programs and their spoofed versions, enter:

SETVER

Adding a Program

To tell MS-DOS 6.22 to report a specific version to an executable, specify the file name and the target version number:

SETVER PROGRAM.EXE 3.30

After running this command, MS-DOS will display a warning noting that the program might not function properly if it relies on internal structures unique to that version. Press Y to confirm.

Note: You must restart the computer for changes to take effect, as the table is read into memory during startup.

Removing a Program

To remove an entry from the compatibility table, use the /DELETE (or /D) switch:

SETVER PROGRAM.EXE /D

Restart the system after deleting an entry to update the active table in memory.