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/bios3... ============================================================================== --- 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