I've made some more progress on my software that allows the Raspberry Pi to act as a Commodore 64 disk drive. I was amazed at how much more of the IEC protocol was missing from the documents I have. One of the things that I found a little strange about the IEC protocol was there was no way to specify how much of the data you want. Once you say go, the sender is just going to send it all. It turns out that when ATN is asserted it doesn't mean abort, it just means pause.

Took quite a bit of doing to not miss any signaling that was happening when the Raspberry Pi was in the middle of sending data. It was tricky because I had to disable interrupts for timing issues during sending bytes, and of course that caused me to miss the ATN and CLK signals that the C64 wanted to send. I've got it worked out now, and things seem to be working quite reliably.

Other improvements are directory listings and wildcard matching now work. You can get a list of all the files, file sizes, it handles conversion of some filename extensions, and see free blocks. Of course free blocks is probably always going to be 65535 since the Pi has far more free space than a puny little floppy disk. Wild cards can be used so that you don't have to type out long names, plus a few of the programs I've been running seem to have wildcard naming built-in for loading their files.

I think the next thing to work on is .d64 support, at least for reading.

As before, the source is available on Github.