[NTVDM]
authorAleksandar Andrejevic <aandrejevic@reactos.org>
Wed, 14 Aug 2013 21:55:50 +0000 (21:55 +0000)
committerAleksandar Andrejevic <aandrejevic@reactos.org>
Wed, 14 Aug 2013 21:55:50 +0000 (21:55 +0000)
Fix VGA interleaved mode.

svn path=/branches/ntvdm/; revision=59739

subsystems/ntvdm/vga.c

index 17f6f18..ab2772f 100644 (file)
@@ -574,6 +574,11 @@ static VOID VgaUpdateFramebuffer(VOID)
                 {
                     /* Check if this is 16 or 256 color mode */
                     if (VgaAcRegisters[VGA_AC_CONTROL_REG] & VGA_AC_CONTROL_8BIT)
+                    {
+                        // TODO: NOT IMPLEMENTED
+                        DPRINT1("8-bit interleaved mode is not implemented!\n");
+                    }
+                    else
                     {
                         /*
                          * 2 bits shifted from plane 0 and 2 for the first 4 pixels,
@@ -581,7 +586,7 @@ static VOID VgaUpdateFramebuffer(VOID)
                          */
                         BYTE LowPlaneData = VgaMemory[((j / 4) % 2) * VGA_BANK_SIZE
                                                       + (Address + (j / 4)) * AddressSize];
-                        BYTE HighPlaneData = VgaMemory[(((j / 4) % 2) + 1) * VGA_BANK_SIZE
+                        BYTE HighPlaneData = VgaMemory[(((j / 4) % 2) + 2) * VGA_BANK_SIZE
                                                        + (Address + (j / 4)) * AddressSize];
 
                         /* Extract the two bits from each plane */
@@ -591,11 +596,6 @@ static VOID VgaUpdateFramebuffer(VOID)
                         /* Combine them into the pixel */
                         PixelData = LowPlaneData | (HighPlaneData << 2);
                     }
-                    else
-                    {
-                        // TODO: NOT IMPLEMENTED
-                        DPRINT1("8-bit interleaved mode is not implemented!\n");
-                    }
                 }
                 else
                 {