• Please review our updated Terms and Rules here

8-Bit IDE Controller

Yeah, it's progressing into a software thing while my cats are playing hockey with your Acculogic card :)

BTW, I resisted the urge to sell it to someone on here that was looking for one LOL
 
Yeah, it's progressing into a software thing while my cats are playing hockey with your Acculogic card :)

BTW, I resisted the urge to sell it to someone on here that was looking for one LOL

Yes, I know. You have been under satellite surveillance since receiving the Acculogic XT-IDE card.

Strange....I have seven cats, and none of them showed any interest in the card. Josie and DOOM won't play witn anything earlier than P4 computers anyway.

Probably a Canadian cat thing. :rolleyes:

bobwatts
EartH
 
well, here we are monday, and I have no deliverable yet.

I spent many hours over the holiday working on the BIOS for the card, and got really hung up on the CHS to LBA translation end of things. I'm trying to make sure that we can prep a drive on a new motherboard and be able to move that drive into our systems and still have all the data available. For the moment, my CHS->LBA code seems to be calculating things incorrectly, since I'm pulling up sectors that don't contain the data DOS is looking for. I'll get it figured out, but it just took up a bit more time than I was anticipating, particularly since I had to write some of my own debugging tools to diagnose the problem.

However, even with my LBA translations wrong, I am able to take a DOS 6.22 bootable disk, load my software up, see a blank drive, partition it as an 8.4G drive (DOS 6.22 doesn't know about extended INT13 support), format it, and copy files to the drive. So it's really close, just not compatible with other machines. I haven't been able to test any of the EINT13 code I've written yet-that'll require freeDOS or something newer than 6.22.
 
Yes, I know. You have been under satellite surveillance since receiving the Acculogic XT-IDE card.

Strange....I have seven cats, and none of them showed any interest in the card. Josie and DOOM won't play witn anything earlier than P4 computers anyway.

Probably a Canadian cat thing. :rolleyes:

bobwatts
EartH

Yeah, it's much easier to play hockey with the card on the igloo floor :)
 
For the moment, my CHS->LBA code seems to be calculating things incorrectly, since I'm pulling up sectors that don't contain the data DOS is looking for.

HA! I wasn't wrong at all, it was DOS that was telling me the wrong place to go.
There are so many pitfalls to deal with here. Essentially by the time you've booted into DOS (at least 6.22) it has already asked what size drive is available and stored that data internally somewhere.
Then I come along and re-detect the hard drive information, and update the "get disk parameters" function from INT 13. Unfortunately, DOS doesn't ask what the disk parameters are anymore, and I don't know of a way of telling DOS to update that information.

So I now have to convert my option ROM BIOS, which was already converted into a TSR, into a device driver so I can attempt to get loaded earlier in the boot process. Hopefully that'll let me inject my code in before DOS sniffs out the hard drives available. jeeze.
 
ok, so I'm thinking I want to try my hand at building one of the controllers from the schematic (ide-linux) as posted earlier, since no one else seems to be volunteering to build one for me. :)

this place, bottom of the page (i hope "standard PCI bus connector" is a typo!)
http://www.futurlec.com/ProtoBoards.shtml

has ISA prototyping boards for $14, which I think should work nicely.
Then it's just a matter of shopping for the ICs needed and spending a few hours at the soldering station.

i'm going to order 2 of them and 2x the ICs, and hopefully by xmas I'll have something working. if all goes well, i'll build the 2nd one and send it to druid.

*edit*
wow, ok, i have no idea how to order ICs. The schematics say 74245, and www.jameco.com has stuff like 74F245 and 745F24N with options for N channel and P channel, etc. I'm very confused and am feeling very dumb. Any chance someone can put together a shopping cart full of the parts I'd need to build one of those things?
 
Last edited:
Well, firstly, the bottom board IS a PCI and the ISA one above it is a 16-bit board.

Your best bet is to go with the 74LS series of TTL chips as they are more common, usually cheaper and will work in all but the most finicky circuits.

Which schematic are you going to use?

I think Andrew referenced an 8-bit ISA protocard in there somewhere.
 
Well, firstly, the bottom board IS a PCI and the ISA one above it is a 16-bit board.

Your best bet is to go with the 74LS series of TTL chips as they are more common, usually cheaper and will work in all but the most finicky circuits.

Which schematic are you going to use?

I think Andrew referenced an 8-bit ISA protocard in there somewhere.

I think he reffered to this (bold text):

http://www.futurlec.com/ProtoBoards.shtml said:
ISA Bus Computer Board
Heavy Duty Phenolic Pre-Drilled ISA Bus Connector Board. Ideal for computer control and interface projects. Plus directly into your computers ISA Bus. Mountings for DB25 connector, Power Connections and IDCC Male Headers.
Part Code: ISABUSBRD
Pricing:

Features
• Pre-drilled and cleaned
• Heavy Duty Phenolic with Green Solder-Mask
Standard PCI Bus Connector
• Fittings for DB25 Connector, PCB Terminals, 40 Pin and 16 Pin IDCC Male Header
• Board Dimensions: 182 x 110mm


Qty
1 +
25 +
100 +
US$ (each)
$13.90
$12.90
$11.90

Order Now for $13.90
 
8-bit ide

8-bit ide

Yes, I know what hargle referred us to, but Andrew referred this 8-bit ISA protocard

http://www.jameco.com/webapp/wcs/st...toreId=10001&catalogId=10001&productId=21532&

Which I think would be the better board.


Do you think these is enough market demand for 8-bit IDE cards for the 8Bit PC as there is for the 8-bit Apple ][.

Reactive Micro sells them and they are constantly in demand to some degree.

Recently on Ebay an Acculogic 8-bit IDE went for $100ish, except for the firmware the rest of the card looked like it had nothing special chips onboard.
 
Board length critical

Board length critical

Just jumping in here. I see you guys are close to starting a board design. One of the critical things for me would be board length. My Tandy 1000sx can only take 3/4 length cards, 1/2 length would be better like what the ide Acculogic card or some of the WD or Seagate MFM/RLL cards are. I hope 8 bit 1/2 or 3/4 length cards are still available.

Greg Lentz
 
Yes, I know what hargle referred us to, but Andrew referred this 8-bit ISA protocard

http://www.jameco.com/webapp/wcs/st...toreId=10001&catalogId=10001&productId=21532&

Which I think would be the better board.

I couldn't tell that the board andrew pointed us to was ISA. the picture didn't help, and the description didn't say ISA on it anywhere. Not that I'm doubting andrew's ability to find what we need, it's just as a software guy, that stuff is confusing!

The board I found was most certainly an ISA board, looked exactly like I was expecting in the picture. 16bit makes not 1 iota of a difference for us (hell i'll dremel that part off if I need to), and mine was 6 bucks cheaper!! :)

whatever though. i'm still more hung up on the parts selection than I am on what to nail them all to when i get all the pieces together. i've asked some of my co-workers for assistance it parts pulling and design. the guys here are really, really bored, it's just a matter of getting it through the upper boss to have them work on a non-work related project.
--------

on the software front, i've found that a .sys driver also doesn't load early enough to get it's hooks in before DOS figures out what hard drive is attached. this means that i need to create either a type of boot sector virus to load before DOS (disk manager does that), or perhaps try and bundle all the code into a block type driver and let it work with DOS to create a new drive letter and handle all the read/write support. I've basically spent the last 4 days working on finding ways to co-exist with DOS, and not actually testing any of my BIOS code like I was hoping to be doing.
 
Just jumping in here. I see you guys are close to starting a board design. One of the critical things for me would be board length. My Tandy 1000sx can only take 3/4 length cards, 1/2 length would be better like what the ide Acculogic card or some of the WD or Seagate MFM/RLL cards are. I hope 8 bit 1/2 or 3/4 length cards are still available.

Greg Lentz

we should be able to work with that. the board is going to be a custom PCB, so we can make it any size we want, but i'm likely jumping the gun here.

the first step is to build a giant, bulky prototype card that so we can debug it and nail down the specific design and software support. once that's in place, the board should be pretty compact since there isn't that much hardware on it to begin with, so I'd think a 3/4 length card at most should be totally doable.
 
8-bit ide

8-bit ide

we should be able to work with that. the board is going to be a custom PCB, so we can make it any size we want, but i'm likely jumping the gun here.

the first step is to build a giant, bulky prototype card that so we can debug it and nail down the specific design and software support. once that's in place, the board should be pretty compact since there isn't that much hardware on it to begin with, so I'd think a 3/4 length card at most should be totally doable.

What about firmware, where will that come from?
 
What about firmware, where will that come from?

that's coming from me, with a little help from acculogic.
if you go back in the thread, we dumped the acculogic BIOS, I disassembled it, and I have been working it over to include support for enhanced INT13 support to give us 137G drives, as well as re-working the drive parameter translations so that O/Ses that don't use Eint13 (like DOS 6.22) can still see it as a 8.4G drive, as opposed to 504MB. I think 8.4G is plenty for an 8088 machine. :)

The original source is nearly all been removed by now, since it was ugly, poorly written (in my opinion) and kinda buggy. It will all be open source when it's finished and debugged.

I'd like it if we can build the card to allow software updates to an eeprom as well, in case other features or CD-ROM or compact flash support requires any firmware changes. In that case, I'll be writing a flash utility as well.

I'm a software engineer by day, and spent a pretty good portion of my career working with phoenix BIOS. I've written BIOS support for IDE controllers before (more at the chipset level than the INT13 level though)
Oddly enough, here at work, i am working on solid state drives, and one of the tasks i'm to do is build an option rom for a custom drive/controller we're building. So, work is getting someone who is really, really motivated to work on their option rom, and the community here is getting someone who has the experience of having done it before. It's a little gray as far as code written at work being shared to an open source project and vice versa, but really, these two projects are about as far apart on the spectrum as you can get-i don't see a conflict of interests at all.

so yeah, sorry for the horn tooting, but firmware is in good hands.
 
For DOS support, an idea would be to use switch settings for heads, sectors and cylinders data... Another by using a block driver, as you said (it won't work in DOS 2.1 anyways).
 
For DOS support, an idea would be to use switch settings for heads, sectors and cylinders data... Another by using a block driver, as you said (it won't work in DOS 2.1 anyways).

well, the crux of the problem is that i need to replace INT13 so that all calls to read/write/query the drive come from me, and I need to do this before DOS loads up, because DOS does a get drive parameters call very early during boot, before I can get in there to hook INT13. After booting, DOS never again asks the size of the drive, so I can't force an update of the drive parameters. If I hook INT13 after boot, DOS then tries to read invalid sectors when doing even a simple "dir c:" because the drive geometry has changed because I detect the drive differently than the existing BIOS does.

If I set the drive type to none in CMOS setup, DOS doesn't think there's a drive there at all, and doesn't ask for the parameters, and then doesn't provide you with a C: drive, even after I've replaced INT13. (I assume it looks at 40:75 and sees that the BIOS has provided no drives, so it installs no drive letters)

If this were done during POST, through an option ROM, i'd be set-i'd have my hooks in before DOS even knew where to boot from, and all would be happy, but I don't have the ability to load in that early at the moment.

A block device driver may work, although I'm discovering that device drivers too seem to be limited to old <2gig parameters, so that may also be a dead end too.

I've no problems doing a boot sector loader, but then that entails me writing an installer for it if others want to use it, and all the headaches involved with debugging that. All I really want to do is debug my INT13 code and I keep getting pushed further and further back trying to wedge myself in.
 
I will prefere to have it as a Boot ROM on the final product, but I understand that might be a problem in the testing process.

If you got an EEPROM and an EEPROM burner, you could use that... Of course you'll need an EEPROM-to-EPROM adapter, but that's pice-of-cake to make.
 
When I did this sort of thing in prehistoric times I found battery-backed NVRAM a godsend; pin-compatible with (EP)ROM, no flashing, no erase/burn, no write cycle limits, etc. I wonder if that's still an option for this sort of thing: cobble up a protoboard, or even pop one into an old HD controller, and modify to your heart's content.

Maxim (Dallas) used to make smallish ones; not sure if they still do, but now there's also ST Micro.

Better check the batteries in mine now that I think of it...
 
I will prefere to have it as a Boot ROM on the final product, but I understand that might be a problem in the testing process.
yeah, an eeprom on the final product is mandatory. i'm really just trying to get some debugging done ahead of time to keep the project rolling along, hence trying to get it debugged in DOS on a normal IDE controller right now.

cobble up a protoboard, or even pop one into an old HD controller, and modify to your heart's content.
that's pretty much my next step-I'm trying to gather the pieces to put together a proto-controller.

Somewhere I have a PROM-ICE that I plan on trying out with this once I get a piece of hardware to play with, but you might just be onto something here... pull the rom off any old card, even SCSI, since all I need to do is hook INT 13 and return back to the POST.
(insert sound of hargle's gears turning in his head) thanks for the idea!
 
Back
Top