[NTVDM]: Merge Bios32 ResetBop with POST function.

svn path=/trunk/; revision=67602
This commit is contained in:
Hermès Bélusca-Maïto 2015-05-08 19:43:12 +00:00
parent b86604cdde
commit 410c54e5f9

View file

@ -635,8 +635,9 @@ static VOID InitializeBiosInfo(VOID)
/* /*
* The BIOS POST (Power On-Self Test) * The BIOS POST (Power On-Self Test)
*/ */
VOID static VOID
Bios32Post(VOID) WINAPI
Bios32Post(LPWORD Stack)
{ {
#if 0 #if 0
BOOLEAN Success; BOOLEAN Success;
@ -645,6 +646,9 @@ Bios32Post(VOID)
DPRINT("Bios32Post\n"); DPRINT("Bios32Post\n");
/* Disable interrupts */
setIF(0);
/* Initialize the stack */ /* Initialize the stack */
// That's what says IBM... (stack at 30:00FF going downwards) // That's what says IBM... (stack at 30:00FF going downwards)
// setSS(0x0000); // setSS(0x0000);
@ -686,7 +690,7 @@ Bios32Post(VOID)
case 0x04: case 0x04:
{ {
DPRINT1("Fast restart to Bootstrap Loader...\n"); DPRINT1("Fast restart to Bootstrap Loader...\n");
return; goto Quit; // Reenable interrupts and exit.
} }
/* Flush keyboard, issue an EOI... */ /* Flush keyboard, issue an EOI... */
@ -711,7 +715,7 @@ Bios32Post(VOID)
HIWORD(Bda->ResumeEntryPoint), HIWORD(Bda->ResumeEntryPoint),
LOWORD(Bda->ResumeEntryPoint)); LOWORD(Bda->ResumeEntryPoint));
/* Position execution pointers to Bda->ResumeEntryPoint and return */ /* Position execution pointers and return with interrupts disabled */
setCS(HIWORD(Bda->ResumeEntryPoint)); setCS(HIWORD(Bda->ResumeEntryPoint));
setIP(LOWORD(Bda->ResumeEntryPoint)); setIP(LOWORD(Bda->ResumeEntryPoint));
return; return;
@ -764,8 +768,6 @@ Bios32Post(VOID)
/* Initialize the Keyboard, Video and Mouse BIOS */ /* Initialize the Keyboard, Video and Mouse BIOS */
if (!KbdBios32Initialize() || !VidBios32Initialize() || !MouseBios32Initialize()) if (!KbdBios32Initialize() || !VidBios32Initialize() || !MouseBios32Initialize())
{ {
// return FALSE;
/* Stop the VDM */ /* Stop the VDM */
EmulatorTerminate(); EmulatorTerminate();
return; return;
@ -796,18 +798,8 @@ Bios32Post(VOID)
* the rest of the POST code is executed, typically calling INT 19h * the rest of the POST code is executed, typically calling INT 19h
* to boot up the OS. * to boot up the OS.
*/ */
}
static VOID WINAPI Bios32ResetBop(LPWORD Stack)
{
DPRINT("Bios32ResetBop\n");
/* Disable interrupts */
setIF(0);
/* Do the POST */
Bios32Post();
Quit:
/* Enable interrupts */ /* Enable interrupts */
setIF(1); setIF(1);
} }
@ -839,7 +831,7 @@ BOOLEAN Bios32Initialize(VOID)
*(PBYTE)(SEG_OFF_TO_PTR(0xF000, 0xFFFE)) = BIOS_MODEL; *(PBYTE)(SEG_OFF_TO_PTR(0xF000, 0xFFFE)) = BIOS_MODEL;
/* Redefine our POST function */ /* Redefine our POST function */
RegisterBop(BOP_RESET, Bios32ResetBop); RegisterBop(BOP_RESET, Bios32Post);
/* We are done */ /* We are done */
return TRUE; return TRUE;