From 66289aa8ecfa07b20bad424eb9860b196641ef52 Mon Sep 17 00:00:00 2001 From: Brett Weiland Date: Fri, 19 Mar 2021 10:54:25 -0500 Subject: first commit --- src/bootloader/bios_functions/bios_disk.asm | 38 +++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/bootloader/bios_functions/bios_disk.asm (limited to 'src/bootloader/bios_functions/bios_disk.asm') diff --git a/src/bootloader/bios_functions/bios_disk.asm b/src/bootloader/bios_functions/bios_disk.asm new file mode 100644 index 0000000..28fc74d --- /dev/null +++ b/src/bootloader/bios_functions/bios_disk.asm @@ -0,0 +1,38 @@ +bios_disk: +.load_sectors: +pusha +mov es, dx + +mov ah, 0x02 ; read disc sectors +mov ch, 0x00 ; track 0 +mov dh, 0x00 ; head 0 +mov dl, [stage0.boot_device] + +int 0x13 + +jc .failed + +mov ah, 0 +popa +ret + +.failed: + +mov bx, .loadsectors_error +mov cx, 0 +call bios_print + +push 0 +mov al, ah +mov ah, 0 ; you need to clean up the bios print function! +push ax +mov cx, 1 +mov bx, sp +call bios_print + + +mov ah, 1 +popa +ret + +.loadsectors_error: db "Error loading sectors: ", 0 -- cgit v1.2.3