Author: aandrejevic Date: Mon Apr 27 14:14:14 2015 New Revision: 67459
URL: http://svn.reactos.org/svn/reactos?rev=67459&view=rev Log: [NTVDM] Remove the useless wrappers BiosPeekCharacter and BiosGetCharacter. They're also a source of bugs since 0xFFFF could legitimately appear in the buffer.
Modified: trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/kbdbios32.c
Modified: trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/kbdbios32.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/bios/... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/kbdbios32.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/bios/bios32/kbdbios32.c [iso-8859-1] Mon Apr 27 14:14:14 2015 @@ -80,26 +80,6 @@ return TRUE; }
-static WORD BiosPeekCharacter(VOID) -{ - WORD CharacterData = 0; - - /* Get the key from the queue, but don't remove it */ - if (BiosKbdBufferTop(&CharacterData)) return CharacterData; - else return 0xFFFF; -} - -static WORD BiosGetCharacter(VOID) -{ - WORD CharacterData = 0; - - /* Check if there is a key available, and if so, remove it from the queue */ - if (BiosKbdBufferTop(&CharacterData)) BiosKbdBufferPop(); - else CharacterData = 0xFFFF; - - return CharacterData; -} - static VOID WINAPI BiosKeyboardService(LPWORD Stack) { switch (getAH()) @@ -109,16 +89,17 @@ /* Wait for extended keystroke and read */ case 0x10: // FIXME: Temporarily do the same as INT 16h, 00h { + WORD Character; + /* Read the character (and wait if necessary) */ - WORD Character = BiosGetCharacter(); - - if (Character == 0xFFFF) + if (!BiosKbdBufferTop(&Character)) { /* No key available. Set the handler CF to repeat the BOP */ setCF(1); break; }
+ BiosKbdBufferPop(); setAX(Character);
break; @@ -129,9 +110,9 @@ /* Get extended keystroke status */ case 0x11: // FIXME: Temporarily do the same as INT 16h, 01h { - WORD Character = BiosPeekCharacter(); - - if (Character != 0xFFFF) + WORD Character; + + if (BiosKbdBufferTop(&Character)) { /* There is a character, clear ZF and return it */ Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_ZF;