Subject: Re: Exactly what does the 1024 cyl limit break?
To: Frank van der Linden <frank@wins.uva.nl>
From: Kevin Cousins <kevinc@obelix.premium.com.au>
List: port-i386
Date: 11/28/1997 10:57:48
Joel> Is there any way of changing what that factor is?...  Somebody
Joel> mentioned to me once that the drive itself participates in the
Joel> translation used in LBA, so I expect that can't be adjusted by
Joel> anybody but the drive manufacturer. But what about the other
Joel> translation scheme?

Frank> Well, there are 2 things important here:

Frank> 1) How is the drive itself addressed?
Frank> * LBA mode (specify everything by sector number)
Frank> * CHS mode (specify cylinder, head, sector)

Frank> 2) How does the BIOS translate between what it gets via
Frank> int 13h and the drive?
Frank> * CHS mode (don't translate; just pass on to the drive)
Frank> * LARGE mode (translate CHS from int 13h into CHS for
Frank> IDE drives, which has different limits)
Frank> * LBA mode (translate CHS from int 13h into a number
Frank> of sectors; this makes things the most flexible)

In addition, different BIOSes can implement the same translation
scheme using different algorithms: for example, there're the brute
force methods, involving integer multiplications and divisions;
there're smarter, faster, methods employing clever bit-twiddling
techniques, and then between these two categories there's a whole
spectrum of other techniques.  I remember that there are roughly
THIRTEEN different categories of BIOS geometry translation
implementations.

Unfortunately, it appears that some older BIOSes from competing
manufacturers generate DIFFERENT RESULTS from their geometry
translation algorithms, so the idea is more or less that once you've
settled on a mapping scheme (geometry translation factor?), unless
you're aware of the potential consequences, it probably oughtn't be
changed.

--Kevin.