X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;ds=sidebyside;f=src%2Fkmain.c;h=2404033f70121371f2f8d8f2342afc0ad5dca114;hb=c5698ff9776ac76cd2243525177c35b0d12855e0;hp=6996908fd3cb80633fa35d52d96e309b829cf788;hpb=a2f94f569a4c99204de02814a20098a71527e913;p=bootcensus diff --git a/src/kmain.c b/src/kmain.c index 6996908..2404033 100644 --- a/src/kmain.c +++ b/src/kmain.c @@ -1,20 +1,47 @@ +/* +pcboot - bootable PC demo/game kernel +Copyright (C) 2018 John Tsiombikas + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY, without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ #include +#include #include #include "segm.h" #include "intr.h" +#include "mem.h" #include "keyb.h" #include "timer.h" #include "contty.h" +#include "video.h" +#include "pci.h" +#include "vbetest.h" + -void set_mode13h(void); void logohack(void); void pcboot_main(void) { init_segm(); init_intr(); - kb_init(); + con_init(); + kb_init(); + + init_mem(); + + init_pci(); /* initialize the timer */ init_timer(); @@ -28,9 +55,16 @@ void pcboot_main(void) halt_cpu(); while((c = kb_getkey()) >= 0) { - if(c >= KB_F1 && c <= KB_F12) { - set_mode13h(); + switch(c) { + case KB_F1: + set_vga_mode(0x13); logohack(); + set_vga_mode(3); + break; + + case KB_F2: + vbetest(); + break; } if(isprint(c)) { printf("key: %d '%c' \n", c, (char)c);