From df9f175662cefcfb5ae83747400bb7ce9ea0e3d9 Mon Sep 17 00:00:00 2001 From: Xnoe Date: Mon, 30 Aug 2021 07:02:01 +0100 Subject: [PATCH] Modified load_file to work directly from the stack --- kernel.asm | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/kernel.asm b/kernel.asm index d8048a3..170c65b 100644 --- a/kernel.asm +++ b/kernel.asm @@ -276,20 +276,14 @@ file_exists_found: load_file: push bp mov bp, sp - mov ax, word [bp + 4] - mov word [_load_segment], ax - mov ax, word [bp + 6] - mov word [_load_pointer], ax - mov ax, word [bp + 8] - mov word [_load_cluster], ax - mov ax, word [_load_segment] + mov ax, word [bp + 4] mov es, ax load_file_loop: - mov bx, word [_load_pointer] + mov bx, word [bp + 6] - mov al, byte [_load_cluster] + mov al, byte [bp + 8] add al, 34 mov cl, al @@ -301,26 +295,22 @@ load_file_loop: int 13h - add word [_load_pointer], 512 + add word [bp + 6], 512 - mov si, word [_load_cluster] + mov si, word [bp + 8] shl si, 1 add si, 4000h ; add si, 1 cmp word [ds:si], 0ffffh je load_file_loaded - add word [_load_cluster], 1 + add word [bp + 8], 1 jmp load_file_loop load_file_loaded: pop bp ret 6 -_load_pointer dw 0 -_load_cluster dw 0 -_load_segment dw 0 - decode_filename: push bp mov bp, sp