有没有办法在实模式下列出BIOS驱动器索引(例如0x80、0x81...)?
我没有找到任何负责列出驱动器编号的中断!!
有没有办法在实模式下列出BIOS驱动器索引(例如0x80、0x81...)?
我没有找到任何负责列出驱动器编号的中断!!
我不知道有什么方法可以在实模式下“列出”可用的BIOS驱动器。
但是,有一些可能会有所帮助的东西:
40:75
处。虽然我不“知道”驱动器号按顺序分配,但我希望它们是这样分配的。如果是这样的话,硬盘驱动器列表将从0x80到0x80 +(40:75-1)运行(尽管可能没有硬盘驱动器,因此0x80也可能无效)。int 21h函数0E
(选择默认驱动器),返回“存在的最高驱动器”。没有检查,我猜这与LastDrive有关,但它可能会有用。int 13h函数08
(读取驱动器参数),并逐个增加驱动器号直到出现错误。我非常确定DOS最多只有26个驱动器(包括硬盘、CD、软盘等),因此这个循环不会运行太长时间。请注意,对于BIOS函数,硬盘驱动器通常具有最高有效位设置。因此,硬盘驱动器#0被称为0x80,#1是0x81,依此类推。软盘驱动器没有设置此位,因此从0开始计数。
当USB驱动器出现时,我已经停止使用DOS,因此我不确定它们是否显示为硬盘驱动器或软盘驱动器。由于它们是可移动的,我不希望它们被列为硬盘驱动器,但这可能取决于您使用的驱动程序。