From b4388c9808fa51a2f44b06745aea01bb2e3e0575 Mon Sep 17 00:00:00 2001 From: Tyler McGurrin Date: Sat, 31 May 2025 09:13:32 -0400 Subject: [PATCH] all i can say is this is really, really, REALLY weird... im gonna likely re-write the whole driver from scratch... --- Makefile | 2 +- kernelparams => kparams | 0 src/bootloader/stage2/main.c | 15 ++++++++++----- src/kernel/main.c | 1 + src/libs/boot/bootparams.h | 2 +- src/libs/version.h | 2 +- 6 files changed, 14 insertions(+), 8 deletions(-) rename kernelparams => kparams (100%) diff --git a/Makefile b/Makefile index 628ea26..8c6cec5 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ $(BUILD_DIR)/main_floppy.img: bootloader kernel mmd -i $(BUILD_DIR)/main_floppy.img "::misc" mcopy -v -i $(BUILD_DIR)/main_floppy.img $(BUILD_DIR)/kernel.bin "::boot" mcopy -i $(BUILD_DIR)/main_floppy.img $(BUILD_DIR)/nboot.bin "::nboot.bin" - mcopy -v -i $(BUILD_DIR)/main_floppy.img kernelparams "::boot" + mcopy -v -i $(BUILD_DIR)/main_floppy.img kparams "::boot" mcopy -v -i $(BUILD_DIR)/main_floppy.img test "::boot" # diff --git a/kernelparams b/kparams similarity index 100% rename from kernelparams rename to kparams diff --git a/src/bootloader/stage2/main.c b/src/bootloader/stage2/main.c index 0e832ad..1b6b4a7 100644 --- a/src/bootloader/stage2/main.c +++ b/src/bootloader/stage2/main.c @@ -4,10 +4,12 @@ |Tyler McGurrin | \*----------------*/ #include +#include #include "stdio.h" #include "x86.h" #include "disk.h" #include "fat.h" +#include "string.h" #include "memdefs.h" #include "memory.h" #include "memdetect.h" @@ -72,7 +74,7 @@ void* g_data = (void*)0x20000; // test fat driver printf("Testing FAT Driver..."); // read test.txt - FAT_File* ft = FAT_Open(&disk, "/test"); + FAT_File* ft = FAT_Open(&disk, "/test.x"); char buffer[100]; uint32_t testread; while ((testread = FAT_Read(&disk, ft, sizeof(buffer), buffer))) @@ -92,17 +94,20 @@ void* g_data = (void*)0x20000; Memory_Detect(&g_BootParams.Memory); printf("Done!\n"); // kernel params... - FAT_File* kp = FAT_Open(&disk, "/kernelparams"); - char kparams; + FAT_File* kp = FAT_Open(&disk, "/kparams.x"); + char* kparams; uint32_t kernelparams; - while ((kernelparams = FAT_Read(&disk, kp, sizeof(buffer), buffer))) + char* buffer2[100]; + while ((kernelparams = FAT_Read(&disk, kp, sizeof(buffer2), buffer2))) { for (uint32_t i = 0; i < kernelparams; i++) { - memcpy(); + strcpy(kparams, buffer2[i]); } } FAT_Close(kp); + printf("Kernel Params: %s\n", kparams); + g_BootParams.KernelParams = kparams; // load kernel from disk printf("Loading Kernel..."); diff --git a/src/kernel/main.c b/src/kernel/main.c index 70f6a45..7ec2c21 100644 --- a/src/kernel/main.c +++ b/src/kernel/main.c @@ -72,6 +72,7 @@ void __attribute__((section(".entry"))) start(BootParams* bootParams) { slaveFDDType = Slave_FDD_Detect(); Floppy_Drive_Start(1); Print_Storage_Types(masterFDDType, slaveFDDType); + printf("Kernel Params: %s\n", bootParams->KernelParams); diff --git a/src/libs/boot/bootparams.h b/src/libs/boot/bootparams.h index 50b2a5b..1cfc604 100644 --- a/src/libs/boot/bootparams.h +++ b/src/libs/boot/bootparams.h @@ -22,6 +22,6 @@ typedef struct typedef struct { MemoryInfo Memory; - char KernelParams; + char* KernelParams; uint8_t BootDevice; } BootParams; diff --git a/src/libs/version.h b/src/libs/version.h index d3082dd..f113e79 100644 --- a/src/libs/version.h +++ b/src/libs/version.h @@ -6,5 +6,5 @@ #pragma once #define LOGO " _ _____ _ __________________\n / | / / | / | / / _/_ __/ ____/\n / |/ / /| | / |/ // / / / / __/ \n / /| / ___ |/ /| // / / / / /___ \n/_/ |_/_/ |_/_/ |_/___/ /_/ /_____/ \n" -#define VERSION "RD-00019" +#define VERSION "RD-00020" #define BOOTLOGO " _ ______ ____ ____ ______\n / | / / __ )/ __ \\/ __ /_ __/\n / |/ / __ / / / / / / // / \n / /| / /_/ / /_/ / /_/ // / \n/_/ |_/_____/\\____/\\____//_/ \n"