Ok. I got two commands A and B implemented and working.
Command B from the PC instructs the SX to enable interrupts, and get ready to receive a track into fram. This command will eventually be expanded to actually turn on the motor etc.
Command A from the PC instructs the SX to transfer the first 13,824 bytes from the FRAM to the PC via USB. This is working real well. I have a transfer rate of 2mbps(500ns per bit), and it’s really reliable.
I’m actually achieving very nearly 2mbps, reading a byte from the fram costs 180ns, and of course the loop itself eats maybe 60ns or something. Let’s round up and call it 6us per byte. 13824 * 6us = ~83 milliseconds to transfer the whole track. Kicks ass over early numbers at 38.4k, doesnt it?!!@
You might think 2mbps is overkill, but in my opinion it’s too slow 🙂 This is because I have to eat cycles at 50mhz just to slow the SX down to 2mbps. Ideally 7 or 8 mbps would be better.
I’m pretty close to cutting the amiga out of the picture in terms of driving the floppy drive. This means my focus is going to shift towards the hardware interface on the floppy.