如何知道Bios驱动器没有。对于第3主SATA硬盘?

时间:2014-09-12 06:01:19

标签: assembly sata

现在我正在使用IDE硬盘并且能够使用BIOS调用进行访问,甚至可以使用LBA 28直接硬件使用PIO模式而无需任何O.S.呼叫。 现在我购买了新的SATA 500 GB硬盘,它是我唯一连接到SATA 1端口的硬盘。我的BIOS显示为第3主硬盘,主要和辅助主机不存在。 现在我已经在第一个分区上安装了MS DOS 5.0,运行正常。 但是现在我只能使用DOS INT 25h从逻辑扇区0开始读取硬盘扇区。这意味着我无法读取包括主引导记录在内的任何隐藏扇区。 当我使用BIOS int 13H调用使用驱动器80H读取硬盘时,它不会返回任何错误,但什么都不读。如果我使用驱动器83H它给驱动器不存在错误。如果我使用DOS功能,我可以访问我的硬盘驱动器作为驱动器c(驱动器2)但不能用于读取MBR。 如果我将使用MS扩展名为int 13H我必须知道BIOS驱动器号。 任何人都可以告诉我如何找到驱动器号码。第三大师硬盘? 或者在兼容模式下使用LBA 40(01f0无效)来使用哪个端口来访问硬盘?

1 个答案:

答案 0 :(得分:0)

Ralf Brown's Interrupt List建议挂接INT 13h并调用INT 25h以查看MS-DOS使用的BIOS驱动器号:

    一种检测逻辑驱动器号的实际分配的方法      物理BIOS驱动器单元(例如,检测启动驱动器),      是临时安装INT 13h处理程序记录使用过的DL      驱动单元用于任何INT 13 / AH = 02h读取操作并丢弃任何      尝试访问实际的软盘驱动器。然后拨打INT 25h      所有适当的DOS驱动器并观察记录的结果      INT 13h拦截器。