Uptill现在我使用IDE硬盘,可以使用BIOS调用甚至LBA 28直接硬件访问PIO模式,而无需任何O.S.调用。现在我购买了新的SATA 500 GB硬盘,这是我唯一连接到SATA 1端口的硬盘。我的BIOS显示它为第三主硬盘,主和辅助主硬盘不存在。现在我已经在第一个分区上安装了MS-DOS 5.0,运行正常。但现在我只能使用DOS INT 25h来读取从逻辑扇区0开始的硬盘扇区。这意味着我不能读取任何隐藏的扇区,包括主引导记录。当我使用BIOS int 13H调用使用驱动器80H读取硬盘时,它不会返回任何错误,但不会读取任何内容。如果我使用驱动器83H,它会给出驱动器不存在的错误。如果我使用DOS功能,我可以访问硬盘驱动器c(驱动器2),但不能用于读取MBR。如果我要为int 13H使用MS扩展,我必须知道BIOS驱动器号。有谁能告诉我如何找到第三主硬盘的驱动器号吗?或者我必须使用哪个端口才能在兼容模式下使用LBA40(01f0不工作)访问HDD?
Ralf Brown的中断列表建议挂接INT 13h并调用INT 25h以查看MS-DOS使用的BIOS驱动器号:
一种检测逻辑驱动器号实际分配的方法到物理BIOS驱动器单元(例如检测引导驱动器),是临时安装一个INT 13h处理程序,记录使用过的DL用于任何INT 13/AH=02h读取操作并丢弃任何尝试访问实际的软盘驱动器。然后调用INT 25h所有合适的DOS驱动器,并通过INT 13h拦截器。