Extended DOS Partition

 Starting with DOS 3.3, DOS supports a system that makes it possible for a
 hard disk to contain additional DOS partitions beyond the maximum of four
 that was available in previous versions.

 Originally, this was a work-around for the 32 MB-per-partition limit (that
 went away with DOS 4.0), but it can still be used to create additional
 logical disk volumes.  For instance, a hard disk can contain, say 3 non-
 DOS partitions and 20 DOS partitions.

 The basic idea is this:

 ■ When an entry in the Disk Partition Table contains 05H in the
   bFileSysCode field, that entry actually defines the location of a
   secondary Master Boot Sector which contains its own variation of a
   partition table, called an extended partiton record.

 ■ Each extended partition record has at most two entries.  One will
   contain a PartitionEntryRec that identifies the location and size of
   the DOS partition.  It will have a bFileSysCode of 1, 4, or 6.  The
   second (if any) will have a bFileSysCode of 5, indicating the
   location of another extended partition record.

 An extended partition record sector is like a partition table except that:

 ■ These logical drives are not bootable, so the sector does not need to
   contain any Master Boot Record-style boot code.   It just needs the
   data starting at offset 1beH in the sector (see MasterBootRec).

 ■ Entries cannot identify non-DOS partitions.  bFileSysCode values must
   be one of: 00 table entry is empty
              01 defines 12-bit DOS logical drive
              04 defines 16-bit DOS logical drive < 32 MB
              05 defines another extension table
              06 defines 16-bit DOS logical drive > 32 MB

 ■ The table will have either one or two entries.  One entry defines a
   type-1, 4, or 6 DOS drive.  The second (optional) entry may be a
   type-5 extension table indicator.  You can define only one drive per

 ■ When bFileSysCode is 1, 4, or 6, the start/end Hd/Sec/Cyl values are
   relative to the extension boot sector.

 ■ When bFileSysCode is 5, the start/end Hd/Sec/Cyl values are absolute
   (relative to the beginning of the physical disk).

See Also: INT 13H (disk I/O
          Partition Table
          Boot Sector
          Data Structures