all i can say is this is really, really, REALLY weird... im gonna likely re-write the whole driver from scratch...

This commit is contained in:
Tyler McGurrin 2025-05-31 09:13:32 -04:00
parent d9a184c0d7
commit b4388c9808
6 changed files with 14 additions and 8 deletions

View File

@ -23,7 +23,7 @@ $(BUILD_DIR)/main_floppy.img: bootloader kernel
mmd -i $(BUILD_DIR)/main_floppy.img "::misc" mmd -i $(BUILD_DIR)/main_floppy.img "::misc"
mcopy -v -i $(BUILD_DIR)/main_floppy.img $(BUILD_DIR)/kernel.bin "::boot" 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 -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" mcopy -v -i $(BUILD_DIR)/main_floppy.img test "::boot"
# #

View File

@ -4,10 +4,12 @@
|Tyler McGurrin | |Tyler McGurrin |
\*----------------*/ \*----------------*/
#include <stdint.h> #include <stdint.h>
#include <stddef.h>
#include "stdio.h" #include "stdio.h"
#include "x86.h" #include "x86.h"
#include "disk.h" #include "disk.h"
#include "fat.h" #include "fat.h"
#include "string.h"
#include "memdefs.h" #include "memdefs.h"
#include "memory.h" #include "memory.h"
#include "memdetect.h" #include "memdetect.h"
@ -72,7 +74,7 @@ void* g_data = (void*)0x20000;
// test fat driver // test fat driver
printf("Testing FAT Driver..."); printf("Testing FAT Driver...");
// read test.txt // read test.txt
FAT_File* ft = FAT_Open(&disk, "/test"); FAT_File* ft = FAT_Open(&disk, "/test.x");
char buffer[100]; char buffer[100];
uint32_t testread; uint32_t testread;
while ((testread = FAT_Read(&disk, ft, sizeof(buffer), buffer))) while ((testread = FAT_Read(&disk, ft, sizeof(buffer), buffer)))
@ -92,17 +94,20 @@ void* g_data = (void*)0x20000;
Memory_Detect(&g_BootParams.Memory); Memory_Detect(&g_BootParams.Memory);
printf("Done!\n"); printf("Done!\n");
// kernel params... // kernel params...
FAT_File* kp = FAT_Open(&disk, "/kernelparams"); FAT_File* kp = FAT_Open(&disk, "/kparams.x");
char kparams; char* kparams;
uint32_t kernelparams; 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++) for (uint32_t i = 0; i < kernelparams; i++)
{ {
memcpy(); strcpy(kparams, buffer2[i]);
} }
} }
FAT_Close(kp); FAT_Close(kp);
printf("Kernel Params: %s\n", kparams);
g_BootParams.KernelParams = kparams;
// load kernel from disk // load kernel from disk
printf("Loading Kernel..."); printf("Loading Kernel...");

View File

@ -72,6 +72,7 @@ void __attribute__((section(".entry"))) start(BootParams* bootParams) {
slaveFDDType = Slave_FDD_Detect(); slaveFDDType = Slave_FDD_Detect();
Floppy_Drive_Start(1); Floppy_Drive_Start(1);
Print_Storage_Types(masterFDDType, slaveFDDType); Print_Storage_Types(masterFDDType, slaveFDDType);
printf("Kernel Params: %s\n", bootParams->KernelParams);

View File

@ -22,6 +22,6 @@ typedef struct
typedef struct { typedef struct {
MemoryInfo Memory; MemoryInfo Memory;
char KernelParams; char* KernelParams;
uint8_t BootDevice; uint8_t BootDevice;
} BootParams; } BootParams;

View File

@ -6,5 +6,5 @@
#pragma once #pragma once
#define LOGO " _ _____ _ __________________\n / | / / | / | / / _/_ __/ ____/\n / |/ / /| | / |/ // / / / / __/ \n / /| / ___ |/ /| // / / / / /___ \n/_/ |_/_/ |_/_/ |_/___/ /_/ /_____/ \n" #define LOGO " _ _____ _ __________________\n / | / / | / | / / _/_ __/ ____/\n / |/ / /| | / |/ // / / / / __/ \n / /| / ___ |/ /| // / / / / /___ \n/_/ |_/_/ |_/_/ |_/___/ /_/ /_____/ \n"
#define VERSION "RD-00019" #define VERSION "RD-00020"
#define BOOTLOGO " _ ______ ____ ____ ______\n / | / / __ )/ __ \\/ __ /_ __/\n / |/ / __ / / / / / / // / \n / /| / /_/ / /_/ / /_/ // / \n/_/ |_/_____/\\____/\\____//_/ \n" #define BOOTLOGO " _ ______ ____ ____ ______\n / | / / __ )/ __ \\/ __ /_ __/\n / |/ / __ / / / / / / // / \n / /| / /_/ / /_/ / /_/ // / \n/_/ |_/_____/\\____/\\____//_/ \n"