* Re: Corrupted display changing screen colour depth in qemu-system-ppc/MacOS
2022-06-16 12:07 ` Gerd Hoffmann
@ 2022-06-16 12:37 ` Mark Cave-Ayland
2022-06-17 9:55 ` Gerd Hoffmann
0 siblings, 1 reply; 9+ messages in thread
From: Mark Cave-Ayland @ 2022-06-16 12:37 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: qemu-devel, Marc-André Lureau, Howard Spoelstra
On 16/06/2022 13:07, Gerd Hoffmann wrote:
> On Thu, Jun 16, 2022 at 09:54:46AM +0100, Mark Cave-Ayland wrote:
>> Hi all,
>>
>> Howard pointed me off-list to a corrupted screen display issue experienced
>> when changing the screen colour depth in MacOS under qemu-system-ppc. I was
>> able to reproduce it here, and noticed from the output that the issue was
>> likely due to the host display not updating its depth accordingly.
>>
>> After it was confirmed to me that this was working in QEMU 6.2, I was able
>> to eventually bisect the problem down to this commit:
>>
>>
>> cb8962c146b2633a4b04562281de9b2703bba849 is the first bad commit
>> commit cb8962c146b2633a4b04562281de9b2703bba849
>> Author: Marc-André Lureau <marcandre.lureau@redhat.com>
>> Date: Tue Feb 15 00:13:37 2022 +0400
>>
>> ui: do not create a surface when resizing a GL scanout
>>
>> qemu_console_resize() will create a blank surface and replace the
>> current scanout with it if called while the current scanout is
>> GL (texture or dmabuf).
>>
>> This is not only very costly, but also can produce glitches on the
>> display/listener side.
>>
>> Instead, compare the current console size with the fitting console
>> functions, which also works when the scanout is GL.
>>
>> Note: there might be still an unnecessary surface creation on calling
>> qemu_console_resize() when the size is actually changing, but display
>> backends currently rely on DisplaySurface details during
>> dpy_gfx_switch() to handle various resize aspects. We would need more
>> refactoring to handle resize without DisplaySurface, this is left for a
>> future improvement.
>>
>> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
>> Message-Id: <20220214201337.1814787-4-marcandre.lureau@redhat.com>
>> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
>>
>> ui/console.c | 7 +++----
>> 1 file changed, 3 insertions(+), 4 deletions(-)
>>
>>
>> Some more background: the screen in qemu-system-ppc's MacOS is controlled
>> via a custom driver written by Ben which uses the Bochs VBE registers to
>> change the screen width/height/depth. The code used to do this can be found
>> at https://gitlab.com/qemu-project/QemuMacDrivers/-/blob/master/QemuVGADriver/src/QemuVga.c#L354.
>>
>> Looking at the changes in cb8962c146 my guess would be that either the
>> updated check in qemu_console_resize() should also check to see if the
>> surface depth is unchanged before exiting early, or that there is an extra
>> update required in the VGA device when changing just the screen colour depth
>> by itself.
>
> Can you try ditch the QEMU_ALLOCATED_FLAG check added by the commit?
Commit cb8962c146 drops the QEMU_ALLOCATED_FLAG check: if I add it back in with the
following diff on top then everything works again:
diff --git a/ui/console.c b/ui/console.c
index 365a2c14b8..decae4287f 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -2400,11 +2400,12 @@ static void vc_chr_open(Chardev *chr,
void qemu_console_resize(QemuConsole *s, int width, int height)
{
- DisplaySurface *surface;
+ DisplaySurface *surface = qemu_console_surface(s);
assert(s->console_type == GRAPHIC_CONSOLE);
- if (qemu_console_get_width(s, -1) == width &&
+ if (surface && (surface->flags & QEMU_ALLOCATED_FLAG) &&
+ qemu_console_get_width(s, -1) == width &&
qemu_console_get_height(s, -1) == height) {
return;
}
> Which depth changes triggers this? Going from direct color to a
> paletted mode?
A quick test suggests anything that isn't 32-bit colour is affected. With logging
enabled I see the following when selecting from the 3 available colour depths in the
Monitors Control Panel:
- 256 colours (8-bit color), corrupted
vga_vbe_write index 0x4, val 0x0
vga_vbe_write index 0x3, val 0x8
vga_vbe_write index 0x1, val 0x280
vga_vbe_write index 0x2, val 0x1e0
vga_vbe_write index 0x5, val 0x0
vga_vbe_write index 0x6, val 0x280
vga_vbe_write index 0x7, val 0x3c0
vga_vbe_write index 0x8, val 0x0
vga_vbe_write index 0x9, val 0x0
vga_vbe_write index 0x4, val 0x61
vga_std_write_io addr 0x3c8, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x1
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x2
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x3
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x4
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x5
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x6
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x7
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x8
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x9
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0xa
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0xb
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0xd
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0xe
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0xf
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x10
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x11
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x12
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x13
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x14
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x15
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x16
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x17
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x18
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x19
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x1a
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x1b
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x1c
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x1d
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x1e
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x1f
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x20
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x21
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x22
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x23
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x24
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x25
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x26
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x27
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x28
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x29
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x2a
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x2b
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x2c
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x2d
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x2e
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x2f
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x30
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x31
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x32
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x34
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x35
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x36
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x37
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x38
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x39
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x3a
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x3b
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x3c
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x3d
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x3e
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x3f
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x40
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x41
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x42
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x43
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x44
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x45
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x46
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x47
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x48
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x49
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x4a
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x4b
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x4c
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x4d
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x4e
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x4f
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x50
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x51
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x52
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x53
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x54
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x55
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x56
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x57
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x58
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x59
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x5a
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x5b
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x5c
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x5d
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x5e
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x5f
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x60
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x61
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x62
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x63
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x64
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x65
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x67
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x68
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x69
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x6a
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x6b
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x6c
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x6d
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x6e
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x6f
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x70
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x71
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x72
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x73
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x74
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x75
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x76
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x77
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x78
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x79
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x7a
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x7b
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x7c
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x7d
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x7e
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x7f
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x80
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x81
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x82
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x83
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x84
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x85
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x86
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x87
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x88
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x89
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x8a
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x8b
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x8c
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x8d
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x8e
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x8f
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x90
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x91
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x92
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x93
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x94
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x95
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x96
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x97
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x98
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0x9a
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0x9b
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0x9c
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0x9d
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0x9e
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0x9f
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0xa0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0xa1
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xa2
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0xa3
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0xa4
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0xa5
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0xa6
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0xa7
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xa8
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0xa9
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0xaa
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0xab
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0xac
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0xad
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xae
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0xaf
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0xb0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0xb1
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0xb2
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0xb3
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xb4
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0xb5
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0xb6
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0xb7
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0xb8
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0xb9
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xba
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0xbb
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0xbc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0xbd
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0xbe
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0xbf
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xc0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0xc1
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0xc2
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0xc3
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0xc4
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0xc5
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xc6
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0xc7
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0xc8
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0xc9
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0xca
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0xcb
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xcc
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0xcd
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0xce
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0xcf
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0xd0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0xd1
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xd2
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xff
vga_std_write_io addr 0x3c8, val 0xd3
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xcc
vga_std_write_io addr 0x3c8, val 0xd4
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x99
vga_std_write_io addr 0x3c8, val 0xd5
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x66
vga_std_write_io addr 0x3c8, val 0xd6
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x33
vga_std_write_io addr 0x3c8, val 0xd7
vga_std_write_io addr 0x3c9, val 0xee
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xd8
vga_std_write_io addr 0x3c9, val 0xdd
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xd9
vga_std_write_io addr 0x3c9, val 0xbb
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xda
vga_std_write_io addr 0x3c9, val 0xaa
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xdb
vga_std_write_io addr 0x3c9, val 0x88
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xdc
vga_std_write_io addr 0x3c9, val 0x77
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xdd
vga_std_write_io addr 0x3c9, val 0x55
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xde
vga_std_write_io addr 0x3c9, val 0x44
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xdf
vga_std_write_io addr 0x3c9, val 0x22
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xe0
vga_std_write_io addr 0x3c9, val 0x11
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xe1
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xee
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xe2
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xdd
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xe3
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xbb
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xe4
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xaa
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xe5
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x88
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xe6
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x77
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xe7
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x55
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xe8
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x44
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xe9
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x22
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xea
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x11
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c8, val 0xeb
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xee
vga_std_write_io addr 0x3c8, val 0xec
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xdd
vga_std_write_io addr 0x3c8, val 0xed
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xbb
vga_std_write_io addr 0x3c8, val 0xee
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0xaa
vga_std_write_io addr 0x3c8, val 0xef
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x88
vga_std_write_io addr 0x3c8, val 0xf0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x77
vga_std_write_io addr 0x3c8, val 0xf1
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x55
vga_std_write_io addr 0x3c8, val 0xf2
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x44
vga_std_write_io addr 0x3c8, val 0xf3
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x22
vga_std_write_io addr 0x3c8, val 0xf4
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x11
vga_std_write_io addr 0x3c8, val 0xf5
vga_std_write_io addr 0x3c9, val 0xee
vga_std_write_io addr 0x3c9, val 0xee
vga_std_write_io addr 0x3c9, val 0xee
vga_std_write_io addr 0x3c8, val 0xf6
vga_std_write_io addr 0x3c9, val 0xdd
vga_std_write_io addr 0x3c9, val 0xdd
vga_std_write_io addr 0x3c9, val 0xdd
vga_std_write_io addr 0x3c8, val 0xf7
vga_std_write_io addr 0x3c9, val 0xbb
vga_std_write_io addr 0x3c9, val 0xbb
vga_std_write_io addr 0x3c9, val 0xbb
vga_std_write_io addr 0x3c8, val 0xf8
vga_std_write_io addr 0x3c9, val 0xaa
vga_std_write_io addr 0x3c9, val 0xaa
vga_std_write_io addr 0x3c9, val 0xaa
vga_std_write_io addr 0x3c8, val 0xf9
vga_std_write_io addr 0x3c9, val 0x88
vga_std_write_io addr 0x3c9, val 0x88
vga_std_write_io addr 0x3c9, val 0x88
vga_std_write_io addr 0x3c8, val 0xfa
vga_std_write_io addr 0x3c9, val 0x77
vga_std_write_io addr 0x3c9, val 0x77
vga_std_write_io addr 0x3c9, val 0x77
vga_std_write_io addr 0x3c8, val 0xfb
vga_std_write_io addr 0x3c9, val 0x55
vga_std_write_io addr 0x3c9, val 0x55
vga_std_write_io addr 0x3c9, val 0x55
vga_std_write_io addr 0x3c8, val 0xfc
vga_std_write_io addr 0x3c9, val 0x44
vga_std_write_io addr 0x3c9, val 0x44
vga_std_write_io addr 0x3c9, val 0x44
vga_std_write_io addr 0x3c8, val 0xfd
vga_std_write_io addr 0x3c9, val 0x22
vga_std_write_io addr 0x3c9, val 0x22
vga_std_write_io addr 0x3c9, val 0x22
vga_std_write_io addr 0x3c8, val 0xfe
vga_std_write_io addr 0x3c9, val 0x11
vga_std_write_io addr 0x3c9, val 0x11
vga_std_write_io addr 0x3c9, val 0x11
vga_std_write_io addr 0x3c8, val 0xff
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
vga_std_write_io addr 0x3c9, val 0x0
- Thousands of colours (15-bit color), corrupted
vga_vbe_write index 0x4, val 0x0
vga_vbe_write index 0x3, val 0xf
vga_vbe_write index 0x1, val 0x280
vga_vbe_write index 0x2, val 0x1e0
vga_vbe_write index 0x5, val 0x0
vga_vbe_write index 0x6, val 0x280
vga_vbe_write index 0x7, val 0x3c0
vga_vbe_write index 0x8, val 0x0
vga_vbe_write index 0x9, val 0x0
vga_vbe_write index 0x4, val 0x61
- Millions of colours (32-bit color), works
vga_vbe_write index 0x4, val 0x0
vga_vbe_write index 0x3, val 0x20
vga_vbe_write index 0x1, val 0x280
vga_vbe_write index 0x2, val 0x1e0
vga_vbe_write index 0x5, val 0x0
vga_vbe_write index 0x6, val 0x280
vga_vbe_write index 0x7, val 0x3c0
vga_vbe_write index 0x8, val 0x0
vga_vbe_write index 0x9, val 0x0
vga_vbe_write index 0x4, val 0x61
ATB,
Mark.
^ permalink raw reply related [flat|nested] 9+ messages in thread