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