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"
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"
#

View File

@ -4,10 +4,12 @@
|Tyler McGurrin |
\*----------------*/
#include <stdint.h>
#include <stddef.h>
#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...");

View File

@ -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);

View File

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

View File

@ -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"