caos-with-snake/kernel.c

31 lines
526 B
C
Raw Normal View History

2022-11-18 22:58:49 +03:00
asm(".asciz \"kernel start\"");
2022-11-20 19:48:55 +03:00
#include "console.h"
2022-11-20 18:59:53 +03:00
#include "cpu/isr.h"
2022-11-22 21:24:49 +03:00
#include "cpu/gdt.h"
2022-11-20 19:48:55 +03:00
#include "drivers/keyboard.h"
2022-11-20 16:06:32 +03:00
#include "drivers/vga.h"
2022-11-18 22:58:49 +03:00
#include "drivers/ata.h"
#include "drivers/misc.h"
2022-11-21 00:53:29 +03:00
#include "drivers/uart.h"
2022-11-14 00:23:42 +03:00
2022-11-17 23:16:57 +03:00
void _start() {
2022-11-22 21:24:49 +03:00
load_gdt();
2022-11-20 19:48:55 +03:00
init_keyboard();
2022-11-21 00:53:29 +03:00
uartinit();
2022-11-20 18:59:53 +03:00
load_idt();
sti();
2022-11-18 22:58:49 +03:00
char buf[512];
2022-11-14 00:23:42 +03:00
vga_clear_screen();
2022-11-20 19:48:55 +03:00
printk("YABLOKO\n");
2022-11-18 22:58:49 +03:00
read_sectors_ATA_PIO((uint32_t)buf, 10, 1);
2022-11-20 19:48:55 +03:00
printk(buf);
2022-11-18 22:58:49 +03:00
2022-11-20 19:48:55 +03:00
while (1) {
2022-11-21 00:53:29 +03:00
asm("hlt");
2022-11-20 19:48:55 +03:00
}
2022-11-18 22:58:49 +03:00
qemu_shutdown();
2022-09-21 18:25:06 +03:00
}