#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_def_handler(); void int_clock_handler(); void int_kb_handler(); void int_floppy_handler(); ////////// KERNEL MAIN///// ///// // // test handler void int_test_handler() { X86_IRQ_BEGIN scr_put_string("inside software interrupt handler 88"); sleep(30); X86_IRQ_END } void kernel_main() { // clear console scr_clear(); // hello message scr_put_string_nl(KERNEL_HELLO_MESSAGE); scr_put_string_nl(""); //pit config //timer_init(); // we know that here the bootloader placed the mamory map! mem_init(0x7c00+0x400,*((uint16_t *)(0x7c00+0x600))); //mem_init(0x9000); // we know that here the bootloader placed the mamory map! vmem_init(); // init and interrupt decriptor table int_init(0x08); int_install(); // setup custom interrupts // remember that we shifted all interrupts with the pic by 32 // so clock = 32 (irq 0) // 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); // now we can enable interrupts back again int_enable(); scr_put_string_nl("interrupts: Interrupts are up and running"); // pci pci_init(); // vesa init vesa_init(0x8300,0x8400); // floppy //floppy_init(); scr_put_string_nl(""); //init shell shell_init(); // kernel main loop uint8_t t=0; // while(1) // { //} while(1) { int i; int j; for(i=0;i<1024;i++) for(j=0;j<768;j++) { PutPixel(i,j,t); } t+=125; } }