Macintosh Floppy Emu

Floppy Emu is a floppy disk drive emulator for Macintosh computers, using an SD memory card and custom hardware to mimic an external 3.5″ disk drive and floppy disk. If you’ve got an old Mac 128K, 512K, or Plus but no floppies to use with it, then Floppy Emu is the solution. The device connects to the Mac’s external DB-19 floppy connector, and behaves identically to a real disk drive, requiring no special software on the Mac. Disk image files are stored on the SD card from a PC, and then read and written by Floppy Emu during the normal operation of the Macintosh, with each image file appearing to the Mac as a different floppy disk.
The hardware consists of a Xilinx XC9572XL CPLD working cooperatively with an ATMEGA1284P microcontroller. The CPLD implements all the timing-sensitive functions and communication with the Macintosh, while the microcontroller provides the brains of the device. The microcontroller uses SdFatLib to read sectors from a disk image file on the SD card, and synthesizes sector headers, footers, and checksums on the fly. It also performs the necessary conversions between logical data and the GCR encoded data format used on Macintosh floppy disks. The microcontroller then passes the bytes one at a time to the CPLD, at a speed that mimics a normal external floppy drive. The CPLD performs the parallel-to-serial conversion and implements the serial signalling convention expected by the Mac. Both reads and writes to emulated floppies are supported.
To the Mac, the emulated floppy disk appears identical to a real disk in speed and capacity. Due to the design of the Macintosh IWM floppy controller hardware, it’s not possible to pass data at a faster bit rate than a real floppy. The floppy driver code contained in the Mac’s ROM constrains the disk size to 800K (1.4MB on newer Macs) and also limits the number of emulated drives to one. In theory, a replacement floppy driver implemented as a software patch could add support for more disks and larger sizes in the future.
The board can be plugged directly into the DB-19 floppy connector at the rear of the Macintosh, where it fits snugly between the other cables. Alternatively, the board’s 20-pin IDC connector can make the connection. This is the same connector found on the Mac motherboard for the internal floppy, so a standard IDC cable can be used to connect Floppy Emu internally instead of at the external floppy connector. A DB-19 to IDC-20 adapter cable can also be used, such as the Apple II cable from IEC. This cable enables Floppy Emu to connect to the external floppy port at the Mac’s rear, but be positioned in the front of the Mac where it’s easier to use.
To update the device’s firmware, the microcontroller can program the CPLD via JTAG. If the Floppy Emu board is reset while holding down a few buttons, it will look for a file named firmware.xvf on the SD card, and use it to update the CPLD with new firmware in about 20 seconds. That means an external Xilinx programmer isn’t needed. Future plans include bootloading of the microcontroller from the SD card as well. If I ever reach the point of selling assembled units, that means end users could update both the CPLD and the MCU just by copying the necessary files to the SD card, without any special programming hardware.
As of April 2012, the project is still an unfinished prototype. Read emulation of 800K disks is working, and emulation of standard write operations is working with high speed (class 10) SD cards. Planned improvements to write buffering should extend write support to slower SD cards, as well as enable initialization and whole-disk copying of emulated floppies through the Finder.
The video below shows an earlier Floppy Emu prototype used to boot a Macintosh Plus.
8 comments
8 Comments so far
Leave a reply. Comments may take a few minutes to appear.





Neat!!!
FANTASTIC!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
please do not abandon the project
seems like it might have been…..
Yeah yeah, floppy emulators don’t pay my mortgage! It will get finished eventually…
A device like this is desperately needed. There must be thousands of old Mac enthusiasts stuck with no good way to bridge internet disk images downloaded to PCs to their old Apple systems. I’d buy one from you in 2 seconds. It’d pay for at least some of your mortgage
Me too…
Don’t lose hope! I posted some updates today on the build log, and updated this summary page as well.