diff --git a/src/idt.c b/src/idt.c index 7444d1f..de279ae 100644 --- a/src/idt.c +++ b/src/idt.c @@ -10,7 +10,7 @@ void idt_set() { idtr.base = (uint32) &idt; idtr.limit = sizeof(idt) * sizeof(idt_entry_t) - 1; __asm__ __volatile__("lidt %0" : : "m" (idtr)); -// __asm__ __volatile__("sti"); //TODO: fixme, make this fucking stinking sti work + __asm__ __volatile__("sti"); //TODO: fixme, make this fucking stinking sti work } diff --git a/src/isr.c b/src/isr.c index 8fc142e..4447a73 100644 --- a/src/isr.c +++ b/src/isr.c @@ -4,6 +4,7 @@ #include "../include/screen.h" void isr_custom(); +void default_handler(); void isr_install() { idt_set_descriptor(0, (uint32)isr0, 0x8E); @@ -38,12 +39,22 @@ void isr_install() { idt_set_descriptor(29, (uint32)isr29, 0x8E); idt_set_descriptor(30, (uint32)isr30, 0x8E); idt_set_descriptor(31, (uint32)isr31, 0x8E); + + for(int i = 32; i < 255; i++) + idt_set_descriptor(i, (uint32)default_handler, 0x8E); + idt_set_descriptor(0x21, (uint32)isr_custom, 0x8E); + idt_set(); // Load with ASM terminal_writestring("isr_install done\n"); } +void default_handler() +{ + +} + void isr_custom() { terminal_writestring("YOOOOO!!!!!! I LOVE KATYA!!!!"); diff --git a/src/kernel.c b/src/kernel.c index 7f4c34a..593a099 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -12,8 +12,12 @@ void kmain() { terminal_initialize(); printf("KatauOS booting up\n"); - pic_remap(0x20, 0x28); isr_install(); + pic_remap(0x20, 0x28); + //only enable keyboard IRQs + outb(0x21,0xfd); + outb(0xa1,0xff); + printf("Kernel init sequence completed\n"); char yooo[256] = "heheh";