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
Pre-Configuration Loading (
DRVSPACE.BIN): BeforeCONFIG.SYSis read, the core operating system loader (IO.SYS) searches the root of the host boot drive forDRVSPACE.BIN. If found,IO.SYSloads this binary directly into the top of conventional memory. This step is critical because it allows MS-DOS to mount the Compressed Volume File (typicallyDRVSPACE.000) and establish drive letter swapping before loadingCONFIG.SYSandAUTOEXEC.BAT, which may reside on the compressed volume itself.Driver Relocation via
CONFIG.SYS(DRVSPACE.SYS): OnceIO.SYSmounts the compressed drive and processesCONFIG.SYS, it encounters a directive line:DEVICE=C:\DOS\DRVSPACE.SYS /MOVEor
DEVICEHIGH=C:\DOS\DRVSPACE.SYS /MOVEAt this stage,
DRVSPACE.SYSacts as a loader and memory manager rather than an independent disk driver. It coordinates with the expanded/extended memory managers (such asHIMEM.SYSandEMM386.EXE) to relocate the residentDRVSPACE.BINcode.
Primary Functions of DRVSPACE.SYS
- Memory Relocation: By default,
DRVSPACE.BINsits in conventional memory where it was placed prior to device driver initialization.DRVSPACE.SYS /MOVErelocatesDRVSPACE.BINto its final memory location—ideally into Upper Memory Blocks (UMBs) ifDEVICEHIGHis 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.