From 2ae431b4fb4460cc222f059a343dd8ecade8e1ea Mon Sep 17 00:00:00 2001 From: Nic Gaffney Date: Fri, 16 Feb 2024 21:17:51 -0600 Subject: Forgot to add these last time womp womp --- src/kernel/keyboard/isr.c | 8 ++++++-- src/kernel/keyboard/pic.c | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'src/kernel/keyboard') 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 @@ -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); } diff --git a/src/kernel/keyboard/pic.c b/src/kernel/keyboard/pic.c index e1b4fb3..2161c93 100644 --- a/src/kernel/keyboard/pic.c +++ b/src/kernel/keyboard/pic.c @@ -7,6 +7,11 @@ #define PIC2_COMMAND PIC2 #define PIC2_DATA (PIC2 + 1) +// Gonna be honest i just kinda yoinked most of this +// from the wiki, i am gonna have to rewrite these +// sooner rather than later if i want to actually +// learn. + void PIC_init(int offset1, int offset2) { uint8_t a1, a2; -- cgit v1.2.3