- nicer output when typing
This commit is contained in:
parent
faccbf8a59
commit
6c126e96f0
1 changed files with 11 additions and 5 deletions
|
@ -55,8 +55,8 @@ static const unsigned char kbdus[128] = { 0, 27, '1', '2', '3', '4', '5', '6', '
|
|||
'\\', 'z', 'x', 'c', 'v', 'b', 'n', /* 49 */
|
||||
'm', ',', '.', '/', 0, /* Right shift */
|
||||
'*', 0, /* Alt */
|
||||
' ', /* Space bar */
|
||||
0, /* Caps lock */
|
||||
' ', /* 57 - Space bar */
|
||||
0, /* 58 - Caps lock */
|
||||
0, /* 59 - F1 key ... > */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, /* < ... F10 */
|
||||
0, /* 69 - Num lock */
|
||||
|
@ -111,16 +111,22 @@ static void keyboard_handler(struct state *r)
|
|||
* held. If shift is held using the larger lookup table,
|
||||
* you would add 128 to the scancode when you look for it
|
||||
*/
|
||||
kputchar(kbdus[scancode]);
|
||||
if (kb_buffer.size <= kb_buffer.maxsize && kb_buffer.buffer != NULL) {
|
||||
if (scancode == 14 && kb_buffer.size != 0) {
|
||||
kb_buffer.size--;
|
||||
if (scancode == 14) {
|
||||
if (kb_buffer.size != 0) {
|
||||
kb_buffer.size--;
|
||||
kputchar(kbdus[scancode]);
|
||||
kputchar(kbdus[57]);
|
||||
kputchar(kbdus[scancode]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
kputchar(kbdus[scancode]);
|
||||
memcpy(kb_buffer.buffer + kb_buffer.size, &kbdus[scancode], 1);
|
||||
kb_buffer.size++;
|
||||
}
|
||||
if (scancode == 28 || scancode == 15 || kb_buffer.size >= kb_buffer.maxsize) {
|
||||
kputchar(kbdus[scancode]);
|
||||
wakeup_task(kb_buffer.tid);
|
||||
reschedule();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue