Access to IDE hard disks that use the AT Attachment (ATA) interface is through the system AT ROM BIOS INT13h services. IDE identifies a hard disk's capacity to the system BIOS by specifying the number of cylinders, heads, and sectors per track (CHS) in the CMOS memory.
Sectors are always 512 bytes in size, so you can determine the capacity of an IDE hard disk with the following formula:
cylinders x heads x sectors per track x 512 (bytes per sector) =
The system BIOS INT13h interface allows for a maximum of 1024 cylinders,
255 heads, and 63 sectors per track. The IDE interface allows for a
maximum of 65,536 cylinders, 16 heads, and 255 sectors per track. To
ensure compatible communication between the system BIOS and the IDE
interface, the least common denominators of 1024 cylinders, 16 heads, and
63 sectors per track must be used. When you are using the INT13h services
to access a hard disk, therefore, the largest drive that can be accessed
is 504 MB, calculated as follows:
1024 cylinders x 16 heads x 63 sectors per track x 512 = 528,482,304
bytes, or 504 MB
: Some hard disk manufacturers consider 1 MB to be 1,000,000 bytes and
would therefore consider 528,482,304 bytes to be 528 MB. In standard
programming vocabulary and in MS-DOS and Windows 95/98, however, 1 MB is
equal to 1,048,576 bytes, so 528,482,304 bytes is equal to 504 MB.
IDE hard disks that are larger than 504 MB require more than 1024 cylinders in the
CMOS memory (or they could instead use more than 63 sectors per track, but
this is very rare). As a result, drives of this size are not compatible
with the system BIOS INT13h interface and the entire drive cannot be used
unless geometry translation is being employed by the hard disk controller.
Because most IDE controllers do not use geometry translation, IDE hard
disks are almost always subject to the 1024-cylinder limit as imposed by
the system AT ROM BIOS.
: Small Computer System Interface (SCSI) controllers usually include a
device driver or BIOS ROM that replaces the system AT ROM BIOS services
when communicating with a SCSI hard disk and therefore are not limited to
1024 cylinders (504 MB). Enhanced Small Device Interface (ESDI) drives use
BIOS ROM-based INT13h functionality to provide drive geometry translation
that is compatible with the ATA interface. Also note that when you are
using IDE hard disks, it is possible to have a CMOS Setup allow you to
view the full number of cylinders but still have the ROM BIOS limited to
only 1024 cylinders.
MS-DOS, Windows 95, and Windows 98 support IDE drives that exceed the 504-MB (1024
cylinder) limit by using either geometry translation or LBA. Geometry
translation is implemented by BIOS drivers that translate the IDE hard
disk's actual geometry into geometry that will fit within the system BIOS'
INT13h limitations. LBA is implemented by the system BIOS or hard disk bus
adapter, which translates the CHS information that is passed to the BIOS
into a 28-bit logical block address that is used by the drive to retrieve
data from the disk.
To use an IDE hard disk that is larger than 504 MB (1024 cylinders) with MS-DOS, Windows 95, or Windows 98, use one of the following methods.
ROM BIOS Support for INT13h Extensions
Update your computer's ROM BIOS to a version that supports INT13h
extensions. A BIOS that supports LBA provides automatic translation
for IDE hard disks that are configured for more than 1024 cylinders.
This allows you to partition and format the entire drive with MS-DOS, Windows 95, or Windows 98 and to use the Windows 95 protected-mode disk driver
(Esdi_506.pdr) for 32-bit disk access.
: Contact your computer manufacturer for information about how to update your ROM BIOS or enabling LBA support in the CMOS memory. For information about how to set CHS information for your hard disk in the CMOS memory,
contact your hard drive manufacturer.
For more information about INT13H EXTENSIONS, please see the following
articles in the Microsoft Knowledge Base:
122052 Logical Block Addressing (LBA) Defined
153550 Hard Disk Limited to 8-GB Partition
Hard Disk Bus Adapter Support for INT13h Extensions
You may want to purchase a hard disk controller card that supports INT13H Extensions or
performs geometry translation. This allows you to partition and format the
entire disk with MS-DOS, Windows 95, or Windows 98 and to use the Windows 95/Windows 98
protected-mode disk driver (Esdi_506.pdr) for 32-bit disk access.
: For information about where to obtain a harddisk controller that
supports INT13h Extensions or performs geometry translation, contact your
hard disk or hard disk controller manufacturer.
Real-Mode Driver Support for Translation
You can use a third-party software utility to perform geometry translation.
Examples of this type of translation software include SpeedStor from
Storage Dimensions, EZ-Drive from Micro House, and Disk Manager from
OnTrack Computer Systems.
If you use version 6.03 or later of the OnTrack Disk Manager XBIOS drivers
(both the Master Boot Record and Config.sys drivers must be version 6.03
or later), the Windows 95/Windows 98 protected-mode driver (Esdi_506.pdr) obtains
the actual geometry and sector skew factor from the OnTrack driver by using
an API that is defined in the OnTrack Disk Manager XBIOS specification. In this
case, 32-bit disk access is available in Windows 95 and Windows 98.
If you use a version of the OnTrack Disk Manager XBIOS Drivers prior to
version 6.03 or another third-party utility, Esdi_506.pdr unloads and disk
access occurs in real mode by using the system BIOS INT13h interface. In
this case, you will still have access to your drive in Windows, but the
drive will be accessed by using MS-DOS Compatibility Mode.
: Disk Manager 6.03 is supported in protected mode on hard disks on
the primary IDE channel and when DriveSpace disk compression is not
installed. For drives on the secondary IDE channel, Disk Manager 7.0 or
later is required. When you use the DriveSpace compression software that is
included with Microsoft Windows 95, Windows 98, and Microsoft Plus!, Disk Manager
7.04 or later must be used.
The OnTrack Disk Manager XBIOS driver (Xbios.ovl) is stored in the root
folder of the boot drive and is loaded from the Master Boot Record to
support the primary partition (drive C). The Config.sys driver
(Dmdrvr.bin) supports extended partitions and must be loaded to access
any drives in the extended partition.
For information about how to set CHS information for your drive in the CMOS
memory, contact your hard disk manufacturer. In addition, these programs
usually require you to partition and format the drive with a special
utility provided with the third-party software. For information about this
procedure, consult the documentation that is included with the software or contact
the software manufacturer.
Use Only the First 1024 Cylinders of the Disk
In the CMOS settings, specify the CHS parameters so that no more than 1024
cylinders are used. This allows you to partition and format the drive to
a 504-MB capacity with MS-DOS, Windows 95, or Windows 98 and to use the Windows 95/Windows 98 protected-mode disk driver (Esdi_506.pdr) for 32-bit disk access.
For information about how to set CHS information for your drive in the CMOS
settings, contact your hard disk manufacturer.
Using Large Hard Disks with Windows and Windows for Workgroups
You can use the preceding methods to use a drive that is larger than 504
MB (1024 cylinders) with Windows version 3.0 or later or Windows for
Workgroups version 3.1 or 3.11. In addition, when you use one of these
methods you can use the Windows for Workgroups 3.11 32-bit file access
(VFAT) feature on most computers. Note that using INT13h extensions or
geometry translation as previously described does not allow you to use the
Windows or Windows for Workgroups 32-bit disk access feature.
In Windows and Windows for Workgroups versions 3.1 and later, 32-bit disk
access is provided by a FastDisk driver called WDCTRL. WDCTRL compares the
total number of cylinders specified for the hard disk in the CMOS memory
in the BIOS Parameter Block (BPB) with the number of cylinders reported by
the hard disk in response to an Identify Drive command. If the BIOS
reports more than 1024 cylinders, WDCTRL validation does not work regardless of
whether the system BIOS or bus adapter supports geometry translation or
To use 32-bit disk access with hard disks that are configured for more
than 1024 cylinders (and are therefore incompatible with WDCTRL), you must
use a third-party FastDisk driver provided by the manufacturer of the hard
disk or hard disk controller. You can also use such a FastDisk driver in
place of the Esdi_506.pdr file to provide 32-bit disk access in Windows 95 and Windows 98,
although this should not be necessary for most hard disks.
Disk Manager is manufactured by OnTrack Computer Systems, a vendor
independent of Microsoft; we make no warranty, implied or otherwise,
regarding this product's performance or reliability.
The third-party products that are discussed in this article are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.
Preparing A Hard Disk
For information about how to combine partitions or prepare your hard disk for installation or reinstallation of Windows 95 or Windows 98, please see the following articles in the Microsoft Knowledge Base:
255867 How to Use Fdisk and Format to Partition or Repartition a Hard Disk
221829 How to Install Windows 98 on a Computer with No Operating System