Re: int 0x13 utility
- From: João Jerónimo <spamtrap@xxxxxxxxxx>
- Date: Tue, 25 Mar 2008 13:57:36 +0000
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 reporte 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 reported: 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 support 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
support LBA routines, so it'll use CHS (which implies a maximum of 8GB). If
the SATA BIOS does not support 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
.
- Follow-Ups:
- Re: int 0x13 utility
- From: H. Peter Anvin
- Re: int 0x13 utility
- From: Alex Buell
- Re: int 0x13 utility
- References:
- int 0x13 utility
- From: Alex Buell
- int 0x13 utility
- Prev by Date: Problem with "mov" in GNU GAS
- Next by Date: Re: int 0x13 utility
- Previous by thread: Re: int 0x13 utility
- Next by thread: Re: int 0x13 utility
- Index(es):
Relevant Pages
|