From f00589408841a1d5cb66fabf04d8632849968672 Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Wed, 24 Apr 2019 11:55:15 +0200 Subject: [PATCH] Keyboard in progress --- kaleid/kernel/io/keyb.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/kaleid/kernel/io/keyb.c b/kaleid/kernel/io/keyb.c index e676302..c0c5f50 100644 --- a/kaleid/kernel/io/keyb.c +++ b/kaleid/kernel/io/keyb.c @@ -26,9 +26,30 @@ #include extern void KeybIsr(void); - +extern void IdtRegisterIrq(void (*isr)(void), uchar irq, uchar flags); void KeybSetup(void) { - CpuRegisterIrq(KeybIsr, 0x21, 0x8E); + IdtRegisterIrq(KeybIsr, 0x21, 0x8E); } + + +uchar KeybHandler(void) +{ + uchar status; + uchar code; + + // write EOI + outb(0x20, 0x20); + + status = IoReadByteFromPort(KeybStatusPort); + + if (status & 0x01) { + code = IoReadByteFromPort(KeybDataPort); + + if(code < 0) return 0; + + return code; + } +} +