Author: hbelusca
Date: Wed Oct 15 21:31:51 2014
New Revision: 64755
URL:
http://svn.reactos.org/svn/reactos?rev=64755&view=rev
Log:
[NTVDM]: Arch, please do *not* reinitialize twice the keyboard and the video (first time
before initializing the BDA, second time after), otherwise some programs won't display
correct things!!
Modified:
trunk/reactos/subsystems/ntvdm/bios/bios32/bios32.c
trunk/reactos/subsystems/ntvdm/dos/dem.c
Modified: trunk/reactos/subsystems/ntvdm/bios/bios32/bios32.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/ntvdm/bios/bios…
==============================================================================
--- trunk/reactos/subsystems/ntvdm/bios/bios32/bios32.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/ntvdm/bios/bios32/bios32.c [iso-8859-1] Wed Oct 15 21:31:51
2014
@@ -589,6 +589,10 @@
InitializeBiosData();
InitializeBiosInfo();
+ /*
+ * Initialize IVT and hardware
+ */
+
/* Register the BIOS 32-bit Interrupts */
InitializeBiosInt32();
@@ -605,35 +609,7 @@
return;
}
- ///////////// MUST BE DONE AFTER IVT INITIALIZATION !! /////////////////////
-
- /* Load some ROMs */
- Success = LoadRom("boot.bin", (PVOID)0xE0000, NULL);
- DPRINT1("Test ROM loading %s ; GetLastError() = %u\n", Success ?
"succeeded" : "failed", GetLastError());
-
- SearchAndInitRoms(&BiosContext);
-
- /*
- * End of the 32-bit POST portion. We then fall back into 16-bit where
- * the rest of the POST code is executed, typically calling INT 19h
- * to boot up the OS.
- */
-}
-
-static VOID WINAPI Bios32ResetBop(LPWORD Stack)
-{
- DPRINT1("Bios32ResetBop\n");
-
- /* Disable interrupts */
- setIF(0);
-
- // FIXME: Check the word at 0040h:0072h (Bda->SoftReset) and do one of the
- // following actions:
- // - if the word is 1234h, perform a warm reboot (aka. Ctrl-Alt-Del);
- // - if the word is 0000h, perform a cold reboot (aka. Reset).
-
- /* Initialize IVT and hardware */
-
+#if 0
/* Initialize the Keyboard and Video BIOS */
if (!KbdBiosInitialize() || !VidBiosInitialize())
{
@@ -641,6 +617,34 @@
EmulatorTerminate();
return;
}
+#endif
+
+ ///////////// MUST BE DONE AFTER IVT INITIALIZATION !! /////////////////////
+
+ /* Load some ROMs */
+ Success = LoadRom("boot.bin", (PVOID)0xE0000, NULL);
+ DPRINT1("Test ROM loading %s ; GetLastError() = %u\n", Success ?
"succeeded" : "failed", GetLastError());
+
+ SearchAndInitRoms(&BiosContext);
+
+ /*
+ * End of the 32-bit POST portion. We then fall back into 16-bit where
+ * the rest of the POST code is executed, typically calling INT 19h
+ * to boot up the OS.
+ */
+}
+
+static VOID WINAPI Bios32ResetBop(LPWORD Stack)
+{
+ DPRINT1("Bios32ResetBop\n");
+
+ /* Disable interrupts */
+ setIF(0);
+
+ // FIXME: Check the word at 0040h:0072h (Bda->SoftReset) and do one of the
+ // following actions:
+ // - if the word is 1234h, perform a warm reboot (aka. Ctrl-Alt-Del);
+ // - if the word is 0000h, perform a cold reboot (aka. Reset).
/* Do the POST */
Bios32Post();
Modified: trunk/reactos/subsystems/ntvdm/dos/dem.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/ntvdm/dos/dem.c…
==============================================================================
--- trunk/reactos/subsystems/ntvdm/dos/dem.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/ntvdm/dos/dem.c [iso-8859-1] Wed Oct 15 21:31:51 2014
@@ -476,8 +476,6 @@
EmulatorTerminate();
}
-
-
/* PUBLIC EXPORTED APIS *******************************************************/
// demLFNCleanup