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.…
==============================================================================
--- 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/…
==============================================================================
--- 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/react…
==============================================================================
--- 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=257…
==============================================================================
--- 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=25…
==============================================================================
--- 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=2…
==============================================================================
--- 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?r…
==============================================================================
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?…
==============================================================================
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?…
==============================================================================
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?…
==============================================================================
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?…
==============================================================================
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?…
==============================================================================
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?r…
==============================================================================
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?r…
==============================================================================
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?r…
==============================================================================
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?r…
==============================================================================
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?r…
==============================================================================
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?r…
==============================================================================
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?r…
==============================================================================
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/…
==============================================================================
--- 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 */