I'm talking about the geometry of the disk. If the disk has 16 sectors
and 8 heads, then the maximum value allowed for any valid address is 16
in the sector field and 7 in the heads field. This influences the
translation to/from LBA. A sector with LBA of 1234 would have a CHS
address using this geometry of 9/5/3. If the disk reports a geometry of
x/8/16 but the bios is using a geometry of x/255/63, then when you pass
9/5/3 to int 13 it will fetch LBA 144902 which is clearly not going to
give you what you wanted.
Wrong! The disk gets an OFFSET! It doesn't care how that OFFSET
is obtained. That OFFSET is the sum of some variables. Some start
at 0 and some start at 1. The BIOS takes these PHONY things, without
checking to see if they "fit" in some pre-conceived notion of
"geometery" and sums them all up to make an OFFSET. The C/H/S
stuff started and ENDED with the ST-506 interface. PERIOD.