From 443b96171fb1df4d994ba08a9f696b3c7f66e552 Mon Sep 17 00:00:00 2001 From: Robbe Van Herck Date: Sat, 28 Dec 2019 14:41:19 +0100 Subject: [PATCH] Load into memory before printing --- bootloader/main.asm | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/bootloader/main.asm b/bootloader/main.asm index 6dd8f4a..82c4e2c 100644 --- a/bootloader/main.asm +++ b/bootloader/main.asm @@ -89,11 +89,11 @@ mov bl, ah call .puthex .reset_disk_no_error: -push byte 0 -.read_disk_loop: -pop cx -inc cl +mov cx, 1 ; start at sector 1 +mov bx, 0x8000 ; write to 0x8000 +push bx push cx +.read_disk_loop: ; Read sector dl into memory mov ah, 0x02 @@ -102,7 +102,6 @@ mov ch, 0x00 ; cylinder number, low 8 bits ; mov cl, 0x01 ; cylinder number, high 2 bits + sector number (6 bits) mov dh, 0x00 ; head number mov dl, DISK_ID ; drive number -mov bx, .data ; data buffer int 0x13 jc .read_disk_error @@ -112,16 +111,22 @@ mov bl, ah call .puthex .read_disk_no_error: -; print string -mov bx, .data -call .puts +pop cx +pop bx +inc cl ; next sector +add bx, 512 ; add 512 to data start so we don't overwrite sectors +push bx +push cx + jmp .read_disk_loop .read_disk_error: .end: hlt -.data: +; print string +mov bx, 0x8000 +call .puts ; print padding nullbytes times 510 - ($ - $$) db 0