我不知道有什么方法可以在真实模式下"列出"可用的BIOS驱动器.
但是,有些事情可能有所帮助:
40:75在的BIOS数据区.虽然我不知道驱动器号是按顺序分配的,但我希望它们是.如果是这样,硬盘列表将从0x80运行到0x80 +(40:75-1)(虽然可以想象可能有0个硬盘驱动器,因此0x80可能也无效).int 21h function 0E (选择默认驱动器),它返回"存在的最高驱动器".没有检查,我猜这与LastDrive有关,但它可能有用.int 13h function 08 (读取驱动器参数)并递增驱动器号,直到出现错误.我非常确定DOS最多可以驱动26个驱动器(包括硬盘,CD,软盘等),因此这个循环不会运行很长时间.请注意,对于BIOS功能,硬盘驱动器通常具有最高有效位设置.所以硬盘#0被称为0x80,#1是0x81等.软盘驱动器没有这个位设置,因此从0开始计数.
当USB驱动器出现时,我已经停止使用DOS,因此我不确定它们是否显示为硬盘驱动器或软盘.由于它们是可移动的,我不希望它们被列为硬盘驱动器,但它可能取决于您使用的驱动程序.