Add preliminary PS/2 keyboard support
diff --git a/src/kbd.h b/src/kbd.h
new file mode 100644
index 0000000..98d6fd7
--- /dev/null
+++ b/src/kbd.h
@@ -0,0 +1,77 @@
+#pragma once
+
+#include "kint.h"
+
+struct kbd_scan_codes
+{
+ bool ascii;
+ int symbol;
+ int up_symbol;
+ uchar prefix;
+ bool brk;
+};
+
+enum kbd_keys
+{
+ FIRST_KBD_KEY = 129,
+ KBD_BACKSPACE = 129,
+ KBD_TAB,
+ KBD_CAPS_LOCK,
+ KBD_ENTER,
+ KBD_LEFT_SHIFT,
+ KBD_RIGHT_SHIFT,
+ KBD_LEFT_CTRL,
+ KBD_LEFT_ALT,
+ KBD_SPACEBAR,
+ KBD_RIGHT_ALT,
+ KBD_RIGHT_CTRL,
+ KBD_INSERT,
+ KBD_DELETE,
+ KBD_LEFT_ARROW,
+ KBD_HOME,
+ KBD_END,
+ KBD_UP_ARROW,
+ KBD_DOWN_ARROW,
+ KBD_RIGHT_ARROW,
+ KBD_NUM_LOCK,
+ KBD_KEYPAD_0,
+ KBD_KEYPAD_1,
+ KBD_KEYPAD_2,
+ KBD_KEYPAD_3,
+ KBD_KEYPAD_4,
+ KBD_KEYPAD_5,
+ KBD_KEYPAD_6,
+ KBD_KEYPAD_7,
+ KBD_KEYPAD_8,
+ KBD_KEYPAD_9,
+ KBD_KEYPAD_DOT,
+ KBD_KEYPAD_PLUS,
+ KBD_KEYPAD_MINUS,
+ KBD_KEYPAD_TIMES,
+ KBD_KEYPAD_DIV,
+ KBD_KEYPAD_ENTER,
+ KBD_ESC,
+ KBD_F1,
+ KBD_F2,
+ KBD_F3,
+ KBD_F4,
+ KBD_F5,
+ KBD_F6,
+ KBD_F7,
+ KBD_F8,
+ KBD_F9,
+ KBD_F10,
+ KBD_F11,
+ KBD_F12,
+ KBD_PRINT_SCREEN,
+ KBD_SCROLL_LOCK,
+ KBD_PAUSE_BREAK,
+ KBD_PAGE_UP,
+ KBD_PAGE_DOWN,
+ LAST_KBD_KEY,
+};
+
+extern const struct kbd_scan_codes scan_code_set_3[0xff];
+extern const struct kbd_scan_codes scan_code_set_1[0xff];
+extern bool pressed_keys[LAST_KBD_KEY];
+extern char special_key_mappings[LAST_KBD_KEY - FIRST_KBD_KEY];