Fix VGA interleaved mode.


svn path=/branches/ntvdm/; revision=59739
This commit is contained in:
Aleksandar Andrejevic 2013-08-14 21:55:50 +00:00
parent 516653f447
commit 58931acc6a

View file

@ -574,6 +574,11 @@ static VOID VgaUpdateFramebuffer(VOID)
{ {
/* Check if this is 16 or 256 color mode */ /* Check if this is 16 or 256 color mode */
if (VgaAcRegisters[VGA_AC_CONTROL_REG] & VGA_AC_CONTROL_8BIT) 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, * 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 BYTE LowPlaneData = VgaMemory[((j / 4) % 2) * VGA_BANK_SIZE
+ (Address + (j / 4)) * AddressSize]; + (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]; + (Address + (j / 4)) * AddressSize];
/* Extract the two bits from each plane */ /* Extract the two bits from each plane */
@ -591,11 +596,6 @@ static VOID VgaUpdateFramebuffer(VOID)
/* Combine them into the pixel */ /* Combine them into the pixel */
PixelData = LowPlaneData | (HighPlaneData << 2); PixelData = LowPlaneData | (HighPlaneData << 2);
} }
else
{
// TODO: NOT IMPLEMENTED
DPRINT1("8-bit interleaved mode is not implemented!\n");
}
} }
else else
{ {