• Please review our updated Terms and Rules here

8-Bit IDE Controller

Hi! I have DFM results for the latest PCB layout. I think we are ready to go. Any final thoughts need to get in soon!

Thanks and have a nice day!

Andrew Lynch

Click to view Quote for design XT-IDE-full-04.zip: https://www.my4pcb.com/Net35/freedfm/0011697402362123/quote.aspx

New! Click to view PLOTS (beta release) for design XT-IDE-full-04.zip: https://www.freedfm.com/freedfm/0011697402362123/results/plots.htm

Click to view DFM results for design XT-IDE-full-04.zip: https://www.freedfm.com/freedfm/0011697402362123/results/summary2.htm
 
Hi! I have DFM results for the latest PCB layout. I think we are ready to go. Any final thoughts need to get in soon!

Thanks and have a nice day!

Andrew Lynch

Click to view Quote for design XT-IDE-full-04.zip: https://www.my4pcb.com/Net35/freedfm/0011697402362123/quote.aspx

New! Click to view PLOTS (beta release) for design XT-IDE-full-04.zip: https://www.freedfm.com/freedfm/0011697402362123/results/plots.htm

Click to view DFM results for design XT-IDE-full-04.zip: https://www.freedfm.com/freedfm/0011697402362123/results/summary2.htm

I thought the default ROM segment was at C800:0, not D000:0... Else, it looks great!
 
Next week I will try to test the IDE-card with a 286 turbo-card. I do expect a difference in speed, but I don't know how much.
 
hopefully by next week I will have my tandy 1000 wired up (I have to make an ISA converter) and then I can figure out what is going on with the rom corruption and keyboard weirdness.

the following week I'm on vacation, but after that, full steam ahead with rev 2 and all the stuff associated with it.
 
hopefully by next week I will have my tandy 1000 wired up (I have to make an ISA converter) and then I can figure out what is going on with the rom corruption and keyboard weirdness.

the following week I'm on vacation, but after that, full steam ahead with rev 2 and all the stuff associated with it.

a Write-disabled jumper will problably fix most of the problems I think. What I think may be the issue is that there is some writes into the ROM, maybe made by the BIOS, maybe another program.

Too bad I don't have a Tandy 1000, or the bios files, so I can't try to do any debugging on that cause.
 
Got a tandy 1000 HX machine; made my own port adapter so I could plug the XTIDE in. Not very much progress.

I can't get any IO to decode. For whatever reason, all unused ports on the T1000 return a 0x0e back when reading under debug. It should normally be 0xff, meaning that no one is decoding at that port.

I could barely find a single port that didn't return back 0x0e. 3d1 and 3d3 did, but with our card plugged in and supposedly decoding at 0x300, all I got back were more 0x0e's.

Without that working, there's nothing I can do. I'm going to throw some more cards into this thing and see if they decode properly. Stay tuned.

there are a slew of other problems to tackle as well, but this is the biggest.
 
Good news everyone!

I managed to boot to a hard drive on the Tandy 1000 HX!!!!!

(please ignore the post directly above this one. I couldn't get the card to decode at 300h, because it was jumpered at 380. No wonder I couldn't find it!)

here's the details:

1) the default base address of D000 for the ROM conflicts with something inside the tandy machine. Just changing the jumpers to D800 made it work fine.

2) the tandy power on default video mode doesn't decode CR/LF, so even if you did fix #1, you wouldn't be able to see anything since all the text overwrites itself. I fixed this by adding a quick change to 80x25 video mode early in the BIOS.

3) Upon first initialization, the IDE ROM goes and examines the size of base memory, and subtracts 1k off it. this one 1k is then reserved for the XTIDE controller as a scratchpad for storing variables and as a location to issue the "identify device" command to get the model number for the sign-on screen.
I believe that the tandy is weird with that chunk of memory (reserved for video or something?) and what happens is that the IDE ROM steals 1k, issues ID to the drive, then reads the data back. The data isn't there, so the IDE ROM says that no drive is found. However, on the very next reboot (ctrl-alr-del, not a power up) the BIOS does the same stealing of 1k from the top of 640 again, but this time it would be stealing memory at 638k, not 639k. This memory appears to be not used by anything else, and then the IDE BIOS is able to install itself, issue ID properly, read the drive data back and everything is go.

This can easily be worked around by examining the machine type byte in the system BIOS and if it's a Tandy, just bump ourselves down another k at install time, and everything should be golden from there.

Now, some caveats:
I'm using my ROM emulator box for it. The tandy may very well be doing writes into our ROM, which corrupt it without the write protect jumper on the next rev. hopefully that's all that is happening.

There's some funkies in the boot menu. It shows there are 2 floppy drives, and it didn't display the model # of the installed hard drive. I also took the timeout out of the "press [esc]..." message, because it was originally locking up the machine, which I need to look into.
None of these are show stoppers.

Amazing turn of events here. I really had no hope for this card working, and now I see no reason why it wouldn't work.

Forward ho with the next rev of the card for sure!

tandyxtide.jpg
 
Last edited:
Well done!

Now I have an IBM AT with the (dodgy) older hard drives, I suddenly have much more interest in this project! :)

Tez
 
Good news everyone!

I managed to boot to a hard drive on the Tandy 1000 HX!!!!!

(please ignore the post directly above this one. I couldn't get the card to decode at 300h, because it was jumpered at 380. No wonder I couldn't find it!)

here's the details:

1) the default base address of D000 for the ROM conflicts with something inside the tandy machine. Just changing the jumpers to D800 made it work fine.

2) the tandy power on default video mode doesn't decode CR/LF, so even if you did fix #1, you wouldn't be able to see anything since all the text overwrites itself. I fixed this by adding a quick change to 80x25 video mode early in the BIOS.

3) Upon first initialization, the IDE ROM goes and examines the size of base memory, and subtracts 1k off it. this one 1k is then reserved for the XTIDE controller as a scratchpad for storing variables and as a location to issue the "identify device" command to get the model number for the sign-on screen.
I believe that the tandy is weird with that chunk of memory (reserved for video or something?) and what happens is that the IDE ROM steals 1k, issues ID to the drive, then reads the data back. The data isn't there, so the IDE ROM says that no drive is found. However, on the very next reboot (ctrl-alr-del, not a power up) the BIOS does the same stealing of 1k from the top of 640 again, but this time it would be stealing memory at 638k, not 639k. This memory appears to be not used by anything else, and then the IDE BIOS is able to install itself, issue ID properly, read the drive data back and everything is go.

This can easily be worked around by examining the machine type byte in the system BIOS and if it's a Tandy, just bump ourselves down another k at install time, and everything should be golden from there.

Now, some caveats:
I'm using my ROM emulator box for it. The tandy may very well be doing writes into our ROM, which corrupt it without the write protect jumper on the next rev. hopefully that's all that is happening.

There's some funkies in the boot menu. It shows there are 2 floppy drives, and it didn't display the model # of the installed hard drive. I also took the timeout out of the "press [esc]..." message, because it was originally locking up the machine, which I need to look into.
None of these are show stoppers.

Amazing turn of events here. I really had no hope for this card working, and now I see no reason why it wouldn't work.

Forward ho with the next rev of the card for sure!

tandyxtide.jpg

Are you sure your scratchpad RAM will not conflict with the way the Tandy's share the video memory? In an Tandy with less than 768K of RAM, the video controller will use 16-32K of the RAM at the top of the conventional memory space by default. Do you have to use 2K of RAM instead of the 1K that you use in non-Tandys?

The HX tech ref does not indicate that there is anything at D000.
 
Well done!

Now I have an IBM AT with the (dodgy) older hard drives, I suddenly have much more interest in this project! :)

Tez

With an AT, you can even use one of the 16-bit combined Floppy/IDE adapters. They tend to be pretty common, and they give better performance because of the 16-bit bus (this card has to convert it to 8-bit, and that's what makes it special).

The only thing you'll need for a 16-bit Floppy/IDE card is a BIOS extension that makes it utilize the IDE adapter. Some of those cards even got the BIOS ready for use.
 
Are you sure your scratchpad RAM will not conflict with the way the Tandy's share the video memory?

not at all! these tandy machines are weird. Obviously there's a conflict we me taking some upper memory, so we need to find somewhere it can go when we detect it's a tandy machine instead.
In an Tandy with less than 768K of RAM, the video controller will use 16-32K of the RAM at the top of the conventional memory space by default. Do you have to use 2K of RAM instead of the 1K that you use in non-Tandys?
Good information!
Looking at it now, I see that the tandy does indeed report the top of memory just fine: the value at 40:13 is 270h, which is 624k of base memory. (I have a 640k machine), so 16k of it is reserved for video. What the IDE card should have done is checked this value, removed 1 from it, then install its 1k buffer at 623-624k. That should just work, provided everyone is using and respecting that pointer at 40:13. I'll investigate some more as to why this doesn't seem to work on the first go around.

XTIDE only needs 1k of space. I could actually do with 1/2 of that, but 1k is a nice round number, and if I'm using that pointer at 40:13, that's the granularity anyway. If we have to get really creative on the tandy, so be it.

The HX tech ref does not indicate that there is anything at D000.
yeah, I don't see anything there either, except the tandy's floating bus.
I get all E8's when I dump that memory out, except for a few straggling bytes that are changing. Looks like it's free, but when I had the card there, it would hang at the "base memory size = 640k" initial startup screen. All I had to do was move it and it fired right up.

Overall, I think I just got really, really lucky that this thing worked yesterday. None of the things I thought I had to do/fix seem to actually be problems! Man this thing is weird.
I'll keep playing, obviously.
 
tandyfit.jpg


For those of you with tandy machines who are interested in this controller, how were you planning on mounting the card inside the machine?

This is the way mine works, with my adapter cable. the card is about 1/2" too tall to fit that way. I was wondering if I can use the lower pin connectors instead of the taller one, and if I were to use a longer cable, I might be able to have the card flipped over the other way and have the cable underneath.

or is there any chance that rev 2 of this card is somehow slightly shorter?
 
Hi! Does the card work flipped the other way and laying component side down on top of the floppy drive on the right? Please be sure to put down some sort of insulating layer of plastic or paper between the card and any other components especially metal ones...

Thanks and have a nice day!

Andrew Lynch
 
That could work; may be a really tight fit due to the cover of the machine coming down at an angle toward the front of the floppy drive. There is not much room there at all!

I think I can do something like this:
tandyfit2.jpg


at the moment, the adapter connector doesn't fit in the lower pin header on the tandy expansion, so the edges will need to be removed, and then the 2nd header is so friggen tall, that it's causing the card to stick up a little bit too high. I may have to take the dremel to it and remove the top half of that header... it's so incredibly close of a fit, it's almost like we planned it that way. :)

this is of course assuming that the 2nd, lower pin header is identical to the taller one off the tandy expansion. can anyone verify that before I plug it in?

THEN there's the whole issue of power. there are no spare power connectors to power the drive from. I suppose I can branch off the floppy drive, but sheesh. I'll have to build my own power cable for that.
 
With an AT, you can even use one of the 16-bit combined Floppy/IDE adapters. They tend to be pretty common, and they give better performance because of the 16-bit bus (this card has to convert it to 8-bit, and that's what makes it special).

Opps, duh, silly me. It's 8-bit. It's XT owners who would really benefit.

Tez
 
tandyfit.jpg


For those of you with tandy machines who are interested in this controller, how were you planning on mounting the card inside the machine?

This is the way mine works, with my adapter cable. the card is about 1/2" too tall to fit that way. I was wondering if I can use the lower pin connectors instead of the taller one, and if I were to use a longer cable, I might be able to have the card flipped over the other way and have the cable underneath.

or is there any chance that rev 2 of this card is somehow slightly shorter?

On the 1000SX, the card will mount in the in the normal fashion in a verticle slot.
 
the card works perfectly in my tandy 1000tx, and of course they're normal ISA ports so it all fits in like any other card.
 
the card works perfectly in my tandy 1000tx, and of course they're normal ISA ports so it all fits in like any other card.

Very cool. Then maybe the HX is the oddball and the most difficult, and thus since it appears that I can get it to work there, then we may have solved all of the potential tandy issues. (with the rev 2 card anyway)

Now if we could just jam one of these into a PCjr, we'd be set! :)
 
Hi! We can re-size the card but that's a respin. It's an option although I would suggest we reserve it for only when there is absolutely no other choice due to time required. If there is a lot of space needed vertically, then we are probably looking at a shorter but longer card and a new layout of the ICs.

Thanks and have a nice day!

Andrew Lynch
 
Back
Top