diff options
| author | Nic Gaffney <gaffney_nic@protonmail.com> | 2024-02-16 21:17:51 -0600 |
|---|---|---|
| committer | Nic Gaffney <gaffney_nic@protonmail.com> | 2024-02-16 21:17:51 -0600 |
| commit | 2ae431b4fb4460cc222f059a343dd8ecade8e1ea (patch) | |
| tree | 396c0e03feffcf8721ea6524d7ac500e84fefab2 /src/kernel/keyboard/isr.c | |
| parent | a4177529a7834856f16b0edbe4d126bf03742eb1 (diff) | |
| download | gftos-2ae431b4fb4460cc222f059a343dd8ecade8e1ea.tar.gz | |
Forgot to add these last time womp womp
Diffstat (limited to 'src/kernel/keyboard/isr.c')
| -rw-r--r-- | src/kernel/keyboard/isr.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/kernel/keyboard/isr.c b/src/kernel/keyboard/isr.c index 223bf9f..de7415c 100644 --- a/src/kernel/keyboard/isr.c +++ b/src/kernel/keyboard/isr.c @@ -1,4 +1,5 @@ #include "asm.h" +#include "exceptions.h" #include "print.h" #include "str.h" #include <stdint.h> @@ -14,8 +15,7 @@ void keyboard_handler() { unsigned char sc = inb(0x60); uint8_t isheld = shift_held != 0; - char c = ((isheld | capslock) & !(isheld & capslock)) ? SCANCODES[sc] - : scancodes[sc]; + char c = (isheld ^ capslock) ? SCANCODES[sc] : scancodes[sc]; if (capslock & (!isheld) && !isalpha(c)) c = scancodes[sc]; @@ -45,5 +45,9 @@ void keyboard_handler() { capslock = !capslock; break; } + + if (shift_held && sc == 0xE0) + panic("Test panic"); + outb(0x20, 0x20); } |
