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