diff --git a/source/Keyboard.cpp b/source/Keyboard.cpp index 47f1687d..d403dbe6 100644 --- a/source/Keyboard.cpp +++ b/source/Keyboard.cpp @@ -36,10 +36,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "YamlHelper.h" #include "Video.h" // Needed by TK3000 //e, to refresh the frame at each |Mode| change -static bool g_bKeybBufferEnable = false; - -#define KEY_OLD - static BYTE asciicode[2][10] = { {0x08,0x0D,0x15,0x2F,0x00,0x00,0x00,0x00,0x00,0x00}, {0x08,0x0B,0x15,0x0A,0x00,0x00,0x00,0x00,0x00,0x7F} @@ -56,26 +52,7 @@ static bool g_bP8CapsLock = true; //Caps lock key of Pravets 8A/C static int lastvirtkey = 0; // Current PC keycode static BYTE keycode = 0; // Current Apple keycode -#ifdef KEY_OLD -// Original static BOOL keywaiting = 0; -#else -// Buffered key input: -// - Needed on faster PCs where aliasing occurs during short/fast bursts of 6502 code. -// - Keyboard only sampled during 6502 execution, so if it's run too fast then key presses will be missed. -const int KEY_BUFFER_MIN_SIZE = 1; -const int KEY_BUFFER_MAX_SIZE = 2; -static int g_nKeyBufferSize = KEY_BUFFER_MAX_SIZE; // Circ key buffer size -static int g_nNextInIdx = 0; -static int g_nNextOutIdx = 0; -static int g_nKeyBufferCnt = 0; - -static struct -{ - int nVirtKey; - BYTE nAppleKey; -} g_nKeyBuffer[KEY_BUFFER_MAX_SIZE]; -#endif static BYTE g_nLastKey = 0x00; @@ -87,34 +64,9 @@ static BYTE g_nLastKey = 0x00; void KeybReset() { -#ifdef KEY_OLD keywaiting = 0; -#else - g_nNextInIdx = 0; - g_nNextOutIdx = 0; - g_nKeyBufferCnt = 0; - g_nLastKey = 0x00; - - g_nKeyBufferSize = g_bKeybBufferEnable ? KEY_BUFFER_MAX_SIZE : KEY_BUFFER_MIN_SIZE; -#endif } -//=========================================================================== - -//void KeybSetBufferMode(bool bNewKeybBufferEnable) -//{ -// if(g_bKeybBufferEnable == bNewKeybBufferEnable) -// return; -// -// g_bKeybBufferEnable = bNewKeybBufferEnable; -// KeybReset(); -//} -// -//bool KeybGetBufferMode() -//{ -// return g_bKeybBufferEnable; -//} - //=========================================================================== bool KeybGetAltStatus () { @@ -329,9 +281,6 @@ void KeybQueueKeypress (int key, BOOL bASCII) // Note: VK_CANCEL is Control-Break if ((key == VK_CANCEL) && (GetKeyState(VK_CONTROL) < 0)) { -#ifndef KEY_OLD - g_nNextInIdx = g_nNextOutIdx = g_nKeyBufferCnt = 0; -#endif g_bFreshReset = true; CtrlReset(); return; @@ -360,23 +309,8 @@ void KeybQueueKeypress (int key, BOOL bASCII) keycode = asciicode[IS_APPLE2 ? 0 : 1][key - VK_LEFT]; // Convert to Apple arrow keycode lastvirtkey = key; } -#ifdef KEY_OLD + keywaiting = 1; -#else - bool bOverflow = false; - - if(g_nKeyBufferCnt < g_nKeyBufferSize) - g_nKeyBufferCnt++; - else - bOverflow = true; - - g_nKeyBuffer[g_nNextInIdx].nVirtKey = lastvirtkey; - g_nKeyBuffer[g_nNextInIdx].nAppleKey = keycode; - g_nNextInIdx = (g_nNextInIdx + 1) % g_nKeyBufferSize; - - if(bOverflow) - g_nNextOutIdx = (g_nNextOutIdx + 1) % g_nKeyBufferSize; -#endif } //=========================================================================== @@ -472,21 +406,7 @@ BYTE __stdcall KeybReadData (WORD, WORD, BYTE, BYTE, ULONG) // -#ifdef KEY_OLD return keycode | (keywaiting ? 0x80 : 0); -#else - BYTE nKey = g_nKeyBufferCnt ? 0x80 : 0; - if(g_nKeyBufferCnt) - { - nKey |= g_nKeyBuffer[g_nNextOutIdx].nAppleKey; - g_nLastKey = g_nKeyBuffer[g_nNextOutIdx].nAppleKey; - } - else - { - nKey |= g_nLastKey; - } - return nKey; -#endif } //=========================================================================== @@ -506,19 +426,9 @@ BYTE __stdcall KeybReadFlag (WORD, WORD, BYTE, BYTE, ULONG) // -#ifdef KEY_OLD keywaiting = 0; + return keycode | ((GetKeyState(lastvirtkey) < 0) ? 0x80 : 0); -#else - BYTE nKey = (GetKeyState(g_nKeyBuffer[g_nNextOutIdx].nVirtKey) < 0) ? 0x80 : 0; - nKey |= g_nKeyBuffer[g_nNextOutIdx].nAppleKey; - if(g_nKeyBufferCnt) - { - g_nKeyBufferCnt--; - g_nNextOutIdx = (g_nNextOutIdx + 1) % g_nKeyBufferSize; - } - return nKey; -#endif } //===========================================================================