+ uint8_t scancode = inb(PS2_DATA_PORT);
+ if (was_released) {
+ was_released = 0;
+ return;
+ }
+
+ if (scancode == 0xf0) {
+ was_released = 1;
+ uint8_t scancode = inb(PS2_DATA_PORT);
+ if (scancode == 0x12) {
+ is_caps = 0;
+ }
+ return;
+ } else {
+ if (scancode == 0x12) {
+ is_caps = 1;
+ return;
+ }
+ if (!is_caps) {
+ kprintc(scancodes[scancode], 0);
+ } else {
+ kprintc(scancodes[scancode] - ('a'-'A'), 0);
+ }
+ }