mirror of
https://github.com/AppleWin/AppleWin.git
synced 2024-09-29 06:55:15 +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 "YamlHelper.h"
|
||||||
#include "Video.h" // Needed by TK3000 //e, to refresh the frame at each |Mode| change
|
#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] = {
|
static BYTE asciicode[2][10] = {
|
||||||
{0x08,0x0D,0x15,0x2F,0x00,0x00,0x00,0x00,0x00,0x00},
|
{0x08,0x0D,0x15,0x2F,0x00,0x00,0x00,0x00,0x00,0x00},
|
||||||
{0x08,0x0B,0x15,0x0A,0x00,0x00,0x00,0x00,0x00,0x7F}
|
{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 int lastvirtkey = 0; // Current PC keycode
|
||||||
static BYTE keycode = 0; // Current Apple keycode
|
static BYTE keycode = 0; // Current Apple keycode
|
||||||
|
|
||||||
#ifdef KEY_OLD
|
|
||||||
// Original
|
|
||||||
static BOOL keywaiting = 0;
|
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;
|
static BYTE g_nLastKey = 0x00;
|
||||||
|
|
||||||
@ -87,34 +64,9 @@ static BYTE g_nLastKey = 0x00;
|
|||||||
|
|
||||||
void KeybReset()
|
void KeybReset()
|
||||||
{
|
{
|
||||||
#ifdef KEY_OLD
|
|
||||||
keywaiting = 0;
|
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 ()
|
bool KeybGetAltStatus ()
|
||||||
{
|
{
|
||||||
@ -329,9 +281,6 @@ void KeybQueueKeypress (int key, BOOL bASCII)
|
|||||||
// Note: VK_CANCEL is Control-Break
|
// Note: VK_CANCEL is Control-Break
|
||||||
if ((key == VK_CANCEL) && (GetKeyState(VK_CONTROL) < 0))
|
if ((key == VK_CANCEL) && (GetKeyState(VK_CONTROL) < 0))
|
||||||
{
|
{
|
||||||
#ifndef KEY_OLD
|
|
||||||
g_nNextInIdx = g_nNextOutIdx = g_nKeyBufferCnt = 0;
|
|
||||||
#endif
|
|
||||||
g_bFreshReset = true;
|
g_bFreshReset = true;
|
||||||
CtrlReset();
|
CtrlReset();
|
||||||
return;
|
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
|
keycode = asciicode[IS_APPLE2 ? 0 : 1][key - VK_LEFT]; // Convert to Apple arrow keycode
|
||||||
lastvirtkey = key;
|
lastvirtkey = key;
|
||||||
}
|
}
|
||||||
#ifdef KEY_OLD
|
|
||||||
keywaiting = 1;
|
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);
|
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;
|
keywaiting = 0;
|
||||||
|
|
||||||
return keycode | ((GetKeyState(lastvirtkey) < 0) ? 0x80 : 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…
Reference in New Issue
Block a user