Hardware Reference
In-Depth Information
problem for drives larger than 4.2GB because the CHS bit-shift translation rules typically resulted in
256 heads as a logical value, as seen in the following example:
Click here to view code image
Bit-shift
P-CHS L-CHS
Parameters Parameters
----------------------------------------------
Cylinders 12,000 750
Heads 16 256
Sectors/Track 63 63
==============================================
Total Sectors 12,096,000 12,096,000
----------------------------------------------
Total Bytes 6,193,152,000 6,193,152,000
Megabytes (MB) 6,193 6,193
Mebibytes (MiB) 5,906 5,906
Gigabytes (GB) 6.19 6.19
Gibibytes (GiB) 5.77 5.77
This scheme failed when you tried to install Windows 9x/Me (or DOS) on a drive larger than 4.2GB
because the L-CHS parameters included 256 heads. Any BIOS that implemented this scheme
essentially had a 4.2GB barrier, so installing a drive larger than that and selecting CHS bit-shift
translation caused the drive to fail. Note that this was not a problem for Windows NT or later.
Note
The BIOS is not actually at fault here; the problem instead lies with the DOS/Win9x/Me file
system code, which stores the sector-per-track number as an 8-bit value. The number 256
causes a problem because 256 equals 100000000b, which takes 9 bits to store. The value 255
(which equals 11111111b) is the largest value that can fit in an 8-bit binary register and is
therefore the maximum number of heads those operating systems can support.
To solve this problem, CHS bit-shift translation was revised by adding a rule such that if the drive
reported 16 heads and more than 8,192 cylinders (which would result in a 256-head translation), the
P-CHS head value would be assumed to be 15 (instead of 16) and the P-CHS cylinder value would
be multiplied by 16/15 to compensate. These adjusted cylinder and head values would then be
translated. The following example shows the results:
Click here to view code image
Bit-shift Revised Bit-
P-CHS L-CHS shift L-CHS
Parameters Parameters Parameters
-------------------------------------------------------------
Cylinders 12,000 750 800
Heads 16 256 240
Sectors/Track 63 63 63
=============================================================
Total Sectors 12,096,000 12,096,000 12,096,000
-------------------------------------------------------------
Total Bytes 6,193,152,000 6,193,152,000 6,193,152,000
Megabytes (MB) 6,193 6,193 6,193
Mebibytes (MiB) 5,906 5,906 5,906
Gigabytes (GB) 6.19 6.19 6.19
 
 
Search WWH ::




Custom Search