PDA

View Full Version : got a new floppy/IDE controller card, but 386 gives me controller fail error. help!!!



Mike Chambers
September 6th, 2006, 12:47 AM
i just got this brand new DTC2280 16-bit ISA multi-I/O controller including floppy and IDE hard drive connections. the reason i got it is so that i can finally take this 20+ year old slow as crap MFM hard drive out of my 386 DX/40 and use a half way decent IDE drive on it so that i have enough room to do an install of debian 2.2 ("potato").

no matter what settings i switch the jumpers on the card and drive to, the computer always says "HDD Controller Failure!" and wants me to hit F1 to resume. i even changed the HDD controller base address jumper, just in case this motherboard's BIOS is looking on 1F0 instead of 170.

i even tried a different, older drive. and i know that both drives are perfectly fine. i just used them in another system over the weekend. i tried both a western digital 3 GB drive and an IBM 256 MB drive.

the card is working just fine on my floppy drive. i can boot off a disk no problem.

even though it was unopened in the box, just to check and make sure i connected it to a spare early pentium motherboard i had sitting around that had an ISA slot. i went into it's BIOS and disabled all onboard drive controllers. sure enough, there was no problem! it saw the drives, and booted right into the DOS install i had on them.

am i just missing something obvious? i don't know what the heck it could be. out of frustration, i even completely reset the 386's CMOS. i was very careful about entering the right info into the BIOS after selecting user type 47 and everything.

if i take out the new card, and put in my old MFM controller then it works great, sure enough.

i just don't know what the deal is! does anybody have any clue?? thank you! this is really starting to frustrate me.

modem7
September 6th, 2006, 04:02 AM
I don't think you're missing anything obvious.

Have you tried powering up the 386 with the only expansion card fitted being the DTC2280 (in case of an inter-card incompatibility)?

What about different slots. Worth a try. It's fixed problems for me in the past.

mbbrutman
September 6th, 2006, 05:37 AM
If the add-in card has it's own BIOS you need to tell the 386 BIOS that no drives are available. That would be drive type 0, not 47.

Right now, the poor thing is trying to boot using the onboard controller.

If you tell it drive type 0, the motherboard BIOS won't try to boot using it's controller. Then as the BIOS scan continues, it will find the ROM BIOS extension on the new controller card and that will attempt to boot the machine. It will either auto-detect the drives or it will have it's own storage area for storing the drive parameters.

This belongs in PC hardware, so that's where I'm moving it.


Mike

Mike Chambers
September 9th, 2006, 11:49 PM
If the add-in card has it's own BIOS you need to tell the 386 BIOS that no drives are available. That would be drive type 0, not 47.

Right now, the poor thing is trying to boot using the onboard controller.

If you tell it drive type 0, the motherboard BIOS won't try to boot using it's controller. Then as the BIOS scan continues, it will find the ROM BIOS extension on the new controller card and that will attempt to boot the machine. It will either auto-detect the drives or it will have it's own storage area for storing the drive parameters.

This belongs in PC hardware, so that's where I'm moving it.


Mike

i don't believe this card has any sort of built-in BIOS. and also, the 386 board i'm using does not have any onboard controllers. i've been using an old MFM/RLL controller board and a seagate ST-251 disk (48 MB) taken out of a 286 machine.

i've messed around with this for days now, and nothing will work. :(

are there any sort of DOS generic IDE drivers i'd have to use? maybe put them on a floppy and boot from that? i've looked for something like that but can't find anything.

this old seagate drive is starting to go bad and i won't be able to use it much longer. there are a few physically damaged sectors on it, and i had scandisk mark them as bad for now but the internal media is just going to keep getting worse before it gets any better. i'm really surprised this drive works at all any more.

modem7
September 10th, 2006, 12:46 AM
I have a few variants of the classic Western Digital hard disk controllers that are intended for the IBM AT (or close compatibles). Some of the boards don't work in some of my 386's. In those 386's, cheap Taiwanese hard disk controllers work fine.
I just put it down to an incompatibility. Chief suspect for me is ISA bus speed. For example, some of the IBM boards for the PC/XT don't work in an AT - not because of IO ports / DMA / IRQ issues, but because the boards just weren't designed for the higher ISA bus speeds of the AT.

I know your board works okay in the early model Pentium, but perhaps that Pentium is running the ISA bus at a lower speed (for compatibility reasons).

I's just a another possibility.

mbbrutman
September 10th, 2006, 06:38 AM
Something doesn't add up here.

I don't expect the 386 to have an onboard controller, but the BIOS routines to operate a hard disk will be built into the BIOS of the machine. That's just the way ATs work.

If you put a card in that does not have it's own BIOS, set the CMOS settings on the 386 to the correct drive time (or user defined type) and it should be fine. Anything bad that happens after that is either bad cabling, bad jumpering on the card, or a bad drive.

If the card does have it's own BIOS then you have to disable the BIOS built into the motherboard by setting the CMOS drive types to 0. Some cards, like the Promise cards might want you to set the CMOS drive type to 1 instead. During the boot process the card will get a chance to 'sneak in' first before the machine tries to boot the hard drive because the BIOS on the card will be found doing the BIOS extension scan. At that time the BIOS on the card will replace the built-in BIOS routines on the motherboard.

If that phase happens correctly and you are still busted, then it's the card, jumpers, drive or cabling (again).

When I said 'the poor thing is trying to boot from it's own onboard controller', I meant that the poor thing was using it's BIOS routines. If there is no onboard controller or a controller in a slot that can be found, that would explain your error messages.

16 bit IDE cards with documentation appear on eBay fairly regularly. If you get one with the docs (or a popular one where the docs are available online) you should be fine.

Don't go back to an MFM drive. I love old technology, but those things are ticking time bombs. Drives have a life expectancy of 5 years, not 20.

Mike Chambers
September 10th, 2006, 09:11 PM
***PROBLEM SOLVED***

well i got the card working in my 386, finally!

remember how i said i even tried HDD controller address of 1F0? well, apparently i just didn't experiment with that enough and i only tried it once.

i was just looking at the original manual for my 256 MB IBM H3256-A3 hard drive, and i noticed that it said it needs a hardware base of 1F0... this IDE card's factory default was 170. so i tried switching it back to 1F0 and changed a couple options in the BIOS, and lo and behold it works flawlessly! not to mention ridiculously faster than that seagate MFM drive. plus it's quiet. the MFM drive was so damn loud, and it shook the entire computer case which made anything i set on top of it buzz endlessly from the vibration.

well, i am happy. now to install Debian 2.2 :D

i think i'll try to put in my spare 3 GB drive, because i see no reason that shouldn't work in here now.

btw, the BIOS did want me to put drive specs into it manually with type 47.

dreddnott
September 10th, 2006, 09:30 PM
Oh, those wacky IBM hard drives! When will their crazy antics ever stop?

Congratulations, anyhoo.

mbbrutman
September 11th, 2006, 06:07 AM
i was just looking at the original manual for my 256 MB IBM H3256-A3 hard drive, and i noticed that it said it needs a hardware base of 1F0... this IDE card's factory default was 170. so i tried switching it back to 1F0 and changed a couple options in the BIOS, and lo and behold it works flawlessly!

I'm confused here. The hard drive was specifying that it needed a specific I/O port? Only controllers need I/O ports .. is this a hard card or something similiar with a matching controller?

Mike Chambers
September 11th, 2006, 12:02 PM
I'm confused here. The hard drive was specifying that it needed a specific I/O port? Only controllers need I/O ports .. is this a hard card or something similiar with a matching controller?

no it's just an IDE hard disk. it didn't make sense to me either, but you can see it on page 13 of it's manual. here's a link to a PDF of it.

http://www.hitachigst.com/tech/techlib.nsf/techdocs/5F354582FFFE4F2786256E900073CC72/$file/oem3prog.pdf

it's under section 3.0 of that. i didn't know a hard drive could require a base address, but this one certainly seems to. if i pu the jumper on the controller card to 170 (which the card says is the normal factory default), it won't work.

it may have nothing to do with the drive. maybe this old 386 BIOS is just designed to look on that address for a controller. my 3 GB western digital also works on it now, so i suppose that is the case.

mbbrutman
September 11th, 2006, 12:55 PM
Ok, I think I understand now. IDE is even simpler than I thought.

0x1F0 and up is the primary IDE port.
0x170 and up is for the secondary IDE port.

The doc you have referenced says the following in section 3:


The host uses the register interface to communicate to and from the drive. The registers are accessed through the host port addresses shown in Figure 1.

That's a programming spec that you have for talking to a drive, and the way I read it that is the port addresses come from the host. The interface between the drive and the controller was not discussed in that section.

Anyway, in human terms, you had the controller jumped to be IDE port 2 and the 386 was trying to talk to a controller jumpered for IDE port 1.

Mike Chambers
September 11th, 2006, 01:12 PM
Ok, I think I understand now. IDE is even simpler than I thought.

0x1F0 and up is the primary IDE port.
0x170 and up is for the secondary IDE port.

The doc you have referenced says the following in section 3:



That's a programming spec that you have for talking to a drive, and the way I read it that is the port addresses come from the host. The interface between the drive and the controller was not discussed in that section.

Anyway, in human terms, you had the controller jumped to be IDE port 2 and the 386 was trying to talk to a controller jumpered for IDE port 1.

yeah i know its programming specs, i guess i missed the part where it says it comes from the host... i found that pretty interesting, though. one could easily write their own interface for it if their BIOS didn't support IDE controllers or something.

that's the first time i've actually seen a manual for a HD give you that kind of info.

mbbrutman
September 11th, 2006, 01:53 PM
It's the ATA specification actually.

There are a lot of machines that people have designed homebrew IDE adapters for. It works because all you need is 8 or so IO ports on the host machine. The more advanced IDE features take advantage of DMA, etc. but for a simple machine programming the IO ports is enough to make it work. Not much different than working with the parallel port, or an Ethernet adapter.

Terry Yager
September 11th, 2006, 02:15 PM
Just wondering, Mike...are the 8-bit IDE devices considered ATA (or ATAPI)? I dunno, it's the 'Advanced Technology' part of the nomenclature that confuses me, since I'm not real sure if it refers to the IBM's 'Advanced Technology' archetechture or not.

--T

NathanAllan
September 11th, 2006, 09:18 PM
***PROBLEM SOLVED***

well i got the card working in my 386, finally!

remember how i said i even tried HDD controller address of 1F0? well, apparently i just didn't experiment with that enough and i only tried it once.

i was just looking at the original manual for my 256 MB IBM H3256-A3 hard drive, and i noticed that it said it needs a hardware base of 1F0... this IDE card's factory default was 170. so i tried switching it back to 1F0 and changed a couple options in the BIOS, and lo and behold it works flawlessly! not to mention ridiculously faster than that seagate MFM drive. plus it's quiet. the MFM drive was so damn loud, and it shook the entire computer case which made anything i set on top of it buzz endlessly from the vibration.

well, i am happy. now to install Debian 2.2 :D

i think i'll try to put in my spare 3 GB drive, because i see no reason that shouldn't work in here now.

btw, the BIOS did want me to put drive specs into it manually with type 47.
So how goes the Debian install? I had to ask. :D