AT BIOS Hard Disk Types
The following drive types are pre-defined in the AT and PS/2 ROM-BIOS.
During POST, the value in CMOS Memory address 12H (and/or 19H-1aH) is read
and the vectors for INT 41H and INT 46H are set to a ROM table containing
the information for the types of drive(s) installed.
Note: This table is probably NOT reliable for your computer. See
Notes, below.
Write Land Write Land
Type Cyls Hds PreComp Zone Size Type Cyls Hds PreComp Zone Size
▀▀▀▀ ▀▀▀▀ ▀▀▀ ▀▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀ ▀▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀
0 (no fixed disk installed) 17 977 5 300 977 42M
1 306 4 128 305 10M 18 977 7 0ffffH 977 59M
2 615 4 300 615 21M 19 1024 7 512 1023 62M
3 615 6 300 615 32M 20 733 5 300 732 31M
4 940 8 512 940 65M 21 733 7 300 732 44M
5 940 6 512 940 49M 22 733 5 300 733 31M
6 615 4 0ffffH 615 21M 23 306 4 0 336 10M
7 462 8 256 511 32M 24 612 4 305 663 22M
8 733 5 0ffffH 733 31M 25 306 4 0ffffH 340 10M
9 900 15 0ffffH 901 117M 26 612 4 0ffffH 670 21M
10 820 3 0ffffH 820 21M 27 698 7 300 732 43M
11 855 5 0ffffH 855 37M 28 967 5 488 977 42M
12 855 7 0ffffH 855 52M 29 306 4 0 340 11M
13 306 8 128 319 21M 30 611 4 306 663 21M
14 733 7 0ffffH 733 44M 31 732 7 300 732 46M
15 reserved (see notes) 32 1023 5 ffffH 1023 46M
16 612 4 0 663 21M (33-255 reserved, see notes)
Notes: ■ The drive-type table in ROM is a major point of departure for
the various BIOS makers. The above table identifies values
used in IBM's BIOS. Some BIOSes identify over 100 drive types.
Alas, there is no documented ROM address where you can hope to
find the table.
■ Type 1 is the original XT hard disk
■ Type 2 is the standard 20M AT hard disk
■ Type 15 is reserved. That value in CMOS address 12H tells the
system to look in CMOS address 19H for drive C: and 1aH for
drive D:
■ Types 16-23 were added to ROM-BIOS of 11/15/85
■ Types 24-32 were added to PS/2 BIOS
■ Write PreComp selects the lowest cylinder at which the
controller is to use different timing for writing. ffffH
means none; 0 means all.
Newer BIOSes provide a means to define a custom setting. The setting will
be stored in an undocumented location in CMOS memory (and is lost if the
battery ever fails -- so write it down!)
On older BIOSes it is difficult (but possible) to use drives that are not
in the table. You must install a table with the correct parameters and
force BIOS and DOS to notice the changes. Some hard-disk peprearation
tools handle this by creating a custom Master Boot Record that
installs the table at boot time.
See Also: Hard Disk Parameter Table
POST
INT 15H (extended AT services)
BIOS Data Area
-♦-