30 123
发新话题
打印

[原创]最简单、最基本的多重启动菜单(ISO文件)

[原创]最简单、最基本的多重启动菜单(ISO文件)

当计算机设置为从CD启动时, BIOS首先将 LOADER.BIN 加载到 0:7C00 的地方,然后BIOS把控制权交给LOADER.BIN。 LOADER.BIN 再把自己加载到 5000:0 的地方,然后调用 INT 13 把DISKEUM1X.BIN装载到内存。LOADER.BIN 又把控制权交给DISKEUM1X.BIN,DISKEUM1X.BIN 再把DISKEUM.CMD 装载到内存,然后执行相应的菜单项。
  其实LOADER.BIN 不是必须的,DISKEUM1X.BIN 具有 LOADER.BIN 的功能,只要将制作好的 ISO 文件用UltraISO 打开,将DISKEUM1X.BIN 设置为引导文件即可。

    附件是一个完整的多重启动ISO文件,里面包含了三个文件:DISKEUM1X.BIN、DISKEUM.CMD 及TEST.IMG,菜单里只有一个选项有效即1,其他的没有定义,可以根据需要自行定义,选择1即进入DOS。
     其实在多重启动菜单中,DISKEUM1X.BIN类似于DOS的命令解析程序COMMAND.COM、而DISKEUM.CMD 则类似于DOS系统的配置文件CONFIG.SYS + 自动批处理文件AUTOEXEC.BAT。DISKEUM1X.BIN 里完成批命令的解析与执行,并改写了磁盘读写中断INT 13。DISKEUM.CMD是批文件,完成菜单的定义,可以用记事本打开文本文件DISKEUM.CMD进行修改。
    从我提供的这个ISO文件中可以看出,在多重启动菜单中,只要有DISKEUM1X.BIN及DISKEUM.CMD 就足够了,其他的可根据需要来增加,例如,要增加ERD Commander 2002,可以用UltraISO 打开ISO文件,并在里面新建一个目录ERDC,然后把准备好的ERDC内容加到该目录里(当然,必须将ERDC目录里的SETUPLDR.BIN文件中的四处I386改为ERDC)。然后在DISKEUM.CMD主菜单中的2 选项增加ERD Commander 2002(用于显示),在DISKEUM.CMD的mainkey的第2项onkey 2 后面增加 run bootsect.bin (注意用UltraEdit打开他,将里面的一处I386改为ERDC), 别忘了也要用UltraISO 打开ISO文件,将bootsect.bin文件加入到ISO文件的根目录里,保存即可。当然如果制作n 合 1 光盘,ISO 文件是必须重作的,以优化文件,此帖的本意是抛砖引玉。
    多余的话,我个人认为没有必要使用DISKEMU2.1,使用英文菜单挺好的,不存在兼容性问题,再说菜单一般都很简单,只要具有初中以上文化程度的人都能看懂,何况玩计算机的人,还有谁看不懂。
    附件中的ISO文件要用VMware Workstation测试,因为Connectix Virtual PC要求其ISO文件必须大于2M才能测试。
    希望高手参与讨论、指正, 也许高手早就知道了,不值得谈,权且一笑置之吧。借论坛宝地胡说一通,还望版主见谅。
附件: 您所在的用户组无法下载或查看附件

TOP

[原创]最简单、最基本的多重启动菜单(ISO文件)

不错,讲讲原理对大家都有好处。不用客气,多多宜善嘛。 :em02:
我是一个爱睡懒觉的人,有事请留留言。

TOP

[原创]最简单、最基本的多重启动菜单(ISO文件)

aaaa

TOP

[原创]最简单、最基本的多重启动菜单(ISO文件)

一个好人
http://linku.myrice.com

TOP

[原创]最简单、最基本的多重启动菜单(ISO文件)

好人啊

TOP

[原创]最简单、最基本的多重启动菜单(ISO文件)

[这个贴子最后由高级菜鸟在 2003/05/16 11:35am 第 2 次编辑]

getkey的用法
格式: getkey  timeout  key    ;等待从键盘读一个键值,直到有键被按下
-timeout  => 超时,  单位为 秒
-key      => 标识符
在给定的超时<timeout>时间到,又没有按任何键时, 那么指定的<key>值将被返回给 getkey 命令。
- <key> 可以被指定的值如下:
- 单一字符的ASCII 值,象是:a, 1 或 ! 。
键"标识符"(所谓标识符,是指它代表某一键值): esc(Escape,取消健), bs(BackSpace,退格健), tabbs(Tab,制表符), entrbs(Enter,回车健
), spcbs(SpaceBar,空格健), home(Home 键), up(向上光标健), left(向左光标健), pgup(PageUp 键), right(向右光标健), end(End 键),
down(向下光标健), pgdn(PageDown 键), ins(插入键), del(删除键)
功能键:
f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12 ;  F1、F2、F3···F12功能键
组合键:
sf1, sf2, sf3, sf4, sf5, sf6, sf7, sf8, sf9, sf10, sf11, sf12 ;  Shift + F1、F2、F3···等组合键
af1, af2, af3, af4, af5, af6, af7, af8, af9, af10, af11, af12 ;  Alt + F1、F2、F3···等组合键
-如果你熟悉键盘编码,可以自定义16进制的键值(16-bit),用键盘的扫描码/ASC码, 如:esc可以用0x11B 代表。
例子:
  getkey 10 esc      =>  超过10秒后,等效于你按下Escape 键,将执行相应的功能。
  getkey             =>  等待你按键

TOP

[原创]最简单、最基本的多重启动菜单(ISO文件)

onkey 的用法
格式: onkey key command
判断键值并执行相应的命令。
-key ,前面getkey 得到的键值,如a、1、f1、sf1、esc等等。这个getkey 有个功能,就是它会把得到的16进制的键盘编码转换为文本方式,
如,当按下键盘的F1键,其程序得到编码为:3B00h, 经过getkey 转换后就变为文本的“F1”。
-command, 命令,指定仿真程序执行哪项动作。有效的命令如下:
batch       boot         bootinfotable     cd          cls(或clear)   dir(或ls)
echo        emusegm      getkey            goto        help           keyval
loadsegm    onkey        print             quit        readtest       reboot
run         test         type(或cat)       ver
例子:
按F1键,转至_help
onkey f1 goto _help
.
.
:_help
按T键,运行test.img
onkey t run test.img
等等,可以自行指定。

TOP

[原创]最简单、最基本的多重启动菜单(ISO文件)

请教一下,为什么把在vmware测试可以通过的ISO文件直接刻在光盘上不能启动呀,我试过多次了浪费了好几张盘,现在都不知道怎么办了

TOP

[原创]最简单、最基本的多重启动菜单(ISO文件)

最需要的就是这样的帖子啊。

TOP

[原创]最简单、最基本的多重启动菜单(ISO文件)

好帖子~

TOP

 30 123
发新话题