Lets start with the formula: 1024 * 256 * 63 * 512 = 8,455,716,864.
Most BIOSes do not use 1024 and 256, but subtract one from each. That
is somewhat an artifact of the old IBM AT where the last cylinder was
never allocated to allow the IBM Advanced Diagnostics to use it for
read/write testing of the old MFM hard drive.
The extended BIOS functions INT 13h, functions 4Xh allow packets to be
used to detail larger hard drives. I do not believe that MS-DOS 6.22
will use that access method, but I know that MS-DOS 7.x does. It
****pped with Windows 95, 98, 98SE, and Me in various minor version
numbers. I believe that IBM DOS was updated to handle this access.
Most SATA controller vendors probably don't even think about MS-DOS
anymore. You could write a small device driver that would hook INT
13h and for the second drive return a CHS value that is larger. I
would also consider disabling any ATAPI/IDE controllers on the
motherboard so the new drive is assigned 80h for the DL value.
I personally use USB drives to boot MS-DOS whenever I need it, but it
does require a later motherboard compared to the Pentium III.
On Sat, 22 Mar 2008 15:30:31 +0000, Alex Buell <spamtrap@[EMAIL PROTECTED]
>
wrote:
>I recently bought a SATA controller for my old Pentium III box, and
>plugged it in. Hooked up a 120GB SATA hard disk, booted up with MSDOS
>6.22. Imagine my surprise when MSDOS FDISK refused to create a
>partition larger than 503MB even though it was specifically told it
>could use the large disk feature. Upgrading the SATA controller BIOS
>made no different, it was still a maximum of 503MB.
>
>MSDOS boots just fine, it just can't use partitions larger than 503MB
>with that SATA disk and controller.
>
>I have MSDOS correctly installed in a 2GB partition on a PATA disk
>connected to the motherboard, so I know the problem isn't with the
>motherboard's BIOS.
>
>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!
>
>I've told the manufacturers of the SATA that they need to fix their
>BIOS - hopefully they might release an updated BIOS for the SIL3114
>controller - fingers crossed. If they won't... I might have to fix it
>myself, and that is NOT an easy job!
>
>This utility also checks for the extended Int 0x13 / AH = 0x48 service
>but I haven't written the code to print out the values yet - that'll
>come as soon as I can find a PC that sup****ts that.
>
>You may find the utility along with its source code at
>http://www.munted.org.uk/programming/int0x13.zip
>
>Enjoy!


|