Kernel - Slight reworks to timer code
[tpg/acess2.git] / Kernel / arch / x86_64 / kernelpanic.c
index 32ea75d..1ce8ae7 100644 (file)
@@ -1,16 +1,38 @@
 /*
+ * Acess2 x86_64 port
+ * - Kernel Panic output
  */
+#include <acess.h>
 
 // === PROTOTYPES ===
 void   KernelPanic_SetMode(void);
 void   KernelPanic_PutChar(char ch);
 
+// === GLOBALS ===
+Uint16 *gpKernelPanic_Buffer = (void*)( KERNEL_BASE|0xB8000 );
+ int   giKernelPanic_CurPos = 0;
 
+// === CODE ===
 void KernelPanic_SetMode(void)
 {
+       giKernelPanic_CurPos = 0;
 }
 
 void KernelPanic_PutChar(char ch)
 {
-
+       switch(ch)
+       {
+       case '\n':
+               giKernelPanic_CurPos += 80;
+       case '\r':
+               giKernelPanic_CurPos /= 80;
+               giKernelPanic_CurPos *= 80;
+               break;
+       
+       default:
+               if(' ' <= ch && ch <= 0x7F)
+                       gpKernelPanic_Buffer[giKernelPanic_CurPos] = 0x4F00|ch;
+               giKernelPanic_CurPos ++;
+               break;
+       }
 }

UCC git Repository :: git.ucc.asn.au