diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2017-06-14 20:48:16 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2017-06-14 20:48:16 +0200 |
commit | 8fb9efc08388d3a866cfdf911b07e372de24b556 (patch) | |
tree | 3afaf07e27fb37bd5a88b187d505137abdaa817b /src/kernel/kernel.c | |
parent | 7a3b38c6462587657f20d684a833f0264de230b5 (diff) | |
download | abaos-8fb9efc08388d3a866cfdf911b07e372de24b556.tar.gz abaos-8fb9efc08388d3a866cfdf911b07e372de24b556.tar.bz2 |
got switch to graphical VGA mode working
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 |