Alex Buell wrote:
> So, I wrote a tiny utility program in NASM to get the disk parameters
> via the int 0x13 / AH = 8. The parameters it re****te are correct for
> the hard disks connected to my PC's motherboard, but when it queried
> the BIOS for the parameters of its SATA hard disk, it re****ted: 16
> heads, 1022 cylinders and 63 sectors. Ah! That's why MSDOS couldn't
> create partitions larger than 503MB!
If you access a HD using BIOS w/CHS, you'll never access past 8GB. If the
BIOS' (or driver's) routines don't sup****t the more recent CHS feature
that
allows it to map "big" disks to a virtual CHS geometry, you'll be even
more
limited.
As someone pointed already, it's pretty likely that MS-DOS 6.22 does not
sup****t LBA routines, so it'll use CHS (which implies a maximum of 8GB).
If
the SATA BIOS does not sup****t the virtual mapping I mentioned above in
it's CHS-based routines, then you'll be even more limited (I think it's
the
case).
Try FreeDOS, or write a wrapper that hooks int0x13 CHS routines and maps
virtual CHS addresses to LBA. You'll still be limited to 8GB, though...
JJ


|