@@ -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 |