Hello again, everyone! Seems there's quite a bit of interest in this project!
Here's some more info about this project. First, a block diagram of the system:
As I mentioned before, I have a version of this project working that uses an I2C interface as the means for a Z80 or 6502-based system to access the floppy drives. However it's VERY slow due to the I2C speeds obtainable, so I wanted to take it to the next level performance-wise by figuring out a way to interface it as directly as possible with the Z80's data bus. The Arduino could directly interface on the RC2014 bus, but it would require access to the WAIT and BUSRQ Z80 pins, which aren't normally on the 40-pin RC2014 pinout, and I wanted to design something that could drop in place in any RC2014-based system. Therefore, I'm using an 82C55A (still available new from Mouser/DigiKey) to serve as the interface between the slower Arduino parallel data bus and the Z80 data bus.
As indicated in the diagram, I'm using David Hansel's
amazing ArduinoFDC library (
https://github.com/dhansel/ArduinoFDC) for the low-level control and encoding/decoding of the raw floppy drive signals from 3.5" and 5.25" drives. There are some small modifications to allow pin remapping and sector skewing support, but otherwise it's the same. On top of that library, I'm adding an opcode-based control system from the Z80 to the Arduino to perform all drive operations (reading, writing, formatting, drive selection, drive type assignment, etc.).
All of this will be present on a standard-sized (40-pin) RC2014 module (49.86mm tall).
As you can see, this is going to be lots of fun and I can't wait to get started on the hardware prototyping and firmware development phase before creating PCBs! And, of course, this will be released on github as open-source software and hardware.
Stay tuned for the next exciting update! (should hopefully report initial success with high-speed interfacing of the Arduino with the Z80)
Thanks,
Ryan W