From 9b6820cbea9ca362803e01c9aa3f2d64d37fd1ae Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sun, 6 Mar 2016 20:06:56 +0000 Subject: [PATCH] trs80: keyboard repeat support --- Kernel/platform-trs80/devtty.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Kernel/platform-trs80/devtty.c b/Kernel/platform-trs80/devtty.c index 81ef5063..5095297c 100644 --- a/Kernel/platform-trs80/devtty.c +++ b/Kernel/platform-trs80/devtty.c @@ -15,6 +15,7 @@ uint8_t curtty; /* output side */ uint8_t inputtty; /* input side */ static struct vt_switch ttysave[2]; static uint8_t vtbackbuf[VT_WIDTH * VT_HEIGHT]; +struct vt_repeat keyrepeat; uint8_t *vtbase[2] = { 0xF800, vtbackbuf }; @@ -242,6 +243,7 @@ uint8_t shiftkeyboard[8][8] = { }; static uint8_t capslock = 0; +static uint8_t kbd_timer; static void keydecode(void) { @@ -300,7 +302,13 @@ void kbd_interrupt(void) { newkey = 0; keyproc(); - if (keysdown < 3 && newkey) - keydecode(); + if (keysdown && keysdown < 3) { + if (newkey) { + keydecode(); + kbd_timer = keyrepeat.first; + } else if (! --kbd_timer) { + keydecode(); + kbd_timer = keyrepeat.continual; + } + } } - -- 2.34.1