#include #include #include #include #include #include #include #include #include #include "kprint.h" char *msg_booted = "Booted Successfully!\n"; void kmain(multiboot_info_t *multiboot_info) { isr_install(); init_mmap((struct multiboot_mmap_entry *) multiboot_info->mmap_addr, multiboot_info->mmap_length / sizeof(struct multiboot_mmap_entry)); vga_clear_screen(); vga_clear_screen(' ', VGA_WHITE | (VGA_GRAY << VGA_SHIFT_BG)); kprint_register(vga_kprint); serial_init(); kprint_register(serial_kprint); // vga_print_string(msg_booted, VGA_WHITE | (VGA_DARK_GRAY << VGA_SHIFT_BG)); kprint(msg_booted); kprint((char *) multiboot_info->boot_loader_name); multiboot_memory_map_t *fe = multiboot_info->mmap_addr; // port_byte_out(0x3d4, 14); // int pos = port_byte_in(0x3d5); // pos <<= 8; // // port_byte_out(0x3d4, 15); // pos += port_byte_in(0x3d5); asm volatile("sti"); init_timer(50); init_keyboard(); print_mmap_info(); // vga_set_raw(pos * 2, 'X'); // vga_set_raw(pos * 2 + 1, 0xf); do {} while (1); }