From 021c94489bea8adc4eb2bc0d4801e85a5b4a505e Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Mon, 11 Mar 2019 18:17:08 +0100 Subject: [PATCH] Step 1 : StartPanic is the real problem --- boot/loader/cpu/cpu.inc | 4 ++++ kaleid/kernel/init/init.c | 2 -- kaleid/kernel/ke/panic.c | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/boot/loader/cpu/cpu.inc b/boot/loader/cpu/cpu.inc index 8b92819..2bf937a 100644 --- a/boot/loader/cpu/cpu.inc +++ b/boot/loader/cpu/cpu.inc @@ -23,6 +23,10 @@ ; along with OS/K. If not, see . ; ;=----------------------------------------------------------------------------=; +global temporize +global bitemporize +global tritemporize + [BITS 64] temporize: diff --git a/kaleid/kernel/init/init.c b/kaleid/kernel/init/init.c index ce72856..39858b5 100644 --- a/kaleid/kernel/init/init.c +++ b/kaleid/kernel/init/init.c @@ -42,8 +42,6 @@ noreturn void StartKern(void *mbInfo, int mbMagic) // Kernel terminals InitTerms(); - vga = 0xB8000; - *vga = ('A') | (0x0F << 8); // We're out diff --git a/kaleid/kernel/ke/panic.c b/kaleid/kernel/ke/panic.c index 3127321..cbb9ac0 100644 --- a/kaleid/kernel/ke/panic.c +++ b/kaleid/kernel/ke/panic.c @@ -62,6 +62,7 @@ noreturn void StartPanic(const char *fmt, ...) if (GetPanicStr()) { GetStdOut()->PrintOnTermUnlocked(GetStdOut(), "\ndouble panic!"); + tritemporize(); HaltCPU(); } @@ -72,6 +73,7 @@ noreturn void StartPanic(const char *fmt, ...) GetStdOut()->PrintOnTermUnlocked(GetStdOut(), "\npanic!\n\n"); GetStdOut()->PrintOnTermUnlocked(GetStdOut(), GetPanicStr()); + tritemporize(); HaltCPU(); } @@ -81,6 +83,7 @@ noreturn void StartPanic(const char *fmt, ...) noreturn void CrashSystem(void) { DisableIRQs(); + tritemporize(); HaltCPU(); }