mirror of
https://github.com/AppleWin/AppleWin.git
synced 2025-02-26 21:30:36 +00:00
Remove stale/unused key buffering code
This commit is contained in:
parent
146b6ebad3
commit
77cbfbec99
@ -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
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
Loading…
x
Reference in New Issue
Block a user