• Please review our updated Terms and Rules here

8-Bit IDE Controller

hey guys... i tried using my prototype on my 386 DX/40. it's an everex motherboard. it was working fine for a bit, then it just stopped running the option ROM on boot. i freaked out, thought the card got borked somehow but i put it back in my XT clone and it works fine. any idea what the problem is? i even removed all cards except the video (tried two different ones) and the XT IDE card and it just won't run the option ROM no matter what.
well, luckily it works in the XT, which is where it's supposed to be. ;)

The only thing I can think of is that there are differences in speed on the ISA bus on the XT vs anything faster. 8MHz on a 286+ motherboard, and 4.77 on the PC/XT. That could cause something wonky in our design.
Why it would work one day and not another is beyond me though.

ANY clue what the issue could be?? i've reset the BIOS to defaults and everything. this is really crazy! what exactly are the DIP switch settings for the card? i've never changed them from what it was when i opened the package i got in the mail.

The left side dipswitches are the IO decode address. Changing those would require you to also change the BIOS, since the BIOS cannot auto detect itself. You've got it set to 300h, which is our default. It is using ports 300h through 308h in this configuration. (yes, we use 9 ports of IO space)

The right side bank is the ROM decode address, which is d000h by default.
You can move that without changing the BIOS, since this is just the spot where the BIOS is run from.

i played with a couple switches and the machine wouldn't boot past the POST because of a DMA #1 error, so i put them back to the old configuration.

I think we're back to needing a utility that can scan for empty ROM space and IO space and help people configure the cards. Such a program would cause issues on my tandy HX, since it doesn't return back FF on an unused IO address, but for most normal machines, I think such a utility would be useful.


maybe there's an option ROM mapping conflict, or an IRQ/DMA conflict??? i wouldn't imagine so because as i said i've tried just the video card and the XT IDE card. i completely disabled the mobo's onboard serial and parallel as well to be safe. i've also tried various different ISA slots. no help.
XTIDE doesn't use DMA or IRQs, so nothing can conflict there. However, if you have another device which is using IO space 300-308h already, we'd be tromping on their space, and that could cause all kinds of unhappiness.

Here's what I'd do.
Remove the XTIDE altogether, boot to a DOS disk and load up debug.
At the - prompt, type:
i 300 <enter>

it'll respond back with a 2 digit number. Hopefully it's FF.
If so, do this:
i 301
i 302
i 303
...
i 308

If all of those come back with FF, then the address range 300-308 are all free. You are safe to put the XTIDE, at its default address, back into your machine.

If any of the "i" instructions you did return any value other than FF, then something is already using ports 300-308 on your machine*, and you will need to find a new home for either the XTIDE or whatever else is using that address space. All you need to do here is keep poking around in debug, using that "i" command, to try and locate a range that is free. try 320-328, 340-348, etc, until you do find something that is free. You will then have to change the dipswitches on the card to set the base IO address to the new value, then use per's setup utility to change the default IO address in your flash BIOS file, and reflash your XTIDE card.

The ROM address is essentially the same thing.
In debug, type:
-D000:0

and if it displays nothing but FF FF FF FF FF patterns to the screen, then that space of memory is free. If you see anything other than FF, then there is already a ROM using that space. The ROM is using 8k of space. So you would need to verify that D000:0 through D000:1FFF are all returning back FF's. (You could just -d d000:0 and -d d000:1f00 and assume that the space in between those two address ranges are unused if everything returns back FF's.)

Anyway, I think some software that does the above would be useful.

None of this however explains why it worked for days on end, then suddenly stopped working. It makes even less sense as to why the card continues to work in the XT, but no longer does on the 486. Our rev 2 cards, with the write protect jumper, may be useful in this situation, but it doesn't sound to me like the ROM got corrupted since the XT is still happy with it.

maybe i need to update the option ROM? i *NEVER* have out of fear of some freak accident making it totally unbootable. :eek:

It'll should never be totally unbootable. If you corrupt the ROM to the point where it doesn't load during POST, it should still be flashable with the flashing program to get it back to normal, provided the hardware itself is still usable.
Does your flash part say SEEQ on it by any chance, or is it an Atmel?

* or you're using a Tandy 1000HX (or similar) which doesn't have any default value for unused IO space.
 
I haven't been paying full attention, but after it stops working, have you read the ROM contents back to a file with DEBUG/SYMDEB and compared with what you're supposed to be getting?
 
I think we're back to needing a utility that can scan for empty ROM space and IO space and help people configure the cards. Such a program would cause issues on my tandy HX, since it doesn't return back FF on an unused IO address, but for most normal machines, I think such a utility would be useful.

We already got one, see SETUP.COM from the utilities package availible from the Wiki. Just be aware that this program will decode switch settings for the rev. 2 card, however, it will show you the locations in hexadecimal so it is possible to decode the switch settings for the rev. 1 card manually. It will also give you instructions in how to flash the card with the new settings.
 
I haven't been paying full attention, but after it stops working, have you read the ROM contents back to a file with DEBUG/SYMDEB and compared with what you're supposed to be getting?

That's the wacky part of it. Move the card to the XT and now the ROM is working again! That means it wasn't corrupted, or the XT isn't checksumming the ROM, which I rather doubt. But yes, this would be my next line in debugging this. Get a ROM dump of it when it's not working and compare it back against oprom.bin from the xtide.zip.

I wish these things were happening to me. (not really) so I could really get in there and investigate rather than just guessing. I cannot get my cards to fail, ever, in my 486, tandy HX or zenith 8088.

We already got one, see SETUP.COM from the utilities package availible from the Wiki. Just be aware that this program will decode switch settings for the rev. 2 card, however, it will show you the locations in hexadecimal so it is possible to decode the switch settings for the rev. 1 card manually. It will also give you instructions in how to flash the card with the new settings.

Ah good. and sorry that I didn't know that. I've just kept everything at its defaults always, since my machines are all pretty bare bones to begin with.
 
Off topic but related to the problem...

I recently made an EPROM emulator and tested it with an option ROM
image I'm working on to add 1.44MB floppy support to the XT.

It worked fine for me in an XT and also in a 386DX/40 as shown in the pic on the website I mention below.. I had the ROMulator plugged into the ROM socket on a 3Com Ethernet card, to get it on the bus. There's nothing high speed about my creation, and it worked fine on the 386. Of course ISA bus accesses are never expected to be faster then they were in the 8 MHz PC AT (if I understand correctly).

Pics at: http://www.wrljet.com/romulator/
 
If you'll all indulge me in a stupid question...

If the board quits working (ROM goes away) and you leave the board where it is, power down and go away for a few hours, does it come right back?

Could be a thermal issue...
 
wow ok it doesn't work fine in the XT clone actually hargle. when i said that i didn't actually try to boot a drive. i just stuck the card in an ISA slot and booted and it seemed to load the option ROM okay. it goes crazy when i hook a drive up now. i've tried 3 of em, including the one that i always used for months here (a 10.2 GB WD) in the XT clone.

i will post a pic shortly of what i mean by goes crazy. i think i'll need to re-write the ROM to it. might as well do the most recent. this makes me worry for the health of my 386 motherboard. wonder if there's an electrical problem. i hope it didn't damage hardware on that card.
 
I'm three for three now!
I built two more up at work over the last couple days.
these cards are unstoppable. My LEDs now work too, now that I've stolen a few 150ohm resistors from work. (shhhh!)


Andrew, i will have a PCB, parts, and the original wire wrap prototype off in the mail to you in a day or so. I'm going to be out of town again this thursday-monday, but next week I can start filling orders for these. Pricing will appear shortly.

Before I can properly put together some kits to sell, I need to get some single row headers, some more resistors, and some of the little bolts to go into the bracket. I should probably buy a bag of jumpers too, and probably pick up a roll of static bags for shipping. I may have to turn my office into a shipping and handling department when we really get rolling.

Jameco ignored my RMA request to return the SEEQ parts and get atmel. I will contact them again tomorrow, but I doubt they will listen to me. So far, I've put 2 of the SEEQ parts in, and they are working.

Hi Hargle! Thanks! That's great news! Thanks for the update. I am very happy the PCB is working out.

Look south about 120 miles to Spam Town. My family and I are in town visiting family and relatives. I briefly considered coming up to visit you in Minneapolis but we are only here until the weekend.

Thanks and have a nice day!

Andrew Lynch
 
hey guys... i tried using my prototype on my 386 DX/40. it's an everex motherboard. it was working fine for a bit, then it just stopped running the option ROM on boot. i freaked out, thought the card got borked somehow but i put it back in my XT clone and it works fine. any idea what the problem is? i even removed all cards except the video (tried two different ones) and the XT IDE card and it just won't run the option ROM no matter what.

ANY clue what the issue could be?? i've reset the BIOS to defaults and everything. this is really crazy! what exactly are the DIP switch settings for the card? i've never changed them from what it was when i opened the package i got in the mail.

the DIP switches just to the left of jumper 1:

1 - on
2 - on
3 - on
4 - on
5 - off
6 - off
7 - on
8 - on

the other one:

1 - off
2 - off
3 - on
4 - off
5 - on
6 - on
7 - on
8 - on



i played with a couple switches and the machine wouldn't boot past the POST because of a DMA #1 error, so i put them back to the old configuration.

maybe there's an option ROM mapping conflict, or an IRQ/DMA conflict??? i wouldn't imagine so because as i said i've tried just the video card and the XT IDE card. i completely disabled the mobo's onboard serial and parallel as well to be safe. i've also tried various different ISA slots. no help.

maybe i need to update the option ROM? i *NEVER* have out of fear of some freak accident making it totally unbootable. :eek:

Hi Mike, I suggest you reprogram the ROM. I suspect it got corrupted. You may consider switching to a 2764 and that will prevent any future corruption.

I have no idea why that's happening although I suspect start up transients. The new PCB has write protect jumper which *should* make this better. Me, I prefer old school EPROM though as those are indestructible ROMs in circuit, AFAIK.

Thanks and have a nice day!

Andrew Lynch
 
Hi! If builders are seeing these sorts of issues, I strongly recommend moving to either an EPROM or at least a EEPROM with data protection modes. With the latter, you can program the device and tell the programmer to "lock" the device so it is read only.

There is some kind of weirdness with certain machines and it is why we are making prototypes and doing broad testing. It is probably normal though given there were *many* variations of the ISA bus before it really stabilized. Devices which work fine on XT 4.77 MHz do not necessarily translate well to 286 or later machines.

Thanks and have a nice day!

Andrew Lynch
 
There is some kind of weirdness with certain machines and it is why we are making prototypes and doing broad testing. It is probably normal though given there were *many* variations of the ISA bus before it really stabilized. Devices which work fine on XT 4.77 MHz do not necessarily translate well to 286 or later machines.
Andrew Lynch

But with memory parts you buy today you'd be hard pressed to make something that didn't keep up with an 8 MHz AT.

Bill
 
here's a pic of what i meant

xtidebork.jpg
 
is it also supposed to say "BIOS Installed.age-computer.com"?

EDIT: read an earlier post, i see now. Try reflashing? maybe the EEPROM is bad?
 
is it also supposed to say "BIOS Installed.age-computer.com"?

EDIT: read an earlier post, i see now. Try reflashing? maybe the EEPROM is bad?

Strange that the checksum still succseeds. Maybe the byte representinf the size of the BIOS extension has been corrupted, and only a small piece of the ROM is being checksumed?

Maybe a round with Debug may help may give some answers... The ROM amy even have been shuffeled by some memory manager routine (unlikely); that way the checksum would still be valid.

Maybe I should try to write a program that compares a part of memory with an input file.
 
i'm sure this info is in this thread multiple times, but there are 108 pages to look through... where can i download the latest ROM for the XT IDE card, and the software to write it?

also, on a slightly different topic... the BIOS on my 386 unfortunately doesn't allow user-specified hard drive parameters, but i have a 286 BIOS that does. both are AMI. as a test, i pulled the 386 BIOS chips (even & odd) off the board, and temporarily replaced them with the BIOS chips from the 286, and it works/boots perfectly on it.

if i ripped the 286's BIOS, could i get a couple blank EEPROM chips and burn it to them via the XT IDE card? they are the same chip size/pin count/pinout as these BIOS chips.

i'm forced to use EZ-Drive on my 386 because of this limitation, and hate it.
 
i'm sure this info is in this thread multiple times, but there are 108 pages to look through... where can i download the latest ROM for the XT IDE card, and the software to write it?

also, on a slightly different topic... the BIOS on my 386 unfortunately doesn't allow user-specified hard drive parameters, but i have a 286 BIOS that does. both are AMI. as a test, i pulled the 386 BIOS chips (even & odd) off the board, and temporarily replaced them with the BIOS chips from the 286, and it works/boots perfectly on it.

if i ripped the 286's BIOS, could i get a couple blank EEPROM chips and burn it to them via the XT IDE card? they are the same chip size/pin count/pinout as these BIOS chips.

i'm forced to use EZ-Drive on my 386 because of this limitation, and hate it.

The software is availble on the Wiki ( http://wiki.vintage-computer.com/ )
 
thanks. what switches on the prototype board need to be off/on to allow flashing?

for the first beta, jp1 has to be jumpered, and that's it. For the second beta, Jp1 and Jp2 should be jumpered. The flashing program may be able to locate the EEPROM address even if some parts of it are corrupted.
 
here's a pic of what i meant

Mike,

I dunno if would help with the ROM corruption issue (if that's what this is) but your BIOS appears to be really out of date. Looks like it might be release 8 or earlier, and we're at 10 now. There were some pretty serious bug fixes in release 9. If the ROM is corrupt, then a reflash to a newer BIOS would certainly fix it.

if i ripped the 286's BIOS, could i get a couple blank EEPROM chips and burn it to them via the XT IDE card? they are the same chip size/pin count/pinout as these BIOS chips.
Interesting. You'd have to get 28c64 eeproms, which are 8k in size in order to be compatible with the XTIDE. Your 2 BIOS chips are 8k each?
http://www.jameco.com/webapp/wcs/st...storeId=10001&catalogId=10001&productId=74827

The flash program may also complain about the binary file you'd be loading in is not an XTIDE BIOS, but that can be fixed easily enough. I'd never thought that our little card could also double as an eeprom programmer. hehe. You could probably even put the BIOS chips in our XTIDE to dump them. If they're even/odd chips, they will not show up as an option ROM, so the machine won't execute them, and they'd be visible in memory at D000:0.

I'd think there would almost have to be other issues from running a 286 BIOS in a 386 though. I'm amazed it worked!
 
Last edited:
Mike,

I dunno if would help with the ROM corruption issue (if that's what this is) but your BIOS appears to be really out of date. Looks like it might be release 8 or earlier, and we're at 10 now. There were some pretty serious bug fixes in release 9. If the ROM is corrupt, then a reflash to a newer BIOS would certainly fix it.


Interesting. You'd have to get 28c64 eeproms, which are 8k in size in order to be compatible with the XTIDE. Your 2 BIOS chips are 8k each?
http://www.jameco.com/webapp/wcs/st...storeId=10001&catalogId=10001&productId=74827

The flash program may also complain about the binary file you'd be loading in is not an XTIDE BIOS, but that can be fixed easily enough. I'd never thought that our little card could also double as an eeprom programmer. hehe. You could probably even put the BIOS chips in our XTIDE to dump them. If they're even/odd chips, they will not show up as an option ROM, so the machine won't execute them, and they'd be visible in memory at D000:0.

I'd think there would almost have to be other issues from running a 286 BIOS in a 386 though. I'm amazed it worked!

oh i might have been mistaked, i googled the atmel chip on the card and it looked like a 64 KB model but i was probably wrong about that. and yeah these BIOS ROMs are 64 KB each... it's the ancient even/odd chip setup.

tonight i'm going to try reflashing the atmel to BIOS revision 10. and yep, it's v0.8 :-0
 
Back
Top