Hard drives larger than 4.2GB may not be handled properly by MSDOS and Windows 95 on some older computers. The problem comes about because the code in these Operating Systems can not handle disks with 256 Heads.

Two different addressing systems are used when dealing with ATA disks. The systems have different maximum numbers of cylinders and heads although the product of heads times cylinders is the same in both systems. One system is used when communicating with the drive. A different system is used when communicating with software using the drive. The BIOS translates between the two systems. Translation algorithms accomodate some of the differences between ATA hardware addressing (disks) and Interrupt 13 (software) disk addressing by doubling/halving the number of heads and simultaneously halving/doubling the number of cylinders. When 128 heads is doubled, it yields 256 heads -- an unworkable value for MSDOS and Windows 95 although the BIOS handles it fine. The disk will not be able to access more than 4.23GB=128*63*1024*512/1000 bytes even though if hand allocated it will access 255 heads, 63 sectors and 1024 cylinders -- 8.42GB. Worse, it would fail for every partition, even those at the front of the disk, because partition allocation assumes full cylinders are being allocated and the last head on each cylinder would not be addressable.

A commonly used work around is to specify the drive as having 15 heads instead of 16. Serial doubling/halving will yield 30, 60, 120, 240 heads instead of 32, 64, 128, 256. The use of 15 heads as a base value permits the usable size to be 63*240*1024*512/1000=7.93GB. If a work around like this is done manually, the values used should be written down. If CMOS memory fails, their will be no easy way to determine how the drive was formatted since autotyping will report an incorrect (and unusable) configuration.

This problem was not discovered until drives with capacities greater than 4GB were actually shipped in late 1996. Although it is an OS problem, BIOS vendors adjusted their BIOS code to avoid the problem. Most BIOSes dated after early 1997 should not be limited to 4.2GB. They might report a bit less than 8.4GB maximum storage on large drives as a result of the work around.


Return To Index Copyright 1994-2002 by Donald Kenney.