@ -304,17 +304,16 @@ uint8_t m0110_recv_key(void)
return key;
}
key = instant(); // Use INSTANT for better response. Should be INQUIRY ?
switch (key) {
switch (key & 0x7F) {
case M0110_KEYPAD:
// Pad/Arrow keys
return (M0110_RAW2SCAN(instant()) | M0110_KEYPAD_OFFSET);
break;
case M0110_SHIFT_MAKE:
case M0110_SHIFT_BREAK:
case M0110_SHIFT:
key2 = instant();
if (key2 == M0110_KEYPAD) {
key3 = instant();
switch (key3) {
switch (key3 & 0x7F) {
case M0110_ARROW_UP:
case M0110_ARROW_DOWN:
case M0110_ARROW_LEFT:
@ -65,8 +65,7 @@ POSSIBILITY OF SUCH DAMAGE.
#define M0110_KEYPAD 0x79
#define M0110_TEST_ACK 0x7D
#define M0110_TEST_NAK 0x77
#define M0110_SHIFT_MAKE 0x71
#define M0110_SHIFT_BREAK 0xF1
#define M0110_SHIFT 0x71
#define M0110_ARROW_UP 0x1B
#define M0110_ARROW_DOWN 0x11
#define M0110_ARROW_LEFT 0x0D