diff options
| author | manzerbredes <loic.guegan_secondary@yahoo.fr> | 2015-07-22 19:45:08 +0400 |
|---|---|---|
| committer | manzerbredes <loic.guegan_secondary@yahoo.fr> | 2015-07-22 19:45:08 +0400 |
| commit | 81d1351c73bb919ed1175e41f0c7d2942549f67c (patch) | |
| tree | 2da2768aa25933f658e99a3dfa2c7a6d3da94528 /kernel/main.cpp | |
| parent | c10137539f0e68afd0582ccb6cc320694b8e39a5 (diff) | |
Start to code memPrint
Diffstat (limited to 'kernel/main.cpp')
| -rw-r--r-- | kernel/main.cpp | 32 |
1 files changed, 27 insertions, 5 deletions
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(); } |
