免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2144 | 回复: 0
打印 上一主题 下一主题

BIOS中的分区工具-你可以写出能在BIOS中运行的程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-02 10:50 |只看该作者 |倒序浏览
BIOS中的分区工具
原创:killer(killer)
来源:http://nfans.net;http://xfocus.org

BIOS中的分区工具

killer

http://nfans.net


其实这只是一个广告 :)

下面是广告时间:

    你是否为ms的丑陋的FDISK感到头痛?或者在为没有一款可心的多OS引导工具发愁?别急,下面就让

我来帮助你把分区工具集成到BIOS中,以后你不用引导系统就可以对硬盘分区了,hoho~~

1、介绍:

   以前一直对BIOS感到神秘莫测,因为他掌管了computer的启动大权,各种设备要听他调度,后来捷波

主板提供了一个恢复精灵,据说对删除文件、format/fdisk系统都能恢复,中文版本的,还听说是一大卖

点。于是一激动就给人家写了个mail,结果人家说商业技术机密,就不理俺了。
   本打算反汇编看看,但偶用的OS都是WIN32下的,居然无法反汇编,而且也找不到DOS下的反汇编工具

了,另外这个从BIOS中分离出来的.dat文件反汇编也不会正常。(谁有好办法不防告知一声)后来看到有人

在bios中居然集成了分区工具,才知道写能运行在BIOS中的软件的格式和正常的略有不同,为了能让大家

体会一下这个工具的方便之处和使用方法,我简单说明如下:

   bfdisk (Bios Fdisk) 是一个多系统的分区工具,他可以支持划分15个分区安装15个操作系统,可以

设置在每个系统启动的后能看到哪些分区。软件集成分区、多系统引导的功能,这个以ISAROM格式编写的

软件还支持高分辩率的LOGO,强!还有,这是全中文的界面。
  
  下载:http://nfans.net/tmp/bfdisk.rar
        
   
   下载完成后,可以看到压缩包中包括bfdisk.rom、bfdisk.com两个文件,我们需要将bfdisk.rom这个

文件写入BIOS中。BFDISK.com是BFDISK.rom的实模式下的版本,他们的功能是一样的。通常我们利用

bfdisk.com来检测一下显卡,看看是否支持VESA1.0。如果能看到出现的画面就可以确定显卡测试通过。

   在测试完成后利用AWARD的工具进行BIOS的修改,首先把主板上的BIOS读出来:

   推荐用winflash.exe来读取,这个软件上手比较快,而且能运行在win9x上。执行后点保存的按钮,在

出来的对话框中起个名字,点保存后出现save bios窗口,点击backup按钮即可。(我这里把BIOS保存为

815ep.BIN)

   然后用cbrom.exe来进行修改,用下面的指令将bfdisk.rom加入到bios文件中:
   CBROM 815ep.bin /ISA BFDISK.ROM
   最后在用winflash.exe 来将BIOS文件写回主板。
   方法是点击工具栏上面保存后面的按钮(第三个),在出来的对话框中找到刚才修改后的BIOS文件。

点击打开按钮后会出现新的对话框update bios,点UPDATE按钮即可。(通常所谓的BIOS升级就是如此简单

的,我们通过此方法可以集成你想集成的其他的BIOS模块)

   然后重新开机,在硬件检测完成后就会看到一个漂亮的LOGO,在这个时候按CTRL+F键,就会进入程序

的主界面。

   需要注意的是该软件只能运行award bios主板,显卡支持VESA1.0,主板支持8.4G以上硬盘的配置,还

有利用ISAROM来使用的工具只能加载一个,就是说如果你的机子中有恢复精灵的话,在使用本软件后恢复

精灵将会失效。
另外,如果用该软件对硬盘进行分区并进行多系统引导了,不要用PQMAGIC之类的软件来重新移动硬盘分

区,很简单这会造成引导程序出错。

   have fun ~

   如果你不小心改坏了导致无法开机,别怪我。。。
   可以通过这个方法修复回来,利用sys a:作一张引导软盘。然后拷贝awdflash.exe 和没有修改的

815ep.bin到软盘上,在软盘的autoexec.bat写上awdflash 815ep.bin,软盘启动成功后会两次车,然后按

“Y”键,就会将没修改的815ep.bin写回主板。


2、原理:

   上面已经说出,该工具是通过ISAROM格式编写的,只要遵守ISAROM的规范,就可以写出能在BIOS中使

用的工具,下面是一个hello world  !写回主板后开机会显示hello world !提示。

有如下代码:
=============================================================

;FILENAME BHW.ASM

;MAMS6.0 BHW

;LINK/T  BHW

.Model Tiny,C
.486
.code
InitCode  PROTO
printf    PROTO :WORD,:WORD
GetKey    PROTO
org 0h
start:
        DW 0AA55h                           ;扩展BIOS标志
        DB 40h                                 ;本程序大于32K值为80H,否则为40H
        invoke InitCode               ;入口标志
        retf                                     ;远程返回
Message db 0dh,0ah,'hello world!',0dh,0ah,0
InitCode proc
        invoke printf,cs,addr Message
        invoke GetKey
        ret
InitCode endp
printf proc uses ds MemSeg:WORD,address:WORD

    push MemSeg

    pop  ds
        lea si,address
        xor bx,bx
        mov ah,0Eh
        cld
        lodsb
        .while al != 0
                int 10h
                lodsb
        .endw
        ret
printf endp
GetKey proc
@@:
        mov ah,1
        int 16h
        jz @B
        xor ax,ax
        int 16h
        ret
GetKey endp
end start

=============================================================

利用本文提供的方法,你可以写出能在BIOS中运行的程序,如果具体想编写的话,最好要参考PNPBios的

资料来编写。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP