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



Reply via email to