From dc164927e71d760a41494ab1edf8e3deeda401db Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Wed, 20 Aug 2014 15:55:03 +0200 Subject: started implementing floppy driver etc. --- kernel/kernel.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'kernel/kernel.c') diff --git a/kernel/kernel.c b/kernel/kernel.c index b0bf71d..964a8f5 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -1,25 +1,28 @@ #include "kernel.h" // general kernel config & includes #include "console.h" // this will allow us to write to screen +#include "x86.h" // TODO: cleanup . how can i compile it without the includes!?? /////// -void int_kb_handler(); +void int_def_handler(); void int_clock_handler(); +void int_kb_handler(); +void int_floppy_handler(); + ////////// KERNEL MAIN///// ///// // // test handler void int_test_handler() { - __asm__("pusha"); + X86_IRQ_BEGIN scr_put_string("inside software interrupt handler 88"); - __asm__("popa"); - __asm__("leave"); - __asm__("iret"); + X86_IRQ_END + } @@ -50,15 +53,20 @@ void kernel_main() // setup custom interrupts // remember that we shifted all interrupts with the pic by 32 // so clock = 32 (irq 0) - // keyboard = 22 (irq 1) + // keyboard = 33 (irq 1) + // floppy = 38 (irq 6) // etc.. + // install PIT interrupt handler int_install_ir(32, 0b10001110, 0x08,&int_clock_handler); // install keyboard interrupt handler int_install_ir(33, 0b10001110, 0x08,&int_kb_handler); + // install floppy interrupt handler + int_install_ir(38, 0b10001110, 0x08,&int_floppy_handler); + // install test software interrupt handler int_install_ir(88, 0b10001110, 0x08,&int_test_handler); @@ -68,8 +76,12 @@ void kernel_main() // pci pci_init(); + + // floppy + floppy_init(); scr_put_string_nl(""); + //init shell shell_init(); -- cgit v1.2.3