3#include "../kernel/interruption_tables.h"
4#include "../kernel/interruptions.h"
9static u_byte RECOGNIZED_CODES [] = {0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
10 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14,
11 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1e, 0x1f,
12 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29,
13 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34,
15static u_byte RECOGNIZED_CHARS [] = {
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'0',
'-',
16 '+',
'\b',
'\t',
'Q',
'W',
'E',
'R',
'T',
'Y',
'U',
'I',
17 'O',
'P',
'[',
']',
'\n',
'A',
'S',
'D',
'F',
'G',
'H',
18 'J',
'K',
'L',
';',
'\'',
'`',
'\\',
'Z',
'X',
'C',
'V',
19 'B',
'N',
'M',
',',
'.',
'/',
' '};
21static void print_letter(u_byte scancode) {
22 for (
int i = 0; i < 51; ++i) {
25 if (scancode <= 0x7f);
29static void keyboard_callback(
registers* regs) {
31 u_byte scancode = port_byte_in(0x60);
33 print_letter(scancode);
38 set_interrupt_handler(IRQ1, keyboard_callback);