- Restoring of character size in VBEResetHw. Patch by Herv� Poussineau.

svn path=/trunk/; revision=10754
This commit is contained in:
Filip Navara 2004-08-31 18:28:50 +00:00
parent 9cc8b8a571
commit 3db1c05c05

View file

@ -523,7 +523,56 @@ VBEResetHw(
ULONG Columns,
ULONG Rows)
{
return VBEResetDevice(DeviceExtension, NULL);
INT10_BIOS_ARGUMENTS BiosRegisters;
PVBE_DEVICE_EXTENSION VBEDeviceExtension =
(PVBE_DEVICE_EXTENSION)DeviceExtension;
if (!VBEResetDevice(DeviceExtension, NULL))
return FALSE;
/* Change number of columns/rows */
VideoPortZeroMemory(&BiosRegisters, sizeof(BiosRegisters));
if (Columns == 80 && Rows == 25)
{
/* Default text size, don't change anything. */
return TRUE;
}
else if (Columns == 80 && Rows == 28)
{
/* Use 9x14 font (80x28) */
BiosRegisters.Eax = 0x1111;
}
else if (Columns == 80 && Rows == 43)
{
/* Use 8x8 font in 350 scans mode (80x43) */
BiosRegisters.Eax = 0x1201;
BiosRegisters.Ebx = 0x30;
VBEDeviceExtension->Int10Interface.Int10CallBios(
VBEDeviceExtension->Int10Interface.Context,
&BiosRegisters);
BiosRegisters.Eax = 0x3;
BiosRegisters.Ebx = 0;
VBEDeviceExtension->Int10Interface.Int10CallBios(
VBEDeviceExtension->Int10Interface.Context,
&BiosRegisters);
BiosRegisters.Eax = 0x1112;
}
else if (Columns == 80 && Rows == 50)
{
/* Use 8x8 font (80x50) */
BiosRegisters.Eax = 0x1112;
}
else
return FALSE;
VBEDeviceExtension->Int10Interface.Int10CallBios(
VBEDeviceExtension->Int10Interface.Context,
&BiosRegisters);
return TRUE;
}
/*