0

我有一个选项 rom,但除非我按 esc 键并且 bios 调用选项 rom,否则 bios 不会启动。我想知道bios如何在不按esc键的情况下调用选项rom?它会跳转到同一个入口点吗?特别是当我只能看到启动画面时,选项 rom 的输出在哪里?

4

1 回答 1

0

成功!这是我的 misc.bin 补丁。我反汇编了 misc.bin 并永久激活了 esc 键序列,因此它绕过了加载错误。

seg000:016B loc_16B: ; 代码外部参考:seg000:00BBj
seg000:016B 调用 sub_CB0
seg000:016E mov ds:byte_5A24, 0
seg000:0173 推 bx
seg000:0174 调用 sub_DFE
seg000:0177 流行 bx
seg000:0178 无
seg000:0179 无
seg000:017A 调用 sub_26C
seg000:017D 调用 sub_1F0
seg000:0180 mov cx, 0BB8h
段000:0183
seg000:0183 loc_183: ; 代码外部参考:seg000:019Cj
seg000:0183 mov 啊,1
seg000:0185 int 16h ; 键盘 - 检查缓冲区,不要清除
seg000:0185 ; 返回: ZF 清除缓冲区中的字符
seg000:0185 ; AH = 扫描码,AL = 字符
seg000:0185 ; 如果缓冲区中没有字符,则设置 ZF
seg000:0187 jz 短 loc_199
seg000:0189 异或啊,啊
seg000:018B int 16h ; 键盘 - 从缓冲区读取字符,如果为空则等待
seg000:018B ; 返回:AH = 扫码,AL = 字符
seg000:018D cmp 斧头,2106h
seg000:0190 jz 短 loc_1A0
seg000:0192 cmp 斧头,1519h
seg000:0195 jz 短 loc_1A0
seg000:0197 jmp 短 loc_1BD
seg000:0199 ; -------------------------------------------------- -------------------------
段000:0199
seg000:0199 loc_199: ; 代码外部参考:seg000:0187j
seg000:0199 调用 sub_2318
seg000:019C 循环 loc_183
seg000:019E jmp 短 loc_1BD
seg000:01A0 ; -------------------------------------------------- -------------------------
seg000:01A0
seg000:01A0 loc_1A0: ; 代码外部参考:seg000:0190j
seg000:01A0 ; seg000:0195j
seg000:01A0 移动 ds:byte_5A5B, 1
seg000:01A5 移动 ds:byte_573C, 0
seg000:01AA 移动 ds:byte_5A22, 0
seg000:01AF 调用 sub_27E
seg000:01B2 移动 ds:byte_5A21, 3
seg000:01B7 移动 DX,8
seg000:01BA jmp loc_2ED
seg000:01BD ; -------------------------------------------------- -------------------------
seg000:01BD
seg000:01BD loc_1BD: ; 代码外部参考:seg000:0197j
seg000:01BD ; seg000:019Ej
seg000:01BD 调用 sub_F67
seg000:01C0 引用
于 2013-01-25T05:24:17.910 回答