mirror of
https://github.com/reactos/reactos.git
synced 2024-10-05 00:43:21 +00:00
[NTVDM]
Get rid of ConsoleInput handles in the BIOS; setting input console modes should be done in the emulator.c module itself (when setting user interface modes), and if a mouse is present, handle it in the ps2.c module. Next step will be to get rid of ConsoleOutput handle in the BIOS. svn path=/branches/ntvdm/; revision=62359
This commit is contained in:
parent
bde24e0bb4
commit
9e1ba5c534
|
@ -87,7 +87,6 @@ static VOID WINAPI BiosInitBop(LPWORD Stack)
|
|||
|
||||
BOOLEAN
|
||||
BiosInitialize(IN LPCSTR BiosFileName,
|
||||
IN HANDLE ConsoleInput,
|
||||
IN HANDLE ConsoleOutput)
|
||||
{
|
||||
/* Register the BIOS support BOPs */
|
||||
|
@ -144,7 +143,7 @@ BiosInitialize(IN LPCSTR BiosFileName,
|
|||
}
|
||||
else
|
||||
{
|
||||
Bios32Loaded = Bios32Initialize(ConsoleInput, ConsoleOutput);
|
||||
Bios32Loaded = Bios32Initialize(ConsoleOutput);
|
||||
return Bios32Loaded;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -107,7 +107,6 @@ extern PBIOS_DATA_AREA Bda;
|
|||
|
||||
BOOLEAN
|
||||
BiosInitialize(IN LPCSTR BiosFileName,
|
||||
IN HANDLE ConsoleInput,
|
||||
IN HANDLE ConsoleOutput);
|
||||
|
||||
VOID
|
||||
|
|
|
@ -361,8 +361,7 @@ static VOID InitializeBiosInt32(VOID)
|
|||
/*
|
||||
* The BIOS POST (Power On-Self Test)
|
||||
*/
|
||||
BOOLEAN Bios32Initialize(IN HANDLE ConsoleInput,
|
||||
IN HANDLE ConsoleOutput)
|
||||
BOOLEAN Bios32Initialize(IN HANDLE ConsoleOutput)
|
||||
{
|
||||
BOOLEAN Success;
|
||||
UCHAR Low, High;
|
||||
|
@ -401,10 +400,7 @@ BOOLEAN Bios32Initialize(IN HANDLE ConsoleInput,
|
|||
BiosHwSetup();
|
||||
|
||||
/* Initialize the Keyboard BIOS */
|
||||
if (!KbdBios32Initialize(ConsoleInput)) return FALSE;
|
||||
|
||||
/* Set the console input mode */
|
||||
SetConsoleMode(ConsoleInput, ENABLE_MOUSE_INPUT | ENABLE_PROCESSED_INPUT);
|
||||
if (!KbdBios32Initialize()) return FALSE;
|
||||
|
||||
/* Initialize the Video BIOS */
|
||||
if (!VidBios32Initialize(ConsoleOutput)) return FALSE;
|
||||
|
|
|
@ -129,8 +129,7 @@ extern PBIOS_DATA_AREA Bda;
|
|||
VOID EnableHwIRQ(UCHAR hwirq, EMULATOR_INT32_PROC func);
|
||||
VOID PicIRQComplete(LPWORD Stack);
|
||||
|
||||
BOOLEAN Bios32Initialize(IN HANDLE ConsoleInput,
|
||||
IN HANDLE ConsoleOutput);
|
||||
BOOLEAN Bios32Initialize(IN HANDLE ConsoleOutput);
|
||||
VOID Bios32Cleanup(VOID);
|
||||
|
||||
#endif // _BIOS32_H_
|
||||
|
|
|
@ -261,7 +261,7 @@ static VOID WINAPI BiosKeyboardIrq(LPWORD Stack)
|
|||
|
||||
/* PUBLIC FUNCTIONS ***********************************************************/
|
||||
|
||||
BOOLEAN KbdBios32Initialize(HANDLE ConsoleInput)
|
||||
BOOLEAN KbdBios32Initialize(VOID)
|
||||
{
|
||||
/* Initialize the BDA */
|
||||
Bda->KeybdBufferStart = FIELD_OFFSET(BIOS_DATA_AREA, KeybdBuffer);
|
||||
|
@ -277,9 +277,6 @@ BOOLEAN KbdBios32Initialize(HANDLE ConsoleInput)
|
|||
EnableHwIRQ(1, BiosKeyboardIrq);
|
||||
// EnableHwIRQ(12, BiosMouseIrq);
|
||||
|
||||
/* Set the console input mode */
|
||||
// SetConsoleMode(ConsoleInput, ENABLE_MOUSE_INPUT | ENABLE_PROCESSED_INPUT);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
WORD BiosGetCharacter(VOID);
|
||||
|
||||
BOOLEAN KbdBios32Initialize(HANDLE ConsoleInput);
|
||||
BOOLEAN KbdBios32Initialize(VOID);
|
||||
VOID KbdBios32Cleanup(VOID);
|
||||
|
||||
#endif // _KBDBIOS32_H_
|
||||
|
|
|
@ -384,7 +384,9 @@ BOOLEAN EmulatorInitialize(HANDLE ConsoleInput, HANDLE ConsoleOutput)
|
|||
PS2Initialize(ConsoleInput);
|
||||
|
||||
/* Set the console input mode */
|
||||
// SetConsoleMode(ConsoleInput, ENABLE_MOUSE_INPUT | ENABLE_PROCESSED_INPUT);
|
||||
// FIXME: Activate ENABLE_WINDOW_INPUT when we will want to perform actions
|
||||
// upon console window events (screen buffer resize, ...).
|
||||
SetConsoleMode(ConsoleInput, ENABLE_PROCESSED_INPUT /* | ENABLE_WINDOW_INPUT */);
|
||||
|
||||
/* Start the input thread */
|
||||
InputThread = CreateThread(NULL, 0, &PumpConsoleInput, ConsoleInput, 0, NULL);
|
||||
|
|
|
@ -325,6 +325,10 @@ VOID GenerateKeyboardInterrupts(VOID)
|
|||
|
||||
BOOLEAN PS2Initialize(HANDLE ConsoleInput)
|
||||
{
|
||||
#if 0
|
||||
DWORD ConInMode;
|
||||
#endif
|
||||
|
||||
/* Create the mutex */
|
||||
QueueMutex = CreateMutex(NULL, FALSE, NULL);
|
||||
|
||||
|
@ -332,6 +336,21 @@ BOOLEAN PS2Initialize(HANDLE ConsoleInput)
|
|||
RegisterIoPort(PS2_CONTROL_PORT, PS2ReadPort, PS2WritePort);
|
||||
RegisterIoPort(PS2_DATA_PORT , PS2ReadPort, PS2WritePort);
|
||||
|
||||
#if 0
|
||||
if (MousePresent)
|
||||
{
|
||||
/* Support mouse input events if there is a mouse on the system */
|
||||
if (GetConsoleMode(ConsoleInput, &ConInMode))
|
||||
SetConsoleMode(ConsoleInput, ConInMode | ENABLE_MOUSE_INPUT);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Do not support mouse input events if there is no mouse on the system */
|
||||
if (GetConsoleMode(ConsoleInput, &ConInMode))
|
||||
SetConsoleMode(ConsoleInput, ConInMode & ~ENABLE_MOUSE_INPUT);
|
||||
}
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -400,7 +400,7 @@ INT wmain(INT argc, WCHAR *argv[])
|
|||
}
|
||||
|
||||
/* Initialize the system BIOS */
|
||||
if (!BiosInitialize(NULL, ConsoleInput, ConsoleOutput))
|
||||
if (!BiosInitialize(NULL, ConsoleOutput))
|
||||
{
|
||||
wprintf(L"FATAL: Failed to initialize the VDM BIOS.\n");
|
||||
goto Cleanup;
|
||||
|
|
Loading…
Reference in a new issue