When I first bought my PPC512, I realised a shortage of floppy disks is going to get me.  Having cleaned up a batch of 50 that suffered from a fall of dust from a rennovation on the house, and still suffering the unreliability of floppy disks.  Also the capacity limit of 720kb was beginning to limit me, so I started to look for solutions.

I was browsing through the excellent ISA adaptor used for attaching VGA cards, IDE drives, all sorts through the expansion boards in the back of the Amstrad PPC512.  What stopped me doing the build myself was simply the amount of desk space I have, but remembering the tape drives, zip drives I had connected to the printer port of my early PCs.  I remembered LapLink cables, and imagined a Raspberry Pi Pico (RP2040) connected via some kind of LapLink connection serving an MSD device through the parallel port.

So I built a device, scavenging parts that would read 5 pins D0-D4 (pin 2-6) and would drive ACK, nBUSY, PAPER_OUT, SELECT and ERROR pins (10-13 and 15).

That done, I took the excellent SD.SYS device driver (written by Robert Armstrong), stripped it back and  created a simple protocol to read / write sectors from the RP2040.

Then writing some code on the RP2040 to read / write to a USB flash disk, taking some old code of mine to read FAT32, I created 16x 32MB virtual disks on the USB disk and presented each one as a different drive unit (C: to R:).

It is currently in a working state, I use a floppy disk to boot DOS3.3, load the device driver, then transfer to the virtual drive C.  The speed is not great, at the moment, comparable to a floppy disk, but has at least reliability and capacity.

I have also added for future expansion an FDC connector which I plan to use a Gotek like feature from the RP2040, and also I used a RP2040W.  The aim with this is to either provide network hard disks for better interoperability, networking, or if only to get current time and date to stop me having to set it on boot up.

Also... forgive the "casing" I did - I'm super terrible at housings, but at least means it gets some protection.  In addition, part of the messiness of the build lends itself to my philosophy of reuse - the pull up resistors were pulled from another project and were too short, so I built a resistor campfire.

The schematic is stored in GitHub, (link provided) so anyone wanting to build it or improve on it, go ahead.  On it there is a second Pico board, which is purely used for programming - it has a Picoprobe build on it and programs through the SWD port, since I'm using the USB port in host mode.