Add keyboard scan code enum
This commit is contained in:
parent
05d6b3d223
commit
49b5067619
|
@ -23,10 +23,12 @@ const char keyb_codes[128] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
byte keyb_matrix[8], keyb_key;
|
byte keyb_matrix[8];
|
||||||
|
|
||||||
|
KeyScanCode keyb_key;
|
||||||
static byte keyb_pmatrix[8];
|
static byte keyb_pmatrix[8];
|
||||||
|
|
||||||
bool key_pressed(char code)
|
bool key_pressed(KeyScanCode code)
|
||||||
{
|
{
|
||||||
return !(keyb_matrix[code >> 3] & (1 << (code & 7)));
|
return !(keyb_matrix[code >> 3] & (1 << (code & 7)));
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,10 +23,83 @@
|
||||||
#define KEY_F6 (139)
|
#define KEY_F6 (139)
|
||||||
#define KEY_F8 (140)
|
#define KEY_F8 (140)
|
||||||
|
|
||||||
#define KEY_CODE_CSR_RIGHT (2)
|
enum KeyScanCode
|
||||||
#define KEY_CODE_CSR_DOWN (7)
|
{
|
||||||
#define KEY_CODE_LSHIFT (15)
|
KSCAN_DEL,
|
||||||
#define KEY_CODE_RSHIFT (48)
|
KSCAN_RETURN,
|
||||||
|
KSCAN_CSR_RIGHT,
|
||||||
|
KSCAN_F7,
|
||||||
|
KSCAN_F1,
|
||||||
|
KSCAN_F3,
|
||||||
|
KSCAN_F5,
|
||||||
|
KSCAN_CSR_DOWN,
|
||||||
|
|
||||||
|
KSCAN_3,
|
||||||
|
KSCAN_W,
|
||||||
|
KSCAN_A,
|
||||||
|
KSCAN_4,
|
||||||
|
KSCAN_Z,
|
||||||
|
KSCAN_S,
|
||||||
|
KSCAN_E,
|
||||||
|
KSCAN_SHIFT_LOCK,
|
||||||
|
|
||||||
|
KSCAN_5,
|
||||||
|
KSCAN_R,
|
||||||
|
KSCAN_D,
|
||||||
|
KSCAN_6,
|
||||||
|
KSCAN_C,
|
||||||
|
KSCAN_F,
|
||||||
|
KSCAN_T,
|
||||||
|
KSCAN_X,
|
||||||
|
|
||||||
|
KSCAN_7,
|
||||||
|
KSCAN_Y,
|
||||||
|
KSCAN_G,
|
||||||
|
KSCAN_8,
|
||||||
|
KSCAN_B,
|
||||||
|
KSCAN_H,
|
||||||
|
KSCAN_U,
|
||||||
|
KSCAN_V,
|
||||||
|
|
||||||
|
KSCAN_9,
|
||||||
|
KSCAN_I,
|
||||||
|
KSCAN_J,
|
||||||
|
KSCAN_0,
|
||||||
|
KSCAN_M,
|
||||||
|
KSCAN_K,
|
||||||
|
KSCAN_O,
|
||||||
|
KSCAN_N,
|
||||||
|
|
||||||
|
KSCAN_PLUS,
|
||||||
|
KSCAN_P,
|
||||||
|
KSCAN_L,
|
||||||
|
KSCAN_MINUS,
|
||||||
|
KSCAN_DOT,
|
||||||
|
KSCAN_COLON,
|
||||||
|
KSCAN_AT,
|
||||||
|
KSCAN_COMMA,
|
||||||
|
|
||||||
|
KSCAN_POUND,
|
||||||
|
KSCAN_STAR,
|
||||||
|
KSCAN_SEMICOLON,
|
||||||
|
KSCAN_HOME,
|
||||||
|
KSCAN_RSHIFT,
|
||||||
|
KSCAN_EQUAL,
|
||||||
|
KSCAN_ARROW_UP,
|
||||||
|
KSCAN_SLASH,
|
||||||
|
|
||||||
|
KSCAN_1,
|
||||||
|
KSCAN_ARROW_LEFT,
|
||||||
|
KSCAN_CONTROL,
|
||||||
|
KSCAN_2,
|
||||||
|
KSCAN_SPACE,
|
||||||
|
KSCAN_COMMODORE,
|
||||||
|
KSCAN_Q,
|
||||||
|
KSCAN_STOP,
|
||||||
|
|
||||||
|
KSCAN_QUAL_SHIFT = 0x40,
|
||||||
|
KSCAN_QUAL_DOWN = 0x80
|
||||||
|
};
|
||||||
|
|
||||||
// map of keyboard codes to PETSCII, first 64 without shift
|
// map of keyboard codes to PETSCII, first 64 without shift
|
||||||
// second 64 with shift
|
// second 64 with shift
|
||||||
|
@ -36,14 +109,15 @@ extern const char keyb_codes[128];
|
||||||
// current status of key matrix
|
// current status of key matrix
|
||||||
extern byte keyb_matrix[8];
|
extern byte keyb_matrix[8];
|
||||||
|
|
||||||
// current key
|
// current key in scan code - the top level bit KSCAN_QUAL_DOWN is
|
||||||
extern byte keyb_key;
|
// used to indicate a key is pressed, so 0 is no key
|
||||||
|
extern KeyScanCode keyb_key;
|
||||||
|
|
||||||
// poll keyboard matrix
|
// poll keyboard matrix
|
||||||
|
|
||||||
void keyb_poll(void);
|
void keyb_poll(void);
|
||||||
|
|
||||||
inline bool key_pressed(char code);
|
inline bool key_pressed(KeyScanCode code);
|
||||||
|
|
||||||
inline bool key_shift(void);
|
inline bool key_shift(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue