diff options
Diffstat (limited to 'src/kernel/kernel.c')
-rw-r--r-- | src/kernel/kernel.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/kernel/kernel.c b/src/kernel/kernel.c index 3c520d6..41c2b4a 100644 --- a/src/kernel/kernel.c +++ b/src/kernel/kernel.c @@ -17,6 +17,9 @@ #include "kernel.h" +// TODO: move away from main! +#include "drivers/video/vga.h" + static jmp_buf panic_jmp_buf; static void handle_keyboard_event( keyboard_event_t *event, void *context ); @@ -93,14 +96,27 @@ void kernel_main( void ) pci_controller_init( &pci_controller ); pci_controller_scan_and_register( &pci_controller, &driver_manager, &interrupt ); + // TODO: move away in pci.c or in a dynamic loader module later + vga_t vga; + vga_init( &vga, NULL ); + driver_manager_add_driver( &driver_manager, (driver_t *)&vga ); + puts( "Activating drivers" ); driver_manager_activate_all( &driver_manager ); + if( vga_set_mode( &vga, vga_make_mode( 320, 200, 8 ) ) ) { +// vga_set_pixel( &vga, 1, 1, vga_make_RGB( 0x00, 0x00, 0xA8 ) ); + vga_draw_rectangle( &vga, 0, 0, 319, 199, vga_make_RGB( 0x00, 0x00, 0xA8 ) ); + } + + // TODO: later, disable VGA text console in stdio and add the + // graphical one.. + puts( "Enabling interrupt handing now.." ); interrupts_enable( ); puts( "Running.." ); - + // endless loop doing nothing, later we have to get events // here from queues and for instance print characters received // from the keyboard to stdout |