• Please review our updated Terms and Rules here

8-Bit IDE Controller

In other words, will the card you are planning and working on be compatible witht the original ROM as well as the custom ROM you are making?

right now, that all depends on if we have to change any of the hardware due to parts being unavailable or anything else that comes up. *if* we could get the same parts that are on the board right now and clone the schematics, then you could very well just take the original BIOS as posted right now and use the board exactly as a replacement of this card. I think the chances are small that we're going to be able to locate hardware that does exactly what this stuff does, so some minor changes will be required to the BIOS anyway, so while we're in there, we might as well add some other goodies like DMA support and extended INT 13h.

Before I make any modifications, I'll post a version that compiles to what the BIOS is right now, so we can all have the original source to play with.
 
My 7¢ worth.......

My 7¢ worth.......

Hello !

hey gang,

the BIOS disassembly is going really well. I'd say I'm about 1/3 finished or better already.

I've come across a few things that I think might require some input:

1) there's code in here for read/write precompensation, and a lot of heavy duty status and error checking while it waits for seek completes and things like that.
With newer hard drives, a lot of this stuff is really pretty useless, especially the precomp.
Do we keep this stuff in there, or optimize it out? We'd break backwards compatibility with ancient IDE drives, but c'mon, if you're putting an IDE drive in an XT, why not use one that is > 40MB and utilize a modern drive's capabilities? Nuking that stuff will get us a smaller option rom, and probably faster performance since it won't be doing so much overhead.
(this can obviously be changed anytime)

2) There's an interactive menu at c800:5 that allows the user to override parameters of the drive. Do we care about it? I suspect it's for incompatibilities and operating system hacks and probably not important anymore. I've so far avoided it, but I'll comment it and flesh it out if people want.

3) there's support for a few obscure disk functions, like read w/ ECC data and the like. I've already fairly well documented them and disassembled them, but does anyone use that stuff anymore?

Oh, and BTW: this thing is using PIO only to do all data transfers. upgrading it to DMA would require more work. Probably doable, but I'd need to do some research on that.

Fascinating project. It's interesting to see great minds at work. I have a few comments:

1)I *would* ( like *I* could ) change the code for compatibility for "later" IDE drives, and forget about compatibility with "older" drives. If you're gonna install an IDE drive in an old XT, might as well go with some of the 1, 2, or 8.4 gigs we all have laying around. Again, this is a personal opinion. Some may want to use a very small 20 or 40 meg drive. In that case, just leave the BIOS ROM alone. Works great the way it is. It's actually pretty fast, even with all the overhead mentioned by hargle.

2) Dunno.
3) Does it hurt to leave the obscure disk functions intact ?

4) I didn't know that direct memory address was available on an XT. I can tell you that the programmed input/output performance on my particular XT is pretty good, but it *is* operating at 10MHz. DMA transfers would be great if available, but if not, no big deal. Just having an IDE card available period would be wonderful.

I have a question that might get me ostracized ( already ) 'cause I don't know if it's possible or not. Would it be possible to add another IDE channel, or IDE CD-ROM support ? I have no idea if an XT could support ATAPI, and the experts could be rolling their collective eyes at this moment, but that would be something interesting. One thing I never got around to, but wanted to, was installing a CD-ROM drive into my XT. I *do* have a NIB Sound Blaster somewhere ( 8bit of course ), and can't remember if it had a proprietary CD-ROM connector on it. I doubt it. That would have been an interesting install. :rolleyes:

At one time, I had an ancient CD-ROM drive that had a switch on it for 8 or 16 bit. Threw it away for some reason years ago. If the proposed IDE controller card was developed ( 8 bit slot with 16 bit capability ) a later CD-ROM drive could be used. I would imagine some type of driver would have to be written, because I doubt that my good 'ol universal CD-ROM driver would work, but again, I don't know.

Looking forward to the lessons I'm sure I'm about to receive. ;)

bobwatts
EartH
 
here's a disassembly for the option ROM:

Done via IDA, I've commented a good portion of it and named all the subroutines and got it to compile. This will produce a byte for byte match of the original option rom as dumped by bobwatts. (thanks again!)

We'll let this be a baseline source before I go about making any changes or enhancements to the code.

My next step is to break this code apart, optimize it, clean it up more, and then we can start adding features.

--------------
and in answer to your question:

I think CD-ROM support is doable. I'm not really familiar with the interface, but I think a little disassembly of an atapi driver (or a peek at an open source one) would provide me with a lot of insight. Hard drives first though!
 

Attachments

  • acculogicOprom_v1.zip
    55.7 KB · Views: 1
Last edited:
Great :D . I'm looking forward for the final product.

*Edit*
As for I see, there is a third jump vector in the start of the ROM that's not decompilled in your source. It jumps to three bytes before the code after 'rebootMsg'. The instruction that's left as "db ..." at the destination is "BFh 00h 00h", or "MOV DI,0". (problably for some sort of manually entered testing by using some sort of software), but anyway, it is a jump to that code, but I don't know what it is doing.
 
Last edited:
Great :D . I'm looking forward for the final product.

*Edit*
As for I see, there is a third jump vector in the start of the ROM that's not decompilled in your source. It jumps to three bytes before the code after 'rebootMsg'. The instruction that's left as "db ..." at the destination is "BFh 00h 00h", or "MOV DI,0". (problably for some sort of manually entered testing by using some sort of software), but anyway, it is a jump to that code, but I don't know what it is doing.

you're right-I missed that.

It appears to be a formatting utility.
what's really weird is that it exits with DOS function 31h, which is terminate and stay resident.
Let me update that zip file and you can download it again. I'll also include the IDA files in case anyone wants to play around with it in the disassembler.

Edit: ok, new zip file above with this fixed, and I included IDA workspace and the original option rom that IDA will try to load.
thanks per, and sorry for the other 5 folks who have download it already...
 
Last edited:
4) I didn't know that direct memory address was available on an XT. I can tell you that the programmed input/output performance on my particular XT is pretty good, but it *is* operating at 10MHz. DMA transfers would be great if available, but if not, no big deal. Just having an IDE card available period would be wonderful.

yep it has 4 DMA channels. in fact, trixter's 8088 corruption software's speed is thanks to DMA through the sound blaster.
 
has anyone done anything with identification of the parts on this board yet?

that's a little outta my league, but if no one else steps up to the hardware end of this, I'll do it too.

bobwatts,

is there any chance I buy, borrow, or steal this card from you temporarily?
we need to do some multimetering to get a schematic up, and I was thinking that I could test out my BIOS by disabling the onboard one via jumper and making a DOS driver out of it instead, but I need real hardware to play with. I'll gladly pay for shipping both directions, and promise to to horde it for longer than absolutely necessary.

The new BIOS build is coming along nicely. I've stripped it down to just the vitals we need, removed the ancient HDD precomp stuff, optimized a few of the routines, and broken the 1 .asm file out to a half dozen modules. Still a lot of work to do, but I want to get things in order before I attempt to add any features to it.
 
U1 - can't read
U2 - ROM - based on source code, 8K
U3, U5 - 74ls244 - OCTAL BUFFER/LINE DRIVER. WITH 3-STATE OUTPUTS
U8 - 74LS245 -Octal Bus Transmitter/Receiver
U9, U10 - 74ls343 - OCTAL TRANSPARENT LATCH WITH 3-STATE OUTPUTS
U4,U6 - initial guess, PALs. Figuring out the logic can be pretty time intensive.
 
Nice!
here's some datasheets:
http://pc.nugnugnug.com/ide/74ls244.pdf
http://pc.nugnugnug.com/ide/74ls243.pdf
http://pc.nugnugnug.com/ide/74ls245.pdf

I couldn't really find much for the 74ls343, but found lots of 243 specs-maybe that was just a typo?

anyway, my layout co-worker says if possible, get all surface mount parts, as through-hole parts are more expensive to manufacturer board-wise. It appears to me that these parts at least are surface mountable (ok, SOIC-I'm learning something new here) so this is a good sign.

The PALs might be tricky indeed. I do have access to a reader/burner though, but I've never worked with them before.
 
anyway, my layout co-worker says if possible, get all surface mount parts, as through-hole parts are more expensive to manufacturer board-wise.

I'd agree, if this stuff was being manufactured, but, since this is probably going to be a DIY type of thing, unless you have a LOT of years of soldering experience and damn steady hands, SMT components are much more difficult to solder.

I know, I replace large scale SMT devices during some repairs and if you don't have the technique down, chances of getting the device on the VERY closely spaced pads straight AND getting all the legs solder well are slim, at best.

It not a high population board and you can't make the board smaller than the length of the XT connector, so, there is no REAL advantage to SMT over DIP and a LOT of downside. The price different on one-offs is not significant
 
I'd agree, if this stuff was being manufactured, but, since this is probably going to be a DIY type of thing, unless you have a LOT of years of soldering experience and damn steady hands, SMT components are much more difficult to solder.

excellent points! DIP packages are also, well, more retro and fit in better with the overall project. ;)

I'm just really happy to see that these parts seem to still be available, at least through a little bit of googling. About 2 years ago, I did an order of some parts via one of those Chinese supply houses. It cost more for the wire transfer than for the parts themselves, but the items were shipped as promised. Overall, the experience was weird, but I'd be willing to go through the whole process again if need be.
 
The parts, even the PALs, are readily available in North America and cheap. I know a couple of places where I can get the identified ones for next to nothing in whatever quantities I want.

The PALs may actually test out to some now-standard chip that wasn't available then, but, I couldn't tell until I dropped them into a chip tester though. PAL chips were used a lot for functions that no chip was available for, at the time, but may have come out later.

The one I'm concerned about is the one that LOOKS like it might have had the number ground off. This was a common practice, at one time, to prevent just what we want to do, and without the original board schematic, the only way to find out what it is would be a chip tester. You COULD spend days working out the Boolean table for it, using a signal injector and a logic probe, or, someone like me could extract the chips, test them, and re-install them so that it would look original (and still work LOL)
 
Beg Borrow or Steal !? ¿¿

Beg Borrow or Steal !? ¿¿

Hello Mr. Hargle !

bobwatts,

is there any chance I buy, borrow, or steal this card from you temporarily?
we need to do some multimetering to get a schematic up, and I was thinking that I could test out my BIOS by disabling the onboard one via jumper and making a DOS driver out of it instead, but I need real hardware to play with. I'll gladly pay for shipping both directions, and promise to to horde it for longer than absolutely necessary.

The new BIOS build is coming along nicely. I've stripped it down to just the vitals we need, removed the ancient HDD precomp stuff, optimized a few of the routines, and broken the 1 .asm file out to a half dozen modules. Still a lot of work to do, but I want to get things in order before I attempt to add any features to it.


****************
I have read your request, and am contemplating a response. First of all, in answer to your "wording"......

If I read this correctly, you are asking to buy, borrow, or steal *temporarily* my sIDE 8/16 IDE controller card.

I don't know how they do things in Minnesota, but here in Ohio, people usually permanently steal things. I have to admit that this option should be removed from the list, as it is unacceptable, and *could* hurt my feelings if enacted.

As far as buying the adapter card, this option might be considered, as long as everyone realizes that this particular card is in fact comprised mainly of Unobtanium,and is quite likely one of the rarest things in the Universe. I'm not sure if even the U.S. Government could afford to bail you out on this one, as this particular piece is one of the most treasured items in my entire massive collection of "stuff" here in the BODADC. ( Basement of Doom and Diet Cola. )

So this leaves borrowing. Temporarily. I am seriously considering this option, as long as a few precautions and conditions are observed:

I am (probably) willing to send you the card as long as I am assured that it will be returned to me exactly in the form it will be received in. No magical transformations, no sending me back an 8bit serial card, or a package full of pixie dust. ( I have plenty ). The card is to be handled respectfully, and the inspector should be wearing some of those surgical gloves, preferably white ones. No excessive or painful prodding of the card is allowed, and under no circumstances is the card to be damaged in any way. The card must be returned as fully functional with a smile on it's chips.

As a consideration of my benevolence, should this project reach fruition, and a fully functional 8/16 bit 8 bit ISA card be developed, I bobwatts ( sorry, I spent 4 hours with attorneys yesterday, and it rubbed off. Never go to a deposition as a depositionee unless you absolutely have to. It's not like TV ) will be afforded the opportunity to purchase the above mentioned card at rockbottom prices. Further, some expert somewhere will be considerate enough to assemble the card for me, and I will get subsequent "kits" at reasonable prices. Although I routinely replace bad electrolytic capacitors, MOSFET VR's, etc. on motherboards, I prefer to avoid this if possible. Frankly, I enjoy doing that kind of work, but assuming this project will be made out of the aforementioned Unobtanium, this type of project is best left to the true professionals, not gifted hobbyists.

Lastly, IF POSSIBLE, I would gratefully and humbly accept a "reprogrammed" BIOS ROM chip that * I * would insert into my card upon return. I don't know if you have the capability to program a PROM chip, but I'm betting that you do. :D It would be superneato to see an "improved" version of your reprogramed BIOS in action, and I know that I would be tickled to have an improved BIOS in my possession. The original PROM chip would remain intact, and unmodified, and I would be supplied with the new chip that I will install and test.

I would be delighted to cover shipping to you, and the card will be so carefully packaged that no damage will occur.

Let me know if my *conditions* are acceptable, and I'll have a Brinks Truck transport this rare and priceless artifact to your location.
After I dig the thing back out. Computer was put back into "long term" storage. This means that lots of things were piled in front of it. On the top shelf. :sneaky:

With tongue firmly ensconced in cheek:

Plebe bobwatts
EartH
 
wow, that was amazing.
I'll be smiling all day. :)

I'll send you a PM with shipping information and fax you my credit history and SS number.

thank you! I will personally hand assemble, test, and mail board serial #0002 for you when the production run comes into being, and prior to that, I should easily be able to send you an updated BIOS. I'll even put your name in the POST splash screen.

we'd be nowhere without your help on this.
 
Just to keep this thread bumpin, I am happy to report that I have roughed in all the required routines to support extended INT 13h. I haven't done any removable media support yet, but as it stands right now, this BIOS should support ATA-3 and higher drives, and allow native support for up to 8.4G of storage, which is all we should ever need on an 8088.

Obviously all this code is in need of debugging and testing and additional organizing, but it really is coming along nicely.


Druid6900, please check your PMs. Bobwatts is ready to mail the card to you for hardware investigation.
 
Back
Top