PDA

View Full Version : 8-Bit IDE Controller



Pages : 1 2 3 4 [5] 6

modem7
August 19th, 2009, 03:03 AM
3. I am soon to be in possession of a 5150 which I believe is one of the earlier BIOS versions. Is it possible to upgrade the bios in this machine (S/N 0197797) in order to use expansion cards with option ROMs?
If you look at http://www.vintage-computer.com/vcforum/showthread.php?t=9692 you'll see that there were 3 versions. The first 2 versions (repeat, 2) don't support ROM BIOS extensions. If it turns out that you have either of the first two versions, then I am prepared to do a swap with one of my third version ROMs (original IBM ROM). An inconvenience is that I'm located in Australia. PM me if you are interested.

If you want to head down the route of using an adapter, see http://www.vintage-computer.com/vcforum/showthread.php?t=13399

per
August 19th, 2009, 05:10 AM
As this thread has gotten over 1000 replies, should we maybe do as the ones in the "yellowing removal" thread and start a "part 2" if this thread...

Just wondering...

nathan
August 19th, 2009, 08:49 AM
If you want to head down the route of using an adapter, see http://www.vintage-computer.com/vcforum/showthread.php?t=13399

Thanks for the informative reply. I might be hitting you up for a swap by the time it's all said and done, but I think that I'd like to try for the adapter route first.

I believe that I could use a 27C256 in a SOIC package, and create a small adapter board for it that would plug straight into the PDIP socket. So basically, a board with the same form factor and pinout as a MK36xxx but with the SOIC piggybacked atop it. I suppose if one wanted to get *really* clever, you could have a more sophisticated adapter (though it wouldn't likely fit in the PDIP form factor any longer) that would allow one to choose from the 3 different BIOS versions with a DIP switch or something like that.

Of course I have to get said 5150 here first, and I'm waiting on a fellow to get back from a business trip to complete the transaction. If I'm successful with this, do you think that anyone else would be interested in such an adapter?

per
August 19th, 2009, 12:22 PM
I just tried the card with my 286 expansion active (set to 8MHz).

Just note that the 286 expansion card I got don't work under any DOS after and including 5.0, so I had to use DOS 3.3 (32MB partions).

I can tell so far that the performance greatly improved (Tested with Norton Utilities 4.5):

Normal:
Computing Index, relative to PC/XT: 1.0
Disk Index, relative to PC/XT: 6.0
Performance Index, relative to PC/XT: 2.6

With 286-card (5MHz):
Computing Index, relative to PC/XT: 8.9
Disk Index, relative to PC/XT: Can't recognize drive C as a hard disk drive
Performance Index, relative to PC/XT: Not tested

With 286-card (8MHz):
Computing Index, relative to PC/XT: 9.0
Disk Index, relative to PC/XT: Can't recognize drive C as a hard disk drive
Performance Index, relative to PC/XT: Not tested

However, the 286 card does use some of it's extra memory as disk cache, maybe that has something to do with it. It's at least SIGNIFFICANT faster.

By the way, I also figured that when the 286 card is active, it doesn't really handle well the programs that directly comunicates with hardware. Interrupt-based software, on the other hand, is really fast.

modem7
August 19th, 2009, 11:50 PM
If I'm successful with this, do you think that anyone else would be interested in such an adapter?
To gauge interest, how about you raise a thread in the 'PCs and Clones' genre (we're off topic here).

gerrydoire
August 20th, 2009, 05:57 PM
gerrydoire: you should go get a prom burned of our latest BIOS. All you need to do is change the base address using the setup utility to 360h (or I can do that for you) and then you can have your acculogic card booting any sized compact flash card. No reason to wait for our card when yours is ready to roll right now...


I agree with your thinking 100% :)

Can you burn me the prom chip, I can pay for whatever it will cost you in time and effort.

One thing I've noticed about the CF Cards that would boot vs the ones that wouldn't boot on my Acculogic with original prom.

The ones that wouldn't boot had speed indicators on the CF card, like 8x, 32x etc. The CF cards that would boot, none of them had speed indicators on the CF Card. Standard IDE interface vs Enhanced IDE Interface?

per
August 22nd, 2009, 08:32 AM
I'm having the data corruption issues again, but usually only if I got two drives connected. In addition, I changed the I/O port of my card to port 320 since my 286 card uses port 300. I did change the BIOS extension too.

My combination of chips:

28C64A
74F04
74F32
74LS138
74F245
74F573
74F573
74F573
74LS688
74LS688

I don't got space for a scope on my desk...

(BTW, I made a small overwiev of this thread)

Page:
1 = Idea is nailed, General discussion about how great it would be.
11 = Durid got to examine card from bobwatts, General discussion about the card from Bob.
21 = The base of the BIOS Extension is being made, the hardware is not clarified yet. General discussion.
31 = Prototype board is being made.
41 = General discussion.
51 = Beta 1 test boards are being made, General discussion about it.
61 = General discussion about feautres of the Rev 1 board.
71 = Beta 1 test boards are being tested by testers. General discussion and software updates.
81 = General discussion about the noise problem.
91 = Last check on the Rev 1 board.
100 = Tandy compability is being discussed.

NobodyIsHere
August 22nd, 2009, 09:11 AM
I agree with your thinking 100% :)

Can you burn me the prom chip, I can pay for whatever it will cost you in time and effort.

One thing I've noticed about the CF Cards that would boot vs the ones that wouldn't boot on my Acculogic with original prom.

The ones that wouldn't boot had speed indicators on the CF card, like 8x, 32x etc. The CF cards that would boot, none of them had speed indicators on the CF Card. Standard IDE interface vs Enhanced IDE Interface?

Hi! If all you need is a straight 2764 EPROM programmed, I can do that for you. You're plugging this into the Acculogic board so you can't program it with Per's utility, right?

Have you considered the "cut and jumper" method to hook the /MEMW line on the ISA connector to the /WriteEnable pin of the 28C64 and then use Per's utility?

If all you want is the 2764, I can send you one of those. PM me the details and I'll hook you up.

Thanks and have a nice day!

Andrew Lynch

genocho
August 27th, 2009, 06:40 PM
Amazing work guys !!!

I really like the design of the pcb, is just the size for my euro pc, to fit inside the keyboard and plug a cf card, all internal.

I hope soon I can order a couple of pcbs kits for try it on my european XTs Scheneider euro pc and Olivetti pcs 86.

When can the pcbs be avalaible to purchase ?

The wiki says august - september.

Is this model (pcb 1) the definitive or is better wait to revision 2 and make the pcbs for all the people they want to buy it ??

Thanks for this lovely project.

Regards.

wrljet
August 30th, 2009, 05:22 AM
Is this the current most up-to-date schematic?

http://n8vem-sbc.pbworks.com/f/Printing%20XT-IDE-sch.pdf

May I ask why U4 is a latch and not a simple buffer?

Bill

NobodyIsHere
August 30th, 2009, 06:44 AM
Is this the current most up-to-date schematic?

http://n8vem-sbc.pbworks.com/f/Printing%20XT-IDE-sch.pdf

May I ask why U4 is a latch and not a simple buffer?

Bill

Hi Bill! Thanks! I see your point. With U4 LOAD signal tied HIGH with VCC the 74LS573 is effectively a buffer already unlike U2 and U3. There is nothing actually using the latch mechanism with this design.

The only benefit I see is common parts since there are already two 74LS573 latches used on the board. In either case, the buffer is required to interface with the IDE interface because of current drive requirements and the 74LS573 is easily able to perform that role even acting as a de facto buffer.

Thanks and have a nice day!

Andrew Lynch

wrljet
August 30th, 2009, 06:53 AM
Hi Bill! Thanks! I see your point. With U4 LOAD signal tied HIGH with VCC the 74LS573 is effectively a buffer already unlike U2 and U3. There is nothing actually using the latch mechanism with this design.

The only benefit I see is common parts since there are already two 74LS573 latches used on the board. In either case, the buffer is required to interface with the IDE interface because of current drive requirements and the 74LS573 is easily able to perform that role even acting as a de facto buffer.

Thanks and have a nice day!

Andrew Lynch

Andrew,

If you're making up kits, it will allow you to stock pile one less part type,
although I haven't looked, and in qty a latch might be more expensive than an '244, but who knows (and who really cares at that level).

Is that link above (always going to be) the current schematic?

Bill

NobodyIsHere
August 30th, 2009, 07:02 AM
Andrew,

If you're making up kits, it will allow you to stock pile one less part type,
although I haven't looked, and in qty a latch might be more expensive than an '244, but who knows (and who really cares at that level).

Is that link above (always going to be) the current schematic?

Bill

Hi Bill! Thanks! Yes, agree.

I intend to post the latest XT-IDE information at the N8VEM wiki. It is mostly for convenience sake more than anything. If you see something or would like additional information please ask.

My intent is to be fully public and provide freely available information. Any shortfalls in this is purely execution of the plan not by intent.

Thanks and have a nice day!

Andrew Lynch

PS, that is also for AT2XTKBD project. However there is so much activity on the N8VEM DiskIO and PropIO development recently I am limited in how much time I can spend on multiple projects.

hargle
August 31st, 2009, 09:54 AM
hi gang!

back from vaca, and ready to run full steam ahead with this baby and get proto-2 built up and tested. Provided this new buffer/latch issue isn't changing anything, I think I will have andrew drop me all the goodies and we'll get some PCBs ordered this week. (also gingerly ignoring per's data corruption issues, sorry. I think we can find good working drives that don't exhibit any problems readily enough before we burn ourselves out debugging the last 10%)

And, while I'm here, I'll address this issue for completeness:


Hi! If all you need is a straight 2764 EPROM programmed, I can do that for you. You're plugging this into the Acculogic board so you can't program it with Per's utility, right?

Have you considered the "cut and jumper" method to hook the /MEMW line on the ISA connector to the /WriteEnable pin of the 28C64 and then use Per's utility?

If all you want is the 2764, I can send you one of those. PM me the details and I'll hook you up.


There's no WE tooth on the acculogic card, so it would have to be permanently tied to allow the eeprom to be programmed via the card. It's probably easier overall to do it that way, rather than having to pull the chip and reprogram it, but I don't think gerry wants to do any soldering.

If you guys work out a chip-n-ship solution, make sure that base address gets changed somewhere in the .bin file!!

Great Hierophant
September 1st, 2009, 03:26 PM
I can see a CF-IDE adapter sticking perpendicularly out of the card if not in a slot or bay, assuming the connector on the card to be male and the connector on the adapter to be female at the end of the board. I have not been able to find a right angle connector.

I know its too late, but I would wish that the board could be extended to alow a CF-IDE adapter and bracket slot on the end of the board that faces the slot opening.

hargle
September 2nd, 2009, 06:32 AM
There's nothing stopping people from taking the existing layout files and adding their own goodies to it. Adding a CF adapter off the back of the card would raise the price quite a bit, especially for folks who don't want/need such a thing, so we went with something that works for everyone. I hear ya though, I think a built in CF adapter would be really handy.

gerrydoire came up with this thing:
http://www.barfs.biz/cfbackplane.jpg

which I think it brilliant. provided you've got one open slot somewhere on the machine, rigging something like that up should be cake.
I assume you're talking about installation on a Tandy machine. Are you already using all of your available expansion slots? How about the 2nd drive bay opening?

hargle
September 2nd, 2009, 06:46 AM
My order for XTIDE gen II will be placed TODAY. I'm ordering 25, so I can sell off a few more to other early adopters.

In ~2 weeks I'll have them in stock, build a few up and round 2 of testing begins again. I think if things go as smoothly as rev 1 did, I see no reason not to go into production within a short period of time following that. Yeah, there are some ugly drives, but there's a pile of drives that seem to work perfectly, so let's get this project wrapped up!

lutiana
September 2nd, 2009, 07:23 AM
Anyone that tests the Rev 2 card please fill out this spreadsheet (http://spreadsheets.google.com/ccc?key=0Aq3OABRiL8UCckRIc1BaR3FaTmplNlJxN2didFZGe mc&hl=en) as best you can.

It helps us keep track of what drives don't work and will help iron out these small bugs, and ultimately we will be able to post this to our Wiki.

kb2syd
September 2nd, 2009, 08:32 AM
From Per in another thread:


The first bytes of the EEPROM on the XTIDE card I'm testing was replaced with the same two repeating bytes, and hence I can't use the card untill I have reflashed it.


How is the write logic set so that something like this can happen so easily?

It is similar to what I was seeing on a Rev 1 card in my 1000SX before I gave up and sent it back to hargle for a look see. The contents of the flash would change quite regularly...

I haven't re-tested since I rewired the ground to my work area. I had a disconnected ground leg that was causing some power problems.

Kelly

shawn510
September 2nd, 2009, 08:58 AM
My order for XTIDE gen II will be placed TODAY. I'm ordering 25, so I can sell off a few more to other early adopters.

In ~2 weeks I'll have them in stock, build a few up and round 2 of testing begins again. I think if things go as smoothly as rev 1 did, I see no reason not to go into production within a short period of time following that. Yeah, there are some ugly drives, but there's a pile of drives that seem to work perfectly, so let's get this project wrapped up!

Apologies if this is already covered, but how much $$ would an early adopter need?
Is there a layaway plan? (kidding.... mostly)

NobodyIsHere
September 2nd, 2009, 09:06 AM
From Per in another thread:


How is the write logic set so that something like this can happen so easily?

It is similar to what I was seeing on a Rev 1 card in my 1000SX before I gave up and sent it back to hargle for a look see. The contents of the flash would change quite regularly...

I haven't re-tested since I rewired the ground to my work area. I had a disconnected ground leg that was causing some power problems.

Kelly

Hi! I wondered the same thing during early testing on with the prototype but didn't find anything really suspicious. Writes to the Flash memory require a /MEMW in its address region which should not be happening outside of Flash programming sequence. The best I could think of is some sort of spurious write mechanism that is not obvious. It may be poor grounding or bus noise confusing the Flash memory to write when it is not supposed to.

Check out the schematic to see if there is something I missed. I ended up replacing the Flash memory with the 2764 EPROM to eliminate any possibility of memory corruption during early testing. I haven't had any problems since. Some 28C64s support memory protection and the new prototypes also include a write protect jumper.

However, you should be able to reprogram a Flash memory if it has gotten corrupted. If not, there is something else wrong.

Thanks and have a nice day!

Andrew Lynch

kb2syd
September 2nd, 2009, 09:12 AM
The best I could think of is some sort of spurious write mechanism that is not obvious. It may be poor grounding or bus noise confusing the Flash memory to write when it is not supposed to.


I think grounding/noise was my issue. I also think that is why I could not program it sucessfully some times.

The ground was floating in my work area. This created all kinds of interesting experiences. On some computers, I would get a mild shock if I touched the frame.

Other machines would spontaneously power off. Lots of fun.

Kelly

wrljet
September 2nd, 2009, 09:37 AM
I've just ordered 2 prototype cards from jameco

http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&storeId=10001&catalogId=10001&productId=21532&

I'm hoping to go on a shopping trip to a little electronics store here in the twin cities this week, where I will hopefully be able to snag the rest of the parts.
If not, another order will be placed, but no big deal.

either way, forward progress continues...

A bit off-topic here, but...

These Jameco 21531 / JE417 PC/XT prototyping cards have provisions for some sort of connector on the bracket end. It's not the right pitch for a DB-xx.

Anybody know what it's for?

Bill

per
September 2nd, 2009, 10:55 AM
I think grounding/noise was my issue. I also think that is why I could not program it sucessfully some times.

The ground was floating in my work area. This created all kinds of interesting experiences. On some computers, I would get a mild shock if I touched the frame.

Other machines would spontaneously power off. Lots of fun.

Kelly

Where I have my equipment, the power outlets don't even have a ground connector (I know, this is stupid and should be avoided by all means). This house was buildt in the 60's, and I guess grounded power outlets was just not common then.

Do you think this may be the cause why I get those noise problems?

lutiana
September 2nd, 2009, 06:45 PM
Do you think this may be the cause why I get those noise problems?

Probably. You probably get a low hum in any sound equipment too, especially amps.

But I don't think there is much you can do about it.

hargle
September 3rd, 2009, 05:59 AM
Just an FYI - 25 protoII boards have been ordered.

I'll likely get them in ~2 weeks, I will be placing an order for parts, as well. I might as well pick up enough parts for all 25 of them, even though there are a couple folks who think they have enough spare bits lying around. I can always use a few spares just in case I munge something up.

just to verify, the only thing that is different is that we've dropped 1 of the x8 dipswitches? All of the jumper headers I can come up with on my own, so that doesn't impact my ordering.

thanks and congrats to all!

NobodyIsHere
September 3rd, 2009, 07:34 AM
Hi Hargle! Thanks!

I'll have to double check but I think there are some additional 10K resistors and more jumpers.

Regarding the AT2XTKBD design (off topic here, I know but still relevant) be sure to get the 5 pin DIN connectors as specified from Digikey. If you order elsewhere ensure the pin configuration lines up properly. I think there are several formats so be aware.

Thanks and have a nice day!

Andrew Lynch

hargle
September 3rd, 2009, 01:53 PM
>>I'll have to double check but I think there are some additional 10K resistors and more jumpers.

yeah, caught that. No sweat there either, since they come in bags of 100.
My workplace has a couple boxes of jumper and pin headers lying around, so I'm good there too. Just looking to not get caught with too many/few of the big parts.



>>Regarding the AT2XTKBD design (off topic here, I know but still relevant) be sure to get the 5 pin DIN connectors as specified from Digikey.

will do. I'm going to try and order everything from digikey this time around. Heck, I believe they are almost local to me anyway, so shipping should be pretty speedy. I may have to pay in state sales tax though.

wrljet
September 3rd, 2009, 01:54 PM
>>
will do. I'm going to try and order everything from digikey this time around. Heck, I believe they are almost local to me anyway, so shipping should be pretty speedy. I may have to pay in state sales tax though.

Digi-Key charges me sales tax in MD, too.

Agent Orange
September 3rd, 2009, 06:25 PM
Hargle - Agent Orange here.
I would like to get my hands on a sack of Rev (2) parts when you get them. I'll put it all together and document the spreadsheet. Let me know what you need up front in $$. Also, the only help I would need is for you to flash the eprom witht he lastest stuff.

hargle
September 14th, 2009, 06:56 AM
Got a shipping notice that our PCBs have left the factory!

You can even track it with me:
fedEx: 410750814677

Jameco has already shipped the components, which I suspect will be in today or tomorrow.

This shipment contains our XT->AT keyboard converter PCBs as well, but that's a whole 'nuther thread.

wrljet
September 14th, 2009, 10:05 AM
Got a shipping notice that our PCBs have left the factory!


What PCB fab house are you using?

Bill

hargle
September 14th, 2009, 11:00 AM
PCBcart.com

greglentz
September 15th, 2009, 10:44 AM
Are these rev 2 boards going to be for sale? Has anyone been able to get the board to work in a tandy 1000sx? At one time I know the design was based on the Acculogic board which supposedly did work in a 1000sx according to information I have from long ago. The 1000sx has a dip switch to toggle irq2/IRQ5 for bus use (e.g. hardcard or controller card)

Greg Lentz

hargle
September 15th, 2009, 11:48 AM
Are these rev 2 boards going to be for sale? Has anyone been able to get the board to work in a tandy 1000sx? At one time I know the design was based on the Acculogic board which supposedly did work in a 1000sx according to information I have from long ago. The 1000sx has a dip switch to toggle irq2/IRQ5 for bus use (e.g. hardcard or controller card)

Greg Lentz

Unofficially, they are for sale. I have (or will, in about 2 weeks), 25 PCBs and parts to build them. These are prototypes for the main production run of 100 boards, so it is possible that there may be bugs, and these boards are slightly more expensive due to the smaller quantity ordered. We are encouraging people to buy them though, entirely because we need more testing on more platforms, and if I don't lose my shirt paying for these things, then I will be more inclined to fund further geekiness.

Pricing will be determined after the stuff is all here, and I figure out shipping and handling and assembly time if you need me to build the card for you. All will be known late this month or early october.

As for the Tandy 1000sx, kb2syd has tried it, and said it doesn't work. (locked up at the boot menu prompt and the drive wasn't detected)
That said, kb2syd also had trouble getting it to work on a Tandy HX, which I was able to get working beautifully after just a couple minor BIOS tweaks, so I suspect that eventually, it will work just fine on the SX, which can't be that far off from the HX line. I just may need to buy/borrow an SX to play with for a week or two.

This board is not modeled after the acculogic directly; we used an open source schematic and augmented it. It just so happens to be compatible software-wise with that card though, which was by pure chance. (there's only so many ways to do IDE on an 8bit bus, so it's not surprising)

Neither our card, nor the acculogic card use any IRQs, so it doesn't matter at this time.

lutiana
September 15th, 2009, 02:53 PM
... and if I don't lose my shirt paying for these things ...

I can send you some shirts :D

Great to hear we are progressing every onwards.

So to avoid a rush how did you anticipate distributing the 25 boards? In my opinion they should only go to people that are prepared to test then and send feedback (ie the spreed sheet of drives I setup). Any thoughts?

hargle
September 16th, 2009, 06:07 AM
So to avoid a rush how did you anticipate distributing the 25 boards? In my opinion they should only go to people that are prepared to test then and send feedback (ie the spreed sheet of drives I setup). Any thoughts?

good idea. of course we can't hold anyone to anything, but i think anyone who has been following along on this journey for the past year and slogging through all 100+ pages of messages also deserves to get first crack at them! :)

I won't be announcing that boards are for sale outside this thread for starters; I think folks who are here with us likely know the risks involved and hopefully are buying one of these cards to a) help out with the r+d costs and b) think it's cool enough that they will likely want to lend a hand with as much testing as they can possibly do.

Agent Orange
September 17th, 2009, 07:26 AM
Unofficially, they are for sale. I have (or will, in about 2 weeks), 25 PCBs and parts to build them. These are prototypes for the main production run of 100 boards, so it is possible that there may be bugs, and these boards are slightly more expensive due to the smaller quantity ordered. We are encouraging people to buy them though, entirely because we need more testing on more platforms, and if I don't lose my shirt paying for these things, then I will be more inclined to fund further geekiness.

Pricing will be determined after the stuff is all here, and I figure out shipping and handling and assembly time if you need me to build the card for you. All will be known late this month or early october.

As for the Tandy 1000sx, kb2syd has tried it, and said it doesn't work. (locked up at the boot menu prompt and the drive wasn't detected)
That said, kb2syd also had trouble getting it to work on a Tandy HX, which I was able to get working beautifully after just a couple minor BIOS tweaks, so I suspect that eventually, it will work just fine on the SX, which can't be that far off from the HX line. I just may need to buy/borrow an SX to play with for a week or two.

This board is not modeled after the acculogic directly; we used an open source schematic and augmented it. It just so happens to be compatible software-wise with that card though, which was by pure chance. (there's only so many ways to do IDE on an 8bit bus, so it's not surprising)

Neither our card, nor the acculogic card use any IRQs, so it doesn't matter at this time.

Hargle - Agent Orange here.

I have a spare 1000SX that I got from some university down in Texas. I have not even unpacked it yet and I had it for 2 years. It would take me a little while to see what shape it's in, but you would be welcome to it if you think you could use it.

hargle
September 17th, 2009, 09:13 AM
Hargle - Agent Orange here.

I have a spare 1000SX that I got from some university down in Texas. I have not even unpacked it yet and I had it for 2 years. It would take me a little while to see what shape it's in, but you would be welcome to it if you think you could use it.

sounds great, and you're not that far away from me either.
Since it's already been tested and found to not work, there's no time like the present to get started. PM on the way. thanks!

Agent Orange
September 17th, 2009, 01:05 PM
sounds great, and you're not that far away from me either.
Since it's already been tested and found to not work, there's no time like the present to get started. PM on the way. thanks!

The 1000SX is bare bones. "A" & "B" floppies, keyboard, and power cord. I'm assuming you have a CGA monitor. If not, I can pop for an Boca EGA or some garden variety/vanilla VGA card. I unpacked the thing this afternoon and was suprised to find a gutted chassis was also in the box. Let me take a good look at both mobo's and see what the DRAM status is. Out-of-the-box, Tandy only gave you 320 KB. If that's the case, maybe I can scrounge the other 320 KB of the parts chassis.

hargle
September 17th, 2009, 01:29 PM
The 1000SX is bare bones. "A" & "B" floppies, keyboard, and power cord.
bare bones is fine. I have a CGA monitor, 320k is fine, but if you want to augment it, I won't mind a bit!

Agent Orange
September 17th, 2009, 03:04 PM
bare bones is fine. I have a CGA monitor, 320k is fine, but if you want to augment it, I won't mind a bit!As soon as I pick all of the parts to the 486 project I'll get right to. The mrs is already tired of looking at all this stuff if the Florida room (my favorite place to play).

hargle
September 17th, 2009, 06:01 PM
PCBs are in!

Got all the parts from jameco today too, so this weekend I think I will be spending some quality time with the soldering iron.

Don't get excited yet, I still need to check everything out and make sure we haven't lost functionality, but I'd easily say by the end of the weekend we'll know if this is a home run or not.

Got the keyboard converters too, but haven't received the parts from digikey yet, so I can't build them. too bad for it that xtide is going to take up most of my time for awhile.

yay.

Mike Chambers
September 17th, 2009, 06:10 PM
even the prototype i have was already a home run. this sounds great! :oha:

lutiana
September 17th, 2009, 09:11 PM
PCBs are in!

Got all the parts from jameco today too, so this weekend I think I will be spending some quality time with the soldering iron.

Don't get excited yet, I still need to check everything out and make sure we haven't lost functionality, but I'd easily say by the end of the weekend we'll know if this is a home run or not.

Got the keyboard converters too, but haven't received the parts from digikey yet, so I can't build them. too bad for it that xtide is going to take up most of my time for awhile.

yay.

Like a kid in a candy store! :D Good luck with the iron.

hargle
September 18th, 2009, 05:17 AM
Bah!

Jameco sent more SEEQ eeproms. I specifically asked them not to. There is no way to order atmel directly from them, they just list all eeproms as "major brands". I've filed an RMA request, hopefully they will be able to work with me.

(out of the last batch of 10 that I ordered, 4 of them went bad. At $3.75 each, I cannot afford that high of a fallout rate, especially if we do 100 units)

Luckily, I've got 2 eeproms that I can steal from the earlier prototypes to at least get rolling with...

dongfeng
September 18th, 2009, 11:34 AM
Excellent news! Rather exciting now that final production is getting rather close! :D

per
September 18th, 2009, 12:11 PM
I've made a little update to the SETCARD program.

Instead of writing all 8 KB, it now only writes the first 64 Bytes. It is VERY many times faster, and I strongly recomend that you download the new file. You find it on the Wiki.

I actually suggest that you keep a copy of all the utilities on a bootable disk with DOS 2.0 or newer. This disk should be bootable without the XTIDE card installed. Very handy to have in cause you accidentally corrupt the EEPROM on the card.

If you have problems reaching the server, drop me an PM with your email address.

hargle
September 18th, 2009, 04:44 PM
We have a home run on our hands!

I just threw one together, did the most craptacular soldering job on it, and it booted right up. The dipswitch diagram is correct (at least with the defaults) and the ROM enable/disable jumper is working. I haven't tested much else.

I didn't order any of the resistors for the LED, assuming that I'd just kipe some from the bins at work. I totally forgot to do that, so my LED is dead for the moment, but I'm sure it'll work when I get it wired in.

Everything else seems to be as solid as ever. I love it.

I'll post some pictures of my next build, but I'm going to do that with a real soldering iron at work tomorrow and not this shabby job I just pulled off at home.

Some notes:
1) We may consider shifting the back side silkscreen over and down some; it's almost completely in the upper right hand corner, and looks a little funny. It's also really hard to read with all the holes drilled through the board.

2) Three pin jumpers are a PITA. (CSel) I figured I could just cut apart some headers, but they just break apart.

3) the way this board is designed, you will have to drill your own holes for the mounting bracket. This is by design, and there's plenty of room to do it, but just remember that you'll have a little bit of work to do after assembling it. I also am in very, very short supply of ISA brackets. The only place I could find them only had 10 in stock, so we can't even fill half of this prototype build, let along the projected 100 cards on the next go. You have to do without or supply your own. (hence having to drill your own holes)

congratulations andrew, on another round of quality work!

Chuck(G)
September 18th, 2009, 06:11 PM
Hargle, are you looking for something like a Keystone 9202--or are your requirements different? Not saying (yet) that I have a source, just curious...

lutiana
September 18th, 2009, 08:52 PM
3) the way this board is designed, you will have to drill your own holes for the mounting bracket. This is by design, and there's plenty of room to do it, but just remember that you'll have a little bit of work to do after assembling it. I also am in very, very short supply of ISA brackets. The only place I could find them only had 10 in stock, so we can't even fill half of this prototype build, let along the projected 100 cards on the next go. You have to do without or supply your own. (hence having to drill your own holes)



I'd figured on stealing one from another ISA card. The place in San Jose I go has tons of 'em for like $3.

NobodyIsHere
September 19th, 2009, 05:31 AM
We have a home run on our hands!



Hi! Thanks! That's great news!




I just threw one together, did the most craptacular soldering job on it, and it booted right up. The dipswitch diagram is correct (at least with the defaults) and the ROM enable/disable jumper is working. I haven't tested much else.

I didn't order any of the resistors for the LED, assuming that I'd just kipe some from the bins at work. I totally forgot to do that, so my LED is dead for the moment, but I'm sure it'll work when I get it wired in.



If you'd like you can substitute your VOM and it should sense the presence of voltage. Probably I'd just wait to install an LED though.




Everything else seems to be as solid as ever. I love it.

I'll post some pictures of my next build, but I'm going to do that with a real soldering iron at work tomorrow and not this shabby job I just pulled off at home.

Some notes:
1) We may consider shifting the back side silkscreen over and down some; it's almost completely in the upper right hand corner, and looks a little funny. It's also really hard to read with all the holes drilled through the board.



No problem. There is no substitute for real hardware prototypes for finding "look and feel" issues like these.

If it is readable at all, we may consider if this is worth another tooling charge or not. However, I will feel more comfortable after some additional testing to see what other regressions or issues may have crept in.

I suggest a list of all the "go fixes" on the wiki.




2) Three pin jumpers are a PITA. (CSel) I figured I could just cut apart some headers, but they just break apart.



I use a strip of the single row jumpers and an exacto knife or razor blade to "rock" through the cut lines. Just keep your fingers on both sides of the strip since once the blade cuts through the little stinkers go flying. Please just be careful with the cutting!

Also, you can get three pin jumpers which may be worthwhile if you are going to be making a lot of these. You could also just solder a wire instead of the jumper in if you have a particular preference in mind.





3) the way this board is designed, you will have to drill your own holes for the mounting bracket. This is by design, and there's plenty of room to do it, but just remember that you'll have a little bit of work to do after assembling it. I also am in very, very short supply of ISA brackets. The only place I could find them only had 10 in stock, so we can't even fill half of this prototype build, let along the projected 100 cards on the next go. You have to do without or supply your own. (hence having to drill your own holes)

congratulations andrew, on another round of quality work!

Thanks!

Chuck brought up the idea of the Keystone 9202 bracket. I adjusted the PCB so that should fit although the dimensions are right on the edge of not fitting. If it is possible to drill holes without destroying the PCB, we may consider just using the Keystone 9202 blank brackets.

Alternatively, here is a kooky idea... use some of the Keystone brackets for 9200-8 (the 50 pin SCSI cut out) and mount 50 pin IDC dual row headers with eyelets. Then make a custom ribbon cable from the IDE connector to the bracket so builders can mount their CF cards externally. You'd have to either find a 40 pin bracket cutout (not 9200-8) or just mount the CF card to one side.

http://www.keyelco.com/pdfs/M55-prod45.pdf

I don't know how feasible this is but it might work for those who *really* want external access for CF cards.

Thanks and have a nice day!

Andrew Lynch

hargle
September 19th, 2009, 08:41 AM
Hargle, are you looking for something like a Keystone 9202--or are your requirements different? Not saying (yet) that I have a source, just curious...

that is in fact exactly what I'm looking for! damn you're good. I'd take 115 of them if you can source them for me.

NobodyIsHere
September 19th, 2009, 09:02 AM
that is in fact exactly what I'm looking for! damn you're good. I'd take 115 of them if you can source them for me.

Hi Hargle! Try Digikey. I searched on Keystone 9202 and they came right up. Don't know if they are in stock though.

I suppose you could contact Keystone directly and ask for a distributor list.

Thanks and have a nice day!

Andrew Lynch

Chuck(G)
September 19th, 2009, 10:32 AM
Hi Hargle! Try Digikey. I searched on Keystone 9202 and they came right up. Don't know if they are in stock though.

Newark claims to have 25 in stock, though my own experience says that the number may not reflect reality.

Worst case, you could use the 9203 (PCI) with the tabs on the wrong side of the bracket and a couple of standoffs.

hargle
September 21st, 2009, 07:50 PM
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.

Mike Chambers
September 21st, 2009, 09:43 PM
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. :o

kb2syd
September 22nd, 2009, 04:31 AM
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.



I'm having the same issue. After several boots (the number varies) the computer no longer sees the option ROM. Sometimes I can reflash and it works. Other times nada. This is on a 1000sx and a Compaq Prolinea 486/25.

per
September 22nd, 2009, 07:39 AM
I'm having the same issue. After several boots (the number varies) the computer no longer sees the option ROM. Sometimes I can reflash and it works. Other times nada. This is on a 1000sx and a Compaq Prolinea 486/25.

Must be the EEPROM. You may try to reflash it, then bend up the /WE pin and tie it to VCC with a resistor. This should put it to Read-only. If you still got problems with it, you'll have to replace the EEPROM with another EEPROM or an ordinary EPROM.

Is "nada" a proper english word? It kind of sounds like the norwegian "neida" (originates from "nei da"), which literary translates to "no then" (the closest translation that makes sense is "oh no").

wrljet
September 22nd, 2009, 07:42 AM
Is "nada" a proper english word? It kind of sounds like the norwegian "neida" (originates from "nei da"), which literary translates to "no then" (the closest translation that makes sense is "oh no").

"nada" is Spanish for nichts.

hargle
September 22nd, 2009, 09:34 AM
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. :o

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.

wrljet
September 22nd, 2009, 09:41 AM
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?

per
September 22nd, 2009, 12:26 PM
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.

hargle
September 22nd, 2009, 12:43 PM
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.

wrljet
September 22nd, 2009, 12:59 PM
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/

Chuck(G)
September 22nd, 2009, 01:42 PM
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...

Mike Chambers
September 22nd, 2009, 10:44 PM
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.

NobodyIsHere
September 23rd, 2009, 06:02 AM
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

NobodyIsHere
September 23rd, 2009, 06:05 AM
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. :o

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

NobodyIsHere
September 23rd, 2009, 06:15 AM
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

wrljet
September 23rd, 2009, 06:17 AM
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

Mike Chambers
September 23rd, 2009, 01:14 PM
here's a pic of what i meant

http://rubbermallet.org/xtidebork.jpg

linuxlove
September 23rd, 2009, 01:25 PM
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?

per
September 23rd, 2009, 01:58 PM
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.

Mike Chambers
September 26th, 2009, 10:31 PM
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.

per
September 27th, 2009, 04:59 AM
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/ )

Mike Chambers
September 27th, 2009, 10:07 AM
thanks. what switches on the prototype board need to be off/on to allow flashing?

per
September 27th, 2009, 02:22 PM
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.

hargle
September 29th, 2009, 12:20 PM
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/stores/servlet/ProductDisplay?langId=-1&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!

Mike Chambers
September 29th, 2009, 01:36 PM
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/stores/servlet/ProductDisplay?langId=-1&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

lutiana
September 29th, 2009, 01:40 PM
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.

hargle
September 29th, 2009, 02:32 PM
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.

per
September 29th, 2009, 02:42 PM
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.

per
September 29th, 2009, 02:53 PM
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.

lutiana
September 29th, 2009, 03:02 PM
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:


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).

lutiana
September 29th, 2009, 03:04 PM
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.

per
September 29th, 2009, 03:26 PM
Why not simply display the current software settings and what the hardware should be set to with a 5 second delay.

EG:


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).

NobodyIsHere
September 29th, 2009, 06:32 PM
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

hargle
September 29th, 2009, 06:44 PM
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

hargle
September 29th, 2009, 07:33 PM
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.

Agent Orange
September 30th, 2009, 09:22 AM
Hargle - Agent Orange here - -
Run that email address by one more time plz.

Mike Chambers
September 30th, 2009, 12:13 PM
woohoo! flashing the option ROM fixed my card. :)

all is good.

Mike Chambers
September 30th, 2009, 03:20 PM
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.

Mike Chambers
September 30th, 2009, 04:59 PM
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:


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.

lutiana
September 30th, 2009, 07:21 PM
[QUOTE=Mike Chambers;114990
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.[/QUOTE]

Mike,

This the perfect thing to add into our spreadsheet here (http://spreadsheets.google.com/ccc?key=0Aq3OABRiL8UCckRIc1BaR3FaTmplNlJxN2didFZGe mc&hl=en)

Glad to hear it worked out.

Mike Chambers
September 30th, 2009, 07:32 PM
okay, i've updated the spreadsheet.

lutiana
September 30th, 2009, 08:00 PM
okay, i've updated the spreadsheet.

Awesome. Thanks.

hargle
October 1st, 2009, 05:31 AM
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!

Agent Orange
October 1st, 2009, 05:33 AM
Mike,

This the perfect thing to add into our spreadsheet here (http://spreadsheets.google.com/ccc?key=0Aq3OABRiL8UCckRIc1BaR3FaTmplNlJxN2didFZGe mc&hl=en)

Glad to hear it worked out.

Any chance that the data spreadsheet could be put in a new & seperate thread? This thread is now 109 pages long and growing. Just a suggestion.

hargle
October 1st, 2009, 05:37 AM
Mike,

This the perfect thing to add into our spreadsheet here (http://spreadsheets.google.com/ccc?key=0Aq3OABRiL8UCckRIc1BaR3FaTmplNlJxN2didFZGe mc&hl=en)


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

mbbrutman
October 1st, 2009, 07:17 AM
I had suggested consolidating the test results first and had volunteered to do that. But sometimes trying to coordinate a project is like herding cats.

I think the Wiki is an ideal way to record test results - it offers the flexibility that we need. Any web browser can get at it, and now we find out that it is firewall friendly. ;-0


Mike

lutiana
October 1st, 2009, 08:03 AM
I had suggested consolidating the test results first and had volunteered to do that. But sometimes trying to coordinate a project is like herding cats.

I think the Wiki is an ideal way to record test results - it offers the flexibility that we need. Any web browser can get at it, and now we find out that it is firewall friendly. ;-0


Mike

I agree that the wiki is the best place to post the sheet but it is not as easy to edit as the spreadsheet and I figured I would eventually port the data over to the wiki once the testing had matured a little bit.

Bottom line is we need a single place for people to enter their test data, and then we need someone (either myself or Mike) to volunteer to sift through it, neaten it up and post it on the wiki. I thought the spread sheet on Google docs was a pretty good place to do this, since it is easy to use, available to everyone and can be edited simultaneously. But in all honesty as long as people are putting the data somewhere that we can get to it we'll be ok.

Hargle, if you have excel at work just send me the offline spread sheet and I will make sure it gets to either the Google doc one or the wiki. This goes for anyone else that may not have access to the spread sheet due to work related firewalls.

bugman2112
October 3rd, 2009, 04:56 PM
OK, got my kit in the mail today and soldered it up! I ran setup before installing the card and I keep getting "no suitable I/O space found". I have installed 1) CGA card 2) dual game port card 3) floppy controller with 2x1.44m drives and 1x360k drives. I was correct in running setup before I install the card? Any other thoughts?

per
October 4th, 2009, 01:33 AM
OK, got my kit in the mail today and soldered it up! I ran setup before installing the card and I keep getting "no suitable I/O space found". I have installed 1) CGA card 2) dual game port card 3) floppy controller with 2x1.44m drives and 1x360k drives. I was correct in running setup before I install the card? Any other thoughts?

Try to enter debug and do the following:

i 200
i 220
i 240
i 260
i 280
[...]
i 360
i 380
i 3A0
i 3C0
i 3E0
q

What do you get in return?

It may be that unused I/O ports in your system returns another value than on the regular IBM XT (FFh). I can add an option for you to manually specify the byte it will be looking for.

hargle
October 4th, 2009, 06:51 AM
yeah, was this is a Tandy series computer by any chance?
For whatever reason, Tandy machines don't return back FF on unused IO port access.

per, maybe your setup utility could detect a tandy machine (likely have to search for a "Tandy" string in the bios segment) and act differently? My tandy machines seemed to return 0eh on unused IO reads. I don't know if that's standard though. Or maybe instead of checking for a blind FF, look for the same value across all the ports that you read back?

per
October 4th, 2009, 07:25 AM
Or maybe instead of checking for a blind FF, look for the same value across all the ports that you read back?

Good idea. I'll add that ASAP.

bugman2112
October 4th, 2009, 07:35 AM
I get 0F at all locations. What do I do next?
By the way, this is a genuine 5160 XT. I do have a v20 installed, though.

per
October 4th, 2009, 07:50 AM
I get 0F at all locations. What do I do next?
By the way, this is a genuine 5160 XT. I do have a v20 installed, though.

I have uploaded a new file now. It should now be a lot more flexible (see Hargle's post above). Try to download the new version, and see if that works.

bugman2112
October 4th, 2009, 08:12 AM
Still reporting no I/O space (without the card installed).

per
October 4th, 2009, 08:16 AM
Still reporting no I/O space (without the card installed).

Even with the new program (It should be 2585 bytes long)?

ok. Open debug again, and type in:

i 300
i 301
i 302
i 303
i 304
i 305
i 306
i 307
i 308
i 309
i 30A
i 30B
i 30C
i 30D
i 30E
i 30F
q

Are they all equal?

bugman2112
October 4th, 2009, 08:26 AM
yes, all 0F

bugman2112
October 4th, 2009, 08:32 AM
Of course, I could not contain myself, so I installed the card. The setup program works with the card installed, but doesnt show the base address that the card is jumpered to as available (which makes sense).

per
October 4th, 2009, 09:30 AM
Of course, I could not contain myself, so I installed the card. The setup program works with the card installed, but doesnt show the base address that the card is jumpered to as available (which makes sense).

That's strange. Maybe there is a bug... I'll closely examine the code and post if I find anything.

per
October 4th, 2009, 10:01 AM
Of course, I could not contain myself, so I installed the card. The setup program works with the card installed, but doesnt show the base address that the card is jumpered to as available (which makes sense).

Try this debug program. It will print any values it finds, and please tell me what you get (without the card installed).

bugman2112
October 4th, 2009, 12:25 PM
The output seems variable when I execute your new setup program. Sometimes I get a long list of 8F3F before ending in a prompt 0000 and then no I/O space. Other times there are other values in the list like 8A3F.

per
October 4th, 2009, 01:03 PM
The output seems variable when I execute your new setup program. Sometimes I get a long list of 8F3F before ending in a prompt 0000 and then no I/O space. Other times there are other values in the list like 8A3F.

If the list looks something like this:

8F3F
8F3F
8F3F
[...]
8F3F
8F3F







0000

Then...
That's weird. All the program does is to input one byte from one spesiffic port, then compare it to another input from that exact same port (what you see is the two inputs that are compared). If the inputs are equal, it is compared to the next port, and so on (if your list looks like the above, it doesn't even get this far)... The last four numbers are the number of valid I/O ports found/memory addresses found.

What version of DOS are you using? And do you know if any of your cards may affect the data-bus when it is in tristate mode (AKA: remove all cards except floppy and video and try again)?

hargle
October 4th, 2009, 01:13 PM
My true blue IBM AT that I'm playing around with today also seems to have variable IO space when there is nothing decoding there. I don't think we are going to be able to properly scan for an unused location in the setup utility on some of these old beast machines.

bugman, have you just tried it at 300h to see what happens?

bugman2112
October 4th, 2009, 02:07 PM
PER - what you wrote is exactly what I'm seeing on the screen. Using DOS 5.0. I only have a CGA card, floppy controller, and kraft joystick card.

Hargle - I have been playing with the stock config (d000, 0300). I'm having some floppy boot issues, and some drive letter assigment inconsistencies. I'm suspecting the xt-ide is not playing nice with this floppy controller. It is an early 90's 4 floppy, 360,1.2M,1.44M. I'm doing some trouble shooting with switching cards out. I'll report back here sometime this evening.

bugman2112
October 4th, 2009, 06:34 PM
My issues have mainly been: 1) Not being able to boot from a floppy with the xt-ide installed 2) when I was able to boot from a floppy after multiple attempts through the xt-ide boot menu, the operating system could not recognize the hard drive (fdisk didnt work). All those problems went away when I re-installed the standard IBM floppy controller. XT-IDE works just fine now with an IDE to CF adapter (1 Gig Scndisk II card). I'm also using a parallel port based 3.5 floppy drive for file transfers. I have a 360k on the floppy controller for inital boot and setup. Setup.exe still gives "no I/O" when the card is not installed, however. This non-standard floppy controller I was using has its own BIOS which enables drives like 1.44M not supported through the stock IBM BIOS. That must have been what was causing my problems. I tried re-assigning the ROM of the XT-IDE to a different location, but that didn't seem to make any difference. Anyway, this is a very nice board and I'm very appreciative for having it. It must be a daunting task to try and get compatability with so many different configurations. On a side note (and probably should be a separate thread), is there an imaging tool that I can use on a Compact Flash Card for restoration purposes? It would be great to use my USB adapter on my modern PC to backup the CF card so in the event of a failure, I can just restore without using floppy access. I'm talking the kind of tool that images the boot record and makes an exact data dump so the restoration is perfect. Just like the many floppy disk imaging tools.

hargle
October 5th, 2009, 06:28 AM
hey! glad it works, eventually anyway. ;)

I suspect that the floppy controller, with its own option ROM, and INT 13 hooking, is what is interfering with the XTIDE. It might be clobbering what the XTIDE has done.

It may be possible, even though you said you tried it, to relocate the ROM in the floppy controller so that it gets loaded 1st, then XTIDE loads after that. You'd want to load the floppy controller as low in memory as possible, probably around C800, and then I'd suspect that keeping XTIDE at D000 would give the floppy ROM enough room.

Overall, I'm not too surprised that we'd have issues like this, and I'm really curious to see how the boot menu appears when you've got a card like this in the system (provided the XTIDE loads after the floppy, the boot menu should pick up the changes and display them)

If you still can't get them to co-exist, I might have to have you either dump the BIOS and mail it to me, or send me the card altogether so I can poke around and see what it's doing.

Actually, now that I think about it, if the floppy BIOS isn't more than 4k in size, it would be possible to merge it into XTIDE's BIOS, thus ensuring compatibility. Hmmmm.

bugman2112
October 5th, 2009, 06:56 AM
The floppy ROM loads and identifies the floppy drives first. Then the XTIDE loads. The boot menu does seem to identify all the existing drives correctly. But when a drive is selected from the menu, it seldoms boots correctly. The drive configured as A: never boots. I can sometimes select the B: drive, but the resulting boot won't see the hard drive. And the drive letters get switched after boot. Don't know if there is overlap in the ROM space, or just interference? By the way, how do I tell what ROM address the floppy is using? It doesn't have anything configurable that I can tell on the card. Only jumpers for drive size.

per
October 5th, 2009, 07:06 AM
And the drive letters get switched after boot.

It is supposed to do that. The reason is that a lot of boot disks expect to be booted from the A drive, hence the BIOS have to swap the drive it boots from with drive A.

hargle
October 5th, 2009, 07:35 AM
The floppy ROM loads and identifies the floppy drives first. Then the XTIDE loads. The boot menu does seem to identify all the existing drives correctly. But when a drive is selected from the menu, it seldoms boots correctly. The drive configured as A: never boots. I can sometimes select the B: drive, but the resulting boot won't see the hard drive. And the drive letters get switched after boot. Don't know if there is overlap in the ROM space, or just interference? By the way, how do I tell what ROM address the floppy is using? It doesn't have anything configurable that I can tell on the card. Only jumpers for drive size.

Hmm. Ok, if the floppy controller is loading first, then it sounds like the error is more on the XTIDE side. (not surprising, be patient)

Can you describe a bit more what happens when a drive "seldom boots/never boots"? Does it hang up/crash the machine when it's booting? Does it actually start reading from the floppy disk? Are you loading drivers? Do you get error messages? "Seldom" is a scary word in debugging computers. They should do the same thing every time, unless some hardware is right on the edge of working.

To tell what floppy address the ROM is loading out of, grab mike's pcjrcart.zip from here:
http://www.brutman.com/PCjr/pcjr_downloads.html

and run it on your machine. It'll pull down the contents and address of every option rom you've got. Send 'em to me. (don't bother sending me the XTIDE rom, as I sorta know what that looks like already. ;))

bugman2112
October 5th, 2009, 08:05 AM
In sequence: memory count and normal post, floppy drive search then drives identified by floppy controller, drive A: LED lights momentarily, XTIDE activates and identifies hard drive, 5 second delay while displaying (esc for boot menu), attempts to boot A: (drive spins, but no sounds of tracks moving), hard drive boots after floppy failure.

Sometimes means that early on in my attempts, if I hit "esc" and kept trying to boot A: (pressing F1, re-selecting A from boot menu, etc) I was actually able to get it to boot. In fact, I was even able to format and transfer the system to the hard drive. But I have not been able to get this to work at all recently. And it was difficult to do. I'm pretty sure it even wiped out a couple of floppies in the process.

I could always boot from the B: drive though, by hitting "esc" and selecting B from the boot menu. But as stated, I would not have access to the hard drive. I should also note that the floppies were a 360k, and a 1.44M. I reversed the combination of which was A: and B: and it behaved exactly the same way and is therefore not drive related. I also used a wide range of newly formatted and confirmed booting disks to rule that out as well.

A couple more observations. Whenever I would try to update the card via setcard (to change the boot order, or the boot delay for example) it would result in a D000 ROM error during boot after the floppy controller started. Using setcard /b command alone would result in an error. I could use setcard without the "/b" and go through the entire list. It would look like it was flashing correctly, but the verify fails. So I eventually just reflashed and tried the IBM stock floppy card and it works as expected.

Sorry, I know this is a ton of information. I honestly don't mind the setup I have because the parallel 1.44 drive allows me to transfer files to the hard drive. I wouldn't worry too much about my one off floppy controller from JDR. I've read on these forums that many people had trouble even getting that floppy card to work. I was shocked when it worked in my XT. I will help any way I can though if you think it is value added for the project.

per
October 5th, 2009, 08:22 AM
A couple more observations. Whenever I would try to update the card via setcard (to change the boot order, or the boot delay for example) it would result in a D000 ROM error during boot after the floppy controller started. Using setcard /b command alone would result in an error. I could use setcard without the "/b" and go through the entire list. It would look like it was flashing correctly, but the verify fails. So I eventually just reflashed and tried the IBM stock floppy card and it works as expected.

Are you 100% sure you use the most recent version I uploaded the 30th of September? The old one had some checksum errors.

bugman2112
October 5th, 2009, 08:26 AM
I'll double check the file dates when I get home tonight, but I downloaded from the WIKI the same day I recieved the kit, which was this Saturday the 3rd. To clarify, I have not re-tried using setcard since I installed the normal IBM floppy controller. I did retry using setup without the XTIDE installed and still got the "no I/O space" message. I can retry setcard tonight to see if it works now with the normal IBM floppy controller..

per
October 5th, 2009, 09:17 AM
I'll double check the file dates when I get home tonight, but I downloaded from the WIKI the same day I recieved the kit, which was this Saturday the 3rd. To clarify, I have not re-tried using setcard since I installed the normal IBM floppy controller. I did retry using setup without the XTIDE installed and still got the "no I/O space" message. I can retry setcard tonight to see if it works now with the normal IBM floppy controller..

Found the bug, the checksum byte still wasn't written to memory. SO, at the version I just uploaded, the checksum is corectly generated, AND it is also written to memory.

However, it's not tested since I don't got the ability rigth now (I have my fall break this week), so please test it for me.

hargle
October 5th, 2009, 12:38 PM
In sequence: memory count and normal post, floppy drive search then drives identified by floppy controller, drive A: LED lights momentarily, XTIDE activates and identifies hard drive, 5 second delay while displaying (esc for boot menu), attempts to boot A: (drive spins, but no sounds of tracks moving), hard drive boots after floppy failure.

Interesting. So what happens if you try and do a "dir a:" from your C: after booting fails? Does it just grind and ARF, or do you get a "drive not ready?"

What DOS version are you using?
I think we might be able to do a small diagnostic utility here to see what INT 13, read from A: is doing and what error codes it is returning.




I could always boot from the B: drive though, by hitting "esc" and selecting B from the boot menu. But as stated, I would not have access to the hard drive.

Any chance you had a different version of DOS on the different drive?
Thinking that maybe if you had fdisk/formatted with DOS 5.0 and then booted to a 3.31 disk, it wouldn't know about your hard drive. (also just trying to think of the possibility which includes the least amount of work from me!)




I should also note that the floppies were a 360k, and a 1.44M. I reversed the combination of which was A: and B: and it behaved exactly the same way and is therefore not drive related. I also used a wide range of newly formatted and confirmed booting disks to rule that out as well.

ok, that probably rules out my first hope.
"not being able to get to the hard drive" means that typing "c:" and it said invalid drive specification? I'm thinking another simple utility to do some diagnostics here, like checking 40:75 for the hard drive count, then trying to read the 1st sector off the drive and displaying the data/any error codes could be good to know.



I will help any way I can though if you think it is value added for the project.

I'd really like a dump of that ROM. Even just to satisfy my curiosity, but I want to see what it is doing to INT 13 when it hooks in.

OK, I see that i've got about a half dozen utilities that I need to put together and document. We might also want to start a new thread for XTIDE tech support to keep this thread more toward the development side.

bugman2112
October 5th, 2009, 12:50 PM
Interesting. So what happens if you try and do a "dir a:" from your C: after booting fails? Does it just grind and ARF, or do you get a "drive not ready?"

What DOS version are you using?
I think we might be able to do a small diagnostic utility here to see what INT 13, read from A: is doing and what error codes it is returning.

When I boot to the hard drive, I have full access to both of the floppies in DOS. I have been consistently using 5.0

Any chance you had a different version of DOS on the different drive?
Thinking that maybe if you had fdisk/formatted with DOS 5.0 and then booted to a 3.31 disk, it wouldn't know about your hard drive. (also just trying to think of the possibility which includes the least amount of work from me!)

Using dos 5.0 consistently.

ok, that probably rules out my first hope.
"not being able to get to the hard drive" means that typing "c:" and it said invalid drive specification? I'm thinking another simple utility to do some diagnostics here, like checking 40:75 for the hard drive count, then trying to read the 1st sector off the drive and displaying the data/any error codes could be good to know.

Yes, says "invalid drive specification"

I'd really like a dump of that ROM. Even just to satisfy my curiosity, but I want to see what it is doing to INT 13 when it hooks in.

OK. Does that previous file for pcjr actually dump the ROM too?

lutiana
October 5th, 2009, 12:52 PM
We might also want to start a new thread for XTIDE tech support to keep this thread more toward the development side.

Done (http://www.vintage-computer.com/vcforum/showthread.php?p=115509#post115509).

hargle
October 6th, 2009, 07:38 PM
Crossposting, sorry. I need to brag about this a little more over here.

As I posted in another thread, I recently picked up a couple new Promise tech EIDE cards with onboard BIOS. They locked up on my 286, but worked on the 386. I suspect they are doing some kind of 386 instructions.

anyway, so I made a fork of the XTIDE BIOS, changed the base address to 1f0h, which is standard IDE location, and then changed the read/write routines to use a 16bit IO bus. All in all, about a 5 minute job. I then replaced the promise BIOS with XTIDE, and it booted!

This is important news because of the following:
1) We now have another, independent piece of hardware to test BIOS changes out on. If there's any question if we've got a signal/noise/hardware issue, or it's the BIOS being a flake, we can test it out on a known good card to eliminate a variable.

2) I can write and test and verify DMA and IRQ operations on this card before porting them over to XTIDE hardware, provided of course XTIDE ever gets DMA support.

3) I now have a card that I can use on my 286 that has large hard drive support. ;)

nathan
October 7th, 2009, 12:00 PM
Nice, hargle. That's a cool hack, and useful to boot!

I received my kit today, and will be soldering it up tonight or tomorrow in anticipation of receiving my Revision 3 BIOS. Kudos to you guys for such a fine job; the board is very professional and should be a snap to populate.

hargle
October 7th, 2009, 12:41 PM
Ah, stuff I've forgotten to tell the world about:

1) I made up the last of the 25 kits last night. I believe there are 9 remaining and 3 brackets left. Get yours today!

2) I have 1 extra '245 IC. Either I've accidentally shorted someone in their kit, or jameco sent me an extra one. None of the kits I have left are missing any ICs, so it has to be one I've already shipped. Sorry if that's you!

3) I found 2 BIOS bugs while working on my new Promise EIDE cards.
a) Upon installation, we always hook INT 13 and 19, so we can provide the boot menu. However, if no drives are attached/detected, the old INT 13 vector never gets saved. You will crash the instant you attempt to boot.
Not a show stopper (why would you have a card but no drives?) but for someone 1st starting out and maybe not getting a drive that works, or jumpered incorrectly, this could certainly be a head scratcher. This will be fixed on the next release.

b) This one isn't an issue on the PC/XT, but if you have your onboard cmos setup set to having a hard drive installed (typically you'd set your drive type to 1, then let the HDD controller BIOS handle the details), this can cause conflicts in the mapping mechanism that XTIDE uses to know which drive we're in control of. I got burned by that last night. The mapping stuff needs some overhaul anyway, so I will hopefully get that fixed up someday.

prime
October 8th, 2009, 03:40 AM
Crossposting, sorry. I need to brag about this a little more over here.

As I posted in another thread, I recently picked up a couple new Promise tech EIDE cards with onboard BIOS. They locked up on my 286, but worked on the 386. I suspect they are doing some kind of 386 instructions.


Would those be the 16 bit ones that where often supplied with LS120 drives,
if so I have a few of them, would be cool to be able to support drives >500MB on old systems like the 5170, where the bios is limited even if an IDE card is fited.



anyway, so I made a fork of the XTIDE BIOS, changed the base address to 1f0h, which is standard IDE location, and then changed the read/write routines to use a 16bit IO bus. All in all, about a 5 minute job. I then replaced the promise BIOS with XTIDE, and it booted!


Humm as a side thought, would be cool if a interface less board could be developed that would just have the ROM, so that it could be added to an old system such as an IBM AT, so that you could fit it and a standard IDE card and have a large drive on there.

Humm might also be possible to reverse-engineer the promise, though as they are still around might not be such a good idea, but then an IDE drive is much easier to interface to a 16bit bus anyways.

Phill.

hargle
October 8th, 2009, 06:17 AM
Would those be the 16 bit ones that where often supplied with LS120 drives,
if so I have a few of them, would be cool to be able to support drives >500MB on old systems like the 5170, where the bios is limited even if an IDE card is fited.

these:
http://www.vintage-computer.com/vcforum/showthread.php?t=17067
are the cards i'm referring to.

That said, there's probably no reason those LS120 cards couldn't also be retrofitted with the XTIDE source. Right now, the BIOS is totally generic and it's only looking at port 1f0-1f7 for the hard drive to exist on, so if those cards are decoding at the same place, and have a socketed ROM, by all means, yank it out and reprogram it. I'll send you the source/binaries to play with. I'd absolutely love it if XTIDE BIOS gets spread around to support all manner of IDE controllers. :)





Humm as a side thought, would be cool if a interface less board could be developed that would just have the ROM, so that it could be added to an old system such as an IBM AT, so that you could fit it and a standard IDE card and have a large drive on there.

There were cards like that, I used to have one; nothing more than a ROM sitting in the middle of a small PCB. Mine totally didn't work, so I stupidly got rid of it, and now I know so much better...

Essentially, the XTIDE can act as that too, either don't populate the IO decode section of the card, or just let it eat up 9 bytes of IO somewhere on your machine and use the ROM to control another card...

(that's actually how I did the Promise trick. I'm going to have to peel off the label on the promise part and see if it's actually an eeprom, and perhaps even see if it's flashable)

prime
October 8th, 2009, 07:22 AM
these:
http://www.vintage-computer.com/vcforum/showthread.php?t=17067
are the cards i'm referring to.

That said, there's probably no reason those LS120 cards couldn't also be retrofitted with the XTIDE source. Right now, the BIOS is totally generic and it's only looking at port 1f0-1f7 for the hard drive to exist on, so if those cards are decoding at the same place, and have a socketed ROM, by all means, yank it out and reprogram it. I'll send you the source/binaries to play with. I'd absolutely love it if XTIDE BIOS gets spread around to support all manner of IDE controllers. :)


Slightly different card but similar, I do seem to remember that the cards I have are jumperable for several I/O and ROM addresses, from what I remember 1F0-1F7 was one of them, isn't that the "official" second hard disk controler interface anyways.

Promise FloppyMax, ROM can be at D000, D400, D800, DC00, I/O at 1E8 and 168, IRQ at 9,10,11 though there are also holes for 12, 14, 15 if I fitted jumper posts.

Yeah deffo be interested in the source. I even have the AT on my bench at the mo, so could play with it quite easily.



Essentially, the XTIDE can act as that too, either don't populate the IO decode section of the card, or just let it eat up 9 bytes of IO somewhere on your machine and use the ROM to control another card...


Yeah that's true, guess you'd just need the LS688, pullup and dipswitch.



(that's actually how I did the Promise trick. I'm going to have to peel off the label on the promise part and see if it's actually an eeprom, and perhaps even see if it's flashable)

And even if it's not a flashrom, the socket will almost cirtainly be a standard layout, so you could prolly patch the board with the /MEMW, asuming of course that there is a finger for it on the ISA connector, and then replace the EPROM/ROM with a flash rom.

On the FloppyMax, alas MEMW is no on the edge connector, so will not be flashable.

On the plus side it does seem to be working correctly with the 8G IBM drive I have hooked up to it, and PC-DOS 5 can see the whole drive. Next step is a re-assemble at 1F0, to see if I can drive the standard IDE-IO card I have in the system also.

Cheers.

Phill.

NobodyIsHere
October 10th, 2009, 06:11 AM
Hi! I finally got to finish assembling the XT-IDE board. I programmed a 2764 EPROM with the XTIDE BIOS version 10. Everything works great even with the FDC with its own BIOS!

It boots right and plays nicely with the floppy controller. The boot menu works. The hardware went together without a hitch and software works very well.

Very impressive Hargle! Congratulations!

Thanks and have a nice day!

Andrew Lynch

PS, since the XT-IDE project has clearly moved past hardware design phase is there anything in particular I should be testing? I am not aware of any changes to the PCB. The software seems to work great and I don't have a Tandy to help debug its issues. Please let me know if there is something I can do to help out.

Jorg
October 10th, 2009, 06:44 AM
Ah, stuff I've forgotten to tell the world about:

1) I made up the last of the 25 kits last night. I believe there are 9 remaining and 3 brackets left. Get yours today!



I'm a bit confused as I've been travelling for some weeks and not reading everything... are we still beta testing or has the shop opened up?
I'm no electronics engineer so I won't be that much use debugging- but I would like to have some of them in the end (just afraid I'll miss it, lol!)
Things seem to develop very fast recently!

hargle
October 10th, 2009, 04:40 PM
Jorg: We're on prototype II. I did a run of 25 PCBs and opened "sales" up to folks who were willing to pitch in, debug a bit, throw it through the paces and give some feedback. So far it's been excellent all around.

I still have 10 available, in kit form. The bottom of page 109 has the details for ordering.

---------

andrew: I think you're off the hook for now. There are no known HW issues to look into, so just kick back and enjoy!

---------

Has anyone mounted a bracket yet? I'd like to see some pictures of a totally finished card. That's the one thing I have not done yet.

NobodyIsHere
October 10th, 2009, 06:32 PM
Hi Hargle! Did you settle on the Keystone 9202 ISA bracket?

http://www.jameco.com/Jameco/Products/ProdDS/1582356.pdf

I would love to know if there is sufficient clearance.

Thanks and have a nice day!

Andrew Lynch

PS, if you are interested, I have the ATA-1 and ATA-2 specifications for the *REALLY* old drive support on the N8VEM wiki in the DiskIO folder. They may come in handy writing a BIOS to support the early IDE drives.

nathan
October 10th, 2009, 07:45 PM
I thought I'd share my pics of the board assembly process. Click the images for a closer look. Perhaps someone would like to add these to the Wiki?

http://img63.imageshack.us/img63/3660/dsc0509.th.jpg (http://img63.imageshack.us/i/dsc0509.jpg/)
I like to start with the lowest-profile components and work toward the highest. Here is the installation of R1 through R7.

http://img269.imageshack.us/img269/5738/dsc0526y.th.jpg (http://img269.imageshack.us/i/dsc0526y.jpg/)
Next are the bypass caps, resistor packs, and sockets. If you bend the legs of the caps at right-angles for installation they are just shy of the socket height, so you can do the caps, resistor packs, and sockets at the same time.

http://img169.imageshack.us/img169/6331/dsc0530v.th.jpg (http://img169.imageshack.us/i/dsc0530v.jpg/)
After the sockets are in place, in goes the DIP switch.

http://img196.imageshack.us/img196/7223/dsc0533c.th.jpg (http://img196.imageshack.us/i/dsc0533c.jpg/)
The next-tallest component happens to be the LED, so it comes next.

http://img196.imageshack.us/img196/6320/dsc0536s.th.jpg (http://img196.imageshack.us/i/dsc0536s.jpg/)
After the LED, it's time to solder in the headers. Here, 3 of 4 are installed, leaving the 3-pin for last.

http://img196.imageshack.us/img196/3974/dsc0538q.th.jpg (http://img196.imageshack.us/i/dsc0538q.jpg/)
Next is the 3-pin header. I opted to use one I had on hand from Futurelec, but you can make do as shown in the next image.

http://img196.imageshack.us/img196/5795/dsc0543l.th.jpg (http://img196.imageshack.us/i/dsc0543l.jpg/)
If you don't have a 3-pin header on hand, cut two chunks off the remaining double-row, then cut one of those in half, for a total of 3 pins.


http://img41.imageshack.us/img41/69/dsc0546x.th.jpg (http://img41.imageshack.us/i/dsc0546x.jpg/)
After the headers are finished, solder in your last (and tallest) component, C0. Then carefully install the chips in their sockets.

http://img237.imageshack.us/img237/972/dsc0548m.th.jpg (http://img237.imageshack.us/i/dsc0548m.jpg/)
Once everything is installed, give the back side of the board a thorough inspection to check for cold or missing solder joints.

lutiana
October 10th, 2009, 07:50 PM
I have just realize that the card says "Rev 01" on it, but its actually Rev 02.

A minor thing, but should be tweaked before the mass order that is coming up.

*Edit: I just checked the Wiki, and I was wrong it is Rev 1 (version 2)

aitotat
October 10th, 2009, 08:06 PM
Has anyone mounted a bracket yet? I'd like to see some pictures of a totally finished card. That's the one thing I have not done yet.

Here is the pre-build card with bracked installed (http://kotisivu.dnainternet.net/ttilli/Tandy/IMG_0197.JPG). I didn't find proper screws so i had to use those D-connector ones. It was really easy to install. I first installed the bracket alone to a computer. Then i installed XTIDE and drew two dots through screw holes. First i drilled 1.5mm hole, then 2.5mm hole and finally 3mm hole. I probably could have just drilled 3mm hole right after the 1.5mm hole but i wanted to be careful. Anyway, the bracket fits perfectly.

digger
October 11th, 2009, 01:02 PM
Wow...

I'm pretty late in the game here, but I too would like to congratulate all the people involved in getting this done. Excellent job, people! :)

I have a question: if the board is of a 2-layer design, wouldn't it be possible for us to recreate it ourselves using DIY etching methods, as described on many sites, such as this (http://www.instructables.com/id/Two-sided-PCB-using-toner-method/) one? Or would that somehow be impractical in this case? Perhaps it has something to do with the required thickness of ISA boards?

If I can't etch one myself, then I would love to buy one. I intend to test it in an Olivetti M24 (identical to the AT&T 6300). Since, like the Tandy 1000 that caused you so many headaches, this machine is also of the "quasi-compatible" variety, it should be interesting to see if and how it works.

It would be awesome to design a variant of this card specifically for the M24/6300's proprietary 16-bit bus. I wonder how much (if any) performance increase that would bring. But of course, that is way too much of a niche for most people to put serious effort in...

NobodyIsHere
October 11th, 2009, 03:18 PM
Hi! I am sure you could etch your own PCB. However you are most likely not going to save any time or money. IMO the cost of these PCBs are so low as to make etching your own impractical. You can have the Gerber files if that's any help.

On the N8VEM project I've encouraged builders to etch their own PCBs but I have yet to know of anyone who has done it. Especially with low cost PCB manufacturers like batchpcb.com PCBs are cheaper than ever.

Thanks and have a nice day!

Andrew Lynch

digger
October 11th, 2009, 03:57 PM
Hi Andrew,

I understand that DIY etching would not have an "economical" advantage, if you factor in "labor costs". But I was also considering it for the "fun" and "cool" factor... The idea of etching and soldering my own ISA card from scratch, being able to simply download everything I need (aside from the components that I can buy locally). ;)

That being said (and this no doubt has already been discussed somewhere, but this thread is just too darn long to read all of it): how would the DIY soldering kits (with prefabbed PCB) be shipped (in one of those envelopes with air bubbles that would still fit in most mailboxes, I presume?), and how would shipping to Europe add to the costs?

If this (current cost of kit plus international shipping fees) is explained elsewhere in the forum, just point me in the right direction. Thanks. :)

NobodyIsHere
October 11th, 2009, 06:24 PM
Hi! OK, I'll be glad to send you the Gerber files or PDFs of the PCBs. Please let me know what you need and keep us informed of your progress! I think its great you want to make your own PCBs!

Thanks and have a nice day!

Andrew Lynch

prime
October 12th, 2009, 03:10 AM
Wow...

I'm pretty late in the game here, but I too would like to congratulate all the people involved in getting this done. Excellent job, people! :)

I have a question: if the board is of a 2-layer design, wouldn't it be possible for us to recreate it ourselves using DIY etching methods, as described on many sites, such as this (http://www.instructables.com/id/Two-sided-PCB-using-toner-method/) one? Or would that somehow be impractical in this case? Perhaps it has something to do with the required thickness of ISA boards?

I have done this, and I can say that it works, I had to transfer the schematic to Eagle, and re-layout route it but it is logically the same circuit. The reason for re-doing it was that the current design seems to have lots of small vias in a small area which would have been inpractical to do by hand, it also meant that I could do optimisations like taking a top placed track and soldering it to the top side of a turned pin IC socket instead of drilling another hole to via it etc.

Other reason was that I was impatient to try it and at that time they where still waiting for delivery of the boards. I guess when the thing goes into production, I'll prolly buy a couple of the pre-made boards as they'll look neater in the long run.

I'll post some pics tonight if you want.

Cheers.

Phill.

digger
October 12th, 2009, 03:17 AM
This sure seems like a fun and challenging sub-project for me. :)

I have been fascinated by the idea of home-made PCBs since I saw the guides explaining this method on the internet. Transferring toner from a laser printer printout with a basic household iron. Whoever came up with that idea is a genius. :biggrin:

I guess in the case of double layer PCBs, the really tricky part will be lining up the transfers on both sides of the PCB juuuuust right.

I only crafted a circuit board once before in my life, years ago back in my early college days, and that was using professional equipment. My fellow students and I were given the assignment to build a working 8051 microcontroller. I remember that the one my group made ended up not working for some reason... :(

So in a way, this will also be something of a vindication for that first effort, almost 15 years ago (if I'm successful, of course). :D

I guess PDF format would be the most convenient for me. I have a laser printer, and printing the transfers out with that should be possible without the need for any additional software tools. As long as I print it out at its actual size, of course. Or am I missing something?

Oh, and just to be sure: the current design consists of no more than 2 layers, right? Otherwise, the home brew etching option is a no-go, of course.

digger
October 12th, 2009, 03:23 AM
I have done this, and I can say that it works, I had to transfer the schematic to Eagle, and re-layout route it but it is logically the same circuit. The reason for re-doing it was that the current design seems to have lots of small vias in a small area which would have been inpractical to do by hand, it also meant that I could do optimisations like taking a top placed track and soldering it to the top side of a turned pin IC socket instead of drilling another hole to via it etc.

Hmmm... That is an important caveat to be aware of, especially for a relative n00b like me...



Other reason was that I was impatient to try it and at that time they where still waiting for delivery of the boards. I guess when the thing goes into production, I'll prolly buy a couple of the pre-made boards as they'll look neater in the long run.


Personally, I think the "Guerrilla" home-made look has its charms as well. ;)



I'll post some pics tonight if you want.


That would be interesting. Also, could you please post your modified layout design as well, for everyone who wishes to go the home-brew etching route? I think that would be a very valuable addition. Thanks! :)

hargle
October 12th, 2009, 06:48 AM
That being said (and this no doubt has already been discussed somewhere, but this thread is just too darn long to read all of it): how would the DIY soldering kits (with prefabbed PCB) be shipped (in one of those envelopes with air bubbles that would still fit in most mailboxes, I presume?), and how would shipping to Europe add to the costs?

If this (current cost of kit plus international shipping fees) is explained elsewhere in the forum, just point me in the right direction. Thanks. :)

Page 109, at the bottom, but I'll summarize.

$30 for a kit, postage paid in the USA and europe.
$40 for an assembled and tested card.
USA ships in a cardboard box, typically in 2-3 days.
Europe ships in a padded envelope, 6-8 days.

Price includes a bracket, but there is a shortage. I have 3 brackets left, and 10 kits. If you absolutely don't need a bracket, please don't take one. Let me know in the paypal message in your order. Feel free to take $3 off the price w/o a bracket, but I am also encouraging people to round up and donate that $3 to future projects. (and to cover my paypal fees, which are almost $2 per order)

paypal to: jeff at silent dot net

prime
October 14th, 2009, 11:15 AM
That would be interesting. Also, could you please post your modified layout design as well, for everyone who wishes to go the home-brew etching route? I think that would be a very valuable addition. Thanks! :)

As promised pictures can be found at :-

http://protein.bio.warwick.ac.uk/~phillhs/xtide/

I was going to post them directly but when re-sized for the forum you wouldn't have been able to see any detail :(

The problem with releasing the layout design is that I use the registered hobby version of Eagle which specifically prohibits comercial use. So it would have to be released in a way to take reasonable steps to prevent this.

Cheers.

Phill.

hargle
October 14th, 2009, 01:16 PM
that is so cool. really sort of weird, but not in a creepy way to see a thing I'm really familiar with to be a different color and obvious different layout.

So, if you don't mind saying, what are your costs for doing PCBs like this?
Ours cost $9 each, when I did 25 of them.

I've also got a solder mask, which I assume you don't, and you've got no silkscreen. All of those are livable without.

What I'm really curious about, is (and this is a whole new thread I'm sure) can we utilize this process to generate a PCjr version of the XTIDE? We'd absolutely need 2 or 3 prototypes, and skipping the $70+ setup fees for a one-of like that would be wonderful.

nathan
October 14th, 2009, 01:19 PM
Given that the home-brew etch design isn't a commercial proposition, there really shouldn't be any issues with your Eagle license.

nathan
October 14th, 2009, 01:41 PM
So, if you don't mind saying, what are your costs for doing PCBs like this?
Ours cost $9 each, when I did 25 of them.

I've also got a solder mask, which I assume you don't, and you've got no silkscreen. All of those are livable without.

I will let Prime speak for himself, but when I do boards I like to use the pre-sensitized positive-resist kind. Print out the design on transparency, expose with UV light, then etch in H202 + HCl. These boards vary greatly in price, but if you are happy with paper phenolic they can be had quite cheap, on the order of $4.00 or so. The etch is self-renewing with an aquarium bubbler so there's no significant cost there.

The biggest cost - as with all homebrew-type things - is one's time. Everyone puts a different value on that, so it depends on the individual. For me, $9.00 for a professionally-produced board in quantity is a no-brainer, so I have only self-etched for things I am prototyping (and would be cost-prohibitive to send out due to low quantity).

As for the resist - there are methods for doing this at home that are effective, but time consuming. Certain lacquer paints are essentially the same thing, and the biggest hurdle is keeping it off the solder pads.

The other thing worth noting is that for a lot of hobbyists these days, it's all about the surface-mount. Drilling holes and worrying about screwing up pads can be tedious, and homebrew surface-mount is really straightforward once you're set up for it. If you don't want to hand-place the solder paste, you can even get mylar solder stencils pretty cheap, or can roll your own if you are friendly with your local laser engraver. Also, a really cool trick is to use the solder stencil to stencil on melted paraffin first (petroleum jelly might also work) to mask off the pads prior to spraying the aforementioned lacquer paint for the resist coating.

To answer the PCjr prototyping part of your question, 2 or 3 boards is no big deal at all. It's just when you start getting into quantity that it gets tedious.

hargle
October 15th, 2009, 02:05 PM
In case you didn't know, version 0.11 of the BIOS has been released:
http://wiki.vintage-computer.com/index.php/XTIDE_project

Here's the highlights.
0.11 - 12 oct 2009
* changed memory allocation to use 0:300 for FDPT instead of EBDA
* removed multicard support (due to the above, and having less space to work with)
* fixed bug with boot swap where booting to B: caused the C: drive to disappear!
* fixed INT 13 fn 25 (ID drive) not drive selecting at start of call
todo/notes:
1) possible drive translation issue with drives ~2G in size.
Some bioses report cylinders-2, whereas we report cylinders-1 in INT13 fn 8
Still investigating
2) is 0:300 the right place to store FDPT? It may conflict with BASIC usage.
3) INT13 hooking not quite right when there are no HDDs installed. no biggie

--------------------------

I have also released "helltest" which is also available at the above wiki link, documentation for it is there too. What this test does is it spews a lot of random data to different sectors on the hard drive and reads it back and compares it. This can be used to verify that what was written by the XTIDE is readable by the XTIDE, which allows you to verify that you don't have any signal/noise issues in your build or cable.

The test can also be used to verify that what is written by XTIDE is readable on *other machines*, and what was written on another machine is readable by XTIDE. Both of these are important tests as well, if you are ever planning on building the drive on a modern computer and moving it over to your XTIDE. Good to know your data is valid!

Details in the documentation on the wiki.

Gotta say this again, just to make sure, **The above test is destructive!**

geoffm3
October 16th, 2009, 06:13 AM
I'd like to do one for the 1000 EX/HX machines. :)

kb2syd
October 16th, 2009, 06:53 AM
These work in EX/HX machines. All you need to do is build a simple adapter. Worst part about the adapter is finding the correct connectors. Hargle may be able to explain the adapter better than I can. I know how to make them, but no one seems to be able to understand what I am saying.

geoffm3
October 16th, 2009, 07:02 AM
These work in EX/HX machines. All you need to do is build a simple adapter. Worst part about the adapter is finding the correct connectors. Hargle may be able to explain the adapter better than I can. I know how to make them, but no one seems to be able to understand what I am saying.

Yeah, I know you can make an adapter. I was thinking it'd be cool to have a PCB that was directly Plus connector compatible though.

geoffm3
October 16th, 2009, 07:03 AM
I might go the adapter route anyway. I've got a spare right angle card edge connector from another machine I can steal, but I'll have to find the pin connector to mate with the HX.

hargle
October 16th, 2009, 09:32 AM
Yeah, I know you can make an adapter. I was thinking it'd be cool to have a PCB that was directly Plus connector compatible though.

I'd be happy to post pictures of the adapter that I made, using the parts I got from kb2syd. THis is maybe something that should be added to the wiki anyway, since it's a perfect mod for the home user.

I was also thinking about pulling the pin connector off my HX module and actually installing a proper ISA slot connector, maybe use an old riser card I have lying around.

geoffm3
October 16th, 2009, 10:07 AM
I'd be happy to post pictures of the adapter that I made, using the parts I got from kb2syd. THis is maybe something that should be added to the wiki anyway, since it's a perfect mod for the home user.

I was also thinking about pulling the pin connector off my HX module and actually installing a proper ISA slot connector, maybe use an old riser card I have lying around.

I've seen some pictures of one... looks very simple. Your idea isn't a bad one... just adapt the connector to a riser card. I think I've got a spare one of those as well. :)

linuxlove
October 18th, 2009, 11:55 AM
so, how much will the new XT-IDE 2 cards run me? was thinking of getting one for my PS/2 so i could use a better hard drive than the ST-506.

hargle
October 18th, 2009, 01:12 PM
so, how much will the new XT-IDE 2 cards run me? was thinking of getting one for my PS/2 so i could use a better hard drive than the ST-506.

look on page 109, at the bottom.

Lord Moz
October 19th, 2009, 06:26 PM
How much interest is there in a version of this card with a CF connector on it?
Either fixed internal or accessible through a rear bracket?

Since these are aimed at older machines that really can't access more than 8GB, and have little use for more space if they could access it, combined with the (relative) scarcity of older/smaller IDE drives relative to the availability of 1-8GB CF cards, it seems like a perfect fit for me.

Anyway, I was just trying to test the waters and get a feel for the interest.

(Yes, this is my first post on the VCF, and I just ordered a card from hargle... can't wait! :p)

aitotat
October 20th, 2009, 03:24 AM
How does XTIDE differ from AT-IDE in programmers perspective? I assume that registers are the same since the actual controller is on the drive itself. What about 16-bit data port? Do you just read/write 512 bytes instead of 256 words to transfer single sector?

XTIDE doesn't use interrupts yet. Why? Can they be enabled just by placing jumper and clearing bit 1 from IDE Adapter Control Register (and doing other bios modifications as well)?

What about DMA? There are no DMA jumpers so is new hardware revision required for DMA support?

hargle
October 20th, 2009, 05:55 AM
How much interest is there in a version of this card with a CF connector on it?
Either fixed internal or accessible through a rear bracket?

somewhere, WAAYY in the back of this thread, user gerrydoire posted a picture of a CF adapter that was attached to a standard blank slot cover, which had been dremmeled out a bit for card access. Then you just attach the cable from the XTIDE to your hard drive, then to this device. It looked great, and I'm thinking that I will probably go this route on at least one of my machines. Yeah, XTIDE then takes up 2 ISA slots more or less, but I think that's pretty minor on large machines or machines where there are more slots in the back than ISA slots on the mobo. I think another option could be to use a 25pin serial port slot.

We bantered about the idea of CFing the card directly, but not much traction came of it. Finding something in a CF adapter that would be solderable at home seems like a challenge. (assuming we'd be attaching it directly to the card, and building a small "cable" with PCB traces.)




Since these are aimed at older machines that really can't access more than 8GB, and have little use for more space if they could access it, combined with the (relative) scarcity of older/smaller IDE drives relative to the availability of 1-8GB CF cards, it seems like a perfect fit for me.


CFs are great for sure. I don't expect the 8-10 gig hard drive market to dry up anytime soon. craigslist is an easy source. I have about a dozen drives from old xbox 1's that I've modded.

My fear with CF's is that there is no wear leveling, and with DOS FAT table being updated every time a file is changed, I think you could blast through one pretty quickly, and the place it's going to die (the flash holding the FAT) is the last place you want it to die.

The other potential twist on this is I'm trying to get CD-ROM support going. At least a proof of concept that we can read from CDs before I create a full blown driver. Now we've got 3 things that I want to attach to my XTIDE, but only cable for 2...

hargle
October 20th, 2009, 06:26 AM
How does XTIDE differ from AT-IDE in programmers perspective?
I assume that registers are the same since the actual controller is on the drive itself. What about 16-bit data port? Do you just read/write 512 bytes instead of 256 words to transfer single sector?

Didn't I send you the BIOS source? :p Your answers are in there!

Really the only difference is the 16bit data port. What we (and acculogic) have done is to latch that 2nd 8bit byte and tuck it into another IO port, in this case it is at BASE_IO+8. Any time we transfer data to or from the drive, we simply split up the data across those 2 ports. The read/writer routines in the source code do the work of splitting or merging that data.

That's why it's so nice and easy to modify this source for actual 16bit controllers; you only have to change 2 routines and set the default IO space to 1f0.



XTIDE doesn't use interrupts yet. Why?

Getting the card functional seemed like a better goal than improving performance. I only have so many hours to dedicate to this project, and no one so far as stepped up to add IRQ support. It, like many other things, are on my to-do list.



Can they be enabled just by placing jumper and clearing bit 1 from IDE Adapter Control Register (and doing other bios modifications as well)?

go for it! send me the changes to the source and I will roll them in. that will be very helpful. Then I can continue investigating CD-ROM.



What about DMA? There are no DMA jumpers so is new hardware revision required for DMA support?

Additional hardware (not just jumpers) is required to do that. No one here has done DMA work in hardware before, so a lot of prototyping and debugging will be required. Remember, we're still developing XTIDE, but the card is also perfectly functional as it is, so we are at a decision point: Do we spend another year developing DMA support, or do we go into a production with a working card now. Is DMA worth delaying production that long? Some machines can't use DMA anyway, so is it really worth it?

geoffm3
October 20th, 2009, 07:20 AM
I apologize if this has already been covered, but I didn't see it on the Wiki... where do I download schematics?

hargle
October 20th, 2009, 07:47 AM
I apologize if this has already been covered, but I didn't see it on the Wiki... where do I download schematics?

I think this is the latest:
http://www.waste.org/~winkles/XT-IDE-sch-4.pdf

andrew may have all of this stuff on his n8vem page too, including the layout files. The wiki should probably point there instead of my personal page...

aitotat
October 20th, 2009, 08:11 AM
Didn't I send you the BIOS source? :p Your answers are in there!
I see it now. I didn't first notice those if XTIDE eq 0 so i thought that you send me the Promise version since rep insw and rep stosw were used.
By the way, wouldn't this be a little bit faster:


readLoop:
in al, dx
stosb
or dx, 8
in al, dx
stosb
and dx, NOT 8
loop readLoop

It now has two byte writes but less instruction fetching. Similar thing can be done for PIO write also.


Getting the card functional seemed like a better goal than improving performance.
There wouldn't be performance improvements anyway. Polling status register and waiting interrupt will both waste just as much time. There are Int 15h/AH=90h and 91h but i don't think they will do much good on DOS anyway. Even if they did, DMA transfers would help them much more.



go for it! send me the changes to the source and I will roll them in. that will be very helpful.
I'll try something else instead. I wrote almost complete 286 BIOS two years ago. It only has what is necessary for DOS but that includes IDE BIOS functions with L-CHS (NORMAL), P-CHS (LARGE) and LBA (28-bit) addressing. It also supports (actually requires) interrupts. If i remember correctly, i also implemented block mode transfers. There are no EBIOS functions.

I will try to get it to work with XTIDE (no promises). However, currently it uses 286 instructions and reserves 1kB from top of base memory.

The whole BIOS was written for emulator so it has never been tested with real hardware. If i get it to work, i should be able to get floppy BIOS functions to work also (HD support for XT).


Is DMA worth delaying production that long?
No it is not. 8088 and 8086 would benefit from it but later CPUs are faster with PIO transfers thanks to INS and OUTS instructions. DMA would also complicate BIOS functions. For example on floppy functions it is needed to check for 64K physical page changes and switch to PIO if sector is partially in two different pages.

hargle
October 20th, 2009, 09:44 AM
I see it now. I didn't first notice those if XTIDE eq 0 so i thought that you send me the Promise version since rep insw and rep stosw were used.
By the way, wouldn't this be a little bit faster:


readLoop:
in al, dx
stosb
or dx, 8
in al, dx
stosb
and dx, NOT 8
loop readLoop

It now has two byte writes but less instruction fetching. Similar thing can be done for PIO write also.


I don't know if it's faster. Right below that code, you will see the following code, which is even smaller than your code, but it's commented out:


readLoop:
in al, dx ; low port, get data
stosb ; store it
xor dl, 8 ; toggle to high port
loop readLoop

I commented it out because it appeared (by eyes only) to be even slower than the code I am currently using! Again, performance improvements have not been my priority, and I will revisit all these things eventually.



I'll try something else instead. I wrote almost complete 286 BIOS two years ago. It only has what is necessary for DOS but that includes IDE BIOS functions with L-CHS (NORMAL), P-CHS (LARGE) and LBA (28-bit) addressing. It also supports (actually requires) interrupts. If i remember correctly, i also implemented block mode transfers. There are no EBIOS functions.


Super cool! It's too bad that you came onto this project a little late; we could have started with your code from the beginning. Either way, it's great to have another set of eyes and hours available on the code.



The whole BIOS was written for emulator so it has never been tested with real hardware. If i get it to work, i should be able to get floppy BIOS functions to work also (HD support for XT).

yay! that's one of the things I am really interested in exploring too.

geoffm3
October 20th, 2009, 10:59 AM
I'd love to help out with the technical details on this project. I'll have to defer until I actually get real hardware though. I've asked the missus for an XTIDE card for Christmas. ;)

I'm not real familiar with x86 assembly yet. I do have a lot of embedded programming experience though due to work. Mainly 8031 and ppc, but I'm also familiar with 6801, 6502, and z80.

I'm disassembling the 1000HX bios right now trying to understand it currently.

aitotat
October 21st, 2009, 08:41 AM
Well, this is a start at least. That "Searching boot sector from Floppy Drive A ... Found!" string is displayed by my BIOS. For some reason the Hard Disk detection didn't start at all so there is lot to do.

What if i make an error so bad that boot just isn't possible anymore? That would mean that i couldn't flash the EEPROM anymore. It is safe to boot without XTIDE and just install it while the power is on? That doesn't sound very safe.

hargle
October 21st, 2009, 09:07 AM
What if i make an error so bad that boot just isn't possible anymore? That would mean that i couldn't flash the EEPROM anymore. It is safe to boot without XTIDE and just install it while the power is on? That doesn't sound very safe.

Are you flashing your own BIOS into the eeprom on the XTIDE?
If you break it so bad that you can't boot anymore there, just disable the eeprom on the card (j2 I think?) and your mainboard bios should allow you to boot to floppy again, then with power on, just re-enable that jumper and flash it.

aitotat
October 21st, 2009, 11:45 PM
Good thing that the ROM can be disabled if i do something bad.

I was able to detect master drive with my BIOS. It worked only after i polled busy flag from normal status register instead of alternate status register. My BIOS uses normal status register only when interrupts need to be acknowledged. Alternate status register is read for everything else, like making sure that controller is ready to accept commands.

Why didn't the alternate status register work? It is found at base port + 206h on XTIDE as well?

hargle
October 22nd, 2009, 06:06 AM
Why didn't the alternate status register work? It is found at base port + 206h on XTIDE as well?

as far as I know, there is no alternate status register. that would require additional hardware to decode it.

aitotat
October 22nd, 2009, 06:54 AM
What about Adapter Control Register? It should use the same port as Alternate Status Register (ACR is write-only, ASR is read-only). Control Register is used for resetting controller and disabling/enabling interrupts.

Anyway, i now use normal Status Register only and look at this:
http://kotisivu.dnainternet.net/ttilli/1/XtideAlternateBios.jpg

Interrupts are not used at the moment and there are some bugs, like 256MB CF card was identified as CD-ROM (now i know that non-magnetic device flag doesn't automatically mean CD-ROM). The 512MB card was identified as hard disk but as an L-CHS device and not as an LBA device.

hargle
October 22nd, 2009, 09:08 AM
What about Adapter Control Register? It should use the same port as Alternate Status Register (ACR is write-only, ASR is read-only). Control Register is used for resetting controller and disabling/enabling interrupts.

AFAIK, there are no other registers available beyond the 8 standard IDE registers, plus the 1 additional data register.

So it seems your BIOS is now as functional as the one I created.
It seems you have more time to dedicate to this project than I do; do you want to take over all the BIOS work? I won't mind at all; I have a *lot* of other projects to work on.
All you'd need to do is take my eINT13 support and add it into your code, and I think yours would be superior, since you support CHS addressing as well as LBA.

linuxlove
October 22nd, 2009, 09:11 AM
something totally new here - Some computers (like the IBM PS/2 model 25) had no power connector for the hard drive. In my case, the power is supplied though a connector on the controller card. Would it be possible to add a power header to the XT-IDE card for people who might have a similar computer setup?

dongfeng
October 22nd, 2009, 01:04 PM
something totally new here - Some computers (like the IBM PS/2 model 25) had no power connector for the hard drive. In my case, the power is supplied though a connector on the controller card. Would it be possible to add a power header to the XT-IDE card for people who might have a similar computer setup?

That would also be very useful if the card was mounted on a hard-card frame!

per
October 22nd, 2009, 01:45 PM
A minor update has been done to the utilities package. It's really minor, and it fixes the following:


some text that were not displayed in SETCARD when it should have been displayed, is now displayed.
the flasher doesn't set default I/O port-base anymore if the /B:#00 parameter is not present, as the default one is already stored in the source-file.
Some miss-information in the readme has been corrected, as we haven't really made the 100 cards yet.

hargle
October 23rd, 2009, 10:05 AM
Brackets, brackets brackets!

I found a place, durcell technologies, who can do (and have done) ISA slot brackets, and just got a quote for under $2 each, but only if I order 250 of them. I'd previously asked if they had any old stock from the 80s lying around in a back corner, but they've got nothing.

What in the heck am I going to do with that many brackets?

Pros:
The price is pretty good. (a full dollar cheaper than mouser.com)
We could easily fill all of our upcoming 100 order and also fit one onto all the prototypes.
If we do additional ISA cards in the future for other projects, we'll have brackets for all of them.
We can actually get them. I've not found any other place with them in stock.

Cons:
$500 upfront cost for some cheap metal.
Only need 1/2 of that at most.
Storage until other projects take them off my hands.

Thoughts?

Chuck(G)
October 23rd, 2009, 12:42 PM
If I can chime in here, I'd recommend against it.

While you might get another ISA card design that requires a blank bracket, I think it's more likely that you have one that takes a connector through the bracket.

You might consider looking for some (or having some made up) that have a DC-37 cutout in them. One can always use a filler plate to cover it.

IBMMuseum
October 23rd, 2009, 01:17 PM
If I can chime in here, I'd recommend against it.

While you might get another ISA card design that requires a blank bracket, I think it's more likely that you have one that takes a connector through the bracket.

You might consider looking for some (or having some made up) that have a DC-37 cutout in them. One can always use a filler plate to cover it.

The trouble with a connector (at least the standard DB-style) hole going through bracket is that the manufacturer typically then won't have PCB mounts on it. That is, the bracket is retained to the adapter by the design of the connector. I wonder if there is a bracket with a rectangular hole for something like a 40-pin right-angle berg.

But I do like your concept of a DB-37 if my concerns above are addressed; It allows one to slip a 40-pin IDC cable in to connect it to the card (without device power, of course)...

From Jameco, including price breaks with quantity: http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&storeId=10001&catalogId=10001&productId=101742

FWIW, I have seen an external IDE CD-ROM drive in a case with a 37-pin cable (it wasn't very long) connection, driven by its specific ISA adapter...

In fact I probably still have it around here somewhere...

Chuck(G)
October 23rd, 2009, 01:55 PM
The trouble with a connector (at least the standard DB-style) hole going through bracket is that the manufacturer typically then won't have PCB mounts on it. That is, the bracket is retained to the adapter by the design of the connector. I wonder if there is a bracket with a rectangular hole for something like a 40-pin right-angle berg.

I've got several ISA brackets with DC37 cutouts and mounting "ears", so I know they exist(ed). A few ISA prototype boards (e.g. JDR) came with them. You could use a DC37 or not as your needs dictated.

IBMMuseum
October 23rd, 2009, 02:31 PM
I've got several ISA brackets with DC37 cutouts and mounting "ears", so I know they exist(ed). A few ISA prototype boards (e.g. JDR) came with them. You could use a DC37 or not as your needs dictated.

I've got several as well (and also had at least two of the JDR prototype cards at one point), but they are vastly outnumbered by the brackets with just a DB-37 cutout, no mounting ears, hence me saying "typically". Typically I've also not seen too many DB-37 blockouts (compared to DB-9 and DB-25 sized) to cover the hole on the bracket. Of course, there typically isn't airflow issues on 8-bit systems (compared to later designs) to cover the hole, other than for esthetics (and keeping out some of the larger insect and rodent household wildlife).

digger
October 25th, 2009, 07:17 AM
Really the only difference is the 16bit data port. What we (and acculogic) have done is to latch that 2nd 8bit byte and tuck it into another IO port, in this case it is at BASE_IO+8. Any time we transfer data to or from the drive, we simply split up the data across those 2 ports. The read/writer routines in the source code do the work of splitting or merging that data.

There is a well-known problem regarding "bus-endianness" on AT&T 6300 / Olivetti M24 machines, related to the fact that those machines had a proprietary 16-bit extension to the 8-bit industry standard ISA bus. This extension predated the IBM 16-bit AT ISA bus, and as Murphy's Law would have it, the designers decided on the opposite byte order to what IBM would be standardizing on later.

As a result, there are some incompatibilities on such systems when equipped with an EGA card and certain applications that write 16bit data to the EGA ports directly (as opposed to through BIOS calls).

My question is: could this XT-IDE card run into similar problems with 16-bit I/O when installed in such a system? Or am I just being completely silly, not knowing what I'm talking about?

hargle
October 25th, 2009, 12:35 PM
My question is: could this XT-IDE card run into similar problems with 16-bit I/O when installed in such a system? Or am I just being completely silly, not knowing what I'm talking about?

I don't think it would. I say that because at the PC end, it's all 8 bit, and only from the card to the drive (and back again) it's 16 bit. So once it hits ISA-land, it shouldn't matter.

Of course, I've been wrong so many times now that I won't say for certain.
Either way, even if it is backwards, we'd just change the code slightly and rebuild it to reverse the byte order. Easy!

hargle
October 26th, 2009, 10:10 AM
Announcement:

User aitotat is going to be taking over all BIOS work on this project. This frees me up to concentrate on trying to get CD-ROM support proven out before we go into production, just in case any hardware changes are required. Writing a CD-ROM driver is a couple months worth of work, and trying to juggle all these things at the same time is draining my time.

aitotat's BIOS will still be open source, and will be a continuation of the existing XTIDE BIOS. All features from the existing XTIDE code (boot menu, eINT13) will be ported over to the new code base, and new features will be added.

thanks, good luck, and I'm still here for debugging work and testing, so it's not like I'm retiring completely. You can't get rid of me that easily.

per
October 26th, 2009, 10:17 AM
Announcement:

User aitotat is going to be taking over all BIOS work on this project. This frees me up to concentrate on trying to get CD-ROM support proven out before we go into production, just in case any hardware changes are required. Writing a CD-ROM driver is a couple months worth of work, and trying to juggle all these things at the same time is draining my time.

aitotat's BIOS will still be open source, and will be a continuation of the existing XTIDE BIOS. All features from the existing XTIDE code (boot menu, eINT13) will be ported over to the new code base, and new features will be added.

thanks, good luck, and I'm still here for debugging work and testing, so it's not like I'm retiring completely. You can't get rid of me that easily.

Do you know if setcard.com is compatible with aitotat's version? or do I have to change setcard.com to make it compatible?

hargle
October 26th, 2009, 12:56 PM
Do you know if setcard.com is compatible with aitotat's version? or do I have to change setcard.com to make it compatible?
I see no reason why it can't be made compatible. It's a simple and totally easy to maintain, so we should keep it in place if possible.

--------------
In totally other news:

Just got a quote for $1.76 per bracket.
The place claimed they didn't have all of them in stock, but seems to be willing to order them, with just a couple weeks lead time. Sounds good to me. These are new old stock. I think I'm going to go for that.

hargle
October 27th, 2009, 11:07 AM
brackets brackets brackets!

I found a place willing to sell 70 of their new old stock for a whopping $0.28 each! they are the same keystone brackets that I picked up from mouser for $3.00 each. Muhahahah. I had to go through the electronics surplus supplier "send me a quote" process, but if this works out, we will likely have enough brackets for the whole production run, assuming that not everyone will need a bracket.

they are on their way to me right now, hopefully there isn't a typo in the description and I end up with a bunch of PCI covers or just blanks...

At a price that low, I should be able to also source some screws for them at my local hardware store and still come out ahead.

yay.

aitotat
November 2nd, 2009, 03:54 AM
Do you know if setcard.com is compatible with aitotat's version? or do I have to change setcard.com to make it compatible?

I'm almost ready to release first beta of XTIDE Universal BIOS. setcard.com is completely incompatible since i have completely different ROM variables. Would it be better for setcard.com to modify ROM image instead of write settings directly to EEPROM? That way only one EEPROM writing procedure would be required when upgrading to new BIOS version.

I'm going to add new features to the BIOS in the future and that means new ROM variables as well. Best thing would be that setcard.com would use some script file that would contain configuration questions, all selectable options, ROM locations and such. That way setcard.com wouldn't have to be updated when i need to modify ROM variables.

Anyway, here is what i use at the moment. ROM variables start at offset 0.


; Controller specific variables (16 bytes)
struc IDEVARS
.wPort resw 1 ; IDE Base Port for Command Block (usual) Registers
.wPortCtr resw 1 ; IDE Base Port for Control Block Registers
.bBusW resb 1 ; Bus width (0=8-bit, 1=16-bit, 2=32-bit)
.bIRQ resb 1 ; Interrupt Request Number, 0=disabled
resw 5
endstruc

; ROM Variables.
struc ROMVARS
.wRomSign resw 1 ; ROM Signature (AA55h)
.bRomSize resb 1 ; ROM size in 512 byte blocks
.rgbJump resb 5 ; First instruction to ROM init (jmp)
; Offset 8 (8h) starts here
.strDate resb 8 ; BIOS build date string (mm/dd/yy)
; Offset 16 (10h) starts here
.strXTIDE resb 8 ; Signature string for XTIDE flash program
.strInfo resb 40 ; Reserved for additional strings
; Offset 64 (40h) starts here
.wFlags resw 1 ; Word for ROM flags, currently unused
.bIdeCnt resb 1 ; Number of supported IDE controllers
resb 1
resw 14
; Offset 96 (60h) starts here
.ideVars0 resb IDEVARS_size ; 8 words
.ideVars1 resb IDEVARS_size
.ideVars2 resb IDEVARS_size
.ideVars3 resb IDEVARS_size ; Must start within first 256 bytes of ROM!
endstruc


I have currently reserved space for 4 controllers but this can be easily changed later.

One thing about flash.com. Is the "PCXT IDE" signature check really necessary? I think that it should be removed.

per
November 2nd, 2009, 05:06 AM
One thing about flash.com. Is the "PCXT IDE" signature check really necessary? I think that it should be removed.

The reason that's there is because almost all of the utilities takes use of it, when searching for already installed cards. One example is the automatic base-address search in the flasher. It is a lot easier for the user to just select a valid base address than trying to decode the switch settings and manually find the base address.

all of the programs expects the signature at offset 0x10 (hex), and then the following variables following:


0x10 = Signature ('PCXT IDE')
0x18 = I/O port (word)
0x1A = IRQ level (byte, not really used, but just in cause)
0x1B = DMA channel (byte, I don't even know if the hardware supports this at this point, but you'll never know, maybe in the future)
0x1C = Delay before booting (byte, in 1/18.2ths of a second. The boot menu can be entered durning this delay)
0x1D = First boot device ID (byte, 0x00 for drive A, 0x01 for drive B, 0x80 for drive C, etc)
0x1E = Second boot device ID (byte, same format as above)
0x1F = Action if normal boot failed (byte, 0x00 for boot-menu, everything else loads C-BASIC)
0x20 to 0x3F = Reserved for future variables (rigth now, they're not used at all and if variables are going to be put here, I should be notified so I could add support for them in the utilities)


If you move the according variables in your BIOS to the offsets above, then the utilities will be compatible as they are rigth now.

aitotat
November 2nd, 2009, 10:25 AM
If you move the according variables in your BIOS to the offsets above, then the utilities will be compatible as they are rigth now.

I can't use the same offsets simply because i don't have the same variables. My BIOS supports multiple controllers and doesn't have boot menu (yet). Every controller needs to be configured for different port and IRQ.

I can release first beta without any configuration program since port 300h is probably used by everybody. Maybe i should do my own configuration program later.

per
November 3rd, 2009, 12:14 AM
I can't use the same offsets simply because i don't have the same variables. My BIOS supports multiple controllers and doesn't have boot menu (yet). Every controller needs to be configured for different port and IRQ.

I can release first beta without any configuration program since port 300h is probably used by everybody. Maybe i should do my own configuration program later.

Anyways, I suggest the variables are put at offset 0x20-0x3F. Those offsets aren't used by my utilities, as they were reserved for "future variables" of Hargle's BIOS. As Hargle has stopped the development of his BIOS, it's safe for you to put the variables there.

The benefits in doing this, is that they are being preserved when updating the EEPROM. That is, they don't get reset to default if automatic base-address scanning is being used when reflashing.

I/O port and IRQ can be stored in the offsets 0x18 and 0x1A. This way, you will still have different settings for the different cards, as long as you set them up individually after, or more preferable, when flashing them.

To what degree do your BIOS use IRQ transfers?

aitotat
November 3rd, 2009, 06:44 AM
The benefits in doing this, is that they are being preserved when updating the EEPROM. That is, they don't get reset to default if automatic base-address scanning is being used when reflashing.

Does flash.com modify BIOS image on the fly or do you mean setcard.com? By the way, does flash.com generate checksum byte automatically?


To what degree do your BIOS use IRQ transfers?

IRQs are implemented and working but they are not used optimally at the moment. OS hooks (INT 15h, AH=90h and AH=91h) are supported but they are not used at the moment since they are supposed to exist only on AT+ machines. After that the IDE Status Register is simply polled in a software timeout loop. I could also poll the BDA variable that ISR sets but it is simpler to poll the status register directly.

Best way to implement waiting (when OS hook doesn't do that) would be to put the processor to sleep with HLT instruction. That would require timeout loops to use system timer. I didn't want to do that since there are programs that simply doesn't hook system timer interrupt properly.

per
November 4th, 2009, 05:52 AM
Does flash.com modify BIOS image on the fly or do you mean setcard.com? By the way, does flash.com generate checksum byte automatically?



IRQs are implemented and working but they are not used optimally at the moment. OS hooks (INT 15h, AH=90h and AH=91h) are supported but they are not used at the moment since they are supposed to exist only on AT+ machines. After that the IDE Status Register is simply polled in a software timeout loop. I could also poll the BDA variable that ISR sets but it is simpler to poll the status register directly.

Best way to implement waiting (when OS hook doesn't do that) would be to put the processor to sleep with HLT instruction. That would require timeout loops to use system timer. I didn't want to do that since there are programs that simply doesn't hook system timer interrupt properly.
The only modifications the Flash.com does is to optinally set the I/O address into the ROM image (at offset 0x18), and to calculate and set the checksum byte (at offset 0x1FFF).

The flasher modifies all the variables of Hargle's BIOS, but it only updates the first 64 bytes and the checksum byte, hence it is a lot faster than reflashing the entire EEPROM.

For the delay, we didn't hook the system timer. We used BIOS function 1Ah, and just took note on how many "ticks" that passed before continuing booting. The variable controlling the delay is just the number of ticks to wait. No need to hook any interrupts to get that working. However, the delay is kind of pointless if there is no boot menu (as the delay has been working as a chance for the user to enter the boot menu manually).

aitotat
November 4th, 2009, 08:07 AM
The only modifications the Flash.com does is to optinally set the I/O address into the ROM image (at offset 0x18), and to calculate and set the checksum byte (at offset 0x1FFF).

Can you add a flag to flash.com to force generating checksum byte without any other modifications?

joelwx
November 4th, 2009, 12:32 PM
I had forgotten to look at the progress for some time. You have made great progress I see. Are there still some boards/kits available for purchase? If so what is the procedure to get one?

lutiana
November 4th, 2009, 12:58 PM
I had forgotten to look at the progress for some time. You have made great progress I see. Are there still some boards/kits available for purchase? If so what is the procedure to get one?

PM Hargle about getting one, but remember that these are pre-release cards and we need to collect data about what works and what does not work with them and in what systems it works or does not work.

We are hoping to have a final product by December.

per
November 5th, 2009, 02:29 AM
Can you add a flag to flash.com to force generating checksum byte without any other modifications?

That's in fact the default setting.

It will only add the I/O port to offset 0x18 only if the /B:#### parameter is present. The checksum is however generated in any case, so the image you release doesn't really need to contain the checksum byte as long as offset 0x1FFF is unused.

However, I still see no problems to use offset 0x18 as the location for the constant determining the base-port number, unless your BIOS uses fixed I/O-port instructions or require more than one I/O-base port number to be present.

joelwx
November 11th, 2009, 02:51 PM
I got in touch with Hargle and paid for a card. He actually lives close to me so I stopped by and picked it up. Now I need to assemble it.


PM Hargle about getting one, but remember that these are pre-release cards and we need to collect data about what works and what does not work with them and in what systems it works or does not work.

We are hoping to have a final product by December.

tingo
November 22nd, 2009, 12:43 PM
Ok, tonight I finally dusted off the soldering iron and soldered up my XTIDE kit. Now all I need to do is find me three jumpers, and I can test it (why are there no jumpers around when you need them?).

Question: is there a specifications / usage page for XTIDE on the wiki or somewhere else?
I am going to use the card in a machine that has a WD1003-WA2 controller, and that also controls the floppy drive. So I need to be sure that the XTIDE doesn't conflict woth the WD1003.

tingo
November 23rd, 2009, 01:12 PM
If I run setup (for XTIDE) and it doesn't show an error mesage for the addresses I select, is it safe to use them then?

I just ran 'setup' on my IMC Traveller 286 (which already have a WD1003-WA2 installed), just selected the default (io: 0200, base segment: c000) nd got no error messages. Cand I just install the XTIDE card, or will it conflict with the WD1003?

BTW, it would be nice to have a utility that would "inventory" the machine and print out any cards and the resources they use. It seems like findcard just finds xt-ide cards.

per
November 23rd, 2009, 01:51 PM
If I run setup (for XTIDE) and it doesn't show an error mesage for the addresses I select, is it safe to use them then?

I just ran 'setup' on my IMC Traveller 286 (which already have a WD1003-WA2 installed), just selected the default (io: 0200, base segment: c000) nd got no error messages. Cand I just install the XTIDE card, or will it conflict with the WD1003?

BTW, it would be nice to have a utility that would "inventory" the machine and print out any cards and the resources they use. It seems like findcard just finds xt-ide cards.

The reason it shows 200 availible is that "autodetecting" empty I/O ports is rather impossible to do while keeping support for all machines. Make absolutely sure there are NO conflicts manually.

Making an utility for all cards is also almost impossible. There are thousands of different cards from different manufacters, and a lot of those are highly nonstandard. Some are even impossible to detect under certain circumstances, like the joystic port if nothing is connected. The IBM Diagnostics disk is the closest you get, even it's only for IBM-compatible cards.

lutiana
November 23rd, 2009, 05:07 PM
The reason it shows 200 availible is that "autodetecting" empty I/O ports is rather impossible to do while keeping support for all machines.

Could you not simply show what is present at the various IO ranges? That way a user could then determine what range to use manually, or better yet pull the card and work out where the conflict use by simply running the utility.

lutiana
November 23rd, 2009, 07:25 PM
So I have my Rev 1 card. It looks great. I still need to do some work on it, but I have just not had the time. Hopefully this long weekend will give me the time.

My one comment about the silk screen is the table on the back, I think it needs to be moved, as the solder points make it very difficult to read.

So my suggestion is to move it so that it is centered from left to right, and move it down about 1/2". This gets it off of the major solder points (especially the 40 pin connector).

Andrew can you see on the PCB layout where the solder points are? If so maybe try to position it so as little of the text is actually over a hole, this should make it a ton more readable and functional.

hargle
November 23rd, 2009, 07:32 PM
Could you not simply show what is present at the various IO ranges? That way a user could then determine what range to use manually, or better yet pull the card and work out where the conflict use by simply running the utility.

nope. I thought we could too, but old machines, especially tandy machines, have no pullup or down values on unclaimed IO cycles. That essentially means that the *entire* IO range looks to software as if something is returning data. (it doesn't return 00 or FF when you read it) My tandy HX gave me random values on reads where no hardware was decoding. It's crazy.

lutiana
November 23rd, 2009, 08:36 PM
nope. I thought we could too, but old machines, especially tandy machines, have no pullup or down values on unclaimed IO cycles. That essentially means that the *entire* IO range looks to software as if something is returning data. (it doesn't return 00 or FF when you read it) My tandy HX gave me random values on reads where no hardware was decoding. It's crazy.

Is this the difference between plug and play vs non-plug and play?

per
November 23rd, 2009, 11:15 PM
Is this the difference between plug and play vs non-plug and play?

PnP didn't appear before around the middle 1990's. This card is mainly targeted to machines as old as 1981, and we simply can't relay on PnP (as it doesn't exist on those old PC's).

hargle
November 24th, 2009, 06:21 AM
ok, looks like we're rolling ahead with things. thanks for the push lutiana.

Things for testers to do:

1) test the external LED connection. Is the + on the silkscreen correct? does it light an LED with proper brightness?
2) test cable select with a drive or two and the CSEL jumper.

Things for andrew to do:
1) move the silkscreen on the back
2) add 2 holes for bracket mounting. I've got 100 (actually 120) of the brackets now, all of them the keystone 9502 or whatever part number that we had before. I was thinking that it would be a huge timesaver if andrew could modify the design slightly to add 2 holes to the PCB for mounting. It took me an embarrassingly long time to get the bracket mounted on my card, since I didn't drill the hole at exactly the right spot.
[if anyone out there needs a bracket, let me know]

Things for me to do:
1) source screws for the brackets.
2) get back on CD-ROM driver coding.

per
November 24th, 2009, 06:25 AM
Things for testers to do:

1) test the external LED connection. Is the + on the silkscreen correct? does it light an LED with proper brightness?

I don't think it's a too good idea to parallel-connect leds like on the design. Why can't there just be one pad, where the buyer decides if he/she wants to solder a header for an external led or solder the led directly on?

lutiana
November 24th, 2009, 03:52 PM
PnP didn't appear before around the middle 1990's. This card is mainly targeted to machines as old as 1981, and we simply can't relay on PnP (as it doesn't exist on those old PC's).

Well I did not mean to make this card PnP that would be pointless. I was just wondering if the fact that random data is returned had something to do with pre-PnP systems only or if it also happens on PnP machines.

lutiana
November 24th, 2009, 03:58 PM
I don't think it's a too good idea to parallel-connect leds like on the design. Why can't there just be one pad, where the buyer decides if he/she wants to solder a header for an external led or solder the led directly on?

So leave the on board LED off all together? This would save a few cents per card, so maybe not a bad idea. Probably no need to change the design.

NobodyIsHere
November 25th, 2009, 08:23 AM
I don't think it's a too good idea to parallel-connect leds like on the design. Why can't there just be one pad, where the buyer decides if he/she wants to solder a header for an external led or solder the led directly on?

Hi! I think the builder should choose one or the other type of LED and install it. If you want a local to the board LED, use those pads. If you want one on a wire for case installation, then use those pads.

I don't recommend installing both LEDs at once but if you do and use them simultaneously you should pick matched LEDs. Otherwise the one with the lower voltage drop is going to use up its life quickly if it works at all.

The circuit is meant for installing one or the other but I don't recommend both. Has anyone tried installing both LEDs? What happened?

Thanks and have a nice day!

Andrew Lynch

hargle
November 25th, 2009, 09:31 AM
Interesting.
Most plug in IDE controllers that I've ever seen have both an onboard LED and a header to drive an external one. I'd never even given a 2nd thought to having to match voltages or do anything special.

Is there a way around this? Considering we're already installing the LED on the board, but I suspect that most people will want the external connector. Can we drive them separately? or yet another jumper to select which one to use? that seems clunky though.

lutiana
November 25th, 2009, 01:05 PM
From what Andrew is indicating it sounds like the worst thing that is gonna happen here is you burn out an LED, not a train smash I don't think. So is it worth changing the design to only allow one LED? I doubt it at this point, just add a note on the silk screen that says "Not meant for 2 LEDs" or something like it.

Then we simply don't include and LED in the kit or on the assembled card, LEDs are easy to get just about anywhere so end users can decide which works best for them.

aitotat
November 27th, 2009, 07:00 AM
How does the EEPROM flashing work? I have almost completed the setup program for XTIDE Universal BIOS but i'd like to include flashing to it.

per
November 27th, 2009, 08:51 AM
How does the EEPROM flashing work? I have almost completed the setup program for XTIDE Universal BIOS but i'd like to include flashing to it.

It basically writes to the EEPROM as if it was a big SRAM, however, it have to be timed as most EEPROMs require some pauses between each 1 Byte, 32 Byte or 64 Byte write. The flasher does reprogram the system timer in order to get the pauses rigth.

See http://wiki.vintage-computer.com/index.php/XTIDE_project#The_Flasher for more info on the different timings currently supported.

tingo
November 27th, 2009, 09:51 AM
OK, I just tried it. Disconnected the ST-125 drive from the WD1003-WA2 controller (I needed the power connector for my IDE drive), connected up a blank 160GB Samsung drive (it was the only working one I had lying around), and powered on. The Samung drive was detected as drive 0 by the XTIDE controller, but the machine didn't want to boot, not even from floppy. I troed all the boot menu entries, but no.

So I disabled the IDE drive (I knew from previous tests that the machine would boot from floppy if no IDE drive was present), booted and ran the gsetup program, in that I set drive 0 (this is for the WD1003 controller) to type 0 (zero) which is "not installed", exited and rebooted the machine.

After a power off, add IDE drive, power on, I could fdisk, format and sys the drive.
And my machine now happily boots from the 2 GB primary partition on this 160GB drive. :-)

Are there any other tests you wish me to perform?

hargle
November 27th, 2009, 11:17 AM
Glad you got that figured out; it would have been difficult to troubleshoot having a controller in there with its own setup, but the drive not attached is most certainly going to cause some headaches. Once you get the power figured out, XTIDE may or may not co-exist happily with your other drive. You are likely the first to try it in such a combination.
Likewise, with any other computers that have their own setup and drive tables, make sure they are always set to "none" or XTIDE will think there are other hard drives in the machine, and install itself as the D: drive.

As for tests, try helltest as available on the wiki:
http://wiki.vintage-computer.com/index.php/XTIDE_project

It's a read/write/verify program that can assist in pulling out problems with signaling and noise issues or bad data points. IF you run it for 20 minutes or so without errors and can then verify the same data on a different machine, I think it's safe to say your controller and drive is golden.

lutiana
November 27th, 2009, 11:38 AM
Are there any other tests you wish me to perform?

On my original test machine I had to disable the onboard IDE controller to get the card to detect any drives. Similar issue here I think.

jackrubin
November 28th, 2009, 07:50 AM
Hi guys,

Finally got my beta card assembled and have been testing with only partial success. Test machine is a clone 386/387 machine with AMI BIOS, running DOS 6.2 and 16M of RAM. Board is set at port 300, base D000, IRQ 5, DMA 1.

I've tested with both the original system IDE drive (boots to Win95 if left to its own devices) and with a 1GB solid state drive. Both drives boot successfully using the Goldstar EIDE multifunction controller in the machine.

FINDCARD works (finds the card if there, doesn't find it if it is removed) but the various write utilities don't seem to work consistently. I received the card with BIOS .10 on it; I downloaded BIOS .11 and tried to load it but it only seems to have partially "taken" - the card now shows BIOS .11 on signon but the flash failed because bytes D000:0000-9 read 3E instead of the expected values. I get the same result when I try to run SETCARD - the write fails, with the first 10 bytes showing 3E.

The card itself seems OK in that the signon banner appears and both the old hard drive and the new flash drive are recognized as drive 0 - for the vintage drive, it returns "Drive 0: Conner Peripherals - Error! This drive is too old to support LBA access", for the solid state drive it returns: "STI Flash 8.0.0" so the IDE interface and query functions seem to be working.

The other strange behavior is that extended memory often (but not always?) seems to disappear after I try to run anything that writes to the XTIDE interface, so there is apparently a conflict somewhere.

Must be something simple. Any ideas?

Thanks,
Jack

hargle
November 28th, 2009, 09:53 AM
There have been a number of reports of the flash utility failing, but the thing obviously wrote properly because if every byte wasn't correct, the checksum would fail and the BIOS wouldn't sign on. I suspect that perhaps with the 386 test platform, that the flash utility is running too fast for the flash part or some kind of timing thing is going on. It worked though, so we won't get too hung up on it. the flash utility will likely be reworked a bit if/when we switch to atmel flash parts.

The conner drive erroring out seems normal too. As it says, it's too old.
Use a newer drive that supports LBA, or wait til the new version of the BIOS comes out which will support CHS access. Something in the 2-10G range is ideal. DOS 6.22 can see up to 8.4G so you might as well take advantage of that.

Absolutely no idea why your memory would disappear, but you really shouldn't be using this card in a 386 anyway, so we're not going to worry about that either! It sounds to me like everything is working just fine. ;)

jackrubin
November 28th, 2009, 05:13 PM
OK, so everything with an IDE slot isn't really a target. Moved over to a Canadian XT clone -"Tsunami XT" - retrieved from a thrift shop for $1.98. Reset the board to default 300, D000 and everything seems fine, though glacial in comparison to the 386. FLASH works as expected, as does SETUP. I ended up breaking my 1GB drive into a number of smaller partitions to speed up directory reads and I'm now booting directly from the C: partition.

I'm including a picture of the XTIDE with flash drive attached.

Great job, thank you!

Jack

lutiana
November 28th, 2009, 05:35 PM
Jack,

Where did you get that 1gb SSD from?

jackrubin
November 28th, 2009, 05:50 PM
I bought a half-dozen of them on eBay from seller acxistech. He may still have some left, though I don't see a current listing. At one point, he had 25 or so. They were listed as "SSD-M01G-3100 SiliconDrive 1GB Module"


Jack

hargle
November 28th, 2009, 07:47 PM
yeah, that's super cool SSD adapter! For the production run, we will also be using the 90 degree IDE headers so that you can do stuff like this without needing the card to be in the last slot.

I just picked up a couple of these:
http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=170402805769

Haven't gotten them yet, but will report back when I do. These should make easy work of making a CF device available as removable media...

aitotat
November 28th, 2009, 10:10 PM
I just picked up a couple of these:
http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=170402805769

Haven't gotten them yet, but will report back when I do.

I first bought 3 of those (not from the same seller as those above) and one was defective. I wasted a lot of time testing it because sometimes it detected the drive correctly, sometimes wrong and sometimes it didn't work at all.

Then i bought 5 more (i expected defective ones this time) and again one of them was defective. So don't waste too much time if something doesn't seem to work properly.

k2x4b524[
November 29th, 2009, 04:05 PM
Any idea how long this is gonna take till production? I am VERY interested in this item :cool:

hargle
November 29th, 2009, 06:17 PM
Any idea how long this is gonna take till production? I am VERY interested in this item :cool:

I'd say that we could start shipping sometime in january.

aitotat
December 4th, 2009, 08:58 AM
I hope that you won't use SEEQ EEPROMs on future cards. I just found out how to corrupt EEPROM very easily: just select System information from Norton Commander 5.51. Thats all and it corrupts the EEPROM every time.

I think that NC detects ROMs by trying to write to them and SEEQ has no software write protection. Good thing that XTIDE has hardware write protection (jumper) but it is too much trouble to change the jumper position every time the BIOS needs to be updated.

wrljet
December 4th, 2009, 09:06 AM
I hope that you won't use SEEQ EEPROMs on future cards. I just found out how to corrupt EEPROM very easily: just select System information from Norton Commander 5.51. Thats all and it corrupts the EEPROM every time.

I think that NC detects ROMs by trying to write to them and SEEQ has no software write protection. Good thing that XTIDE has hardware write protection (jumper) but it is too much trouble to change the jumper position every time the BIOS needs to be updated.

I haven't been following this closely lately, but why not have an I/O port
to un-lock for writing, vs. relying on the EEPROM itself?

Bill

hargle
December 4th, 2009, 10:35 AM
I haven't been following this closely lately, but why not have an I/O port
to un-lock for writing, vs. relying on the EEPROM itself?

Bill

well, that would require hardware changes, and we're going to go into production with the current design in a few days.

we will have atmel parts. lutiana, who is going to handle the obtaining the parts, lives nearby jameco and can pick them up in person, and can assure us that we get the rev C's of atmel and not these junker SEEQ parts. Then we will have software locking, so we won't have to make any other mods.

per
December 4th, 2009, 11:32 AM
well, that would require hardware changes, and we're going to go into production with the current design in a few days.

we will have atmel parts. lutiana, who is going to handle the obtaining the parts, lives nearby jameco and can pick them up in person, and can assure us that we get the rev C's of atmel and not these junker SEEQ parts. Then we will have software locking, so we won't have to make any other mods.

Do you mean revision 'B' (28C64B)? That's the one with software-protection.

hargle
December 4th, 2009, 11:47 AM
Do you mean revision 'B' (28C64B)? That's the one with software-protection.

sorry, yes.
i'll send along the datasheet to lutiana so we can be assured to get the exact part.

wrljet
December 4th, 2009, 11:52 AM
sorry, yes.
i'll send along the datasheet to lutiana so we can be assured to get the exact part.

I'm not doing the work and it's not my business, but, why don't *we* buy the parts from a more serious supplier where you specify (and receive) precisely what you want?

Jameco has always struck me as a half-baked operation.

Bill

hargle
December 4th, 2009, 01:57 PM
I'm not doing the work and it's not my business, but, why don't *we* buy the parts from a more serious supplier where you specify (and receive) precisely what you want?

Jameco has always struck me as a half-baked operation.

Bill

I agree with that, jameco are totally inconsistent with their parts, that's for sure.

the deal here is that lutiana has a wholesale dealer connection with them, so we can (hopefully) buy in bulk at a cheaper rate, plus since he's local, there's no shipping charges. Plus, since he's local, he can muscle them into giving us the parts that we want there on the spot. (hope he's been working out!)

it is still possible that they might not be able to beat price costs from another supplier, we will just have to see what kind of price they come up with, then compare it to digikey and or mouser or other. suggestions are welcome. I am putting together a parts list this weekend. The one on the wiki is a little stale.

lutiana
December 4th, 2009, 09:27 PM
I'm not doing the work and it's not my business, but, why don't *we* buy the parts from a more serious supplier where you specify (and receive) precisely what you want?


I am completely open to that. Do you know of any in California? Preferably in the San Francisco Bay area?




the deal here is that lutiana has a wholesale dealer connection with them, so we can (hopefully) buy in bulk at a cheaper rate, plus since he's local, there's no shipping charges. Plus, since he's local, he can muscle them into giving us the parts that we want there on the spot. (hope he's been working out!)


Jameco is about a 45 min drive from my house, so I figured I could go there and pick the parts up and refuse them if they werent exactly what we wanted, I also figured that quantities might help motivate them a bit. Lastly since I hold a CA reseller certificate I was hoping to get them wholesale and save a little bit of money.

I am completely open to buying these from anywhere, I live pretty damn close to Silicon Valley (San Jose CA) that I am sure there are better places to get the stuff. I simply have no idea how to find such places, almost everywhere I find is online and only does mail order from out of state.

Hargle, when you send me the list, the data sheet would be helpful as I can tell them upfront that if they don't supply the exact parts I want then I will cancel the order and go somewhere else. I am used to hard bargaining and it won't be a bluff.

lutiana
December 4th, 2009, 09:37 PM
Do you mean revision 'B' (28C64B)? That's the one with software-protection.

Mouser has that part (http://www.mouser.com/ProductDetail/Atmel/AT28C64B-15PU/?qs=sGAEpiMZZMuVhdAcoizlReMFKWGr4cDVH33Sgbep2as%3d ) for about $3.00 if we get 100, and they are in California (Southern, so they would have to be shipped to me).

I can investigate a further discount if I buy it wholesale.

NobodyIsHere
December 6th, 2009, 01:24 PM
Hi! I am adding the mounting holes to the XT-IDE PCB. The Keystone 9202 bracket. According to the datasheet the bracket uses 4-40 machine screws. The holes on the PCB will be 120 mil diameter which should be plenty large enough for a 4-40 screw based on these dimensions:

http://www.smithfast.com/msthreaddims.html

Using the right angle formed by the edge connect and the bottom of the PCB on the right hand side as the origin, I am placing the first hole over 0.750" and up 0.125". The second hole is over 0.750" and up 2.375".

I sent a copy of the PCB layout and schematic to Hargle for review. Please take a long look at the updated design to ensure no regressions have crept in since we last did this a few months ago.

Thanks and have a nice day!

Andrew Lynch

lutiana
December 7th, 2009, 07:58 AM
The holes on the PCB will be 120 mil diameter which should be plenty large enough for a 4-40 screw based on these dimensions:

http://www.smithfast.com/msthreaddims.html



How thick is the PCB and the bracket? I am trying to work out how long the screws need to be (more specifically is a 1/4" too long).

NobodyIsHere
December 7th, 2009, 08:17 AM
Hi! The PCB is standard 1/16", 0.062", 1.6mm thickness. The bracket has comparable thickness. I recommend no less than 1/8" thread length. 3/16" or 1/4" would be better.

Thanks and have a nice day!

Andrew Lynch

lutiana
December 7th, 2009, 08:35 AM
Hi! The PCB is standard 1/16", 0.062", 1.6mm thickness. The bracket has comparable thickness. I recommend no less than 1/8" thread length. 3/16" or 1/4" would be better.

Thanks and have a nice day!

Andrew Lynch

Excellent, Jameco has 4-40 by 1/4" (https://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?storeId=10001&langId=-1&catalogId=10001&pa=2094389&productId=2094389) screws, so we are set.

mbbrutman
December 18th, 2009, 07:26 PM
It works!

This is the second version of the card. (Yes, I've been sitting on it two months.) The build took about two hours. The instructions on the Wiki were perfect.

And Jeff - very nice touch on programming the SEEQ before sending it. I thought I was going to have to stop short to run back upstairs and prepare a floppy with the utils and latest BIOS. I was pleasantly surprised when it just simply booted the 8GB Maxtor, which had a DOS 5 (2GB in size) on it.

I will buy lunch the next time I'm in the cities .. I need to drive up to get my Selectric repaired, so there's an excuse ..


Mike


PS - Have any brackets?

hargle
December 19th, 2009, 06:48 AM
heh, better late than never I guess!

yep, brackets for everyone if you missed out last time. I have plenty now.

I'll be happy to have you buy lunch. ;) I'll even return that IBM drive back to you, as I am officially giving up on it.

GregLi
February 19th, 2010, 12:43 PM
Hello everyone. I'm a little late to this party, as I just discovered this thread. I've been searching for the ellusive 8-bit IDE controller for years...

Are these still available? Kit or assembled would be fine.

Thanks,
Greg

hargle
February 19th, 2010, 01:37 PM
Sign up here:
http://spreadsheets.google.com/ccc?key=0Aq3OABRiL8UCdEt5SUp2V1U3cXFSN1RCYWZPR2NTV FE&hl=en

Prices have not quite been nailed down yet-I need to do some homework to tally everything up. Should have grand totals in about 24-48 hours.