From d8ddd93832f55b5f263002ed5d7376ca3fa21d13 Mon Sep 17 00:00:00 2001 From: Tom-on64 Date: Tue, 12 Mar 2024 16:13:24 +0100 Subject: [PATCH] Started working on disk.h header --- src/boot.asm | 4 +++- src/kernel/disk.c | 1 + src/kernel/disk.h | 8 ++++++++ src/kernel/entry.asm | 5 +++++ src/kernel/main.c | 5 +++++ 5 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/kernel/disk.c create mode 100644 src/kernel/disk.h diff --git a/src/boot.asm b/src/boot.asm index 227c76a..7e793fc 100644 --- a/src/boot.asm +++ b/src/boot.asm @@ -88,7 +88,7 @@ puts: ret ;; Data -driveNum: db 3 +driveNum: db 0 counter: db 0 cursor: dw 0 @@ -112,6 +112,8 @@ protected_start: mov esp, ebp ; Perform the far jump + mov al, [driveNum] + push ax jmp KERNEL_LOC ;; GDT diff --git a/src/kernel/disk.c b/src/kernel/disk.c new file mode 100644 index 0000000..f7ba18f --- /dev/null +++ b/src/kernel/disk.c @@ -0,0 +1 @@ +#include "disk.h" diff --git a/src/kernel/disk.h b/src/kernel/disk.h new file mode 100644 index 0000000..b23ec64 --- /dev/null +++ b/src/kernel/disk.h @@ -0,0 +1,8 @@ +#ifndef DISK_H +#define DISK_H + +#include "stdint.h" + +extern uint8_t driveNum; + +#endif diff --git a/src/kernel/entry.asm b/src/kernel/entry.asm index dfb276b..c804803 100644 --- a/src/kernel/entry.asm +++ b/src/kernel/entry.asm @@ -8,9 +8,14 @@ ;; Calls the main function in 'main.c' _start: + pop ax + mov [driveNum], al call main jmp $ ;; If we used cli, hlt we wouldn't have interrupts :/ +[global driveNum] +driveNum: db 0 + ;; ;; --- IDT --- ;; diff --git a/src/kernel/main.c b/src/kernel/main.c index ad48db1..ac8d27b 100644 --- a/src/kernel/main.c +++ b/src/kernel/main.c @@ -5,6 +5,8 @@ #include "keyboard.h" #include "timer.h" #include "system.h" +#include "disk.h" +#include "string.h" void main() { // Interrupts @@ -20,5 +22,8 @@ void main() { clear(0x0f); print("kern.\n\n", 0x0f); + print("Drive: 0x", 0x0f); + print(itoa(driveNum, 16), 0x0f); + putc('\n', 0x00); }