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/vidbi... ============================================================================== --- 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;