#include "multiboot.h" #include "vga.h" // static inline void outb(unsigned int port, unsigned char val) { // asm volatile ("outb %0, %1" : : "a"(val), "Nd"(port) : "memory"); // } void kmain (unsigned int mbootmagick, multiboot_info_t* mbootinfo) { // Cursor disabling // TODO: outb function //outb(0x3D4, 0x0A); //outb(0x3D5, 0x20); //cls(); vga_init(VGA_COLOR_GREY, VGA_COLOR_BLACK); vga_write_line("=== KoalemOS ==="); vga_write("Checking multiboot loader: "); // Check multiboot header if (mbootmagick != MULTIBOOT_BOOTLOADER_MAGIC) { vga_write_color("INVALID MAGIC", VGA_COLOR_BLACK, VGA_COLOR_RED); return; } vga_write(mbootinfo->boot_loader_name); // Check videomode vga_write("\nVideomode: "); switch (mbootinfo->vbe_mode) { case MULTIBOOT_FRAMEBUFFER_TYPE_INDEXED: vga_write("Indexed"); break; case MULTIBOOT_FRAMEBUFFER_TYPE_RGB: vga_write("RGB"); break; case MULTIBOOT_FRAMEBUFFER_TYPE_EGA_TEXT: vga_write("EGA TEXT"); break; default: vga_write_color("UNKNOWN", VGA_COLOR_BLACK, VGA_COLOR_RED); return; } vga_write_line("\nExecution finished, halting..."); }