• Please review our updated Terms and Rules here

Behavior when BIOS won't support drive size

jrmymllr

Experienced Member
Joined
Jun 18, 2012
Messages
62
Location
MN USA
I'm sure this question has been asked many times before, but it's a difficult thing to pull out of a search.

I have these 4GB SSDs with an IDE connector that cause all sorts of weird problems on a 286. You may have seen a previous post about this: phantom serial ports detected, starts booting DOS but freezes before "Starting MS-DOS", won't boot from a floppy either. The IDE port for this configuration is from an add-in card with no buffering at all between ISA and IDE bus. The MB has no integrated I/O, hence the expansion card. The BIOS on the 286 does accept the CHS settings for the SSD.

I then tried the SSD in a P5 MB with integrated I/O, and everything works perfectly. Ok, so maybe it's because the P5 clearly has 74F245 bus transceivers near the IDE ports. So I tried it in a 386 Prolinea. Surely Compaq didn't take shortcuts, as I see '245s near the IDE port. Nope, same drive behavior. Begins booting DOS but stops before "Starting MS-DOS", and won't boot from floppy either. No errors in all cases. In both cases the floppy sounds like it wants to start but then stops, and starts, then stops again. IDE access is characterized by a very brief activity LED flash. AND, the Compaq automatically detects the SSD and displays the correct size!

So, could these problems be caused be a too large of drive? Interestingly I already have a 4.3GB hard drive in the Prolinea that works fine. But maybe I'm just lucky seeing as how the original drive from that computer is something like 42MB.

What is the typical behavior of a connected hard drive that is too large on less than Pentium systems? Could a too large of drive bring out weird BIOS bugs, even though the geometry is apparently supported?
 
Last edited:
If you set it up using all the space and then put it into a 286 with the 504 MB limit, you pretty much get exactly that behaviour.

You need to stay within the limit all the time, that is CHS 1024/16/63 (set these values manually in all systems you use the card in). This will of course limit the usable space to 504 MB.
 
If you set it up using all the space and then put it into a 286 with the 504 MB limit, you pretty much get exactly that behaviour.

You need to stay within the limit all the time, that is CHS 1024/16/63 (set these values manually in all systems you use the card in). This will of course limit the usable space to 504 MB.
Interesting. So even though the BIOS allows me to enter 7769/16/63, reducing the C to 1024 may resolve my problems? That would be an easy fix.

Incidentally I tested the BIOS in PCem with a virtual HD of 7769/16/63 and it booted fine. But I know simulation isn't like real hardware in some cases.
 
Yes, because while you may be able to enter these values, no standard BIOS until very late 486 systems are able to address more than 1024 cylinders, 16 heads, and 63 sectors.

Of course, another way to get around would be installing XT-IDE. Either in form of a controller card, or just the ROM if you have some way of doing that (the mainboard may have a free ROM socket or you can put it onto a network card).
 
Yes, because while you may be able to enter these values, no standard BIOS until very late 486 systems are able to address more than 1024 cylinders, 16 heads, and 63 sectors.

Of course, another way to get around would be installing XT-IDE. Either in form of a controller card, or just the ROM if you have some way of doing that (the mainboard may have a free ROM socket or you can put it onto a network card).
I have a ROM socket I can use, but I reduced the C to 1024 and I still get the phantom serial ports and it tries, but won't boot from a floppy. So back to hardware.
 
I have these 4GB SSDs with an IDE connector that cause all sorts of weird problems on a 286. You may have seen a previous post about this: phantom serial ports detected, starts booting DOS but freezes before "Starting MS-DOS", won't boot from a floppy either. The IDE port for this configuration is from an add-in card with no buffering at all between ISA and IDE bus. The MB has no integrated I/O, hence the expansion card. The BIOS on the 286 does accept the CHS settings for the SSD.
My experience with using CF cards is that some BIOS drivers implicitly rely on drives being slow, things taking time. Using a fast-responding flash drive causes all kinds of issues due to race conditions. These issues are independent of size limitations and buffering may or may not improve the situations, but won't fix them.

What is the typical behavior of a connected hard drive that is too large on less than Pentium systems? Could a too large of drive bring out weird BIOS bugs, even though the geometry is apparently supported?
Depends on the specific bugs you trigger.

Disk accesses may wrap around (e.g. accessing cylinder 1024 returns the result of cylinder 0), causing disk corruption. This is not visible for a long time as FAT tends to fill the disk from the beginning, and suddenly you killed the partition table and overwrote the FAT. The system no longer boots and you have no chance of recovering anything.

Address calculations within the BIOS may also overflow and corrupt nearby data structures, causing additional issues. My P5 system has no trouble accessing large disks, but the drive size shown at startup is wrong as the calculation overflows multiple times. My 2 GB HDD shows up as 48 MB...

Interesting. So even though the BIOS allows me to enter 7769/16/63, reducing the C to 1024 may resolve my problems? That would be an easy fix.
Yes, staying within the 504 MiB limit assures that addressing works correctly. It won't help for other bugs (e.g. race conditions).
It also may not work if the BIOS runs autodetection code anyway (although an 80286 won't) and disregards the result.

I have a ROM socket I can use, but I reduced the C to 1024 and I still get the phantom serial ports and it tries, but won't boot from a floppy. So back to hardware.
edit due to editing overlap: Can you boot from floppy without phantom ports if you simply disable the drive in the BIOS?
 
My experience with using CF cards is that some BIOS drivers implicitly rely on drives being slow, things taking time. Using a fast-responding flash drive causes all kinds of issues due to race conditions. These issues are independent of size limitations and buffering may or may not improve the situations, but won't fix them.


Depends on the specific bugs you trigger.

Disk accesses may wrap around (e.g. accessing cylinder 1024 returns the result of cylinder 0), causing disk corruption. This is not visible for a long time as FAT tends to fill the disk from the beginning, and suddenly you killed the partition table and overwrote the FAT. The system no longer boots and you have no chance of recovering anything.

Address calculations within the BIOS may also overflow and corrupt nearby data structures, causing additional issues. My P5 system has no trouble accessing large disks, but the drive size shown at startup is wrong as the calculation overflows multiple times. My 2 GB HDD shows up as 48 MB...


Yes, staying within the 504 MiB limit assures that addressing works correctly. It won't help for other bugs (e.g. race conditions).
It also may not work if the BIOS runs autodetection code anyway (although an 80286 won't) and disregards the result.


edit due to editing overlap: Can you boot from floppy without phantom ports if you simply disable the drive in the BIOS?

No, if I disable the drive in BIOS, the phantom ports still appear. So that seems to go back to hardware again. Someone else had said that the data lines on the SSD might be getting pulled up or down, therefore affecting the entire data bus. That's where I thought an adapter board to add something like '245 octal transceivers to the data lines might help.
 
I suspect that your SSD will accept a DDO.
I'm not all that interested in being able to use the entire 4G, I just want it to work. But it's seeming more and more like a hardware issue.

Today I connected it to my 486, which has the same I/O card without data bus buffering, and MR BIOS (which should be better about drive support). It wouldn't even POST. It gave me a beep code for some DMA failure that went away when I pulled the drive off. Guessing it's messing with the ISA bus. Works perfectly with the HDD and CDROM I normally have connected.

Time to get some connectors/headers to put a breadboard in the middle of the IDE cable and figure out what's happening.
 
Back
Top