--- /dev/null
+Index: boot/freeldr/freeldr/arch/i386/loader.c\r
+===================================================================\r
+--- boot/freeldr/freeldr/arch/i386/loader.c (revision 27633)\r
++++ boot/freeldr/freeldr/arch/i386/loader.c (working copy)\r
+@@ -85,7 +85,7 @@\r
+ FrLdrStartup(ULONG Magic)
+ {
+ /* Goodbye OFW */
+- OFInterpret0("usb-quiet");
++ //OFInterpret0("usb-quiet");
+
+ /* Disable Interrupts */
+ _disable();
+Index: boot/freeldr/freeldr/arch/i386/macholpc.c\r
+===================================================================\r
+--- boot/freeldr/freeldr/arch/i386/macholpc.c (revision 27284)\r
++++ boot/freeldr/freeldr/arch/i386/macholpc.c (working copy)\r
+@@ -230,9 +230,9 @@\r
+ //char * gethomedir();\r
+ //char *homedir = gethomedir();\r
+ \r
++ ofwprintf("OlpcDiskReadLogicalSectors() SN %x %x, SC %x\n", (ULONG)(SectorNumber >> 25), \r
++ (ULONG)((SectorNumber * 512) & 0xffffffff), SectorCount);\r
+ \r
+- //ofwprintf("OlpcDiskReadLogicalSectors() SN %x, SC %x\n", SectorNumber, SectorCount); //FIXME: incorrect due to SN being ULONGLONG\r
+-\r
+ if( part_handle == -1 )\r
+ {\r
+ part_handle = OFOpen(BootPart);\r
+@@ -244,7 +244,7 @@\r
+ }\r
+ }\r
+ \r
+- //ofwprintf("Got partition handle %x\n", part_handle);\r
++ ofwprintf("Got partition handle %x\n", part_handle);\r
+ \r
+ if( part_handle == -1 )\r
+ {\r
+Index: drivers/base/bootvid/vid_fb.c\r
+===================================================================\r
+--- drivers/base/bootvid/vid_fb.c (revision 27277)\r
++++ drivers/base/bootvid/vid_fb.c (working copy)\r
+@@ -101,7 +101,8 @@\r
+ if (!Transparent)
+ Pixel[Col] = (0 != (FontPtr[Line] & Mask) ? Color : BackTextColor);
+ else
+- Pixel[Col] = (0 != (FontPtr[Line] & Mask) ? Color : Pixel[Col]); // transparent background
++ /* FIXME: A hack here preventing transparent chars */
++ Pixel[Col] = (0 != (FontPtr[Line] & Mask) ? Color : BackTextColor/*Pixel[Col]*/); // transparent background
+
+ Mask = Mask >> 1;
+ }
+@@ -182,7 +183,8 @@\r
+
+ if (!VidpInitialized)
+ {
+- PhysicalAddress.QuadPart = 0xFD000000;
++ PhysicalAddress.QuadPart = 0xFD000000; // OLPC
++ //PhysicalAddress.QuadPart = 0xF0000000; // VMWare
+ VidpMemory = MmMapIoSpace(PhysicalAddress, 0x200000, MmNonCached);
+ if (VidpMemory == NULL)
+ return FALSE;
+@@ -269,7 +271,7 @@\r
+ VidFbDisplayString(
+ IN PCSTR String)
+ {
+- ULONG TopDelta = CHAR_HEIGHT-2;
++ ULONG TopDelta = CHAR_HEIGHT;//-2;
+
+ /* Start looping the string */
+ while (*String)
+Index: ntoskrnl/io/iomgr/iomgr.c\r
+===================================================================\r
+--- ntoskrnl/io/iomgr/iomgr.c (revision 27165)\r
++++ ntoskrnl/io/iomgr/iomgr.c (working copy)\r
+@@ -400,6 +400,7 @@\r
+ FILE_NON_DIRECTORY_FILE);
+ if (!NT_SUCCESS(Status))
+ {
++ while (TRUE) { NtYieldExecution(); }; // HACK to watch olpc boot process
+ /* Fail */
+ KeBugCheckEx(INACCESSIBLE_BOOT_DEVICE,
+ (ULONG_PTR)&DeviceName,
+Index: ntoskrnl/ke/i386/ctxswitch.S\r
+===================================================================\r
+--- ntoskrnl/ke/i386/ctxswitch.S (revision 26941)\r
++++ ntoskrnl/ke/i386/ctxswitch.S (working copy)\r
+@@ -175,14 +175,14 @@\r
+ /* Save the NPX State */
+ mov ecx, [eax+KTHREAD_INITIAL_STACK]
+ sub ecx, NPX_FRAME_LENGTH
+- fxsave [ecx]
++ fsave [ecx]
+ mov byte ptr [eax+KTHREAD_NPX_STATE], NPX_STATE_NOT_LOADED
+
+ DontSave:
+ /* Load the NPX State */
+ mov ecx, [esi+KTHREAD_INITIAL_STACK]
+ sub ecx, NPX_FRAME_LENGTH
+- fxrstor [ecx]
++ frstor [ecx]
+
+ /* Get the CR0 state and destination */
+ mov edx, [ecx+FN_CR0_NPX_STATE]
+@@ -213,7 +213,7 @@\r
+ jz DoneLoad
+
+ /* Save the FX State */
+- fxsave [ecx]
++ fsave [ecx]
+
+ /* Check if we also have to save it in the parameter */
+ mov ecx, [esp+20]
+Index: ntoskrnl/mm/freelist.c\r
+===================================================================\r
+--- ntoskrnl/mm/freelist.c (revision 26941)\r
++++ ntoskrnl/mm/freelist.c (working copy)\r
+@@ -473,6 +473,16 @@\r
+ &MmPageArray[j].ListEntry);
+ MmStats.NrReservedPages++;
+ }
++ else if (j >= 0x7000000 / PAGE_SIZE)
++ {
++ MmPageArray[j].Flags.Type = MM_PHYSICAL_PAGE_BIOS;
++ MmPageArray[j].Flags.Zero = 0;
++ MmPageArray[j].Flags.Consumer = MC_NPPOOL;
++ MmPageArray[j].ReferenceCount = 1;
++ InsertTailList(&BiosPageListHead,
++ &MmPageArray[j].ListEntry);
++ MmStats.NrReservedPages++;
++ }
+ else if (j >= (ULONG)FirstPhysKernelAddress/PAGE_SIZE &&
+ j < (ULONG)LastPhysKernelAddress/PAGE_SIZE)
+ {