• Please review our updated Terms and Rules here

8-Bit IDE Controller

I suspect 2 layer should be enough. This is about as simple as it gets.

My coworker just gave me a couple ads for PCB mfg and they go something like this:

2 layer PCB, up to 60" sq, free silkscreen, tooling and mask, for $25.
No minimum qty.

So, at 60 square inches, I'd think we could drop 4 or more of them onto the same board.
If we were able to assemble them ourselves, the cost could easily be $20 or less per board. (I've no idea what the parts would cost)

That ASCII schematic as seen here:

http://www.mylinuxisp.com/~jdbaker/oldsite/sourcecode/xtide.c

didn't have an option ROM on it, so I think we'd be better off trying to clone one of these ADP50L boards. So that would require a hi-res scan of both sides of the PCB, a dump of the option ROM, and perhaps a few hours with a multimeter to make sure all the connections are known.
If anyone else can handle the PCB layout, schematics and hardware end of it, I am all over the option rom side of it...
 
I did the initial chip and connector placements last night and PCB123 is predicting the PCB will cost about 10 bucks US each in a quantity of 25.

That's a 2.5" x 3.5" XT board with room for a ROM and a dip-switch (which was mentioned but not shown in the schematic) either of which will, no doubt, signifigantly change the layout.
 
The project sounds amazing, with the add of the bios boot rom, and if you can brake the 512mb barrier, that card will be the dream of all xt´s fans.

With a simple ide to cf adapter you can use cf´s with 0 noise, no mecanic parts and preserve the longevity of the xt machines.

Many old machines have this solution, spectrum divide, msx sunrise, etc, I think is the pc turn to have a modern standard storage card adapter.

Go ahead with the project, and good luck !!!

Offtopic:

If it´s possible to adapt usb protocol to isa bus, for obtain an usb host adapter, for keyboards, joysticks, hd drives, etc ???
I think usb protocol is designed for pci bus, but perhaps can be adapted to isa one........
Imagine an xt with usb devices................DREAM IS FOR FREE!!!
 
Offtopic:

If it´s possible to adapt usb protocol to isa bus, for obtain an usb host adapter, for keyboards, joysticks, hd drives, etc ???
I think usb protocol is designed for pci bus, but perhaps can be adapted to isa one........
Imagine an xt with usb devices................DREAM IS FOR FREE!!!

It is theoretical possible (if not the transfer-speed exceeds the system bus). All you need is an adaptor (with volt reducers and some controllers), and a Homemade DOS driver. And of course, a Homemade DOS USB Driver for the actual device you have connected to the card.

It would of course take years (escapely because every single USB device need it's own device-driver), but I agree, it would have been cool.
 
I have a Tandy 1000TL/2 that the HDD controller on the MB failed. I am using a 8 bit XT ide card to run a CF card. I have 2 XT ide cards and only one would work with the CF card in the TL/2. The one card I have is a Seagate ST-05x card. this one did not reconize the CF. The other is a Silicon Valley card ADP50 ??(forgot which one till I boot up the TL/2)which works really good on the TL/2.
Some of the boot BIOS may not reconize the CF cards or it was the TL/2 being picky, not sure till I get another CF adapter and get the IBM 5150 running with the Seagate card.
 
I did the initial chip and connector placements last night and PCB123 is predicting the PCB will cost about 10 bucks US each in a quantity of 25.

That's a 2.5" x 3.5" XT board with room for a ROM and a dip-switch (which was mentioned but not shown in the schematic) either of which will, no doubt, signifigantly change the layout.

Fantastic! I was given some winBoard PCB layout software by my coworker this morning, but it appears you've got it all under control. (thank you for taking it!)

We absolutely need an option ROM on the thing, as well as the bank of dip switches or jumpers to move the address decode around as one would expect on such a card. I suspect a 16k rom at most would be required, having it flashable or at least eeprom programmable is ideal (and socketed), since I don't have a UV eraser at my disposal, but I do have a burner. The BIOS, while most of it stolen from other option ROMs from similar boards, will all be open source.

Questions:
Do we want the I/O decode to be selectable from 1f0 to 170, so you could theoretically put 2 of these boards into a machine?
I don't see any reason why it shouldn't be able to support 2 drives at a minimum.
Do we need CDROM support? I'm not sure what implications this will have on the option rom code. It won't be a priority for me to code, that's for sure.
Can you even run MSCDEX on an 8088?

wow. just wow.
 
I'm glad to see this thread takeoff like this ... I've looked at the IDE interface quite a bit recently while helping some poor guys hack their Gridcase machines to take other hard drives.

  • Definitely design the I/O decode to handle alternate ports. You will probably need to debug this on a machine with an existing hard drive.
  • MSCDEX will run on an 8088. I run it on a NEC V20 equiped PCjr when I use a SCSI setup.
  • The hard part is the ROM.

So just to be sure I understand, you are going to design the interface to work with 16 bit drives? This is going to require latching all 16 bits from the drive, then feeding it back to the machine 8 bits at a time over two distinct I/O cycles. All of the control and status registers are 8 bits so it is not a problem, but the 16 bit I/O for data will require latching.

That's going to require the option ROM to do an I/O cycle for the first 8 bits, then change addressing on the board to be able to access the second bits before the next I/O cycle.

The good news about the ROM programming is that the bare minimum can be found in the AT technical reference, which was designed with MFM controllers in mind. (IDE is a superset of MFM.) You can learn a lot looking at the BIOS listing and do the debug work of latching and moving the extra bits with an existing known good base to start from.
 
I'm not worried about cutting the capacity of the drive in half. I'm more worried about sector addressing issues.

If you do it that way, then you wind up with the equivalent of 256 byte sectors when they should be 512. Compensating for that is worse than just doing it correctly.

That trick is acceptable on an 8 bit micro where there is no existing API or expectations about sector size. It's not so hot for a PC solution.
 
So just to be sure I understand, you are going to design the interface to work with 16 bit drives?

Yep. The plan (as far as I can see) is to clone this:
http://home.fuse.net/bobwatts/acculogic 8 bit.htm
(or similar, like the ADP50L-anything that can do 16bit drives and has an option ROM and no additional ASIC hardware)

ADP50L jumper settings:
http://www.peteweb.com/ftp/mirrors/hardware_specs/c/S-T/20200.htm


Since we can dump-n-disassemble the ROM, and provided the other chips are "off the shelf", at a minimum we should be able to do exactly what that board can do. The only thing we'd want to add would be enhanced INT 13 support for up to 8.4Gig drives. (I really don't think 48bit LBA is required)

Even without the ability to move the I/O decode, we should still be able to debug on a 386+ machine by just disabling the onboard controller(s). That'll free up the I/O range.
 
Fantastic! I was given some winBoard PCB layout software by my coworker this morning, but it appears you've got it all under control. (thank you for taking it!)

We absolutely need an option ROM on the thing, as well as the bank of dip switches or jumpers to move the address decode around as one would expect on such a card. I suspect a 16k rom at most would be required, having it flashable or at least eeprom programmable is ideal (and socketed), since I don't have a UV eraser at my disposal, but I do have a burner. The BIOS, while most of it stolen from other option ROMs from similar boards, will all be open source.

Questions:
Do we want the I/O decode to be selectable from 1f0 to 170, so you could theoretically put 2 of these boards into a machine?
I don't see any reason why it shouldn't be able to support 2 drives at a minimum.
Do we need CDROM support? I'm not sure what implications this will have on the option rom code. It won't be a priority for me to code, that's for sure.
Can you even run MSCDEX on an 8088?

wow. just wow.

Ok, just so we are on the same page, I'm using the schematic from here;

http://www.mylinuxisp.com/~jdbaker/oldsite/documents/xtide.txt

for the design.

If you are going to add other devices (ROM, switches/jumpers), then either modify the schematic and send it to me or provide me with another schematic.
 
Ok, just so we are on the same page, I'm using the schematic from here;

http://www.mylinuxisp.com/~jdbaker/oldsite/documents/xtide.txt

for the design.

If you are going to add other devices (ROM, switches/jumpers), then either modify the schematic and send it to me or provide me with another schematic.

I think that's a good start, at least getting familiar with the layout, physical size, estimated cost/board, and parts used, etc, but we're going to need someone with one of the cards with a BIOS on it to scan both sides of the card for us and try to draw up a new design from. We've gotta have a BIOS on it.

Now, I'm no hardware engineer. I've never created a schematic or used a layout tool, but I'm willing to try and at least connect the dots off a nice hi-res scan of the card and at least get the part numbers used to see if we can match 'em, and hopefully we can build a new schematic from there.

So, can one of you guys with one of the cards with a BIOS on it please make some scans for us? (and dump the rom?)
 
it looks like this project is actually seriously being look into, AWESOME news! i will absolutely buy one the instant you guys get them made. :) (maybe two, one for each of my 8088's)

i wish i could help, but i don't know what i really could do. is there anything? i wonder how much one board would cost to make after everything is said and done.
 
yeah, it's one of those engineering things:

I'm too cheap to buy one of these cards for $200 of ebay, but I'll spend 600 hours of my time designing, building, testing and debugging one, so I can open source it and give it all away for free when it's finished. heh.

Similarly, I'll spend 4 hours searching the couch for the lost remote control, but I won't just get up and flip the channel.
 
lol. i'm exactly the same way with my DOS software. i'm just happy if it helps the community get new uses out of their old computers.
 
I'm not worried about cutting the capacity of the drive in half. I'm more worried about sector addressing issues.

If you do it that way, then you wind up with the equivalent of 256 byte sectors when they should be 512. Compensating for that is worse than just doing it correctly.

That trick is acceptable on an 8 bit micro where there is no existing API or expectations about sector size. It's not so hot for a PC solution.
--------
I figured if you're going to split/combine 8 & 16 bits anyway then it'd be just as easy or easier to combine two sectors, but now that I think about it a little more you're right; probably easier to do the 8/16 thing.

m
 
yeah, it's one of those engineering things:

I'm too cheap to buy one of these cards for $200 of ebay, but I'll spend 600 hours of my time designing, building, testing and debugging one, so I can open source it and give it all away for free when it's finished. heh.

Similarly, I'll spend 4 hours searching the couch for the lost remote control, but I won't just get up and flip the channel.

Just curious, how will this controller transfer data? My electronics-fu is very weak. PIO, or DMA, or RAM window? (I vote for DMA from port-to-RAM, that is the fastest obviously)
 
So, can one of you guys with one of the cards with a BIOS on it please make some scans for us? (and dump the rom?)

A scan isn't going to do it.

Scanners have almost zero "depth of field" and, although we'd get the chip numbers on one side nice and clear and the same with the solder points on the other side, the chip height may make the traces blurry.

The second problem would be that the light source would show the traces from one side on the other where there was no thick solder mask.

A shadow-mask would be ideal, a schematic would be optimum, an actual card to "ring out" would be good too, but, if worse comes to worse, a super-high res picture of both sides of the board is workable.

When I reverse engineered the buffered interface cable for the TRS-80 Model I expansion interface, I used an ohmmeter to trace each connection from one side of the board to the other.
 
yeah, it's one of those engineering things:

I'm too cheap to buy one of these cards for $200 of ebay, but I'll spend 600 hours of my time designing, building, testing and debugging one, so I can open source it and give it all away for free when it's finished. heh.

Similarly, I'll spend 4 hours searching the couch for the lost remote control, but I won't just get up and flip the channel.

Sounds familiar, you must be an engineer ;) Exam passed.

Its the problem that needs to be solved!
 
Back
Top