Author: aandrejevic
Date: Wed May 14 20:56:21 2014
New Revision: 63302
URL:
http://svn.reactos.org/svn/reactos?rev=63302&view=rev
Log:
[NTVDM]
Don't calculate NextElement twice.
Properly initialize the keyboard buffer head and tail.
Modified:
trunk/reactos/subsystems/ntvdm/bios/bios32/kbdbios32.c
Modified: trunk/reactos/subsystems/ntvdm/bios/bios32/kbdbios32.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/ntvdm/bios/bios…
==============================================================================
--- trunk/reactos/subsystems/ntvdm/bios/bios32/kbdbios32.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/ntvdm/bios/bios32/kbdbios32.c [iso-8859-1] Wed May 14
20:56:21 2014
@@ -39,14 +39,7 @@
/* Put the value in the queue */
*((LPWORD)((ULONG_PTR)Bda + Bda->KeybdBufferTail)) = Data;
- Bda->KeybdBufferTail += sizeof(WORD);
-
- /* Check if we are at, or have passed, the end of the buffer */
- if (Bda->KeybdBufferTail >= Bda->KeybdBufferEnd)
- {
- /* Return it to the beginning */
- Bda->KeybdBufferTail = Bda->KeybdBufferStart;
- }
+ Bda->KeybdBufferTail = NextElement;
/* Return success */
return TRUE;
@@ -271,7 +264,7 @@
/* Initialize the BDA */
Bda->KeybdBufferStart = FIELD_OFFSET(BIOS_DATA_AREA, KeybdBuffer);
Bda->KeybdBufferEnd = Bda->KeybdBufferStart + BIOS_KBD_BUFFER_SIZE *
sizeof(WORD);
- Bda->KeybdBufferHead = Bda->KeybdBufferTail = 0;
+ Bda->KeybdBufferHead = Bda->KeybdBufferTail = Bda->KeybdBufferStart;
// FIXME: Fill the keyboard buffer with invalid values, for diagnostic purposes...
RtlFillMemory(((LPVOID)((ULONG_PTR)Bda + Bda->KeybdBufferStart)),
BIOS_KBD_BUFFER_SIZE * sizeof(WORD), 'A');