Author: ion Date: Thu Feb 8 03:50:23 2007 New Revision: 25751
URL: http://svn.reactos.org/svn/reactos?rev=25751&view=rev Log: - Update boot graphics with new, RLE-compressed and palette-blacked versions from mf. - Re-enable FreeLDR's "prepare for ros video" routine, but change it to match the new BootVid, which uses Mode 0x12. This is roughly what HalDisplayReset does, which isn't yet implemented (except the latter needs to setup a BIOS call trampoline). - Fix up some bugs in bootvid and inbv. - Implement SOS case of DisplayBootBitmap, and implement FinalizeBootLogo. Now bootvid starts to show its colors, but one .bmp is still buggy.
Modified: trunk/reactos/base/setup/usetup/bootsup.c trunk/reactos/boot/freeldr/freeldr/arch/i386/pcvideo.c trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c trunk/reactos/drivers/base/bootvid/vga.c trunk/reactos/ntoskrnl/ex/init.c trunk/reactos/ntoskrnl/ex/power.c trunk/reactos/ntoskrnl/inbv/inbv.c trunk/reactos/ntoskrnl/inbv/logo/1.bmp trunk/reactos/ntoskrnl/inbv/logo/13.bmp trunk/reactos/ntoskrnl/inbv/logo/14.bmp trunk/reactos/ntoskrnl/inbv/logo/15.bmp trunk/reactos/ntoskrnl/inbv/logo/16.bmp trunk/reactos/ntoskrnl/inbv/logo/17.bmp trunk/reactos/ntoskrnl/inbv/logo/2.bmp trunk/reactos/ntoskrnl/inbv/logo/3.bmp trunk/reactos/ntoskrnl/inbv/logo/4.bmp trunk/reactos/ntoskrnl/inbv/logo/5.bmp trunk/reactos/ntoskrnl/inbv/logo/6.bmp trunk/reactos/ntoskrnl/inbv/logo/7.bmp trunk/reactos/ntoskrnl/inbv/logo/8.bmp trunk/reactos/ntoskrnl/include/internal/inbv.h
Modified: trunk/reactos/base/setup/usetup/bootsup.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/bootsup.c... ============================================================================== --- trunk/reactos/base/setup/usetup/bootsup.c (original) +++ trunk/reactos/base/setup/usetup/bootsup.c Thu Feb 8 03:50:23 2007 @@ -310,7 +310,7 @@ NULL, INSERT_LAST, L"Options", - L"/DEBUGPORT=SCREEN /NOGUIBOOT /SOS"); + L"/DEBUGPORT=SCREEN /SOS");
/* Create "DOS" section */ IniSection = IniCacheAppendSection(IniCache,
Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/pcvideo.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/i... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/i386/pcvideo.c (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/pcvideo.c Thu Feb 8 03:50:23 2007 @@ -596,7 +596,7 @@ { if (VIDEOCARD_VGA == PcVideoDetectVideoCard()) { - PcVideoSetBiosMode(0x03); + PcVideoSetBiosMode(0x12); PcVideoSetFont8x8(); PcVideoSelectAlternatePrintScreen(); PcVideoDisableCursorEmulation(); @@ -1108,8 +1108,8 @@ VOID PcVideoPrepareForReactOS(VOID) { - PcVideoSetMode80x50_80x43(); - PcVideoHideShowTextCursor(FALSE); + PcVideoSetBiosMode(0x12); + PcVideoHideShowTextCursor(FALSE); }
/* EOF */
Modified: trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/reacto... ============================================================================== --- trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c (original) +++ trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c Thu Feb 8 03:50:23 2007 @@ -932,7 +932,7 @@ * Now boot the kernel */ DiskStopFloppyMotor(); - //MachVideoPrepareForReactOS(); + MachVideoPrepareForReactOS(); FrLdrStartup(0x2badb002); }
Modified: trunk/reactos/drivers/base/bootvid/vga.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/base/bootvid/vga.c?... ============================================================================== --- trunk/reactos/drivers/base/bootvid/vga.c (original) +++ trunk/reactos/drivers/base/bootvid/vga.c Thu Feb 8 03:50:23 2007 @@ -847,7 +847,7 @@ { /* Assert alignment */ ASSERT((x1 & 0x7) == 0); - ASSERT((x2 & 0x7) == 0); + ASSERT((x2 & 0x7) == 7);
/* Set Scroll Region */ ScrollRegion[0] = x1;
Modified: trunk/reactos/ntoskrnl/ex/init.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/init.c?rev=2575... ============================================================================== --- trunk/reactos/ntoskrnl/ex/init.c (original) +++ trunk/reactos/ntoskrnl/ex/init.c Thu Feb 8 03:50:23 2007 @@ -1028,7 +1028,7 @@ { /* It is, display the boot logo and enable printing strings */ InbvEnableDisplayString(SosEnabled); - //DisplayBootBitmap(SosEnabled); + DisplayBootBitmap(SosEnabled); } else { @@ -1204,7 +1204,7 @@ /* Wait 5 seconds for it to initialize */ Timeout.QuadPart = Int32x32To64(5, -10000000); Status = ZwWaitForSingleObject(ProcessInfo->ProcessHandle, FALSE, &Timeout); - //if (InbvBootDriverInstalled) FinalizeBootLogo(); + if (InbvBootDriverInstalled) FinalizeBootLogo();
if (Status == STATUS_SUCCESS) {
Modified: trunk/reactos/ntoskrnl/ex/power.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/power.c?rev=257... ============================================================================== --- trunk/reactos/ntoskrnl/ex/power.c (original) +++ trunk/reactos/ntoskrnl/ex/power.c Thu Feb 8 03:50:23 2007 @@ -150,7 +150,7 @@ InbvSetTextColor(15); InbvInstallDisplayStringFilter(NULL); InbvEnableDisplayString(TRUE); - //InbvSetScrollRegion(0, 0, 639, 479); + InbvSetScrollRegion(0, 0, 639, 479); }
if (Action == ShutdownNoReboot)
Modified: trunk/reactos/ntoskrnl/inbv/inbv.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/inbv.c?rev=25... ============================================================================== --- trunk/reactos/ntoskrnl/inbv/inbv.c (original) +++ trunk/reactos/ntoskrnl/inbv/inbv.c Thu Feb 8 03:50:23 2007 @@ -19,6 +19,9 @@ INBV_RESET_DISPLAY_PARAMETERS InbvResetDisplayParameters; ULONG ResourceCount; PUCHAR ResourceList[64]; +BOOLEAN SysThreadCreated; +ROT_BAR_TYPE RotBarSelection; +ULONG PltRotBarStatus;
/* FUNCTIONS *****************************************************************/
@@ -528,3 +531,94 @@ /* Return success */ return STATUS_SUCCESS; } + +VOID +NTAPI +DisplayBootBitmap(IN BOOLEAN SosMode) +{ + PVOID Bitmap, Header; + ROT_BAR_TYPE TempRotBarSelection = RB_UNSPECIFIED; + + /* Check if the system thread has already been created */ + if (SysThreadCreated) + { + /* Reset the progress bar */ + InbvAcquireLock(); + RotBarSelection = 0; + InbvReleaseLock(); + } + + /* Check if this is SOS mode */ + ShowProgressBar = FALSE; + if (SosMode) + { + /* Check if this is a server OS */ + if (SharedUserData->NtProductType == NtProductWinNt) + { + /* It's not, set workstation settings */ + InbvSetTextColor(15); + InbvSolidColorFill(0, 0, 639, 479, 7); + InbvSolidColorFill(0, 421, 639, 479, 1); + + /* Get resources */ + Bitmap = InbvGetResourceAddress(6); + Header = InbvGetResourceAddress(7); + } + else + { + /* Set server settings */ + InbvSetTextColor(14); + InbvSolidColorFill(0, 0, 639, 479, 6); + InbvSolidColorFill(0, 421, 639, 479, 1); + + /* Get resources */ + Bitmap = InbvGetResourceAddress(14); + Header = InbvGetResourceAddress(15); + } + + /* Set the scrolling region */ + InbvSetScrollRegion(32, 80, 631, 400); + + /* Make sure we have resources */ + if ((Bitmap) && (Header)) + { + /* BitBlt them on the screen */ + InbvBitBlt(Header, 0, 419); + InbvBitBlt(Bitmap, 0, 0); + } + } + else + { + /* Is the boot driver installed? */ + if (!InbvBootDriverInstalled) return; + + /* FIXME: TODO, display full-screen bitmap */ + } + + /* Do we have a system thread? */ + if (SysThreadCreated) + { + /* We do, set the progress bar location */ + InbvAcquireLock(); + RotBarSelection = TempRotBarSelection; + //InbvRotBarInit(); + InbvReleaseLock(); + } +} + +VOID +NTAPI +FinalizeBootLogo(VOID) +{ + /* Acquire lock and check the display state */ + InbvAcquireLock(); + if (InbvGetDisplayState() == INBV_DISPLAY_STATE_OWNED) + { + /* Clear the screen */ + VidSolidColorFill(0, 0, 639, 479, 0); + } + + /* Reset progress bar and lock */ + PltRotBarStatus = 3; + InbvReleaseLock(); +}
Modified: trunk/reactos/ntoskrnl/inbv/logo/1.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/1.bmp?re... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/13.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/13.bmp?r... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/14.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/14.bmp?r... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/15.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/15.bmp?r... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/16.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/16.bmp?r... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/17.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/17.bmp?r... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/2.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/2.bmp?re... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/3.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/3.bmp?re... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/4.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/4.bmp?re... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/5.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/5.bmp?re... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/6.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/6.bmp?re... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/7.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/7.bmp?re... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/inbv/logo/8.bmp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/inbv/logo/8.bmp?re... ============================================================================== Binary files - no diff available.
Modified: trunk/reactos/ntoskrnl/include/internal/inbv.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/i... ============================================================================== --- trunk/reactos/ntoskrnl/include/internal/inbv.h (original) +++ trunk/reactos/ntoskrnl/include/internal/inbv.h Thu Feb 8 03:50:23 2007 @@ -7,6 +7,12 @@ ULONG Ceiling; ULONG Bias; } INBV_PROGRESS_STATE; + +typedef enum _ROT_BAR_TYPE +{ + RB_UNSPECIFIED, + RB_SQUARE_CELLS +} ROT_BAR_TYPE;
VOID NTAPI @@ -27,6 +33,18 @@ IN BOOLEAN Enable );
+VOID +NTAPI +DisplayBootBitmap( + IN BOOLEAN SosMode +); + +VOID +NTAPI +FinalizeBootLogo( + VOID +); + #endif /* NTOSKRNL_INBV_H */