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
table.

  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
- -

Extended DOS Partition