29 lines
871 B
C
29 lines
871 B
C
#include "../drivers/vga.h"
|
|
#include "../drivers/serial.h"
|
|
#include "../drivers/timer.h"
|
|
#include "gdt.h"
|
|
#include "idt.h"
|
|
#include "pic.h"
|
|
#include "logger.h"
|
|
|
|
void kernel_main(void) {
|
|
log_info(LOG_NORMAL, "Initializing serial...");
|
|
serial_init();
|
|
log_info(LOG_NORMAL, "Initializing VGA...");
|
|
vga_init();
|
|
log_info(LOG_NORMAL, "Setting color white on black");
|
|
vga_set_color(VGA_COLOR_WHITE, VGA_COLOR_BLACK);
|
|
log_info(LOG_NORMAL, "Initializing GDT...");
|
|
gdt_init();
|
|
log_info(LOG_NORMAL, "Initializing IDT...");
|
|
idt_init();
|
|
log_info(LOG_NORMAL, "Remapping PIC...");
|
|
pic_remap(32, 40);
|
|
log_info(LOG_NORMAL, "Unmasking IRQ 0... (timer)");
|
|
pic_clear_mask(0);
|
|
log_info(LOG_NORMAL, "Registering timer at 100Hz");
|
|
timer_init(100);
|
|
log_info(LOG_NORMAL, "Enabling IRQ...");
|
|
__asm__ __volatile__("sti");
|
|
while (1);
|
|
}
|