The INT 1B BIOS call is used to obtain geometries of SASI/IDE hard

drives.  Some IDE cards don't set propler information into BIOS work
are and their sector size were always recognized as 256 bytes/sector.

Pointed out by:	jagarl@creator.club.ne.jp
This commit is contained in:
KATO Takenori 2000-08-31 10:24:06 +00:00
parent 8507c35e67
commit 8b6a5e91bb
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=65271

View File

@ -178,8 +178,22 @@ sasi_loop:
testb %al, %dl
jz no_sasi_unit
movb $0x80, %dh
addb %ah, %dh
movb %dh, daua(%si)
addb %ah, %dh # %dh = DA/UA
movb %dh, daua(%si) # Store DA/UA
# Try new sense command
push %ax
push %cx
movb %dh, %al
movb $0x84, %ah
int $0x1b
pop %cx
pop %ax
jc err_newsense
movw %bx, %dx
jmp found_sasi_unit
err_newsense:
movw $0x457, %bx # capacity & sector size of IDE HDD
call read_biosparam
orb %ah, %ah