From: Laurent Vivier <laurent@vivier.eu>
To: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, qemu-devel@nongnu.org
Subject: Re: [PATCH v4 00/20] q800: add support for booting MacOS Classic - part 2
Date: Fri, 6 Oct 2023 13:04:37 +0200 [thread overview]
Message-ID: <db65e8f3-b3d0-2edc-c0c1-b92cad7852ff@vivier.eu> (raw)
In-Reply-To: <20231004083806.757242-1-mark.cave-ayland@ilande.co.uk>
Le 04/10/2023 à 10:37, Mark Cave-Ayland a écrit :
> This series contains the remaining patches needed to allow QEMU's q800
> machine to boot MacOS Classic when used in conjunction with a real
> Quadra 800 ROM image. In fact with this series applied it is possible
> to boot all of the following OSs:
>
> - MacOS 7.1 - 8.1, with or without virtual memory enabled
> - A/UX 3.0.1
> - NetBSD 9.3
> - Linux (via EMILE)
>
> If you are ready to experience some 90s nostalgia then all you need is
> to grab yourself a copy of the Quadra 800 ROM (checksum 0xf1acad13) and a
> suitable install ISO as follows:
>
> # Prepare a PRAM image
> $ qemu-img create -f raw pram.img 256b
>
> # Launch QEMU with blank disk and install CDROM
> $ ./qemu-system-m68k \
> -M q800 \
> -m 128 \
> -bios Quadra800.rom \
> -drive file=pram.img,format=raw,if=mtd \
> -drive file=disk.img,media=disk,format=raw,if=none,id=hd \
> -device scsi-hd,scsi-id=0,drive=hd \
> -drive file=cdrom.iso,media=cdrom,if=none,id=cd \
> -device scsi-cd,scsi-id=3,drive=cd
>
> And off you go! For more in-depth information about the installation process
> I highly recommend the installation guide over at emaculation.com [1].
> Compatibility is generally very good, and I'm pleased to report it is possible
> to run one of the most popular productivity apps from the 90s [2].
>
> I'd like to add a big thank you to all the people who have helped me work on
> this series, including testing on real hardware, answering questions about
> MacOS Classic internals and helping to diagnose and fix bugs in the 68k
> emulation. In particular thanks go to Laurent Vivier, Finn Thain, Howard
> Spoelstra, Volker Rümelin, Richard Henderson, Martin Husemann, Rin Okuyama,
> Elliot Nunn, and SolraBizna.
>
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>
> [1] https://www.emaculation.com/doku.php/qemu
> [2] https://www.youtube.com/watch?v=yI21gURQ1Ew
>
>
> v4:
> - Rebase onto master
> - Add R-B tag from Zoltan to patch 5
> - Adjust AUD_register_card() and add machine audiodev property for ASC to reflect Paolo's
> recent audiodev changes
>
> v3:
> - Rebase onto master
> - Add R-B tags from Laurent
> - Squash fixes from Volker into patch 7 ("audio: add Apple Sound Chip (ASC) emulation")
> - Change iwmregs from uint16_t to uint8_t in patch 12 ("swim: split into separate IWM
> and ISM register blocks")
>
> v2:
> - Rebase onto master
> - Add R-B tags from Phil and Laurent
> - Improve ASC logic for generating interrupts when FIFO underflow occurs
> - Rework ASC silence generation logic similar to Volker's original proposal
> - Update A/UX timer calibration hack to reflect the change of accesses now that
> #360 is resolved
>
>
> Mark Cave-Ayland (20):
> q800-glue.c: convert to Resettable interface
> q800: add djMEMC memory controller
> q800: add machine id register
> q800: implement additional machine id bits on VIA1 port A
> q800: add IOSB subsystem
> q800: allow accesses to RAM area even if less memory is available
> audio: add Apple Sound Chip (ASC) emulation
> asc: generate silence if FIFO empty but engine still running
> q800: add Apple Sound Chip (ASC) audio to machine
> q800: add easc bool machine class property to switch between ASC and
> EASC
> swim: add trace events for IWM and ISM registers
> swim: split into separate IWM and ISM register blocks
> swim: update IWM/ISM register block decoding
> mac_via: work around underflow in TimeDBRA timing loop in SETUPTIMEK
> mac_via: workaround NetBSD ADB bus enumeration issue
> mac_via: implement ADB_STATE_IDLE state if shift register in input
> mode
> mac_via: always clear ADB interrupt when switching to A/UX mode
> q800: add ESCC alias at 0xc000
> q800: add alias for MacOS toolbox ROM at 0x40000000
> mac_via: extend timer calibration hack to work with A/UX
>
> MAINTAINERS | 6 +
> hw/audio/Kconfig | 3 +
> hw/audio/asc.c | 727 ++++++++++++++++++++++++++++++++++++
> hw/audio/meson.build | 1 +
> hw/audio/trace-events | 10 +
> hw/block/swim.c | 261 ++++++++-----
> hw/block/trace-events | 8 +
> hw/m68k/Kconfig | 3 +
> hw/m68k/q800-glue.c | 18 +-
> hw/m68k/q800.c | 138 ++++++-
> hw/misc/Kconfig | 6 +
> hw/misc/djmemc.c | 135 +++++++
> hw/misc/iosb.c | 133 +++++++
> hw/misc/mac_via.c | 234 +++++++++++-
> hw/misc/meson.build | 2 +
> hw/misc/trace-events | 10 +
> include/hw/audio/asc.h | 86 +++++
> include/hw/block/swim.h | 21 +-
> include/hw/m68k/q800-glue.h | 4 +-
> include/hw/m68k/q800.h | 11 +
> include/hw/misc/djmemc.h | 30 ++
> include/hw/misc/iosb.h | 25 ++
> include/hw/misc/mac_via.h | 3 +
> 23 files changed, 1769 insertions(+), 106 deletions(-)
> create mode 100644 hw/audio/asc.c
> create mode 100644 hw/misc/djmemc.c
> create mode 100644 hw/misc/iosb.c
> create mode 100644 include/hw/audio/asc.h
> create mode 100644 include/hw/misc/djmemc.h
> create mode 100644 include/hw/misc/iosb.h
>
Applied to my q800-for-8.2 branch.
Thanks,
LAurent
prev parent reply other threads:[~2023-10-06 11:04 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-04 8:37 [PATCH v4 00/20] q800: add support for booting MacOS Classic - part 2 Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 01/20] q800-glue.c: convert to Resettable interface Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 02/20] q800: add djMEMC memory controller Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 03/20] q800: add machine id register Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 04/20] q800: implement additional machine id bits on VIA1 port A Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 05/20] q800: add IOSB subsystem Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 06/20] q800: allow accesses to RAM area even if less memory is available Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 07/20] audio: add Apple Sound Chip (ASC) emulation Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 08/20] asc: generate silence if FIFO empty but engine still running Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 09/20] q800: add Apple Sound Chip (ASC) audio to machine Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 10/20] q800: add easc bool machine class property to switch between ASC and EASC Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 11/20] swim: add trace events for IWM and ISM registers Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 12/20] swim: split into separate IWM and ISM register blocks Mark Cave-Ayland
2023-10-04 8:37 ` [PATCH v4 13/20] swim: update IWM/ISM register block decoding Mark Cave-Ayland
2023-10-04 8:38 ` [PATCH v4 14/20] mac_via: work around underflow in TimeDBRA timing loop in SETUPTIMEK Mark Cave-Ayland
2023-10-04 8:38 ` [PATCH v4 15/20] mac_via: workaround NetBSD ADB bus enumeration issue Mark Cave-Ayland
2023-10-04 8:38 ` [PATCH v4 16/20] mac_via: implement ADB_STATE_IDLE state if shift register in input mode Mark Cave-Ayland
2023-10-04 8:38 ` [PATCH v4 17/20] mac_via: always clear ADB interrupt when switching to A/UX mode Mark Cave-Ayland
2023-10-04 8:38 ` [PATCH v4 18/20] q800: add ESCC alias at 0xc000 Mark Cave-Ayland
2023-10-04 8:38 ` [PATCH v4 19/20] q800: add alias for MacOS toolbox ROM at 0x40000000 Mark Cave-Ayland
2023-10-04 8:38 ` [PATCH v4 20/20] mac_via: extend timer calibration hack to work with A/UX Mark Cave-Ayland
2023-10-06 11:04 ` Laurent Vivier [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=db65e8f3-b3d0-2edc-c0c1-b92cad7852ff@vivier.eu \
--to=laurent@vivier.eu \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).