From 56ebdc2184a3746864109a6fe21b389770188eb9 Mon Sep 17 00:00:00 2001 From: Tyler McGurrin Date: Thu, 21 Aug 2025 14:38:00 -0400 Subject: [PATCH] Simplify boot messages --- src/kernel/arch/i686/isr.c | 5 +++++ src/kernel/core/hal/hal.c | 16 ++++++++-------- src/kernel/dri/disk/ata.c | 2 -- src/kernel/dri/disk/ata.h | 5 +++-- src/kernel/dri/timer.c | 1 - src/kernel/main.c | 33 ++++++++++++++++----------------- src/kernel/version.h | 2 +- 7 files changed, 33 insertions(+), 31 deletions(-) diff --git a/src/kernel/arch/i686/isr.c b/src/kernel/arch/i686/isr.c index 95da6a2..7e9e5ba 100644 --- a/src/kernel/arch/i686/isr.c +++ b/src/kernel/arch/i686/isr.c @@ -72,6 +72,11 @@ void __attribute__((cdecl)) ISR_Handler(Registers* regs) { Serial_Printf(DEBUG_COM_PORT, " ESP=%x EBP=%x EIP=%x EFLAGS=%x CS=%x DS=%x SS=%x\n", regs->esp, regs->ebp, regs->eip, regs->eflags, regs->cs, regs->ds, regs->ss); Serial_Printf(DEBUG_COM_PORT, " INTERRUPT=%x ERRORCODE=%x\n", regs->interrupt, regs->error); Serial_Printf(DEBUG_COM_PORT, "KERNEL PANIC!\n"); + printf("Unhandled Exception %d %s\n", regs->interrupt, g_Exceptions[regs->interrupt]); + printf(" EAX=%x EBX=%x ECX=%x EDX=%x ESI=%x EDI=%x\n", regs->eax, regs->ebx, regs->ecx, regs->edx, regs->esi, regs->edi); + printf(" ESP=%x EBP=%x EIP=%x EFLAGS=%x CS=%x DS=%x SS=%x\n", regs->esp, regs->ebp, regs->eip, regs->eflags, regs->cs, regs->ds, regs->ss); + printf(" INTERRUPT=%x ERRORCODE=%x\n", regs->interrupt, regs->error); + printf("KERNEL PANIC!\n"); kernel_panic(); } diff --git a/src/kernel/core/hal/hal.c b/src/kernel/core/hal/hal.c index 142ac31..eb7e79c 100644 --- a/src/kernel/core/hal/hal.c +++ b/src/kernel/core/hal/hal.c @@ -12,20 +12,20 @@ void HAL_Initialize() { // init GDT - printf("> Initializing GDT..."); + // printf("> Initializing GDT..."); GDT_Initialize(); - printf("Done!\n"); + // printf("Done!\n"); // init IDT - printf("> Initializing IDT..."); + // printf("> Initializing IDT..."); IDT_Initialize(); - printf("Done!\n"); + // printf("Done!\n"); // init ISR - printf("> Initializing ISR..."); + // printf("> Initializing ISR..."); ISR_Initialize(); - printf("Done!\n"); + // printf("Done!\n"); // init IRQ - printf("> Initializing IRQ Handling..."); + // printf("> Initializing IRQ Handling..."); IRQ_Initialize(); - printf("Done!\n"); + // printf("Done!\n"); } \ No newline at end of file diff --git a/src/kernel/dri/disk/ata.c b/src/kernel/dri/disk/ata.c index 245dbfd..8d90fcc 100644 --- a/src/kernel/dri/disk/ata.c +++ b/src/kernel/dri/disk/ata.c @@ -6,5 +6,3 @@ #include "ata.h" #include - -// This Will one day be done, floppy disk comes first (its easier) \ No newline at end of file diff --git a/src/kernel/dri/disk/ata.h b/src/kernel/dri/disk/ata.h index 3b31ea4..5fbfbb4 100644 --- a/src/kernel/dri/disk/ata.h +++ b/src/kernel/dri/disk/ata.h @@ -8,5 +8,6 @@ #include #include -// bool ATA_Drive_Init(DISK* disk, uint8_t driveNumber); -// bool ATA_Get_Drive_Params(uint8_t disk, uint8_t* driveType, uint16_t* cylinders, uint16_t* sectors, uint16_t* heads); \ No newline at end of file +enum ATA_IO { + ATA_IO, +}; \ No newline at end of file diff --git a/src/kernel/dri/timer.c b/src/kernel/dri/timer.c index f1b40c2..f947ec9 100644 --- a/src/kernel/dri/timer.c +++ b/src/kernel/dri/timer.c @@ -22,7 +22,6 @@ void Timer_Wait(int time) int tmp; tmp = uptime; while(0 == 0) { - // Serial_Printf(DEBUG_COM_PORT, "Vaules TMP: %d Uptime: %d Cycles: %d\n", tmp, uptime, time); if(uptime - tmp == time) return; } } \ No newline at end of file diff --git a/src/kernel/main.c b/src/kernel/main.c index 2b33bd8..c9e648a 100644 --- a/src/kernel/main.c +++ b/src/kernel/main.c @@ -38,8 +38,12 @@ #include #include +// Other + #include +// Declarations + extern uint8_t __bss_start; extern uint8_t __end; @@ -48,43 +52,38 @@ extern int uptime; uint16_t DEBUG_COM_PORT = COM1_PORT; void start(unsigned long multiboot_magic, unsigned long multiboot_addr) { - // multiboot 2 shit - // int padded_size = tag->size + ((tag->size % 8)?(8-(tag->size%8)):0); - // tag = incptr(tag, padded_size); - // print logo + // Print logo clrscr(); printf("%s", LOGO); printf("The Nano OS %s\n-------------------------------------\n", VERSION); - printf("Loaded Kernel!\n"); - - // init HAL - printf("Initializing HAL...\n"); + + // Init Drivers + printf("Initializing Basic Drivers..."); + // HAL HAL_Initialize(); - movecursorpos(19, 8); - printf("Done!\n\n\n\n\n"); - // Register IRQs - printf("Registering IRQs..."); IRQ_RegisterHandler(0, Timer_Handler); IRQ_RegisterHandler(1, Keyboard_Handler); IRQ_RegisterHandler(4, COM1_Serial_Handler); IRQ_RegisterHandler(6, Floppy_Handler); IRQ_RegisterHandler(8, CMOS_RTC_Handler); - printf("Done!\n"); - - // Init Drivers - printf("Initializing Basic Drivers..."); + // Other Stuff Serial_Init(DEBUG_COM_PORT, 9600); Keyboard_Init(); + // Storage // Floppy_Init(); // This should always be last; its slow as fuck printf("Done!\n"); printf("Initializing Memory Paging..."); Memory_Page_Init(); printf("Done!\n"); + + // Multiboot Debug Info Serial_Printf(DEBUG_COM_PORT, "Multiboot Magic: %d\n", multiboot_magic); Serial_Printf(DEBUG_COM_PORT, "Multiboot Address: %d\n", multiboot_addr); - printf("\nThe Current Time and Date Is: %d:%d:%d %d/%d/%d%d\n", + + // Finish Up + printf("The Current Time and Date Is: %d:%d:%d %d/%d/%d%d\n", BCD2BIN(Read_CMOS(CMOS_RTC_Hours)), BCD2BIN(Read_CMOS(CMOS_RTC_Minutes)), BCD2BIN(Read_CMOS(CMOS_RTC_Seconds)), diff --git a/src/kernel/version.h b/src/kernel/version.h index 2b6e8b8..4f4f091 100644 --- a/src/kernel/version.h +++ b/src/kernel/version.h @@ -6,4 +6,4 @@ #pragma once #define LOGO " _ _____ _ __________________\n / | / / | / | / / _/_ __/ ____/\n / |/ / /| | / |/ // / / / / __/ \n / /| / ___ |/ /| // / / / / /___ \n/_/ |_/_/ |_/_/ |_/___/ /_/ /_____/ \n" -#define VERSION "RD-00049" \ No newline at end of file +#define VERSION "RD-00050" \ No newline at end of file