This region occupies the first sector of the CVF .  It contains the
following structure which describes the size and layout of the CVF.

Offset Size Contents
+0      3  abJmpCode    JMP opcode to start of boot code
+3      8  abOem        OEM name= "MSDSP6.0"
                                             Standard BPBRec

+0bH     2  wSectSize    bytes per sector (always 512; 200H)
+0dH     1  bClustSects  sectors per cluster (always 16; 10H)
+0eH     2  wResSects    boot and reserved sectors
+10H     1  bFatCnt      number of FATs (always 1; see note)
+11H     2  wRootEntries max DirEntryRecs in root (always 512; 200H)
+13H     2  wTotSects    total number of sectors in media
0000H means >32 MB, so use lBigTotSects
+15H     1  bMedia       media descriptor (always F8H; i.e., hard disk)
+16H     2  wFatSects    number of sectors in one FAT
+18H     2  wSectsPerTrk sectors per track (random, ignored)
+1aH     2  wHeads       number of read/write heads  (random, ignored)
+1cH     4  lHidSects    hidden sectors)
+20H     4  lBigTotSects 32-bit TotSects in volume
                                      DoubleSpace Extensions

+24H     2  wMdFatStart  logical sector of start of MDFAT
+26H     1  bSectShift   sector-to-bytes shift (sector is 2  bytes)
+27H     2  wMdResSects  number of sectors before BootSect
+29H     2  wRootStart   logical sector of start of root directory
+2bH     2  wHeapStart   logical sector of start of Sector Heap
+2dH     2  wFirstData   Number of MDFAT entries (clusters) which are
occupied by the DOS boot sector, reserved, and
root directory.
+2fH     1  bBitFatPgs   size of the BitFAT, in 2K pages
+30H     2  wRes1        (reserved)
+32H     1  bClustShift  cluster-to-sector shift (cluster is 2  sectors)
+33H     2  wRes2        (reserved)
+35H     4  lRes3        (reserved)
+39H     4  lRes4        (reserved)
+3dH     1  bFlag12Bit   01H=12-bit FAT, 00H=16-bit FAT
+3eH     2  wMaxMBs      Maximum CVF uncompressed capacity, in Megabytes
(not actual size; see below)
64               size of an MdBpbRec structure
                                              sector padding
+40H    450 res5         reserved (empty space to end of sector)

abJmpCode  through ...
lBigTotSects  The first fields line up with a standard BPB.  Additional
details can be found in BootSectorRec and BpbRec.

bFatCnt  A CVF "disk" is unusual in that it contains only one copy of
the standard FAT.  DoubleSpace "virtualizes" this, making it
seem as though two identical copies exist.  See FAT.

wMdFatStart  logical sector (from start of CVF) of the MDFAT; seek to
(wMdFatStart+1)*wSectSize bytes from the start of the CVF to
read this.

bSectShift  Log base 2 of wSectSize; handy for calculating how many bytes
can fit in a sector (one sector = 2  bytes).

wMdResSects  This describes how many sectors are reserved before the DOS
Boot sector in the compressed volume.

wRootStart  logical sector (from start of CVF) of the first sector of the
root directory.  Seek to (wMdResSects+wRootStart)*wSectSize
bytes from the start of the CVF to get to the start of this.

wHeapStart  logical sector (from start of CVF) of the first data sector.
Data in the sector heap is usually compressed.  See SectHeap.

wFirstData  tells how many 4-byte entries in the MDFAT are reserved for
non-data allocations, including DOS boot sector, reserved, and
root directory.  Thus, the first meaningful MdFatEntryRec is
really (wFirstData*4) bytes from the start of the MDFAT.

bBitFatPgs  Size of the BitFAT, in 2K units; i.e., the BitFAT is
(bBitFatPgs*2048) bytes long.

bClustShift  Log base 2 of bClustSects; handy for calculating how many
sectors are in a cluster (one cluster = 2  sectors).

res3  contains "16  " on my system

bFlag12Bit  indicates whether the FAT is represented with 12-bit entries
or 16-bit entries (00H=16-bit; 01H=12-bit).

wMaxMBs  Capacity of the CVF, in Megabytes.  It is the basis that was
used when DoubleSpace calculated the size of the variable-
length BitFAT, MDFAT, and FAT regions.

This is also the upper limit on the size of the Sector Heap,
in the case where all the data stored in the CVF is

Note that it is NOT the actual size of the CVF--only the
capacity of the internal bookkeeping regions.  In most cases,
this specifies a much larger size than is actually used, but
it makes it easier for DoubleSpace to grow and shrink the
volume.  DoubleSpace typically wastes several hundred Kbytes
of disk space when it prepares a large CVF (for instance, it
set up a 512 MB-capacity CVF on my 350 MB disk).

Notes: Although the first part of this structure is formatted as a DOS
4.0+ boot sector, this sector is never booted or executed as

See Also: CVF Layout
- -