Basic PS/2 keyboard driver, and ...
[lunaix-os.git] / lunaix-os / includes / lunaix / keyboard.h
diff --git a/lunaix-os/includes/lunaix/keyboard.h b/lunaix-os/includes/lunaix/keyboard.h
new file mode 100644 (file)
index 0000000..f573316
--- /dev/null
@@ -0,0 +1,72 @@
+#ifndef __LUNAIX_KEYBOARD_H
+#define __LUNAIX_KEYBOARD_H
+
+//      Lunaix Keycode
+//       15        7         0
+// key = |xxxx xxxx|xxxx xxxx|
+// key[0:7] = sequence
+// key[8:15] = category
+//   0x0: ASCII codes
+//   0x1: Function keys
+//   0x2: keypad keys
+//   0x3: Cursor keys (arrow keys)
+//   0x4: Modifier keys
+//   0xff: Other keys (Un-categorized)
+
+typedef unsigned short kbd_keycode;
+
+#define FN_KEY  0x0100
+#define KEYPAD  0x0200
+#define CURSOR  0x0300
+#define MODIFR  0x0400
+#define OTHERS  0xff00
+
+#define ON_KEYPAD(x)    ((x & 0xff) | KEYPAD)
+
+// backspace key
+#define KEY_BS  (0x08)
+
+// enter/return key
+#define KEY_LF  (0x0a)
+
+#define KEY_HTAB (0x9)
+#define KEY_SPACE (0x20)
+#define KEY_ESC (0x1b)
+
+#define KEY_F1  (0x00 | FN_KEY)
+#define KEY_F2  (0x01 | FN_KEY)
+#define KEY_F3  (0x02 | FN_KEY)
+#define KEY_F4  (0x03 | FN_KEY)
+#define KEY_F5  (0x04 | FN_KEY)
+#define KEY_F6  (0x05 | FN_KEY)
+#define KEY_F7  (0x06 | FN_KEY)
+#define KEY_F8  (0x07 | FN_KEY)
+#define KEY_F9  (0x08 | FN_KEY)
+#define KEY_F10 (0x09 | FN_KEY)
+#define KEY_F11 (0x0a | FN_KEY)
+#define KEY_F12 (0x0b | FN_KEY)
+#define KEY_CAPSLK (0x0c | FN_KEY)
+#define KEY_NUMSLK (0x0d | FN_KEY)
+#define KEY_SCRLLK (0x0e | FN_KEY)
+
+#define KEY_PG_UP       (0x0 | OTHERS)
+#define KEY_PG_DOWN     (0x1 | OTHERS)
+#define KEY_INSERT      (0x2 | OTHERS)
+#define KEY_DELETE      (0x3 | OTHERS)
+#define KEY_HOME        (0x4 | OTHERS)
+#define KEY_END         (0x5 | OTHERS)
+#define KEY_PAUSE       (0x6 | OTHERS)
+
+#define KEY_LEFT        (0x0 | CURSOR)
+#define KEY_RIGHT       (0x1 | CURSOR)
+#define KEY_UP          (0x2 | CURSOR)
+#define KEY_DOWN        (0x3 | CURSOR)
+
+#define KEY_LSHIFT       (0x0 | MODIFR)
+#define KEY_RSHIFT       (0x1 | MODIFR)
+#define KEY_LCTRL        (0x2 | MODIFR)
+#define KEY_RCTRL        (0x3 | MODIFR)
+#define KEY_LALT         (0x4 | MODIFR)
+#define KEY_RALT         (0x5 | MODIFR)
+
+#endif /* __LUNAIX_KEYBOARD_H */