Author: aandrejevic Date: Sat Jan 4 22:33:05 2014 New Revision: 61535
URL: http://svn.reactos.org/svn/reactos?rev=61535&view=rev Log: [NTVDM] Fix the interleaved shift mode. Don't halve the vertical resolution twice.
Modified: branches/ntvdm/subsystems/ntvdm/vga.c
Modified: branches/ntvdm/subsystems/ntvdm/vga.c URL: http://svn.reactos.org/svn/reactos/branches/ntvdm/subsystems/ntvdm/vga.c?rev... ============================================================================== --- branches/ntvdm/subsystems/ntvdm/vga.c [iso-8859-1] (original) +++ branches/ntvdm/subsystems/ntvdm/vga.c [iso-8859-1] Sat Jan 4 22:33:05 2014 @@ -797,9 +797,9 @@ * then 2 bits shifted from plane 1 and 3 for the next 4 */ BYTE LowPlaneData = VgaMemory[((j / 4) % 2) * VGA_BANK_SIZE - + (Address + (j / 4)) * AddressSize]; + + (Address + (j / 8)) * AddressSize]; BYTE HighPlaneData = VgaMemory[(((j / 4) % 2) + 2) * VGA_BANK_SIZE - + (Address + (j / 4)) * AddressSize]; + + (Address + (j / 8)) * AddressSize];
/* Extract the two bits from each plane */ LowPlaneData = (LowPlaneData >> (6 - ((j % 4) * 2))) & 3; @@ -1032,9 +1032,11 @@ /* Halve the vertical resolution */ Resolution.Y >>= 1; } - - /* Divide the vertical resolution by the maximum scan line (== font size in text mode) */ - Resolution.Y /= MaximumScanLine; + else + { + /* Divide the vertical resolution by the maximum scan line (== font size in text mode) */ + Resolution.Y /= MaximumScanLine; + }
/* Return the resolution */ return Resolution;