1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-04-26 19:17:52 +00:00

Adds virtual keys for F1, F2, etc.

This commit is contained in:
Thomas Harte
2020-03-05 21:01:30 -05:00
parent 3758ec79ac
commit 462a76dd96
3 changed files with 45 additions and 7 deletions
+30 -7
View File
@@ -115,13 +115,36 @@ class ConcreteMachine:
}
void set_key_state(uint16_t key, bool isPressed) final {
if(key == KeyBreak) {
m6502_.set_reset_line(isPressed);
} else {
if(isPressed)
key_states_[key >> 4] |= key&0xf;
else
key_states_[key >> 4] &= ~(key&0xf);
switch(key) {
default:
if(isPressed)
key_states_[key >> 4] |= key&0xf;
else
key_states_[key >> 4] &= ~(key&0xf);
break;
case KeyBreak:
m6502_.set_reset_line(isPressed);
break;
#define ShiftedKey(source, dest) \
case source: \
set_key_state(KeyShift, isPressed); \
set_key_state(dest, isPressed); \
break;
ShiftedKey(KeyF1, Key1);
ShiftedKey(KeyF2, Key2);
ShiftedKey(KeyF3, Key3);
ShiftedKey(KeyF4, Key4);
ShiftedKey(KeyF5, Key5);
ShiftedKey(KeyF6, Key6);
ShiftedKey(KeyF7, Key7);
ShiftedKey(KeyF8, Key8);
ShiftedKey(KeyF9, Key9);
ShiftedKey(KeyF0, Key0);
#undef ShiftedKey
}
}