I've recently started work on a solid state replacement for 8 bit IDE hard drives. It is looking like it will be a substantial undertaking so I thought I would share progress here as I go. And if I am lucky, maybe some other folks will jump on board to help with the development.
I bumped this project to the top of my queue since it seems most needed out of the projects I have in mind. That, and I am terrified that my working drives I need for reference could die at any moment.
At the moment, I am focussed on understanding the technical requirements better. I have been analyzing my ST05X IDE card. I disassembled the BIOS with Ghidra and understand much of what it is doing. I am now in the process of creating a 386 protected mode tool (based on TNDY.COM) for logging all port access. This is to understand the access protocols better. This work is shared here: https://github.com/JayesonLS/8bit-ide-analysis
My current plan is to first emulate the drive(s) in PCem. PCem emulation isn't low level enough to test the planned circuit/logic. It will however allow me to get the register protocols down. PCem already has an emulation for the original IBM Xebec controller. This is likely most of the way there. I was half expecting it to work with the ST05X BIOS without modification. The ST05X BIOS does detect a drive but it is not accessible. Once the ST05X is working, then in theory I could configure emulation of other XTA PC's (Tandy's, etc.) and make sure those all work.
After that is done, then figure out the hardware. A decent amount of firmware to write also. In addition to the ST05X, I have a Tandy TL/2 to test on. And then if that all works out, look at making the IBM edge connector work. I do have a PS/1 and a PS/3 Model 30, with one working hard drive between them. Hopefully it hangs in there long enough.
The hardware is looking like it will involve a CPLD, microcontroller, SD card, a pin header/power connector on one end, and the IBM edge connector on the other end. I was originally hoping to just use an SPLD and keep the entire design through-hole and programmable with a TL866. Unfortunately, the BIOS code does 6 register writes in rapid succession. On the original controllers, these were stored directly into the sector RAM. I don't know of any suitable microcontroller that allows writing to its RAM in this way. The IBM connector includes IOCTL so that could be used to slow the PC down. Unfortunately, the "standard" 40 pin connector does not. So I think the next best option will be to hold the 31+ bits of essential data in a CPLD.
I bumped this project to the top of my queue since it seems most needed out of the projects I have in mind. That, and I am terrified that my working drives I need for reference could die at any moment.
At the moment, I am focussed on understanding the technical requirements better. I have been analyzing my ST05X IDE card. I disassembled the BIOS with Ghidra and understand much of what it is doing. I am now in the process of creating a 386 protected mode tool (based on TNDY.COM) for logging all port access. This is to understand the access protocols better. This work is shared here: https://github.com/JayesonLS/8bit-ide-analysis
My current plan is to first emulate the drive(s) in PCem. PCem emulation isn't low level enough to test the planned circuit/logic. It will however allow me to get the register protocols down. PCem already has an emulation for the original IBM Xebec controller. This is likely most of the way there. I was half expecting it to work with the ST05X BIOS without modification. The ST05X BIOS does detect a drive but it is not accessible. Once the ST05X is working, then in theory I could configure emulation of other XTA PC's (Tandy's, etc.) and make sure those all work.
After that is done, then figure out the hardware. A decent amount of firmware to write also. In addition to the ST05X, I have a Tandy TL/2 to test on. And then if that all works out, look at making the IBM edge connector work. I do have a PS/1 and a PS/3 Model 30, with one working hard drive between them. Hopefully it hangs in there long enough.
The hardware is looking like it will involve a CPLD, microcontroller, SD card, a pin header/power connector on one end, and the IBM edge connector on the other end. I was originally hoping to just use an SPLD and keep the entire design through-hole and programmable with a TL866. Unfortunately, the BIOS code does 6 register writes in rapid succession. On the original controllers, these were stored directly into the sector RAM. I don't know of any suitable microcontroller that allows writing to its RAM in this way. The IBM connector includes IOCTL so that could be used to slow the PC down. Unfortunately, the "standard" 40 pin connector does not. So I think the next best option will be to hold the 31+ bits of essential data in a CPLD.