Fix resolution calculation when scanline doubling is enabled.


svn path=/branches/ntvdm/; revision=60827
This commit is contained in:
Aleksandar Andrejevic 2013-11-02 01:51:27 +00:00
parent e9a30e1068
commit fde9609542
2 changed files with 9 additions and 0 deletions

View file

@ -802,6 +802,12 @@ COORD VgaGetDisplayResolution(VOID)
if (VgaAcRegisters[VGA_AC_CONTROL_REG] & VGA_AC_CONTROL_8BIT) Resolution.X /= 2;
}
if (VgaCrtcRegisters[VGA_CRTC_MAX_SCAN_LINE_REG] & VGA_CRTC_MAXSCANLINE_DOUBLE)
{
/* Halve the vertical resolution */
Resolution.Y >>= 1;
}
/* Divide the vertical resolution by the maximum scan line (== font size in text mode) */
Resolution.Y /= MaximumScanLine;

View file

@ -80,6 +80,9 @@
/* CRTC underline register bits */
#define VGA_CRTC_UNDERLINE_DWORD (1 << 6)
/* CRTC max scanline register bits */
#define VGA_CRTC_MAXSCANLINE_DOUBLE (1 << 7)
/* CRTC mode control register bits */
#define VGA_CRTC_MODE_CONTROL_WRAP (1 << 5)
#define VGA_CRTC_MODE_CONTROL_BYTE (1 << 6)