It is to my understanding that the original IDE specification was meant to emulation the WD-1003 hard drive controller present in the PC/AT... from a BIOS software point of view, there is no difference between AT-MFM drives and AT-IDE drives. However, that seems to be at least in part a misnomer, because the WD-1003 permits a low level format on MFM drives, while there is no such provision for IDE drives (even my oldest 80MB IDE was low level formatted at the factory, even though it uses no drive translation whatsoever). Additionally, unless this was a later addition, IDE drives use different I/O ports compared to MFM drives, and the connector for IDE incorporates a considerable subset of the ISA bus (understandable, since it has to be compatible with an AT-ISA card).
I'm attempting to understand the differences between the XT-ST412 (Xebec XT Controller), AT-ST412 (WD-1003 AT Controller), XT-IDE (8-bit ATA), AT-IDE (16-bit ATA) interfaces from a software programming/hardware implementation POV. This has led me to the following questions:
After a rather productive and lengthy conversation with someone knowledgeable about modern chipsets, I just want to fully address this gap in my knowledge. There are a lot of questions, here, I know- feel free to ask for clarification if I did a poor job wording it. And also please, by all means, point me to a resource which can answer my questions if the answers aren't simple! Thanks for your help in advance!
I'm attempting to understand the differences between the XT-ST412 (Xebec XT Controller), AT-ST412 (WD-1003 AT Controller), XT-IDE (8-bit ATA), AT-IDE (16-bit ATA) interfaces from a software programming/hardware implementation POV. This has led me to the following questions:
- What happens when you try to low level format an IDE drive using the equivalent AT command? I'm NOT about to try and find out!
- Does XT-IDE emulate a Xebec controller, or was it never properly standardized how XT-IDE worked (barring the XTIDE project- notice the lack of hyphen .!)?
- XT MFM BIOSes permit relocation of the I/O addresses from 320 to 324, IRQs, DMA channel (?), and BIOS routines in Upper Memory from C000 to D000. Does a similar provision exist for relocating any of these resources AT-MFM and AT-IDE BIOSes? What about XT-IDE BIOSes?
- Adding onto the above point, one of the reasons to support BIOS relocation is to install more than 2 drives in XT machines with a second controller. I just realized that I wouldn't have any idea how to accomplish the same thing with two AT-MFM controllers! How can one add a second AT-MFM controller that doesn't have I/O address, IRQ, and BIOS memory map conflicts, so that more than two drives can coexist, and how does this process differ from XT-MFM? Would the same BIOS be used for all 4 drives?
- At the hardware level (since it won't differ at the software level- barring the different I/O ports), how does the allocation of resources in more than two drives differ in the AT-MFM BIOS compared to how more than two drives are detected/assigned I/O addresses, IRQs, Upper Memory, etc in AT-IDE? What about comparing AT-MFM to XT-IDE?
- In the AT-MFM BIOS, I believe it's also possible to use an XT-MFM BIOS by setting the drive type to 15 (another difference between AT-MFM and XT-MFM). Does AT-IDE/XT-IDE also support this? XT-MFM doesn't have a concept of the 15 drive types as I recall- it just supported hardcoded common drive geometries at the time.
- Is it possible for an AT-IDE and AT-MFM card to coexist in the same machine? Since they use the same BIOSes routines, I imagine the answer is yes. What about XT-IDE/AT-IDE, AT-MFM/XT-MFM, AT-IDE/XT-MFM, etc? Can both BIOSes coexist in these combinations? There is a follow up topic I have regarding this- trying to support 1 SCSI drive and an AT-MFM controller simultaneously. But I'll get to that after some more light is shed on my confusion.
After a rather productive and lengthy conversation with someone knowledgeable about modern chipsets, I just want to fully address this gap in my knowledge. There are a lot of questions, here, I know- feel free to ask for clarification if I did a poor job wording it. And also please, by all means, point me to a resource which can answer my questions if the answers aren't simple! Thanks for your help in advance!