diff options
author | Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> | 2023-10-26 09:56:49 +0100 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2023-11-05 15:48:36 +0100 |
commit | ced64254d66c28e18e669318aaffa0338df6ae3a (patch) | |
tree | 32fafbec7351b3b601d4060e991262be9e814cb4 | |
parent | 2fca4e7a710bc5783b1043ce354b0597b519f157 (diff) | |
download | qemu-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.c | 6 |
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) { |