是这样的,我在网络上看到一篇如何把FreeDOS集成进BIOS的文章,感觉很有意思,因为这样我就不用光盘启动DOS了,直接从BIOS里启动DOS,然后运行GHOST恢复系统就很容易。具体文章在这里:
http://hi.baidu.com/tuor/blog/item/fa978d81a11b64debc3e1e24.html
这是一个开源工程,有源程序下载。
按照文章的做法,我成功的刷新了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工程连接:
http://rayer.ic.cz/romos/romose.htm
ASM源程序:
http://rayer.ic.cz/romos/romos.asm
http://hi.baidu.com/tuor/blog/item/fa978d81a11b64debc3e1e24.html
这是一个开源工程,有源程序下载。
按照文章的做法,我成功的刷新了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工程连接:
http://rayer.ic.cz/romos/romose.htm
ASM源程序:
http://rayer.ic.cz/romos/romos.asm