DoubleSpace maintains all information structures and compressed data for a
DoubleSpace volume within a Compressed Volume File (CVF).  This topic
describes the layout of CVF.  CVF region summary:

MDBPB     All kinds of info, including addresses of other regions
BitFAT    Sector allocation tables; one bit represents one sector
Res1      (1 reserved sector)
MDFAT     Information describing each compressed cluster
Res2      (31 reserved sectors)
BootSect  a standard Boot Sector (sans boot program code)
Res3      (variable number of reserved sectors) contains MdStamp1
FAT       The familiar File Allocation Table for the volume
RootDir   The root directory for the volume
Res4      (2 reserved sectors)
SectHeap  the compressed data
MdStamp2  marks the end of the CVF

Name    (sectors) Description
MDBPB          1  This is a standard BPBRec (BIOS Parameter Block),
followed by additional fields describing the CVF.  Very

BitFAT    varies  One bit for each sector in the SectHeap.  A 1 means the
sector is in use and 0 means it's free.  The BitFAT may
be as large as 256 sectors (128K).

Res1           1  (reserved for future use by DoubleSpace)

MDFAT     varies  A table of 4-byte bit-packed MdFatEntryRec structures.
Each entry describes one cluster in the FAT; thereby
mapping each cluster to its actual data in the CVF.  The
MDFAT may be as large as 512 sectors (256K).

Res2          31  (reserved for future use by DoubleSpace)

BootSect       1  Although a CVF is never booted, this is formatted as
a standard BootSectorRec which simulates an uncompressed
disk of the estimated size.

Res3      varies  (reserved) One or more sectors are left empty in order
to position the FAT at a favorable sector-multiple from
the start of the CVF.

The first four bytes of the first sector in this region
contain the first DoubleSpace stamp (MdStamp1): ' DR0'
(f8H, 44H, 52H, 00H).

FAT       varies  This is a standard File Allocation Table.  It may be
a 12-bit FAT (for volumes < 4086 clusters) or a 16-bit
FAT for larger volumes.
Note that there is only one FAT.

RootDir       32  The root directory for the volume; it is
512 DirEntryRecs of 32 bytes each (exactly 32 sectors in
all cases, even small CVFs).

Res4           2  (reserved)

SectHeap  varies  The sectors containing the compressed data.  Each sector
is represented in the BitFAT.  When all sectors are
filled, the volume is full (even though DOS may think
there is free space because of unused FAT entries).

MdStamp2      1+  Marks the end of a CVF; the first four bytes of the last
full sector contain 'MDR0' (4dH, 44H, 52H, 00H).

- -

DoubleSpace Compressed Volume File Layout