Hardware Reference
In-Depth Information
———————————————————————
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 imple-
mented 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
It is interesting to note that 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 adjus-
ted cylinder and head values would then be translated. The following example shows the
results:
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
——————————————————————————————-
Search WWH ::




Custom Search