DRVSPACE.SYS Role in the MS-DOS 6.22 Boot Path

This article explains the specific role and function of the DriveSpace driver (DRVSPACE.SYS, sometimes referenced as DRVSACE.SYS) during the startup sequence of MS-DOS 6.22. It covers how MS-DOS accesses compressed volume files (CVFs), the distinction between the preload kernel driver and the configuration driver, and how the driver manages memory allocation to preserve conventional RAM.

The Role of DriveSpace in MS-DOS 6.22

In MS-DOS 6.22, DriveSpace replaced the earlier DoubleSpace utility to provide on-the-fly disk compression. To allow an operating system to boot from a compressed drive, the compression engine must be integrated deeply into the earliest stages of the boot sequence. This functionality is split between two key components: DRVSPACE.BIN and DRVSPACE.SYS.

The Two-Stage Boot Process

  1. Pre-Configuration Loading (DRVSPACE.BIN): Before CONFIG.SYS is read, the core operating system loader (IO.SYS) searches the root of the host boot drive for DRVSPACE.BIN. If found, IO.SYS loads this binary directly into the top of conventional memory. This step is critical because it allows MS-DOS to mount the Compressed Volume File (typically DRVSPACE.000) and establish drive letter swapping before loading CONFIG.SYS and AUTOEXEC.BAT, which may reside on the compressed volume itself.

  2. Driver Relocation via CONFIG.SYS (DRVSPACE.SYS): Once IO.SYS mounts the compressed drive and processes CONFIG.SYS, it encounters a directive line:

    DEVICE=C:\DOS\DRVSPACE.SYS /MOVE

    or

    DEVICEHIGH=C:\DOS\DRVSPACE.SYS /MOVE

    At this stage, DRVSPACE.SYS acts as a loader and memory manager rather than an independent disk driver. It coordinates with the expanded/extended memory managers (such as HIMEM.SYS and EMM386.EXE) to relocate the resident DRVSPACE.BIN code.

Primary Functions of DRVSPACE.SYS

  • Memory Relocation: By default, DRVSPACE.BIN sits in conventional memory where it was placed prior to device driver initialization. DRVSPACE.SYS /MOVE relocates DRVSPACE.BIN to its final memory location—ideally into Upper Memory Blocks (UMBs) if DEVICEHIGH is utilized—thereby freeing up critical conventional 640 KB memory for user applications.
  • Drive Parameter Finalization: It finalizes the configuration of drive letter swaps, ensuring that the physical host drive and the compressed logical drive maintain correct drive letter mappings according to DRVSPACE.INI.
  • Buffer Allocation: It adjusts internal disk buffers and caching structures based on the configuration settings declared in the system environment.

Without DRVSPACE.SYS loaded in CONFIG.SYS, the compressed drive will still function because DRVSPACE.BIN was preloaded by IO.SYS. However, DRVSPACE.BIN will remain trapped in standard conventional memory, unnecessarily reducing the amount of low RAM available to run DOS programs.