blob: 93647f51ae46f711586f7e6c87141e897acfe27b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#include "printf.h"
#include "gdt.h"
#include "idt.h"
#include "irq.h"
void main() {
printf("main()\n");
gdt_init();
printf("GDT set.\n");
idt_init();
printf("IDT set.\n");
irq_init();
printf("IRQs set.\n");
asm volatile("sti");
asm volatile(
"push $0x23\n"
"push $entry_stack_top\n"
"pushf\n"
"push $0x1b\n"
"push $0x0010a000\n"
"iret\n"
);
printf("Halting.\n");
asm volatile(
"cli\n"
"hlt\n"
);
while(1);
}
|