diff --git a/kernel/drive.asm b/kernel/drive.asm index d49f869..7ad68cd 100644 --- a/kernel/drive.asm +++ b/kernel/drive.asm @@ -42,6 +42,8 @@ dinit: ; copy previously set DPT to our data area ; set vector mov word [4*0x1E], dpt mov word [4*0x1E+2], ds + ; set to invalid drive + mov byte [dsknum], 0xFF ret ; int 13 stub @@ -66,7 +68,7 @@ int13: ; debug output ; restore DPT to default values if possible ; IN dl bios drive number rstdpt: mov ah, 8 - int 0x13 + call int13 jc .ret mov ax, es or ax, di @@ -95,7 +97,7 @@ logdrv: ; dont do anything if drive already selected cmp dl, [dsknum] je .ret ; clear out current contents -.force: push dx + push dx call flush mov ax, 0xFFFF mov [dskseek], ax