QQ登录

只需一步,快速开始

扫一扫,访问微社区

登录 | 注冊 | 找回密码

163 加中网–加拿大曼尼托巴中文门户网站 | 温尼伯华人论坛

 找回密码
 注冊

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 259|回复: 2
打印 上一主题 下一主题

[闲聊] OS中的分区工具

[复制链接]
跳转到指定楼层
1#
匿名  发表于 2002-11-25 14:20:53 回帖奖励 |倒序浏览 |阅读模式
下面是广告时间: </P><P>你是否为ms的丑陋的FDISK感到头痛?或者在为没有一款可心的多OS引导工具发愁?别急,下面就让我来帮助你把分区工具集成到BIOS中,以后你不用引导系统就可以对硬盘分区了,hoho~~ </P><P>1、介绍: </P><P>  以前一直对BIOS感到神秘莫测,因为他掌管了computer的启动大权,各种设备要听他调度,后来捷波主板提供了一个恢复精灵,据说对删除文件、format/fdisk系统都能恢复,中文版本的,还听说是一大卖点。于是一激动就给人家写了个mail,结果人家说商业技术机密,就不理俺了。 <BR>  本打算反汇编看看,但偶用的OS都是WIN32下的,居然无法反汇编,而且也找不到DOS下的反汇编工具了,另外这个从BIOS中分离出来的.dat文件反汇编也不会正常。(谁有好办法不防告知一声)后来看到有人在bios中居然集成了分区工具,才知道写能运行在BIOS中的软件的格式和正常的略有不同,为了能让大家体会一下这个工具的方便之处和使用方法,我简单说明如下: </P><P>  bfdisk (Bios Fdisk) 是一个多系统的分区工具,他可以支持划分15个分区安装15个操作系统,可以设置在每个系统启动的后能看到哪些分区。软件集成分区、多系统引导的功能,这个以ISAROM格式编写的软件还支持高分辩率的LOGO,强!还有,这是全中文的界面。 <BR>  <BR> 下载:http://nfans.net/tmp/bfdisk.rar <BR>     <BR>  <BR>  下载完成后,可以看到压缩包中包括bfdisk.rom、bfdisk.com两个文件,我们需要将bfdisk.rom这个文件写入BIOS中。BFDISK.com是BFDISK.rom的实模式下的版本,他们的功能是一样的。通常我们利用bfdisk.com来检测一下显卡,看看是否支持VESA1.0。如果能看到出现的画面就可以确定显卡测试通过。 </P><P>  在测试完成后利用AWARD的工具进行BIOS的修改,首先把主板上的BIOS读出来: </P><P>  推荐用winflash.exe来读取,这个软件上手比较快,而且能运行在win9x上。执行后点保存的按钮,在出来的对话框中起个名字,点保存后出现save bios窗口,点击backup按钮即可。(我这里把BIOS保存为815ep.BIN) </P><P>  然后用cbrom.exe来进行修改,用下面的指令将bfdisk.rom加入到bios文件中: <BR>  CBROM 815ep.bin /ISA BFDISK.ROM <BR>  最后在用winflash.exe 来将BIOS文件写回主板。 <BR>  方法是点击工具栏上面保存后面的按钮(第三个),在出来的对话框中找到刚才修改后的BIOS文件。点击打开按钮后会出现新的对话框update bios,点UPDATE按钮即可。(通常所谓的BIOS升级就是如此简单的,我们通过此方法可以集成你想集成的其他的BIOS模块) </P><P>  然后重新开机,在硬件检测完成后就会看到一个漂亮的LOGO,在这个时候按CTRL+F键,就会进入程序的主界面。 </P><P>  需要注意的是该软件只能运行award bios主板,显卡支持VESA1.0,主板支持8.4G以上硬盘的配置,还有利用ISAROM来使用的工具只能加载一个,就是说如果你的机子中有恢复精灵的话,在使用本软件后恢复精灵将会失效。 <BR>另外,如果用该软件对硬盘进行分区并进行多系统引导了,不要用PQMAGIC之类的软件来重新移动硬盘分区,很简单这会造成引导程序出错。 </P><P>  have fun ~ </P><P>  如果你不小心改坏了导致无法开机,别怪我。。。 <BR>  可以通过这个方法修复回来,利用sys a:作一张引导软盘。然后拷贝awdflash.exe 和没有修改的815ep.bin到软盘上,在软盘的autoexec.bat写上awdflash 815ep.bin,软盘启动成功后会两次车,然后按“Y”键,就会将没修改的815ep.bin写回主板。 </P><P><BR>2、原理: </P><P>  上面已经说出,该工具是通过ISAROM格式编写的,只要遵守ISAROM的规范,就可以写出能在BIOS中使用的工具,下面是一个hello world !写回主板后开机会显示hello world !提示。 </P><P>有如下代码: <BR>============================================================= </P><P>;FILENAME BHW.ASM </P><P>;MAMS6.0 BHW </P><P>;LINK/T BHW </P><P>.Model Tiny,C <BR>.486 <BR>.code <BR>InitCode PROTO <BR>printf  PROTO :WORD,:WORD <BR>GetKey  PROTO <BR>org 0h <BR>start: <BR>    DW 0AA55h              ;扩展BIOS标志 <BR>    DB 40h                 ;本程序大于32K值为80H,否则为40H <BR>    invoke InitCode        ;入口标志 <BR>    retf                   ;远程返回 <BR>Message db 0dh,0ah,'hello world!',0dh,0ah,0 <BR>InitCode proc <BR>    invoke printf,cs,addr Message <BR>    invoke GetKey <BR>    ret <BR>InitCode endp <BR>printf proc uses ds MemSeg:WORD,address:WORD </P><P>  push MemSeg </P><P>  pop ds <BR>    lea si,address <BR>    xor bx,bx <BR>    mov ah,0Eh <BR>    cld <BR>    lodsb <BR>    .while al != 0 <BR>        int 10h <BR>        lodsb <BR>    .endw <BR>    ret <BR>printf endp <BR>GetKey proc <BR>@@: <BR>    mov ah,1 <BR>    int 16h <BR>    jz @B <BR>    xor ax,ax <BR>    int 16h <BR>    ret <BR>GetKey endp <BR>end start </P><P>============================================================= </P><P>利用本文提供的方法,你可以写出能在BIOS中运行的程序,如果具体想编写的话,最好要参考PNPBios的资料来编写。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享
回复

使用道具

该用户从未签到

2#
发表于 2024-6-25 12:21:59 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2024-6-25 12:23:09 | 只看该作者
回复 支持 反对

使用道具 举报

发表回复
您需要登录后才可以回帖 登录 | 注冊

本版积分规则

    联系我们
  • 咨询电话:1.204.294.8528
  • 邮箱:163adv@gmail.com
  • QQ:179091654
    移动客户端:即将开放
    关注我们:
  • 扫描二维码加关注

快速回复 返回顶部 返回列表