- Implement some simple video routines.
authorevb <evb@svn.reactos.org>
Thu, 4 Feb 2010 06:09:03 +0000 (06:09 +0000)
committerevb <evb@svn.reactos.org>
Thu, 4 Feb 2010 06:09:03 +0000 (06:09 +0000)
- Fix usable RAM not to include loader code and ram disk (up to 32MB).

svn path=/trunk/; revision=45412

reactos/boot/armllb/fw.c
reactos/boot/armllb/os/loader.c

index be4dfde..884d0f8 100644 (file)
@@ -36,8 +36,7 @@ ULONG
 LlbFwVideoSetDisplayMode(IN PCHAR DisplayModeName,
                          IN BOOLEAN Init)
 {
-    printf("%s is UNIMPLEMENTED", __FUNCTION__);
-    while (TRUE);
+    /* Return text mode */
     return 0;
 }
 
@@ -46,15 +45,19 @@ LlbFwVideoGetDisplaySize(OUT PULONG Width,
                          OUT PULONG Height,
                          OUT PULONG Depth)
 {
-    printf("%s is UNIMPLEMENTED", __FUNCTION__);
-    while (TRUE);
+    /* Query static settings */
+    *Width = LlbHwGetScreenWidth();
+    *Height = LlbHwGetScreenHeight();
+    
+    /* Depth is always 16 bpp */
+    *Depth = 16;
 }
 
 ULONG
 LlbFwVideoGetBufferSize(VOID)
 {
-    printf("%s is UNIMPLEMENTED", __FUNCTION__);
-    while (TRUE);
+    /* X * Y * BPP */
+    return LlbHwGetScreenWidth() * LlbHwGetScreenHeight() * 2;
 }
 
 VOID
@@ -68,8 +71,8 @@ LlbFwVideoSetTextCursorPosition(IN ULONG X,
 VOID
 LlbFwVideoHideShowTextCursor(IN BOOLEAN Show)
 {
-    printf("%s is UNIMPLEMENTED", __FUNCTION__);
-    while (TRUE);
+    /* Nothing to do */
+    return;
 }
 
 VOID
@@ -82,8 +85,8 @@ LlbFwVideoCopyOffScreenBufferToVRAM(IN PVOID Buffer)
 VOID
 LlbFwVideoClearScreen(IN UCHAR Attr)
 {
-    printf("%s is UNIMPLEMENTED", __FUNCTION__);
-    while (TRUE);
+    /* Clear the screen */
+    LlbVideoClearScreen(TRUE);
 }
 
 VOID
index d4e520a..7c705ca 100755 (executable)
@@ -99,6 +99,13 @@ LlbBuildMemoryMap(VOID)
         
     /* Query memory information */
     LlbEnvGetMemoryInformation(&Base, &Size);
+    
+    /* Don't use memory that the RAMDISK is using */
+    /* HACK HACK */
+    Base += 32 * 1024 * 1024;
+    Size -= 32 * 1024 * 1024;
+    
+    /* Allocate an entry for it */
     LlbAllocateMemoryEntry(BiosMemoryUsable, Base, Size);
 
     /* Call the hardware-specific function for hardware-defined regions */