From 7c0554a53fe7b42854876d6ea63658acff004b27 Mon Sep 17 00:00:00 2001 From: Aleksandar Andrejevic Date: Sun, 24 Jul 2016 15:45:50 +0000 Subject: [PATCH] [NTVDM] Always reset the AC latch before writing to the AC index register. CORE-11669 #resolve #comment Should be fixed in revision r71990. svn path=/trunk/; revision=71990 --- reactos/subsystems/mvdm/ntvdm/bios/vidbios.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c b/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c index 4e9607664d5..5da00c17496 100644 --- a/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c +++ b/reactos/subsystems/mvdm/ntvdm/bios/vidbios.c @@ -3241,6 +3241,7 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack) /* Set the overscan register */ // VgaSetSinglePaletteRegister(VGA_AC_OVERSCAN_REG, Buffer[VGA_AC_PAL_F_REG + 1]); + IOReadB(VGA_INSTAT1_READ); IOWriteB(VGA_AC_INDEX, VGA_AC_OVERSCAN_REG); IOWriteB(VGA_AC_WRITE, Buffer[VGA_AC_PAL_F_REG + 1]); @@ -3255,6 +3256,8 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack) { /* Read the old AC mode control register value */ BYTE VgaAcControlReg; + + IOReadB(VGA_INSTAT1_READ); IOWriteB(VGA_AC_INDEX, VGA_AC_CONTROL_REG); VgaAcControlReg = IOReadB(VGA_AC_READ); @@ -3270,6 +3273,7 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack) Bda->CrtModeControl &= ~(1 << 5); } + IOReadB(VGA_INSTAT1_READ); IOWriteB(VGA_AC_INDEX, VGA_AC_CONTROL_REG); IOWriteB(VGA_AC_WRITE, VgaAcControlReg); @@ -3329,6 +3333,7 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack) } /* Get the overscan register */ + IOReadB(VGA_INSTAT1_READ); IOWriteB(VGA_AC_INDEX, VGA_AC_OVERSCAN_REG); Buffer[VGA_AC_PAL_F_REG + 1] = IOReadB(VGA_AC_READ);