BPB: BIOS Parameter Block

 This is a subset of the data found in the Boot Sector Layout used by
 device drivers.  The 'Build BPB' device driver command (DvRq 02H) expects
 the driver to fill a buffer in this layout.

 Note the DOS 4.0 extensions (Extended BPB) at the end of the block.

  Offset Size Contents
  ▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
   +0      2  wSectSize    bytes per sector (usually 512; 200H)
   +2      1  bClustSects  sectors per allocation unit (cluster)
   +3      2  wResSects    boot and reserved sectors
   +5      1  bFatCnt      number of File Allocation Tables.  See FAT.
   +6      2  wRootEntries max number of 32-byte DirEntryRecs in root
   +8      2  wTotSects    total number of sectors in media
                           0000H means >32 MB, so use lBigTotSects
 +0aH      1  bMedia       media descriptor (same as 1st byte in FAT)
 +0bH      2  wFatSects    number of sectors in one FAT
                           ───────────────────────── Extended BPB additions
 +0dH      2  wSectsPerTrk sectors per track
 +0fH      2  wHeads       number of read/write heads
 +11H      4  lHidSects    hidden sectors (ignore hiword in pre-DOS 4.0)
 +15H      4  lBigTotSects 32-bit TotSects in volume (partitions > 32M)
          25               Length of a BPBRec (was 13 in pre-DOS 4.0)

   wResSects  The number of "reserved sectors", starting with absolute
              sector 0.  This counts how many sectors come before the first
              FAT in the partition.  It is usually 0001H; that is only the
              boot sector comes before the first FAT sector.

     bFatCnt  The number of File Allocation Tables.  Usually 02H; The second
              FAT is just a copy of the first.

wRootEntries  The size of the root directory, given in 32-byte units.  The
              root directory has a fixed size, but subdirectory space is
              allocated as needed.

   wTotSects  Total size of the media, in sectors (wSecSize bytes each).
              DOS 4.0+: This field will be 0000H to indicate a DOS partition
              that is larger than 32 MB.  In that case, the total sector
              count is the 32-bit value lBigTotSects.

      bMedia  Might identify the media.  Media Descriptor.

              ───────────────────────────────────── Extended BPB (DOS 4.0+)
              These fields may help the driver and/or disk utility programs
              to understand the media better.  Also, you may need to know
              this stuff when using BIOS Disk I/O (INT 13H).

wSectsPerTrk  Sectors per track (one surface of one platter)

      wHeads  Disk read/write heads (total surfaces all platters)

   lHidSects  Sectors before the start of the 1st FAT in the partition.

lBigTotSects  Dword total sectors in the partition.  When a partition is
              larger than 32 MB, there are more than 65535 sectors--the
              actual count won't fit in wTotSects so it goes here.

See Also: Boot Sector Layout
          Partition Table
          File Allocation Table
          Device Drivers