X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86_64%2Fkernelpanic.c;h=1ce8ae70d5dd30839bd270d5ae07bdc168a9e1c6;hb=13a3a306289f4eedd32220b3c335564f3a0a3772;hp=32ea75d8e17fd973630c03aaa51232a5d788de01;hpb=1499c9eb8aa167dff5354a25c5a5bd2d00672a54;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86_64/kernelpanic.c b/Kernel/arch/x86_64/kernelpanic.c index 32ea75d8..1ce8ae70 100644 --- a/Kernel/arch/x86_64/kernelpanic.c +++ b/Kernel/arch/x86_64/kernelpanic.c @@ -1,16 +1,38 @@ /* + * Acess2 x86_64 port + * - Kernel Panic output */ +#include // === 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; + } }