Keyboard in progress
This commit is contained in:
parent
516a92973b
commit
f005894088
|
@ -26,9 +26,30 @@
|
||||||
#include <kernel/iomisc.h>
|
#include <kernel/iomisc.h>
|
||||||
|
|
||||||
extern void KeybIsr(void);
|
extern void KeybIsr(void);
|
||||||
|
extern void IdtRegisterIrq(void (*isr)(void), uchar irq, uchar flags);
|
||||||
|
|
||||||
void KeybSetup(void)
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue