如何使用 BIOS 中断读取第二张软盘



我需要制作一个可以写入/读取软盘B的迷你操作系统(从软盘A启动)。

环境是 vmware 工作站。软盘是 A.img 和 B.img。

在 A.img 中,我设置了一个 MBR 程序和一个功能.bin。我需要在函数.bin中归档上述函数。下面是其中的代码片段。

...             ; set es:bx
mov ah, 0x03    ; read sectors
mov al, 0x01    ; 1 sector
mov ch, 0x00    ; cylinder
mov cl, 0x03    ; sector
mov dh, 0x00    ; head
mov dl, 0x01    ; B.img
int 0x13

然后我得到了返回代码:ah = 0x01。它的意思是"非法命令",但我不知道是什么原因造成的。

我尝试将mov dl, 0x01更改为mov dl, 0x00(A.img)或mov dl, 0x80(硬盘),它们都成功了。所以我想知道我该如何解决它。


更新我的问题:
B.img 已设置为"在 vm 运行时自动连接"。

A 的大小:31.5KBB 的大小: 1.44MB

这个问题是我自己解决的。

这是由我不知道VM的配置引起的。

默认情况下,虚拟机的 BIOS 中仅启用一个软盘驱动器。如果要向虚拟机添加第二个软盘驱动器,请在虚拟机窗口内单击,然后在虚拟机引导时按 F2 进入 BIOS 设置实用程序。在主屏幕上,选择旧版软盘 B:,然后使用数字键盘上的加号 (+) 和减号 (-) 键选择要使用的软驱类型。然后按 F10 保存更改并关闭 BIOS 设置实用程序。

https://www.vmware.com/support/ws5/doc/ws_disk_add_floppy.html

最新更新