• Please review our updated Terms and Rules here

8-Bit IDE Controller

I am having some BIOS issues with my Rev 1 card and they have to do with the SETCARD app and I think they might be related to BIOS corruption (or the fact that I burned the card to hell by plugging it in backwards even though I have replaced all the components).

I figure that I'll wait till REV 2 and not really worry about this one too much. The hardware changes on REV 2 should help with the corruption issue.

Testing the REV 2 card should be focused on plugging these things into every system that we can get our hands on that have a ISA slot and see if they work, and at the same time updating the list of known working drives. Most of the fixes moving forward should be software related. There should also be a real focus in documentation.

Per:

Is there anyway to make a setup menu in the BIOS itself rather than using DOS based command lines? Sort of like what you see in some RAID cards, it would not have to be elaborate, perhaps show the specs of the 2 drives plugged in and allow you to toggle the few options. Perhaps add the option to manually override the drive geometry.

I think this will increase the overall usability of the card.

Also, I know that I have asked this before but I forgot the answer and cannot find it in this enormous posting, but why do we have both hardware and software settings for the IO and memory ranges? Can we do away with the software setting, or perhaps have the BIOS grab the software settings directly from the hardware dips? It seems that having them both independently controllable could lead to an unusable card (or at least one that would take a very long time to get right).

Hargle and I are discussing how we intend to handle the sales of these items, and since Jameco is local to me I have offered to purchase the parts wholesale and sell them from there, this would mean that you CA guys would need to pay me sales tax, but it does mean the the overall cost of the card should decrease a little, especially when we start ordering the quantities that we will need for the interest we see here. On a side note, I can probably do this with other hardware projects that are going on in this community if need be.

We will keep you guys updated on how to buy them when they become available, and we are hoping this will be soon.
 
I am having some BIOS issues with my Rev 1 card and they have to do with the SETCARD app and I think they might be related to BIOS corruption (or the fact that I burned the card to hell by plugging it in backwards even though I have replaced all the components).
These eeproms are indeed weird beasts. I have never worked with an eeprom before that doesn't automagically lock itself against stray writes after you get done programming.
The way these work, *any* write, to any chunk of the 8k ROM space, causes the device to operate sorta like RAM, and you can just update willy nilly. It is quite possible, that with any sort of old DOS application, that something is scanning/testing/writing the regions in our eeprom segment and causing it to get corrupted. I've never seen it myself, but then my testing station is pretty skeleton like, since I am only testing for functionality, not usability.

There are certain revisions of atmel parts that have a software lock mode. We didn't get those, as it's luck of the draw for what you get from Jameco when you order.

The only other option, as per has suggested, is to flash the part, power down, then bend the WE pin on the eeprom out so that it's no longer writable.

Rev 2 cards have the write protect jumper which effectively does the same thing, so we've certainly all got a reason to move forward on the next design.

Testing the REV 2 card should be focused on plugging these things into every system that we can get our hands on that have a ISA slot and see if they work, and at the same time updating the list of known working drives. Most of the fixes moving forward should be software related. There should also be a real focus in documentation.

amen to that!

Is there anyway to make a setup menu in the BIOS itself rather than using DOS based command lines? Sort of like what you see in some RAID cards, it would not have to be elaborate, perhaps show the specs of the 2 drives plugged in and allow you to toggle the few options. Perhaps add the option to manually override the drive geometry.

More BIOS based stuff is always a good idea. It keeps it all "in house" without the need for manuals and external utilities. However, adding that functionality in the BIOS would also require you to keep your card in write enabled mode so you can change it whenever you wanted to, thus see problem #1. A solution would be to locate the proper atmel parts for the final production run, or, find a way to software control that WE line, and we'd have to add additional circuitry for that.

I absolutely want to add more setup like features and diagnostics into the BIOS, so we'll get there.

why do we have both hardware and software settings for the IO and memory ranges?
The BIOS cannot self detect where the IO space is located. I mean, it can, but you have to have a known working drive attached in order for the IO space to even decode (the drive is actually the hardware doing the decoding work, our card is merely an access point to get to the drive hardware)

Without a working drive on the chain, the card is completely dead to software probing. Software cannot read any of the settings on the dipswitches directly.

I can attempt to put some diagnostics into the BIOS where if we go out to read the ID of the drives and both fail, then display a message and attempt to go into a self detect mode to see if the dips just don't match up to the internal settings and show you how to correct it from there.
Putting multiple cards into a single machine would also break the self detect mechanism, since the 2nd card would be finding the 1st card. (that's workaroundable, but our existing method is easier)

The BIOS is still very much a work in progress, and we can have a lot of fun in there.
 
I am having some BIOS issues with my Rev 1 card and they have to do with the SETCARD app and I think they might be related to BIOS corruption (or the fact that I burned the card to hell by plugging it in backwards even though I have replaced all the components).

All I did to the last upgrade of the SETCARD was to make it so it thinks that the BIOS is only 64 bytes in size instead of 8KB. I admit I really haven't tested it out yet, but it should theoretically work. I'll test it myself ASAP.
 
All I did to the last upgrade of the SETCARD was to make it so it thinks that the BIOS is only 64 bytes in size instead of 8KB. I admit I really haven't tested it out yet, but it should theoretically work. I'll test it myself ASAP.

Found the bug. It will only checsum the first 64 bytes because the checksum-generating routine actually uses the ROMSIZE constant (the routine to compare the write also did this).

The updated programs online now should be fixed. Sorry for any inconveniences this migth have caused. Please do a reflash and try again, NOW it should work.
 
However, adding that functionality in the BIOS would also require you to keep your card in write enabled mode so you can change it whenever you wanted to, thus see problem #1.

Could we not use a chip that has a write protected part and a non-write protected part to hold settings? I guess this would most likely need a hardware change.

But I don't an issue with having to change the jumper before booting the machine and then changing it back after. How often are you going to change these settings?

The BIOS cannot self detect where the IO space is located. I mean, it can, but you have to have a known working drive attached in order for the IO space to even decode (the drive is actually the hardware doing the decoding work, our card is merely an access point to get to the drive hardware)

So both software and hardware settings are needed and we cannot remove either. Is that correct? If so then we will definitely need some sort of on screen to tell users that there is a mismatch.

can attempt to put some diagnostics into the BIOS where if we go out to read the ID of the drives and both fail, then display a message and attempt to go into a self detect mode to see if the dips just don't match up to the internal settings and show you how to correct it from there.

Why not simply display the current software settings and what the hardware should be set to with a 5 second delay.

EG:
Code:
No drives found, please check to make sure you hardware settings match the following:
IO: <whatever>  Memory: <whatever>     
1 on 2 off 3 on 4 off 5 on 6 off 7 on 8 off

That way there would not need to be any detection or worry about another card since all you are doing is displaying the software settings. Perhaps this could be done before the drive detection that way it would be on the screen for a while (without the error message at that point).
 
Sorry for any inconveniences this migth have caused. Please do a reflash and try again, NOW it should work.

You will receive the letter from my attorney by Friday, I am suing you for the lost time and personal inconvenience this has caused, I will also include a small amount for the trauma to my cat as the problem caused me to suddenly yell out some obscenities that both shocked and dismayed my cat who was napping on the keyboard next to me.... :D

Nah, its ok, I pretty quickly worked out that it had something to do with the SETCARD utility and moved on. I am glad however that it helped you locate and fix a bug.
 
Why not simply display the current software settings and what the hardware should be set to with a 5 second delay.

EG:
Code:
No drives found, please check to make sure you hardware settings match the following:
IO: <whatever>  Memory: <whatever>     
1 on 2 off 3 on 4 off 5 on 6 off 7 on 8 off

That way there would not need to be any detection or worry about another card since all you are doing is displaying the software settings. Perhaps this could be done before the drive detection that way it would be on the screen for a while (without the error message at that point).

The "SETUP.COM" utility does this, however, intergrating it to the BIOS so it will print the information when it can't find any hard drives is actually a really good idea as "SETUP.COM" is mainly for installing the card for the first time (will only show information on empty ROM and I/O space).
 
Hi Hargle! I think the 28X64 has a data lock mode. Please check the datasheet.

I would enable data lock as I suspect the issue is bus transients putting trash on the bus during start up. All it takes is a ground on /MEMW and the ROM /CS to write junk into the EEPROM.

My advice is to use a 2764 until some sort of memory data protection is enabled. The Tandy 1000 ISA implementation almost certainly predates using large EEPROMs as memory devices and probably assumes ROMs are immune to bus transients.

Thanks and have a nice day!

Andrew Lynch
 
yeah, the data lock mode is only applicable on the rev C parts, and we got rev A parts or something like that. (per alerted me to that awhile ago, and I've long since forgotten the details)

We can most certainly take another stab at digging into this to make sure we didn't miss something though.

Anyway, good news for kb2syd:

[I posted a message about this earlier, then deleted it as it was confusing because of my own silliness. Here's the real news:]

XTIDE rev 2 cards work perfectly in the Tandy 1000SX. I got a machine from Agent Orange, dropped my rev 2 card with 010 BIOS on it into the machine and booted to the hard drive. Simple.

I have 1 drive attached, a WDC-WD80EB-28CGH2 from an old xbox 1. (8 gig) and it recognized it and booted to it. I'd previously installed DOS on it.
The card is at defaults of D000:0 and 300h for IO.

The boot menu works fine, although I can't boot to ROM BASIC (I assume it doesn't exist on this machine), but I can boot to either A:, B: or C: from the menu as expected. It's working perfectly.

The ROM is currently write enabled, and I've rebooted and power cycled the system a half dozen times without error. Granted, all I've done is boot to DOS and did a "dir" to the C: drive, but yeah, it's all perfect.

here's a pic:
http://www.waste.org/~winkles/tandysx.jpg
 
Last edited:
OK gang,

Let's ship some XTIDE-2 cards!

I have sitting in front of me right now, 5 kits, ready to be assembled by you.
I also have 2 fully built and tested (lightly) cards available.*

I will be building more kits over the next few days, so don't worry about me running out just yet. I have 15 more kits that I can make.

Cost breakdown (each)
PCB: $9
Parts: $13
Bracket: $3 (optional)*
Assembly: $10
Shipping: $5 (USA only, contact me for overseas pricing)

Or, 40 bucks for a built one, $30 for a do it yourself kit.
Pull $3 out of the total if you don't want/need the bracket.
Feel free to pay more if you really feel like this is a project worth supporting. :)


Not too shabby! I am selling these virtually at cost, being an open source project and all, plus I'm a nice guy.


paypal me at jeff at silent dot net

folks who previously PMed me about availability get first dibs, but you must contact me within a few days or I will likely lose your position in line.

Terms and conditions:
By buying one of these, you also agree to help test. You must try and throw this card at every kind of drive and 8bit system you can find. You must report your results so we can all try to get a better feel for how this card is working in the field. You also agree to not re-sell the card on ebay or anywhere else, in any attempt to profit from our hard work. You also acknowledge that these are still prototype cards, likely to have bugs, and are slightly more expensive than the later full production run. You are helping to finance future projects by buying one of our pre-production cards.
You also will not hold anyone involved in this project responsible for damages due to (mis)use of this card.

-----------

* brackets: I only have 7 brackets at the moment. You will have to drill your own holes to mount it and supply your own screws to mount it to the board. I have not done any of this on my own boards yet, but I don't suspect it will be very difficult. I encourage people to try and source their own bracket, since these are really hard to find at the moment. There's plenty of room on the PCB to mount virtually any type of bracket on there you may have lying around. You can also use PCI brackets with some long plastic standoff/washers in a pinch. (thanks to chuck for the idea!)



* pre-built cards: I highly encourage you to get a kit and build this card yourself, especially if you are the type of person who might poke fun/complain about my soldering skills on a public forum. The cards are fairly easy to assemble, using virtually any low wattage iron from radio shack. It will take you about an hour, maybe 1.5 hours to put it together, you'll learn a little bit about computer hardware, and you'll have a really great sense of accomplishment for doing it yourself. My prices for soldering will be going up as my skills improve.

Oh, one last thing: You will need to supply 3 jumpers per card. I don't have enough to supply everyone.

Another note: The eeprom you receive in the kit form will be pre-programmed to the latest 0.10 BIOS. I don't trust these SEEQ parts, so I am trying to weed out the bad ones before they go out the door, so i can hopefully return all the defective ones to jameco. So far, so good. None of the first 8 I've used failed to program.
 
Last edited:
ah, hmmm... well it does boot the card's option ROM alright, but now that i actually try to put a drive on it. it won't pick it up. always says no drives insatalled. i've tried 3 drives that all worked on the v0.08 BIOS. could this be related to my hardware being one of the first run prototypes??

is v0.08 still available? i should try that one again and see if it works.

EDIT: it works after moving DIP switches to their original positions. a mod can delete this post sorry.
 
thought i should let you guys know that i have a Maxtor 72004AP 2 GB drive that does work in my 8088 w/ the XT IDE card, but the disk geometry is not correct.

i noticed this becuase i partitioned the drive and installed DR-DOS on it from a pentium 1 linux machine via QEMU, then moved it to the 8088. the card picked up the drive, but it wouldn't boot it, but the drive booted when i put it in any other machine.

i hooked up a floppy drive to it, and ran FDISK.COM and the XT IDE card reported to it that it's a 973 cylinder drive. the true CHS specs of this drive are:

3893 cyls
16 heads
63 spt

i piped i13test output to a txt file on the floppy:

Code:
INT 13, Fn 08 reports:
AX=0000 BX=1010 CX=CCFF DX=3F01 
INT 41h, 46h pointers
41h=9FC0:021A->CD 03 40 A0 3F 00 00 00 00 35 0F 10 00 00 3F 1E  
46h=0000:0000->5C 01 A7 0D 29 02 70 00 D2 E5 00 F0 29 02 70 00  
 
eINT 13, Fn 48 reports:
AX=0000 BX=AA55 CX=CCFF DX=3F01 
Total user addressable sectors:00000000-003BE188 
Total Physical Cylinders:00000F35 
Total Physical Heads:00000010

so, the card sees it as 973 cyls, 63 heads, 63 spt but it's only reported that way with the function 8 call. function 48's results look correct.

as i expected, re-partitioning via the XT IDE card and installing DR-DOS with it allows it to boot just fine on the 8088 - again, just using the wrong geometry.
 
thought i should let you guys know that i have a Maxtor 72004AP 2 GB drive that does work in my 8088 w/ the XT IDE card, but the disk geometry is not correct.

I'm going to take this offline with you to work out some more tests to perform.
I'll need you to dump the i13test on both a working machine (your pentium) and on the 8088, as well as dumping out the drive's ID data on both machines, so I can compare everything.

There's a pretty nasty chunk of translation code in the BIOS right now that I suspect is the culprit here; and a 2G drive is probably the perfect size to slip through the cracks along the way.

Disappointing that I haven't yet nailed down that section of code, but good detective work on your end finding the root cause! thanks!
 
Mike,

This the perfect thing to add into our spreadsheet here

My idiotic workplace has net-nannied our spreadsheet, so I can't get to it anymore.
I see that mike brutman has put up another spreadsheet on our wiki:
http://wiki.vintage-computer.com/index.php/XTIDE_TestResults

Oh, and I also put together some assembly instructions for those of you about to solder, and may be hesitant as to exactly how it all goes together. I'll be adding some pictures soon.
http://wiki.vintage-computer.com/index.php/XTIDE_build_instructions
 
Back
Top