diff options
| -rw-r--r-- | sys/boot/pc98/boot0.5/disk.s | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/sys/boot/pc98/boot0.5/disk.s b/sys/boot/pc98/boot0.5/disk.s index 93667444f389..9d0db21d925a 100644 --- a/sys/boot/pc98/boot0.5/disk.s +++ b/sys/boot/pc98/boot0.5/disk.s @@ -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 |
