VOGONS


First post, by torindkflt

User metadata
Rank Member
Rank
Member

Alright, I've kinda hit a little frustrating snag with my current 486 rebuild. The motherboard is a QDI V4P895GRN/SMT with a QD6580W Rev 1.0 VLB Multi-I/O and drive controller card. Connected to the card is a Conner CFA850A hard drive. This is the exact same combination of parts that was used in the original 486 from my childhood which I am attempting to recreate. On the original system, the hard drive was partitioned to 810MB according to Windows 95.

Now, the BIOS on my rebuild automatically detects the drive as 813MB (Assuming 1MB=1048576 bytes). If you take away some reserved space for the partition table, then it certainly makes sense that I should be able to partition this drive as 810MB, just like in the original system. Indeed, if I connect this drive to my modern laptop running Windows 10 TP, I am able to partition it to 810MB no problem.

BUT, if I install the drive into my 486 and run FDISK, it reports the total size for the drive as 800MB, and will not allow me to partition it any larger than that. I know it's only a 10MB difference, but this is really bugging my OCD right now, because the original system was indeed partitioned to 810MB, I know this for an undeniable fact.

This brought about another discovery. If I partition the drive to 800MB on the 486 then run Scandisk on it, it finds no errors whatsoever. But, if I partition it to 810MB on my laptop, transplant it back into the 486 and run Scandisk on it there, 75MB worth of bad sectors suddenly appear in the middle of the partition.

So...considering that my laptop is able to successfully partition and format the drive at 810MB, and the 486 BIOS properly detects the drive as 813MB (which can support an 810MB partition) but won't let me partition it higher than 800MB, this only leaves the controller card. Could it have an 800MB size limit that's causing this problem?

UPDATE: I recall that the original childhood system eventually developed about 120MB of bad sectors, and they too were located in the middle of the partition. This makes me wonder now if there's perhaps some sort of incompatibility between this particular model of hard drive and controller card that makes partitioning it to full size unstable. The hard drive in the original system was later upgraded to a 4GB WD, and it worked perfectly fine. Of course, I had to install a drive overlay on it, but I believe that was a limitation of the BIOS and not the controller card itself.

UPDATE 2: Connected the drive to my laptop again (using a USB to IDE adapter), partitioned it to 810MB, then ran Chkdsk on it while it was still connected. No errors found. So, it's definitely SOMETHING with the 486. Still wondering if it's an 800MB limit with the controller card, or an incompatibility of some sort between the controller and the drive.

Last edited by torindkflt on 2015-06-10, 02:01. Edited 1 time in total.

Reply 1 of 10, by kanecvr

User metadata
Rank Oldbie
Rank
Oldbie

A similar problem has been bugging me for some time.

I found that DOS, win95 and win98 don't like it when you partition HDDs with anything other than FDISK. Make a win95 boot disk and partition the drive with FDISK - otherwise win95 will keep bugging you and telling you that the drive needs to be scanned / will not boot / etc - I can't explain why - maybe it's the size difference you mentioned? But partitioning HDDs for win9x machines with winXP and newer causes all sorts of problems like:

- DOS / win95 / win98 and sometimes winME refuse to boot off the drive
- constant recurrent nagging from scandisk telling you the drive needs to be checked - even if the drive has been checked just before
- weird files appearing on the drive
- data corruption
- bad sectors that go away when re-partitioned with FDISK

So I recommend, OCD aside, that you partition the drive using FDISK.EXE and format using FORMAT.COM off a win9x boot floppy.

Reply 2 of 10, by torindkflt

User metadata
Rank Member
Rank
Member

Unfortunately, it appears as if more is going on here than just the method of partitioning. I connected the drive to another DOS machine and was able to partition the entire thing with FDISK just fine. I stuck it back in the 486, and it's no longer showing any bad sectors. But, it won't boot no matter what I try. It just gives an error that says "No ROM BASIC, system halted". This still suggests perhaps an incompatibility between this specific model of drive and controller card (Or more specifically, this particular revision of this card). If that's the case, then I'm concerned about the long-term reliability regardless of how the drive is partitioned. I've ordered a different controller card, I'll see how things turn out with that one.

Reply 3 of 10, by idspispopd

User metadata
Rank Oldbie
Rank
Oldbie

Maybe this is a stupid question, but do both the 486 and the laptop detect the drive with the same geometry?
Is the HDD bootable if you partition and format it in the 486? In that case I'd probably leave it at that.
Is it possible that the size discrepancies result from different partitioning tools displaying the size in different units (ie. 1024/1000 based kB)? Maybe it is something crazy as using a 1024x1000b sized MB.

Reply 4 of 10, by Jepael

User metadata
Rank Oldbie
Rank
Oldbie

I bet this is a geometry translation error. There should be no 800MB barrier.

Physically the HDD uses 1652 cylinders, 16 heads and 63 sectors.

If the numbers seen by DOS are different, the geometry is translated by BIOS. And because DOS uses standard BIOS, this limits the cylinder value to 1024, so it has to be translated to use the whole disk.

For example, DOS could see the disk with 826 cylinders (halved) and 32 heads (doubled), still 63 sectors, in one machine. Other machines could translate the geometry differently, and therefore partitioning, booting and using the drive won't work across machines.

Check if you have multiple choices in BIOS/controller card how it performs translation. It is possible it performs the translation in a way that discards some sectors.

Reply 5 of 10, by torindkflt

User metadata
Rank Member
Rank
Member

Other than autodetect or the option to manually enter the CHS parameters, the only BIOS options I can see dealing with the IDE controller are to enable/disable LBA, enable/disable block mode and enable/disable 32-bit transfer. Obviously LBA needs to be enabled since the drive is larger than 512MB, but otherwise trying every combined iteration of the other two settings didn't make any difference.

The drive itself does have an additional jumper that selects between "Conner" and "ATA/CAM" modes, which according to Google simply changes the method the drive uses to determine whether a slave drive is present or not (This system does not have one). I still tried changing the jumper anyway, no change. I currently have the drive manually jumpered to Master. I could try Cable Select, but I presume that wouldn't make any difference.

I also checked the jumpers on the controller itself. For the IDE side, there are jumpers to enable/disable IDE, enable/disable the secondary IDE channel, detect/not detect the VLB bus frequency, change the address of the controller ROM and allow "non-disk" IDE devices to be connected to it (I presume this means CD-ROM, can't find any details about it). I did try different iterations of the IDE jumpers, but every result was either no change, no boot or no POST. One of the settings even wiped the CMOS and I had to set everything back up. 😒

Like I said, the BIOS itself has no trouble auto-detecting the full capacity of the drive. The CHS paramaters it provides from auto-detect match the label on the drive. So, either it's the controller card tossing up this 800MB limit, or for some odd reason it's DOS itself causing this problem. I did try running FDISK from a Win98 boot disk to see if maybe somehow it was the older version of DOS, but it didn't make any difference. Of course, had I remembered that I just a couple months ago partitioned a 2GB drive under DOS 6.22 on a different system, I would have realized this was a worthless test. 😵

This is really, really weird, because like I said this exact same combination of motherboard, controller card and hard drive (Albeit likely different revisions) would allow me to partition to 810MB on the original system from my childhood. Granted, just like what was happening on my current rebuild, there was the large chunk of bad sectors appearing in the middle of the drive on the original system, which implies an incompatibility of some sort. Now, I've been able to partition it to 810MB (In fact actually 812MB) using another DOS machine, and although it's no longer showing any bad sectors, I still cannot make it bootable. I've verified the partition is set active and I've even run FDISK /MBR to no avail.

At this point, I'm just gonna wait for the new controller card to arrive. I ordered one from the same time period (Late 94-early 95), but made sure to get a different chipset just in case it is a rogue incompatibility between the CFA850A and Winbond chipsets.

Reply 6 of 10, by Blurredman

User metadata
Rank Member
Rank
Member

My 425mb drive gets detected as 405mb on my 486 (VLB controller). I just live with it. Though it is pretty annoying. Free space is little enough after installing win95 and components, drivers, and whatever extras you might require.

http://blurredmanswebsite.ddns.net/ 😊

Reply 7 of 10, by torindkflt

User metadata
Rank Member
Rank
Member

Indeed, if this different controller doesn't fix this problem, then I'll have to learn to live with 800MB instead of 810MB. Like I said, I know it's not really much difference at all, but my nostalgic OCD is throwing a fit about this. 🤣 But yeah, if it comes down to it, I'm willing to live with 800MB. I knew going into this rebuild that it would be impossible to build something 100% identical to the childhood original, so I can learn to deal with this. At least I'll still have the comfort of knowing the correct model of drive is installed, even if it's not partitioned the same as the original.

Reply 8 of 10, by Jepael

User metadata
Rank Oldbie
Rank
Oldbie
Blurredman wrote:

My 425mb drive gets detected as 405mb on my 486 (VLB controller). I just live with it. Though it is pretty annoying.

If it says on the drive 425MB, it is 425 million bytes (1000000) which equals 405 megabytes (1048576). But this is a different issue, 850 million bytes should be 810 megabytes. If there is any DOS tool to print out the geometry DOS sees you should (chkdsk, MSD, scandisk?). At least you can use Debug to read MBR or DOS partition boot record and see a hex dump on screen.

I noticed there are CFS and CFA models of 850MB Conner and the other has 1651 cylinders and the other has 1652. But still, that would only account for 504 kilobyte difference.

Reply 9 of 10, by torindkflt

User metadata
Rank Member
Rank
Member

Chkdsk and Scandisk don't display the CHS parameters of a drive. I don't recall if MSD does or not, I'll check that after work. Beyond that, I imagine there are diagnostic tools that will provide this information, I just don't know any of them off the top of my head, primarily because I've never used any such tools before.

Reply 10 of 10, by torindkflt

User metadata
Rank Member
Rank
Member

Ok...and for mysterious reasons I am unable to determine, it has suddenly begun working perfectly fine. FDISK can now see and partition the entire drive, Scandisk finds no bad sectors, and it is bootable. The ONLY thing I have done with this computer since last night was replace the video card with a different model. That's it. I haven't changed any other settings. I find it highly unlikely that changing the video card would affect how the hard drive works. So, instead of being stumped as to why it wasn't working...now I'm stumped as to why it suddenly IS working! 🤣