房天下 > 房天下问答 > 业主生活 > 其他
  • 请教BIOS编程的规则-BIOS中的操作系统

    请教BIOS编程的规则-BIOS中的操作系统 20分 回答:0 浏览:5 提问时间:2009-04-01 12:11是这样的,我在网络上看到一篇如何把FreeDOS集成进BIOS的文章,感觉很有意思,因为这样我就不用光盘启动DOS了,直接从BIOS里启动DOS,然后运行GHOST恢复系统就很容易。具体文章在这里: 这是一个开源工程,有源程序下载。 按照文章的做法,我成功的刷新了BIOS,也可以进入FreeDOS,可以进去以后发现,总是问我要进B盘,说找不到COMMD.COM。 后来我发现,我是在BIOS SETUP里禁止了软驱,没有了软驱,当然就没有了A、B盘了,而这个OS代码要求软驱,请看如下ASM代码: ROMDISK_DRIVE EQU 1 ;0=A: 1=B: 80h=C: ... emulated drive 代码写得很明白,0是A盘,1是B盘,80h是硬盘,这里默认的是1,也就是B盘。 由于这台机器没有软驱,如果在BIOS里设置了软驱,就会开机报错,要求按F1键继续。当然也可以在BIOS里设置不理会错误,可是我处于“玩”的心理,修改了一下这个OS模块。 虽然我知道点汇编,可是那是十多年前的DOS时代的事情了(怀念),而且我也不知道BIOS编程的规则,所以在源程序上修改BIOS代码是不行了,所以我就用HEX编辑器直接修改二进制代码。 通过看源程序,然后在DEBUG里输入,知道了要修改的代码的HEX形式,然后用HEX编辑器直接修改ROMOS文件,把01h都换成了80h,希望这样可以就不需要软盘。文件改好了,可是用CBROM输入的时候,提示说这个不是BIOS ROM文件! 我估计就是跟BIOS编程规则有关,似乎记得是效验和为0 特此进到ASM分类中体味,请教各位ASM达人。 BIOS OS工程连接: ASM源程序: 如果您可以从ASM源程序上着手修改,默认用C盘的话,那就太好了!

    提问者:satoshi1126

    发布于2011-02-09

共1个回答
  • swj19821119 丨Lv 0
    把所有01h都换成80h是不行的,需要改源程序然后重新编译,checksum需要重新计算的
    +1 2011-02-10 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。