diff --git a/boot/loader/loader.asm b/boot/loader/loader.asm index fffa136..7baa2c6 100644 --- a/boot/loader/loader.asm +++ b/boot/loader/loader.asm @@ -161,7 +161,6 @@ _loader64: call tritemporize ; Let time to see extern StartKern - push qword 12 push qword 12 call StartKern diff --git a/kaleid/kernel/init/init.c b/kaleid/kernel/init/init.c index 1d56806..e454774 100644 --- a/kaleid/kernel/init/init.c +++ b/kaleid/kernel/init/init.c @@ -42,6 +42,8 @@ noreturn void StartKern(void *mbInfo, int mbMagic) // Kernel terminals InitTerms(); + *vga = ('A') | (0x0F << 8); + // We're out StartPanic("We had\n *mbInfo : %x\n mbMagic : %x\n\nGoodbye World :(", mbInfo, mbMagic); } diff --git a/kaleid/kernel/io/term.c b/kaleid/kernel/io/term.c index 5392b23..fa5da06 100644 --- a/kaleid/kernel/io/term.c +++ b/kaleid/kernel/io/term.c @@ -32,7 +32,7 @@ extern Terminal_t VGA_Terminal; // void InitTerms(void) { - KalAssert(!GetStdOut() && !GetStdDbg()); + //KalAssert(!GetStdOut() && !GetStdDbg()); VGA_Init(); diff --git a/kaleid/kernel/ke/panic.c b/kaleid/kernel/ke/panic.c index c799d19..d946f7e 100644 --- a/kaleid/kernel/ke/panic.c +++ b/kaleid/kernel/ke/panic.c @@ -50,10 +50,13 @@ noreturn void StartPanic(const char *fmt, ...) va_list ap; DisableIRQs(); + *vga = ('B') | (0x0F << 8); if (GetCurProc()) _SetCurProc(NULL); if (GetStdOut() == NULL) CrashSystem(); + HaltCPU(); + GetStdOut()->ClearTermUnlocked(GetStdOut()); if (fmt == NULL) { @@ -72,6 +75,7 @@ noreturn void StartPanic(const char *fmt, ...) GetStdOut()->PrintOnTermUnlocked(GetStdOut(), "\nPanic!\n\n"); GetStdOut()->PrintOnTermUnlocked(GetStdOut(), GetPanicStr()); + tritemporize(); HaltCPU(); } @@ -81,6 +85,7 @@ noreturn void StartPanic(const char *fmt, ...) noreturn void CrashSystem(void) { DisableIRQs(); + tritemporize(); HaltCPU(); }