diff --git a/boot/fat32.asm b/boot/fat32.asm index cf825bd..437c53b 100644 --- a/boot/fat32.asm +++ b/boot/fat32.asm @@ -203,36 +203,31 @@ loop: add si, 0x20 jne loop ret -main: mov ax, 2 +loadr: mov ax, 2 xor dx, dx - call load + jmp load - ; search for an system directory +loadf: call search + jne end + mov ax, [si+0x1A] + mov dx, [si+0x14] + jmp load + +main: ; load root directory + call loadr + ; search for first system directory mov ah, 0x14 - call search - jne end - - mov ax, [si+0x1A] - mov dx, [si+0x14] - - call load + call loadf + ; search for first system file mov ah, 0x04 - call search - jne end - - mov ax, [si+0x1A] - mov dx, [si+0x14] - - call load + call loadf + ; jump jmp 0:0x7C00 end: call msg db "DIR", 0 jmp err - ; segment register for data -dest: dw 0x07c0 - ; Padding and signature times (0x1FE - ($-$$)) db 0 dw 0xAA55