aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2023-10-26 09:56:49 +0100
committerLaurent Vivier <laurent@vivier.eu>2023-11-05 15:48:36 +0100
commitced64254d66c28e18e669318aaffa0338df6ae3a (patch)
tree32fafbec7351b3b601d4060e991262be9e814cb4
parent2fca4e7a710bc5783b1043ce354b0597b519f157 (diff)
downloadqemu-ced64254d66c28e18e669318aaffa0338df6ae3a.zip
qemu-ced64254d66c28e18e669318aaffa0338df6ae3a.tar.gz
qemu-ced64254d66c28e18e669318aaffa0338df6ae3a.tar.bz2
macfb: allow larger write accesses to the DAFB_LUT register
The original tests with MacOS showed that only the bottom 8 bits of the DAFB_LUT register were used when writing to the LUT, however A/UX performs some of its writes using 4 byte accesses. Expand the address range for the DAFB_LUT register so that different size accesses write the correct value to the color_palette array. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-ID: <20231026085650.917663-4-mark.cave-ayland@ilande.co.uk> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
-rw-r--r--hw/display/macfb.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/hw/display/macfb.c b/hw/display/macfb.c
index eb4ce6b..4a1c75d 100644
--- a/hw/display/macfb.c
+++ b/hw/display/macfb.c
@@ -37,7 +37,7 @@
#define DAFB_INTR_STAT 0x108
#define DAFB_INTR_CLEAR 0x10c
#define DAFB_LUT_INDEX 0x200
-#define DAFB_LUT 0x213
+#define DAFB_LUT 0x210
#define DAFB_INTR_VBL 0x4
@@ -586,8 +586,8 @@ static void macfb_ctrl_write(void *opaque,
case DAFB_LUT_INDEX:
s->palette_current = (val & 0xff) * 3;
break;
- case DAFB_LUT:
- s->color_palette[s->palette_current] = val;
+ case DAFB_LUT ... DAFB_LUT + 3:
+ s->color_palette[s->palette_current] = val & 0xff;
s->palette_current = (s->palette_current + 1) %
ARRAY_SIZE(s->color_palette);
if (s->palette_current % 3) {