中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-20 17:56
中国DOS联盟论坛 » DOS汉化世界 & 中文系统 (中文化室) » 在config.sys中使用的逐级执行式菜单编辑器 ConMenu.sys V2.12 查看 87,762 回复 270
楼 主 在config.sys中使用的逐级执行式菜单编辑器 ConMenu.sys V2.12 发表于 2006-01-15 17:49 ·  中国 山西 太原 联通(蓝汛云计算太原节点)
银牌会员
★★★
积分 1,009
发帖 353
注册 2003-09-04 00:00
22年会员
UID 9419
性别 男
状态 离线
在config.sys中使用的菜单编辑器有BootCon.sys和Boot.sys。他们的功能强大,但体积也大。
本人编制的菜单编辑器 ConMenu.sys 只有1.78K。
功能:
12行标题和4行尾注;
rem caption=
rem endnote=
16项可显示菜单(A,B,C...P);
rem cm0=

A
标号必须按A,B,C...排列
9项隐含菜单(1,2,3...9);
rem cm0=(1
...
rem cm0=)1
标号必须按1,2,3...排列
=]及=)后的字母数字不是必须的,只为了自我辨识
可显示菜单与隐含菜单在顺序上可混合编排;
即A,B,1,C,2...
颜色属性(背景前景色,被选菜单项显示方式),如不输入,缺省07,F;
背景前景色(00...FF)(背景闪烁位改为高亮)
被选菜单项显示方式(f反色,g高亮)
例:=07,g =07 =,g
rem color=
默认属性(默认菜单项,显示时间),如不输入,缺省A,60;
rem default=
例:=b,30 =b =,30
可显示菜单项里可包含同级其他菜单项(可显/隐含);
rem include0=
含有子菜单的菜单项里使用include,应放在子菜单结束后,本菜单项结束前
rem cm0=



rem include0=...
...
rem cm0=]b
复选菜单可多项选择(用回车键选择/清除);
rem cm0=

A
子菜单可多级嵌套;
第一级为0,第二级为1...
cm0,cm1...
include0,include1...
由%cm0%,%cm1%...返回参数A,B...P;
程序结束符 rem cm0=;
按↑↓或相应字母选择菜单项;'?'为复选菜单,按回车选择/清除;在单选菜单按回车确定
如果子菜单中不含标题、尾注、背景前景色、被选菜单项显示方式、时间,则继承父菜单内容

例子1:(实际使用时,需由'本是'的VTMagic.com将下面的中文字体换掉)
device=config.exe (由'本是'的VTMagic.com生成)
device=ConMenu.sys

rem color=1e
rem default=a,30
rem caption= 中文 MSDOS 7.1 启动盘
rem caption=================================================
rem endnote=按↑↓或相应字母选择菜单项;'?'为复选菜单,按回车选择/清除
rem endnote=在单选菜单按回车确定

rem cm0=



A

rem cm0=




B

rem cm0=


C

rem cm0=


D

rem cm0=
E

rem cm0=(1
devicehigh=vide-cdd.sys /d:ide-cd
devicehigh=aspicd.sys /d:scsi-cd
rem cm0=)1

rem cm0=(2
device=usbaspi.sys /r
device=aspiohci.sys /int /all
device=aspiuhci.sys /int /all
device=di1000dd.sys
device=usbcd.sys /d:usb-cd
rem cm0=)2

dos=high,umb,auto
fcbshigh=4,0
fileshigh=30
buffershigh=30,0
lastdrivehigh=32
stackshigh=9,256

rem cm0=Sample Text

[ Last edited by yaya on 2006-2-28 at 17:14 ]
附件
ConMenu1.jpg
ConMenu212.rar (3.18 KiB, 下载附件所需积分 1 点, 下载次数: 2266)
2 发表于 2006-01-15 20:01 ·  中国 山西 运城 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re yaya:

相当不错的原创作品!

希望它将来可以解决我做启动盘时所遇到的一些问题。不知楼主是否有计划支持多级菜单和复选菜单?

即用户可以在一个菜单中选择子菜单,并在子菜单中一次性选择多个需要加载的驱动程序。

另外,菜单界面的颜色,建议先做整屏处理;如果有必要,可以再做单菜单处理。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
3 发表于 2006-01-16 17:25 ·  中国 广西 玉林 电信
初级用户
★★
积分 176
发帖 74
注册 2005-11-07 16:51
20年会员
UID 44761
状态 离线
GOOD,楼主很有心啊
希望能越来越好
4 发表于 2006-01-17 14:46 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 2,227
发帖 790
注册 2005-01-27 00:00
21年会员
UID 35703
性别 男
状态 离线
啊呀呀!真不错。也算替我了了CONFIG MENU编程的愿。前几天我的机器出了点问题,上不了网!今天弄好了,一上网就是一个惊喜!!!
my major is english----my love is dos----my teacher is the buddha----my friends--how about U
5 发表于 2006-01-17 15:31 ·  中国 上海 徐汇区 电信
银牌会员
★★★
永遠的DOS~~~
积分 1,200
发帖 466
注册 2005-02-01 00:00
21年会员
UID 35867
性别 男
来自 上海
状态 离线
我觉得界面最好能像config.sys中使用[menu]配置一样
另外最好能做成复选的

支持楼主继续努力!!!
32位才是DOS未来的希望
个人网志:http://sololand.moe
6 发表于 2006-01-18 18:29 ·  中国 山西 太原 联通
银牌会员
★★★
积分 1,009
发帖 353
注册 2003-09-04 00:00
22年会员
UID 9419
性别 男
状态 离线
计划增加多级菜单和复选菜单功能。已有思路,只是这几天比较忙。
7 发表于 2006-01-23 18:11 ·  中国 山西 太原 联通
银牌会员
★★★
积分 1,009
发帖 353
注册 2003-09-04 00:00
22年会员
UID 9419
性别 男
状态 离线
含有多级菜单和复选菜单功能ConMenu.sys已编制完毕,正在进一步验证,不日可发布。
8 发表于 2006-01-23 20:14 ·  中国 湖北 荆州 石首市 电信
中级用户
★★
积分 281
发帖 51
注册 2003-01-05 00:00
23年会员
UID 684
性别 男
状态 离线
发布新版后,请附上参数说明。
感谢!
9 发表于 2006-01-24 09:11 ·  中国 浙江 衢州 电信
银牌会员
★★★
积分 1,270
发帖 548
注册 2004-05-31 00:00
22年会员
UID 25754
性别 男
状态 离线
谢谢啦。

===============DOS★★★永远伴随我们的DOS================
==================================================

==================================================
10 发表于 2006-01-25 12:34 ·  中国 山西 太原 联通
银牌会员
★★★
积分 1,009
发帖 353
注册 2003-09-04 00:00
22年会员
UID 9419
性别 男
状态 离线
ConMenu.sys V2.00 已编制完毕,重新发布于1楼。

例子2:
device=config.exe
device=ConMenu.sys

rem color=1e
rem default=e,30
rem caption= 中文 MSDOS 7.1 启动盘
rem caption=================================================
rem endnote=按↑↓或相应字母选择菜单项;复选菜单按←选择,按→清除
rem endnote=在单选菜单按回车确定

rem cm0=[A. 最小模式
rem cm0=]

rem cm0=[B. 保护模式 加载 EMM386
device=himem.sys
device=emm386.sys noems
rem cm0=]

rem cm0=[C. 实模式 加载 UMBPCI
device=umbpci.sys
device=lowdma.sys
devicehigh=himem.sys
rem cm0=]

rem cm0=[?D. 加载 CD-ROM
devicehigh=vide-cdd.sys /d:ide-cd
devicehigh=aspicd.sys /d:scsi-cd
rem cm0=]

rem cm0=[?E. 加载 USB
device=usbaspi.sys /r
device=aspiohci.sys /int /all
device=aspiuhci.sys /int /all
device=di1000dd.sys
device=usbcd.sys /d:usb-cd
rem cm0=]

dos=high,umb,auto
fcbshigh=4,0
fileshigh=30
buffershigh=30,0
lastdrivehigh=32
stackshigh=9,256

rem cm0=[end]
附件
ConMenu2.jpg
11 发表于 2006-01-25 12:36 ·  中国 山西 太原 联通
银牌会员
★★★
积分 1,009
发帖 353
注册 2003-09-04 00:00
22年会员
UID 9419
性别 男
状态 离线
例子3:
device=config.exe
device=ConMenu.sys

rem color=1e
rem default=a,30
rem caption= 中文 MSDOS 7.1 启动盘
rem caption=================================================
rem endnote=按↑↓或相应字母选择菜单项;复选菜单按←选择,按→清除
rem endnote=在单选菜单按回车确定

rem cm0=[A. 实模式 加载 UMBPCI
device=umbpci.sys
device=lowdma.sys
devicehigh=himem.sys

rem caption= 中文 MSDOS 7.1 启动盘
rem caption=================================================
rem endnote=按↑↓或相应字母选择菜单项;复选菜单按←选择,按→清除
rem endnote=在单选菜单按回车确定

rem cm1=[?A. 加载 CD-ROM
devicehigh=vide-cdd.sys /d:ide-cd
devicehigh=aspicd.sys /d:scsi-cd
rem cm1=]

rem cm1=[?B. 加载 USB
device=usbaspi.sys /r
device=aspiohci.sys /int /all
device=aspiuhci.sys /int /all
device=di1000dd.sys
device=usbcd.sys /d:usb-cd
rem cm1=]

rem cm1=[C. OK
rem cm1=]

rem cm1=[end]
rem cm0=]

rem cm0=[B. 最小模式
rem cm0=]


dos=high,umb,auto
fcbshigh=4,0
fileshigh=30
buffershigh=30,0
lastdrivehigh=32
stackshigh=9,256

rem cm0=[end]
附件
ConMenu31.jpg
ConMenu32.jpg
12 发表于 2006-01-26 11:02 ·  中国 山西 太原 联通
银牌会员
★★★
积分 1,009
发帖 353
注册 2003-09-04 00:00
22年会员
UID 9419
性别 男
状态 离线
修改了1项错误:时间到返回错误。
v2.01重新发布于1楼。
欢迎大家测试。
13 发表于 2006-01-26 21:41 ·  中国 山西 大同 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
Re yaya:

对 ConMenu 的复选菜单和子菜单功能做了常规测试,未发现明显的问题,在此首先对其中的界面细节提出一些疑问和建议。

1、背景色和前景色: 这我在二楼已经提到,现在详细说明。菜单的 endnote 之下是原始的前景色和背景色,看上去不太美观,建议设置背景色和前景色后,进行类似cls的刷新动作。正在选择的菜单建议前景和背景反色处理,以免在近似颜色的界面中无法分辨;选中的复选菜单,也可以考虑同样的反色处理。

2、caption和endnote:不知兄处于什么考虑,将其各定为四行,这样在菜单项较少时,菜单界面整体偏上,视觉效果不是很少,可以考虑不限行数,且将 endnote 显示于屏幕底部。

3、rem cm0=[?A:很奇怪兄会用左右光标键切换复选,而非比较常用的空格或回车。

4、default:倒计时的秒数位置很奇怪,是否可以考虑移动到菜单项下方?当然,这可能要求 rem default 设置项也随之移动。

另外几个问题是功能上的:

1、include:不知被包含块中是否支持或准备支持子菜单,以实现同级的连续菜单?如果是肯定的,那么要考虑的问题就比较复杂了,比如 %cm1% 的返回值问题。另外,include是否支持或准备支持递归嵌套?

2、菜单的跳转:菜单的跳转实现可以实现菜单返回、任意多级菜单等性能,但其实现算法估计与 ConMenu.sys 目前使用的相去甚远。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
14 发表于 2006-01-26 23:10 ·  中国 河南 洛阳 联通
中级用户
积分 245
发帖 43
注册 2003-08-05 00:00
22年会员
UID 8139
性别 男
状态 离线
高手就是高手!!

佩服!! 佩服!!
15 发表于 2006-01-27 10:00 ·  中国 浙江 衢州 电信
银牌会员
★★★
积分 1,270
发帖 548
注册 2004-05-31 00:00
22年会员
UID 25754
性别 男
状态 离线
真是高人哪。

===============DOS★★★永远伴随我们的DOS================
==================================================

==================================================
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
freshmemoli +1 2008-01-15 10:18
论坛跳转: