macfb: allow reads from the DAFB_LUT register
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Thu, 26 Oct 2023 08:56:50 +0000 (09:56 +0100)
committerLaurent Vivier <laurent@vivier.eu>
Sun, 5 Nov 2023 14:48:36 +0000 (15:48 +0100)
This enables A/UX to correctly retrieve the LUT entries when used with
applications that use the MacOS Device Manager Status (GetEntries) call.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-ID: <20231026085650.917663-5-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
hw/display/macfb.c

index 4a1c75d5720fce03ecdac77fb493ccebcef7894b..d61541ccb5d5d3d13c65539bef4f237f690fc540 100644 (file)
@@ -537,6 +537,11 @@ static uint64_t macfb_ctrl_read(void *opaque,
     case DAFB_MODE_SENSE:
         val = macfb_sense_read(s);
         break;
+    case DAFB_LUT ... DAFB_LUT + 3:
+        val = s->color_palette[s->palette_current];
+        s->palette_current = (s->palette_current + 1) %
+                             ARRAY_SIZE(s->color_palette);
+        break;
     default:
         if (addr < MACFB_CTRL_TOPADDR) {
             val = s->regs[addr >> 2];