In a recent attic clearance, I discovered (literally) a carrier bag full of Amstrad CPC 3″ floppy disks and – more importantly – a (repairable) Amstrad FDI-1 drive capable of reading them. I suspected the disks contained programs that I and my brother wrote back in the good ol’ days and, being a nostalgic old fool, I was quite keen to salvage the data from them.
Repairing the FDI-1 was quite easy; connecting it to a modern computer not so much. So, rather than risk damaging either my expensive workstation or the ancient drive itself (irreplaceable as it uses a custom ASIC that only Amstrad made), I opted to use a KryoFlux board as a relatively safe way to handle the rescue operation.
“What’s a filocrutch?”, I hear you ask.
KryoFlux is a USB-based floppy controller designed for generating the lowest possible level reads of various types of floppy disks. It is capable of recording the very magnetic flux transitions that encode the data on a disk and saving them to files for later examination. The Software Preservation Society, who developed the KryoFlux board, uses these files to perfectly preserve classic software before it disappears forever from the ever-degrading magnetic media on which it is stored.
Connection was simple (USB in one end, floppy cable in the other) and I successfully made dumps of a few disks. The problem then was how to get these into a format that would be recognised by an Amstrad CPC emulator.
Enter the hex editor. And some coffee. And less sleep than I really needed.
Just like those good ol’ days.
After a little investigation, I hacked together a Java program to convert KryoFlux “i4″ (IBM System 34 MFM) format dump files files to the more usable Amstrad DSK format. Grab the source code if you like.
The program is a basic implementation and can only cope with single sided, 40 track i4 format dump files that use non-interleaved AMSDOS standard DATA or SYSTEM sector layout. That, however, is good enough for my purposes.
A more advanced converter, based on the KryoFlux “i2″ dump format and that can convert most copy protected disks (weak bit or bitcell size based schemes excepted) should be possible. But I’ll leave all that as an exercise for you, dear reader.
I’m off to convert that bag of disks. Do let me know how you get on.