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:
parent
d9a184c0d7
commit
b4388c9808
2
Makefile
2
Makefile
@ -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"
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
@ -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...");
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user