- Improve PS/2 keyboard initialization in BIOS POST.
- Forgot two "breaks;" in error code paths.

svn path=/trunk/; revision=68707
This commit is contained in:
Hermès Bélusca-Maïto 2015-08-13 16:51:40 +00:00
parent 0303c3abbe
commit 3625edddc3
2 changed files with 8 additions and 4 deletions

View file

@ -779,11 +779,13 @@ static VOID BiosHwSetup(VOID)
/* Initialize PS/2 keyboard port */
// Enable the port
IOWriteB(PS2_CONTROL_PORT, 0xAE);
IOWriteB(PS2_CONTROL_PORT, 0x60);
// Port interrupts and clock enabled,
// enable keyboard scancode translation.
// POST passed, force keyboard unlocking.
IOWriteB(PS2_DATA_PORT , 0x4D);
IOWriteB(PS2_CONTROL_PORT, 0x60);
IOWriteB(PS2_DATA_PORT , 0x6D);
// Enable data reporting
IOWriteB(PS2_DATA_PORT , 0xF4);
EnableHwIRQ(0, BiosTimerIrq);
}

View file

@ -223,7 +223,7 @@ VOID BiosMousePs2Interface(LPWORD Stack)
SendMouseCommand(0xFF);
Answer = ReadMouseData();
/* A "Resend" (0xFE) signal is sent if no mouse is attached */
/* A "Resend" signal (0xFE) is sent if no mouse is attached */
if (Answer == 0xFE)
{
/* Resend */
@ -376,6 +376,7 @@ VOID BiosMousePs2Interface(LPWORD Stack)
/* Failure */
setAH(0x03);
Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF;
break;
}
setBL(ReadMouseData()); // Status
@ -399,6 +400,7 @@ VOID BiosMousePs2Interface(LPWORD Stack)
/* Failure */
setAH(0x03);
Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF;
break;
}
/* Success */
@ -490,7 +492,7 @@ VOID MouseBios32Post(VOID)
/* Detect mouse presence by attempting a reset */
SendMouseCommand(0xFF);
Answer = ReadMouseData();
/* If no mouse attached, it will return RESEND (0xFE) */
/* A "Resend" signal (0xFE) is sent if no mouse is attached */
if (Answer == 0xFE)
{
DPRINT1("No mouse present!\n");