[ros-diffs] [ion] 25751: - 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.

ion at svn.reactos.org ion at svn.reactos.org
Thu Feb 8 01:50:24 CET 2007


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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
--- 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/i386/pcvideo.c?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
--- 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/reactos/reactos.c?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
--- 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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
--- 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=25751&r1=25750&r2=25751&view=diff
==============================================================================
--- 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=25751&r1=25750&r2=25751&view=diff
==============================================================================
--- 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=25751&r1=25750&r2=25751&view=diff
==============================================================================
--- 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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
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/inbv.h?rev=25751&r1=25750&r2=25751&view=diff
==============================================================================
--- 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 */
 
 




More information about the Ros-diffs mailing list