46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
#include "../libc/stdio.h"
|
|
#include "../drivers/serial.h"
|
|
#include "gdt.h"
|
|
#include "idt.h"
|
|
#include "system.h"
|
|
|
|
char* ascii_title =
|
|
"\n"
|
|
" oooooooooo o888 oooo ooooooo oooooooo8\n"
|
|
" 888 888 888 ooooooo oo oooooo 888 ooooo o888 888o 888 \n"
|
|
" 888oooo88 888 ooooo888 888 888 888o888 888 888 888oooooo \n"
|
|
" 888 888 888 888 888 888 888 8888 88o 888o o888 888\n"
|
|
" o888ooo888 o888o 88ooo88 8o o888o o888o o888o o888o 88ooo88 o88oooo888\n\n"
|
|
" --------------------------------- v0.3.31 --------------------------------\n\n";
|
|
|
|
int kmain(int retvalue)
|
|
{
|
|
|
|
init_serial();
|
|
log("serial connection established", 3);
|
|
gdt_install();
|
|
log("initialized GDT entries", 2);
|
|
idt_install();
|
|
log("initialized IDT", 2);
|
|
isr_install();
|
|
log("initialized ISRs", 2);
|
|
irq_install();
|
|
__asm__ __volatile__("sti");
|
|
log("initialized IRQs", 2),
|
|
|
|
log("kernel started", 2);
|
|
|
|
clear();
|
|
|
|
colorputs(ascii_title, 10);
|
|
colorputs(" by @xamidev - star the repo for a cookie!\n\n", 14);
|
|
|
|
// TODO: Grub modules to load programs
|
|
|
|
timer_install();
|
|
keyboard_install();
|
|
shell_install();
|
|
|
|
return retvalue;
|
|
}
|