【问题标题】:How to read the second floppy with BIOS interrupt如何使用 BIOS 中断读取第二张软盘
【发布时间】:2016-06-01 16:56:54
【问题描述】:

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

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

在 A.img 中,我设置了一个 MBR 程序和一个 func.bin。我需要在 func.bin 中归档上述函数。以下是其中的一段代码sn-p。

...             ; 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.5KB B的大小:1.44MB

【问题讨论】:

  • 您是否将第二张软盘(驱动器 B:)设置为在启动时连接?我想知道您是否添加了第二张软盘(使用 B.img 的虚拟软盘),但您没有告诉它在 VM 启动时连接。
  • 出于好奇。 A.img的文件大小是多少,B.img的大小是多少?

标签: io operating-system bios floppy


【解决方案1】:

问题已经自己解决了。

这是因为我不知道虚拟机的配置。

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

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

【讨论】:

    猜你喜欢
    • 2014-11-29
    • 2012-01-31
    • 2012-02-21
    • 2010-10-07
    • 2018-01-30
    • 2020-10-21
    • 2014-07-23
    • 2014-12-28
    • 1970-01-01
    相关资源
    最近更新 更多