Author: hbelusca
Date: Sun Oct 26 16:56:14 2014
New Revision: 65018
URL:
http://svn.reactos.org/svn/reactos?rev=65018&view=rev
Log:
[NTVDM]: Temporarily fix for r65015 before a proper fix.
Modified:
trunk/reactos/subsystems/ntvdm/bios/vidbios.c
Modified: trunk/reactos/subsystems/ntvdm/bios/vidbios.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/ntvdm/bios/vidb…
==============================================================================
--- trunk/reactos/subsystems/ntvdm/bios/vidbios.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/ntvdm/bios/vidbios.c [iso-8859-1] Sun Oct 26 16:56:14 2014
@@ -2296,8 +2296,15 @@
{
BYTE Page;
COORD Resolution;
+ PVGA_REGISTERS VgaMode;
+
+ /*
+ * IBM standard modes do not clear the screen if the
+ * high bit of AL is set (EGA or higher only).
+ * See Ralf Brown:
http://www.ctyme.com/intr/rb-0069.htm
+ * for more information.
+ */
BOOLEAN DoNotClear = !!(ModeNumber & 0x80);
- PVGA_REGISTERS VgaMode;
/* Retrieve the real mode number and check its validity */
ModeNumber &= 0x7F;
@@ -2308,8 +2315,13 @@
return FALSE;
}
- /* Check if this is the same mode */
- if (ModeNumber == Bda->VideoMode) return TRUE;
+ /* Check if this is the current mode */
+ if (ModeNumber == Bda->VideoMode)
+ {
+ /* Just clear the VGA memory if needed */
+ if (!DoNotClear) VgaClearMemory();
+ return TRUE;
+ }
VgaMode = VideoModes[ModeNumber];
@@ -2320,12 +2332,7 @@
VgaChangePalette(ModeNumber);
- /*
- * IBM standard modes do not clear the screen if the
- * high bit of AL is set (EGA or higher only).
- * See Ralf Brown:
http://www.ctyme.com/intr/rb-0069.htm
- * for more information.
- */
+ /* Clear the VGA memory if needed */
if (!DoNotClear) VgaClearMemory();
// Bda->CrtModeControl;