From: Filip Navara Date: Tue, 31 Aug 2004 18:28:50 +0000 (+0000) Subject: - Restoring of character size in VBEResetHw. Patch by Herv� Poussineau. X-Git-Tag: backups/alex_2gb+hdrtests@12432~409 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=3db1c05c05b478c5e58660e01e3bc3515b3466e4 - Restoring of character size in VBEResetHw. Patch by Herv� Poussineau. svn path=/trunk/; revision=10754 --- diff --git a/reactos/drivers/video/miniport/vbe/vbemp.c b/reactos/drivers/video/miniport/vbe/vbemp.c index c16897b77d3..62c101e527a 100644 --- a/reactos/drivers/video/miniport/vbe/vbemp.c +++ b/reactos/drivers/video/miniport/vbe/vbemp.c @@ -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; } /*