I guess my info was wrong.
Anyway while we're at it I tried reading the BIOS with some strange results
I first called the int13h with AH=0x41 (Extensions Installation Check) and got the following values as result
Code:
AX=0x2100(Major version no.)
BX=0xAA55(success)
CX=0x5(support bitmap)
DX=0x80(extension version)
I concluded that the int13h 0x48 function was also supported(acording to Ralph Brown list). So i now tried the 0x48 function(Get Drive Params) but keep getting an err code of 1(i.e invalid function in AH or invalid parameter)
btw the params are right here's the code
Code:
[bits 16]
[org 0x7c00]
jmp start
nop
start:
mov ax,0
mov ds,ax
mov si,buffer
mov ah,0x48
mov dl,0x80
int 13h
jc end
cmp ah,0
jne end
jmp $
end:
mov si,ende
call bios_print
jmp $
bios_print:
push ax
push bx
ploop:
cld
lodsb
or al, al
jz short pstop
mov ah, 0eh
mov bx, 0007h
int 10h
jmp short ploop
pstop:
pop bx
pop ax
retn
ende db 13,'Err',0
buffer resb 100
times 510-($-$$) db 0
sig dw 0xAA55
is there anything wrong here? or is this an example of the problem with using the BIOS ints?
Code: