DoubleSpace Compressed Volume File Layout
█▌Overview▐█
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
█▌Details▐█
Size
Name (sectors) Description
▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
MDBPB 1 This is a standard BPBRec (BIOS Parameter Block),
followed by additional fields describing the CVF. Very
important.
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).
See Also: DoubleSpace Overview
DoubleSpace API
DOS Functions
-♦-