This commit is contained in:
nub31
2025-09-01 20:06:58 +02:00
parent 1bc122e29a
commit 1ed52d1e9e
14 changed files with 154 additions and 223 deletions

View File

@@ -1,21 +1,67 @@
#include "kernel.h"
#include "interrupts.h"
#include "string.h"
#include "vga.h"
#include <stdarg.h>
#include <stddef.h>
void kernel_main()
void kmain()
{
vga_clear();
pic_remap();
enable_interrupts();
vga_print("\nWelcome to nub OS\n");
kprintf("\nWelcome to nub OS\n");
kernel_halt();
khalt();
}
void kernel_panic()
void kpanic()
{
vga_print("Kernel panic!\n");
kernel_halt();
kprintf("Kernel panic!\n");
khalt();
}
void kprintf(const char* fmt, ...)
{
va_list args;
va_start(args, fmt);
for (size_t i = 0; fmt[i] != '\0'; i++)
{
if (fmt[i] == '%')
{
i++;
if (fmt[i] == 's')
{
const char* str = va_arg(args, const char*);
for (size_t j = 0; str[j] != '\0'; j++)
{
vga_put_char(str[j], 0x0F);
}
}
else if (fmt[i] == 'd')
{
int val = va_arg(args, int);
char buf[12];
itoa(val, buf);
for (size_t j = 0; buf[j] != '\0'; j++)
{
vga_put_char(buf[j], 0x0F);
}
}
else
{
vga_put_char('%', 0x0F);
vga_put_char(fmt[i], 0x0F);
}
}
else
{
vga_put_char(fmt[i], 0x0F);
}
}
va_end(args);
}