From e0c565f7ff7620dca9dfc6c607f4798f5291c7bf Mon Sep 17 00:00:00 2001 From: manzerbredes Date: Tue, 28 Jul 2015 14:19:00 +0400 Subject: Go back to C and adapt code --- kernel/main.c | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 kernel/main.c (limited to 'kernel/main.c') diff --git a/kernel/main.c b/kernel/main.c new file mode 100644 index 0000000..b687369 --- /dev/null +++ b/kernel/main.c @@ -0,0 +1,41 @@ +//To load GDT +#include "GDT/gdt.h" +#include "./Helpers/memprint.h" + + +//----- PiegOS kernel main ----- +int main(){ + + //Welcome + memprint_print("Welcome to PiegOS"); + + //Infinite loop + while(1); + + //Exit code + return 0; +} + + +//----- PiegOS kernel boot function ----- +void _boot(){ + + //Load GDT + gdt_loadGdt(); + + //Init all segments and stack + __asm__("\ + movw $0x10, %ax; \n \ + movw %ax, %ds; \n \ + movw %ax, %es \n \ + ljmp $0x08, $updateDS;\ + updateDS: \n\ + movw $0x18, %ax \n \ + movw %ax, %ss \n \ + movl $0x00B00000, %esp \n\ + "); + + //Call main function after stack pointer changing (due to C optimisation) + main(); +} + -- cgit v1.2.3