On Wed, 1 Jul 2026, Matt Jacobson wrote:
> Implement the SWIM2 floppy controller and SuperDrive for the q800 machine.
>
> Reading and writing work, and booting a system disk works.
> Both GCR and MFM paths work.
> Tested with the Quadra 800 ROM running System 7 and A/UX 3.x.
> Whole-disk formatting/duplication does not yet work.
>
> Example usage:
> $ qemu-system-m68k \
> -machine q800 \
> -m 128 \
> -bios "Quadra800.ROM" \
> -nodefaults \
> -drive if=mtd,file="pram.img",format=raw \
> -drive if=floppy \
> -drive if=floppy \
> -drive if=scsi,media=disk,file="harddisk.img",format=raw \
> -drive if=scsi,media=cdrom \
> -nic user,model=dp83932 \
> -audio none \
> -display cocoa \
> -name "Macintosh Quadra 800"
>
> (To populate the floppy drive at boot, use
> `-drive if=floppy,file="floppy.img",format=raw`. However, note that the
> Macintosh ROM will eject non-bootable floppies on boot.)
>
> The Sony drive emulator takes raw images and will generate the GCR/MFM
> encoding on the fly. Here are a couple sample images (HFS) to play with:
>
> <https://mjacobson.net/files/mac-disks/floppy-800.img>
> <https://mjacobson.net/files/mac-disks/floppy-1440.img>
Including a changelog about what's new in v3 here helps reviewers to
remember what this version is about.
Regards,
BALATON Zoltan
> Matt Jacobson (5):
> hw/block: add Sony/Apple "SuperDrive" diskette drive
> fifo32: add fifo32_peek()
> hw/block: add SWIM2 floppy controller for q800
> hw/m68k: add working floppy controller for q800
> hw/block: remove unused SWIM1 floppy controller stub
>
> MAINTAINERS | 2 -
> hw/block/meson.build | 2 +-
> hw/block/sony_superdrive.c | 1032 ++++++++++++++++++++++++++++
> hw/block/swim.c | 577 ----------------
> hw/block/swim2.c | 711 +++++++++++++++++++
> hw/block/trace-events | 25 +-
> hw/m68k/q800.c | 5 +-
> hw/misc/mac_via.c | 16 +
> include/hw/block/sony_superdrive.h | 55 ++
> include/hw/block/swim.h | 72 --
> include/hw/block/swim2.h | 58 ++
> include/hw/m68k/q800.h | 4 +-
> include/hw/misc/mac_via.h | 3 +
> include/qemu/fifo32.h | 31 +-
> 14 files changed, 1923 insertions(+), 670 deletions(-)
> create mode 100644 hw/block/sony_superdrive.c
> delete mode 100644 hw/block/swim.c
> create mode 100644 hw/block/swim2.c
> create mode 100644 include/hw/block/sony_superdrive.h
> delete mode 100644 include/hw/block/swim.h
> create mode 100644 include/hw/block/swim2.h
>
>