mirror of https://github.com/xemu-project/xemu.git
q800: implement additional machine id bits on VIA1 port A
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> Message-ID: <20231004083806.757242-5-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
e993af36a7
commit
0f03047c1b
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue