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?re…
==============================================================================
--- 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;