From 81d1351c73bb919ed1175e41f0c7d2942549f67c Mon Sep 17 00:00:00 2001 From: manzerbredes Date: Wed, 22 Jul 2015 19:45:08 +0400 Subject: Start to code memPrint --- kernel/main.cpp | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) (limited to 'kernel/main.cpp') diff --git a/kernel/main.cpp b/kernel/main.cpp index c958ac0..9cd9875 100644 --- a/kernel/main.cpp +++ b/kernel/main.cpp @@ -7,10 +7,20 @@ int main(){ //Test print a char - char* letter=(char*)0xB8A00; + /*char* letter=(char*)0xB8A00; *letter='H'; letter++; - *letter=(GREEN << 4) | BLUE; + *letter=(GREEN << 4) | BLUE;*/ + + memPrint VideoRam; + + + VideoRam.print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + VideoRam.print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + VideoRam.print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + VideoRam.print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + VideoRam.print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + VideoRam.print("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); //Infinite loop while(1); @@ -29,9 +39,21 @@ extern "C" void _boot(){ Gdt gdt; //Load Gdt into memory - //gdt.loadGdt(); - - //Call main function + 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