[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 04/20] q800: implement additional machine id bits on VIA1 port
From: |
Mark Cave-Ayland |
Subject: |
[PATCH v3 04/20] q800: implement additional machine id bits on VIA1 port A |
Date: |
Fri, 29 Sep 2023 18:59:01 +0100 |
Co-developed-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/misc/mac_via.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/hw/misc/mac_via.c b/hw/misc/mac_via.c
index f84cc68849..e87a1b82d8 100644
--- a/hw/misc/mac_via.c
+++ b/hw/misc/mac_via.c
@@ -114,6 +114,9 @@
#define VIA1A_CPUID1 0x04 /* CPU id bit 0 on RBV, others */
#define VIA1A_CPUID2 0x10 /* CPU id bit 0 on RBV, others */
#define VIA1A_CPUID3 0x40 /* CPU id bit 0 on RBV, others */
+#define VIA1A_CPUID_MASK (VIA1A_CPUID0 | VIA1A_CPUID1 | \
+ VIA1A_CPUID2 | VIA1A_CPUID3)
+#define VIA1A_CPUID_Q800 (VIA1A_CPUID0 | VIA1A_CPUID2)
/*
* Info on VIA1B is from Macintosh Family Hardware & MkLinux.
@@ -872,9 +875,18 @@ static uint64_t mos6522_q800_via1_read(void *opaque,
hwaddr addr, unsigned size)
{
MOS6522Q800VIA1State *s = MOS6522_Q800_VIA1(opaque);
MOS6522State *ms = MOS6522(s);
+ uint64_t ret;
addr = (addr >> 9) & 0xf;
- return mos6522_read(ms, addr, size);
+ ret = mos6522_read(ms, addr, size);
+ switch (addr) {
+ case VIA_REG_A:
+ case VIA_REG_ANH:
+ /* Quadra 800 Id */
+ ret = (ret & ~VIA1A_CPUID_MASK) | VIA1A_CPUID_Q800;
+ break;
+ }
+ return ret;
}
static void mos6522_q800_via1_write(void *opaque, hwaddr addr, uint64_t val,
--
2.39.2
- [PATCH v3 00/20] q800: add support for booting MacOS Classic - part 2, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 01/20] q800-glue.c: convert to Resettable interface, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 02/20] q800: add djMEMC memory controller, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 03/20] q800: add machine id register, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 04/20] q800: implement additional machine id bits on VIA1 port A,
Mark Cave-Ayland <=
- [PATCH v3 05/20] q800: add IOSB subsystem, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 06/20] q800: allow accesses to RAM area even if less memory is available, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 08/20] asc: generate silence if FIFO empty but engine still running, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 07/20] audio: add Apple Sound Chip (ASC) emulation, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 11/20] swim: add trace events for IWM and ISM registers, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 09/20] q800: add Apple Sound Chip (ASC) audio to machine, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 10/20] q800: add easc bool machine class property to switch between ASC and EASC, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 12/20] swim: split into separate IWM and ISM register blocks, Mark Cave-Ayland, 2023/09/29
- [PATCH v3 14/20] mac_via: work around underflow in TimeDBRA timing loop in SETUPTIMEK, Mark Cave-Ayland, 2023/09/29