|
yaya
银牌会员
积分 1009
发帖 353
注册 2003-9-4
状态 离线
|
『楼 主』:
用于Config.sys的并列配置菜单 ConfigP.Mnu v4.02
一、特点
1. 常见的配置菜单是逐级往下执行,不可返回,像串联。嵌套级数多时,菜单项目将会呈级数放大趋势,使菜单编写比较繁琐,重复项较多。本配置菜单是并列关系,菜单编写简捷,可阅读性强,为菜单界面布置提供较大灵活性。
2. 所有可选择项目布置在1个界面上,阅读方便,选择快捷。
3. 工作在800×600 16位增强色(114模式)。
4. 可加载jpg格式背景图像。如果不加载背景图像,则用背景颜色替代。
5. 可加载中文字库(hzk16/gbk16字体,压缩/非压缩字体,自带字体),内嵌中英文字符显示程序,为显示中文菜单提供了一个良好的平台。
6. 可屏蔽Config.sys处理过程中的显示信息。
二、简要说明
1. 选项组分为2类:复选类选项组(CheckOption),单选类选项组(RadioOption)。
复选类选项组用来加载相容的驱动程序,可不选或全选。
单选类选项组用来加载互斥的驱动程序,应选择1项且只能选择1项。
2. 项目分为2类:预加载项目(LoadItem),普通项目(Item)。
预加载项目是启动时缺省加载的项目。
3. 项目之间可以关联,有2类:被选关联(relate),未选关联(unrelate)。
被选关联:主控被选,被控有效。
未选关联:主控被选,被控无效。
有效,则可选,才有被选/未选之分。
无效,则不可选,皆按未选对待。
利用被选关联,可以组成多级菜单。利用未选关联,可以屏蔽有关项目。
4. 配置块(block)是按需要组织在一起的一组驱动程序。可在配置块里设定参数,遥控'AutoExec.bat'。可在'block=0'之前和'block=end'之后放置公共配置块。
5. 如果不加载中文字体,则显示英文。
三、使用方法
1. 选项组选择方法
按Tab或`键
2. 项目选择方法
按方向键顺序循环选择
3. 项目设定方法
复选类选项组 按空格或回车键,选定/清除
单选类选项组 按方向键的同时既被选定
4. 菜单退出方法
按Esc或退格键
只有1组单选类选项组时,可按空格或回车键
选择'退出'按钮,按空格或回车键
5. 开关参数
/s 屏蔽config.sys显示信息。
/u 解除屏蔽。
6. 英文字母大小写转换
在同一行中,默认为大写,遇^转换。
例:c^onfig^p.m^nu 显示为 ConfigP.Mnu
四、语法说明
1. 选项组
; 选项组顺序号CheckOption=左上角x,左上角y,右下角x,右下角y=项目布置=标签颜色,标签内容
; 选项组顺序号RadioOption=左上角x,左上角y,右下角x,右下角y=项目布置=标签颜色,标签内容
选项组类型 CheckOption 复选类选项组;RadioOption 单选类选项组
选项组顺序号 0-99 顺序编号
选项组范围 左上角为原点,水平象素x(0-799),垂直象素y(0-599)
项目布置 1行有几列(1,2,3,...)
标签颜色 红(00-ff)绿(00-ff)兰(00-ff)
标签内容
例: =100,100,700,140=3=ffff00,上位内存管理
=100,170,700,250=4=,加载光驱驱动
2. 项目颜色
; color=未选项背景,未选项前景,被选项背景,被选项前景
缺省 黑,白,白,高白
背景/前景颜色 红(00-ff)绿(00-ff)兰(00-ff)
未选项背景也就是屏幕背景(未加载图像或加载部分图像时)
未选项背景=被选项背景时,加载图像时字符以图像为背景
未选项背景≠被选项背景时,加载图像时字符以被选项背景取代图像背景
例: =000000,808080,808080,ffffff
=000080,808080,000080,ffffff
3. 字体
; rem font=字体名称
字体类型 hzk16/gbk16 压缩/非压缩 自带字体(可用于任何语言)
字体名称 可带路径
自带字体格式 偏移 长度 描述
00 2字节 字符数量(x)
02 2x字节 字符内码(8100-ffff)
2x+02 32x 字符点阵映象,横向取模
注:附带16j.dot/16g.dot为压缩hzk16/gbk16字体
可使用本是的Mkfon.com生成自带字体
例:=16g.dot
4. 动态项目提示
; rem prompt=列=提示颜色
缺省 8列,被选项前景
提示位置 列(1-83) 行在时间位置
提示颜色 红(00-ff)绿(00-ff)兰(00-ff)
例: =3=ff0000
==ff0000
=
5. 等待时间
; time=行=时间,标签
缺省 33行60秒
时间位置 行(1-33)
时间长度 秒(0-60)
时间标签 "剩余时间"
例: =32=30,剩余时间
=32=30
=32
=
6. 背景图像
; image=水平象素偏移,垂直象素偏移=名称
缺省 偏移0,0
图像位置 左上角为原点(0,0),水平象素(0-799),垂直象素(0-599)
图像名称 jpg格式,最大象素800*600
例: =0,0=lt.jpg
==lt.jpg
=500,100=xy.jpg
7. 关联
; relate=主控项目顺序号,主控项目顺序号,...=被控项目顺序号,被控项目顺序号,...
关联类型 relate 被选关联, unrelate 未选关联
例: =1=3,4 =1,2=3,4
8. 注释
; note=行,列=注释颜色,注释内容
注释位置 行(1-33),列(1-100)
注释颜色 红(00-ff)绿(00-ff)兰(00-ff)
注释内容
例: =2,20=800000,中文 MSDOS_7.1 启动盘
=2,20=,中文 MSDOS_7.1 启动盘
9. 项目
; 项目顺序号LoadItem=配置块顺序号,配置块顺序号,...=项目标题=项目动态提示
; 项目顺序号Item=配置块顺序号,配置块顺序号,...=项目内容
项目顺序号 0-99 顺序编号
配置块顺序号 该项目所包含的配置块
项目标题
项目动态提示
例: LoadItem=0,9=加载 umbpci=使用上位内存
10. 配置块
; block=配置块顺序号
....
; block=end
配置块顺序号 0-99 顺序编号
end 配置块结束符
例: ; block=0
decice=umbpci.sys
set cm=cdrom
; block=1
decice=emm386.exe
...
; block=end
五、其他说明
1. rem可用'; '代替。
2.选项组标签颜色(或注释内容颜色),全部缺省时按未选项目前景处理,否则按前一选项组标签颜色(或注释内容颜色)处理。
3. 颜色可参考'web_216颜色表',但不局限于此表。
例1:特点 多选项组,加载全屏图像
选择第2项目“最小加载”时,屏蔽第3-20项目
device=ConfigP.Mnu /s
; color=000099,bbbbbb,000099,ffffff
; prompt=12=ff33ff
; time=32=10,剩余时间
; image=0,0=lt.jpg
; font=16g.dot
; note=2,40=00ffff,中文 MSDOS_7.1 启动盘
; note=3,30=,─────────────────────
; note=33,29=00ff00,按T^ab选择项目组,按方向键选择项目,按回车键更改
; unrelate=2=3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
; 0RadioOption=100,100,700,140=3=ffcc00,上位内存管理
; 0LoadItem=0,20=umbpci=使用上位内存
; 1item=1,20=emm386=使用上位内存,扩充内存
; 2item=21=最小系统
; 1CheckOption=100,170,700,250=4=,加载光驱驱动
; 3LoadItem=2=udvd
; 4Item=3=qcdrom
; 5Item=4=gcdrom
; 6Item=5=uide
; 7item=6=vide-cdd
; 8item=7=aspicd
; 9item=8=usbcd
; 2CheckOption=100,280,700,320=4=,加载 usb 驱动
; 10item=9=usbaspi
; 11item=10=di1000dd
; 12item=11=aspiohci
; 13item=12=aspiuhci
; 3CheckOption=100,350,700,450=4=,项目支持
; 14Loaditem=13=长文件名
; 15Loaditem=14=中文=加载acios,支持gbk
; 16Loaditem=15=鼠标
; 17item=16=高速缓存=在DOS下按装Windows,必须先运行此磁盘高速缓存程序,以加快安装。
; 18item=17=vpc9x文件共享=在vpc5.2中共享文件夹
; 19item=18=vpc2k7文件共享=在vpv2007中共享文件夹
; 20item=19=ntfs分区=ntfs分区读写支持
device=himem.sys
; block=0
device=umbpci.sys
; block=1
device=emm386.exe NOEMS
; block=2
device=udvd.sys /d:udv-cd
; block=3
device=qcdrom.sys /d:qcd-cd
; block=4
device=gcdrom.sys /d:gcd-cd
; block=5
DEVICE=uide.sys /s40 /d:uid-cd
; block=6
device=vide-cdd.sys /d:vid-cd
; block=7
device=aspicd.sys /d:asp-cd
; block=8
device=usbcd.sys /d:usb-cd
; block=9
device=usbaspi.sys /r /NORST
; block=10
device=di1000dd.sys
; block=11
device=aspiohci.sys /int /all
; block=12
device=aspiuhci.sys /int /all
; block=13
set cwjm=1
; block=14
set zw=1
; block=15
set sb=1
; block=16
set gshc=1
; block=17
set vpc=1
; block=18
set vpc=2
; block=19
set ntfs=1
; block=20
dos=high,umb,auto
; block=21
set zx=1
; block=end
fcbshigh=4,0
fileshigh=30
buffershigh=30,0
lastdrive=z
device=ConfigP.Mnu /u
对应的autoexec.bat
@echo off
set DIRCMD=/O:N /O:G /P /4
path=a:\;c:\;z:\
if not %zx%#==1# goto cwjm
set zx=
goto end
:cwjm
if not %cwjm%#==1# goto sb
LFNFOR ON
DOSLFN /C- /Z:CP936UNI.TBL > nul
set cwjm=
:sb
if not %sb%#==1# goto gshc
ctmouse > nul
mousclip > nul
set sb=
:gshc
if not %gshc%#==1# goto vpc1
smartdrv /X 4096 2048 > nul
set gshc=
:vpc1
if not %vpc%#==1# goto vpc2
fshare98 > nul
:: idle > nul
set vpc=
goto ntfs
:vpc2
if not %vpc%#==2# goto ntfs
fshare07 > nul
set vpc=
:ntfs
if not %ntfs%#==1# goto zw
call nt.bat > nul
set ntfs=
:zw
if not %zw%#==1# goto gg
call ac.bat > nul
set zw=
:gg
doskey > nul
SHCDX33c /d:?udv-cd /d:?qcd-cd /d:?gcd-cd /d:?uid-cd /d:?vid-cd /d:?asp-cd /d:?usb-cd > nul
ansi > nul
call m.bat
:end
例2:特点 只有1组单选类选项组,加载局部图像
device=ConfigP.Mnu /s
; color=0000bb,bbbbbb,0000bb,ffffff
; time=31=10,剩余时间
; prompt=8=ff33ff
; font=16g.dot
; image=500,100=xy.jpg
; note=2,40=00ffff,中文 MSDOS_7.1 启动盘
; note=3,30=,─────────────────────
; note=33,38=00ff00,按方向键选择项目,按回车键执行
; RadioOption=100,100,450,500=1=cccc00,选择启动模式
; item=0=保护模式 加载 EMM386=使用上位内存
; item=0,2,4=保护模式 加载 EMM386 和 CD-ROM
; item=0,2,3,4=保护模式 加载 EMM386 , CD-ROM 和 USB
; item=1=实模式 加载 UMBPCI
; LoadItem=1,2,4=实模式 加载 UMBPCI 和 CD-ROM
; item=1,2,3,4=实模式 加载 UMBPCI , CD-ROM 和 USB
device=himem.sys
; block=0
device=emm386.exe noems
; block=1
device=umbpci.sys
; block=2
devicehigh=vide-cdd.sys /d:ide-cd
devicehigh=aspicd.sys /d:scsi-cd
; block=3
device=usbcd.sys /d:usb-cd
device=usbaspi.sys /r
device=aspiohci.sys /int /all
device=aspiuhci.sys /int /all
device=di1000dd.sys
; block=4
set cdrom=1
; block=end
dos=high,umb,auto
fcbshigh=4,0
fileshigh=30
buffershigh=30,0
lastdrivehigh=32
stackshigh=9,256
device=ConfigP.Mnu /u
例3:特点 多级选择
选择第0项目“DOS工具箱”时,第3、4项目才有效(可选择)
......
; relate=0=3,4
; RadioOption=100,100,700,140 6,8,10,72=3=ffcc00,选择类型
; 0Item==DOS工具箱
; 1Loaditem=0=纯DOS
; 2item=3=江民杀毒
; RadioOption=100,225,700,265=2=ffcc00,DOS工具箱
; 3LoadItem=1=ghost8.3
; 4item=2=中文版DM
........
; block=0
set config=dos
; block=1
set config=ghost
; block=2
set config=dm
; block=3
set config=jm
........
v4.00 2009/4/6
修改:由显示模式111(640×480 16位增强色)改为显示模式114(800×600 16位增强色),容纳更多信息
增加:字体格式,可加载hzk16、gbk16字体,可加载压缩、非压缩字体,可加载自带字体
增加:项目动态提示,便于详细描述项目用途
修改:可以在虚拟机VM中正常使用
修改:选项组位置由行列确定改为由象素确定
修改:内部使用保护模式,不需要预先加载himem.sys
修改:按钮文字由“继续”改为“确定”
修改:关联算法
v4.01 2009/4/26
修改:上下方向键可在本列移动,左右方向键可跨行移动
修正:项目标题字符数量被限制
改进:与虚拟机的兼容性
v4.02 2009/5/11
修改:关联表达式可设置多项主控
[ Last edited by yaya on 2009-5-11 at 23:13 ]
附件
1: MS-DOS-2009-04-07-15-06-31.png (2009-4-7 04:12, 245.38 K,下载次数: 22)
附件
2: MS-DOS-2009-04-07-15-06-59.png (2009-4-7 04:13, 247.09 K,下载次数: 15)
附件
3: ConfigP4.02.part1.rar (2009-5-11 23:12, 292.97 K,下载次数: 329)
附件
4: ConfigP4.02.part2.rar (2009-5-11 23:12, 292.97 K,下载次数: 299)
附件
5: ConfigP4.02.part3.rar (2009-5-11 23:12, 93.57 K,下载次数: 196)
|
|
2009-4-7 04:05 |
|
|
本是
银牌会员
积分 2201
发帖 789
注册 2005-1-27
状态 离线
|
『第
2 楼』:
好!功能更强了,且保持自己的特色。
你的GBK读取的算法是什么?
我的vtGBK.com和vtMagi?.com用的计算公式如下:
;假设汉字高位在AH/ch1,低位在AL/ch2中,
;rec=A+(AH-B)*C+(AL-D)-(AL\80h)
;if AH>A0h then
; if AL>A0h then '1-94:A1~FE || A1~FE
; rec=(AH-A1h)*94+(AL-A1h)
; else '159-254:A1~FE || 40~A0
; rec=94*94+32*94+32*96+(AH-A1h)*96+(AL-40h)-(AL\128)
; endif;8836 3008 3072
;else ;11844 14916
; if AL>A0h then '95-126:81~A0 || A1~FE
; rec=94*94+(AH-81h)*94+(AL-A1h)
; else '127-159:81~A0 || 40~A0
; rec=94*94+32*94+(AH-81h)*96+(AL-40h)-(AL\128)
; endif
;endif
|
my major is english----my love is dos----my teacher is the buddha----my friends--how about U |
|
2009-4-7 10:03 |
|
|
yaya
银牌会员
积分 1009
发帖 353
注册 2003-9-4
状态 离线
|
『第
3 楼』:
((ch1-81)*be+(ch2-40)-ch2/80)*2*10
数字是16进制的
|
|
2009-4-7 21:31 |
|
|
xiaolongkun0
初级用户
积分 188
发帖 84
注册 2008-12-25
状态 离线
|
『第
4 楼』:
终于看到新版发布。
强顶,超喜欢你的并列式菜单。
不知道这次更新有什么新特性和更改。
[ Last edited by xiaolongkun0 on 2009-4-8 at 13:33 ]
|
|
2009-4-8 13:17 |
|
|
xiaolongkun0
初级用户
积分 188
发帖 84
注册 2008-12-25
状态 离线
|
『第
5 楼』:
太好了,同类软件中,yaya的东西堪称完美另外那个“确定”按钮不知道是否可以隐藏,在风格更改的情况下,该按钮因为不可以更改风格,可能会造成视觉整体上的不和谐。
[ Last edited by xiaolongkun0 on 2009-4-8 at 20:15 ]
附件
1: 2009-04-09_070429.gif (2009-4-8 20:12, 83.75 K)
|
|
2009-4-8 20:12 |
|
|
xiaolongkun0
初级用户
积分 188
发帖 84
注册 2008-12-25
状态 离线
|
『第
6 楼』:
一个relate使用的问题
; relate=7=17
; unrelate=0=6,8,9,10
; unrelate=1=4,5,7
; unrelate=2=4,5,7
; unrelate=3=4,5,6,8,9
; unrelate=19=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
; unrelate=20=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
; radiooption=56,107,726,152=4=ffffff,M^emory management(^HMA,H^igh memory area)
; 0loaditem=0=umbpci
; 1item=1=qhimem
; 2item=2=himem
; 3item=3=none
; radiooption=56,175,726,242=4=ffffff,M^emory management(^UMB,U^pper memory block)
; 4item=4=h-himem
; 5loaditem=5=h-qhimem
; 6item=6=umbpci
; 7item=7=xmgr
; 8item=8=emm386 noems
; 9item=9=emm386 ram
; 10item=10=none
; checkoption=56,264,236,309=1=ffffff,U^ltra ^DMA
; 11item=11=h-qdma
; radiooption=246,264,726,309=3=ffffff,d^isk ^c^ache
; 12loaditem=12=h-qcache
; 13item=13=smartdrv
; 14item=14=none
; radiooption=56,331,726,376=4=ffffff,cdrom
; 15loaditem=15=h-qcdrom
; 16item=16=h-vide-cdd
; 17item=17=h-uide
; 18item=18=none
; radiooption=56,399,726,443=3=ffffff,o^ther
; 19item=19=restart
; 20item=20=shutdown
; 21loaditem=21=none
当第7被以“自动选择方式”激活时,第17并未成功激活, 也就是说relate=7=17并没有作用了,如果要成功激活17必须以“手动选择方式”来激活7才可以达到目的。
按照上图分析,在第一排UMA部分,在NONE的时候,第二排的XMGR自动激活,此时按理说,H-UIDE是应该可以选择的,但此时是暗的,relate=7=17并未作用。然后切换到XMGR,重新按方向键切换一下,H-UIDE才可以被激活,此时relate=7=17才作用。
[ Last edited by xiaolongkun0 on 2009-4-8 at 20:39 ]
|
|
2009-4-8 20:33 |
|
|
yaya
银牌会员
积分 1009
发帖 353
注册 2003-9-4
状态 离线
|
『第
7 楼』:
看来关联上还有些问题.感谢xiaolongkun0的测试.
|
|
2009-4-8 22:31 |
|
|
lanzho2000
初级用户
积分 30
发帖 12
注册 2005-12-15
状态 离线
|
|
2009-4-9 01:32 |
|
|
chen463
初级用户
积分 41
发帖 22
注册 2006-5-25
状态 离线
|
『第
9 楼』:
中文显示效果不错,背景图还是跟前3版显示较慢。
这新4版有支持中繁文或其他语言吗?
[ Last edited by chen463 on 2009-4-10 at 07:24 ]
附件
1: 410.GIF (2009-4-10 07:28, 27.1 K,下载次数: 1)
|
|
2009-4-10 07:22 |
|
|
yaya
银牌会员
积分 1009
发帖 353
注册 2003-9-4
状态 离线
|
『第
10 楼』:
gbk就支持繁文。其他语言可使用自带字体。
|
|
2009-4-12 22:09 |
|
|
yaya
银牌会员
积分 1009
发帖 353
注册 2003-9-4
状态 离线
|
『第
11 楼』:
修改了关联算发,重新发布于1楼.
|
|
2009-4-13 00:57 |
|
|
xiaolongkun0
初级用户
积分 188
发帖 84
注册 2008-12-25
状态 离线
|
『第
12 楼』:
果然很神速
我先测试了。
[ Last edited by xiaolongkun0 on 2009-4-13 at 20:15 ]
|
|
2009-4-13 20:08 |
|
|
VeDe
初级用户
积分 84
发帖 39
注册 2009-2-1
状态 离线
|
『第
13 楼』:
尝试了一下4.0最新修正版,一个BUG两个建议:
BUG:
由于新版本采用了800×600的分辨率,然而菜单的 项目标题 在超出640 后的似乎不能显示出来。。。
建议:
relate 被选关联, unrelate 未选关联 方面希望能一次指定多个主控项目顺序号,如:unrelate=1,2,3=4,5,6,测试一次只能指定一个主控项目顺序号,上面的例子仅指定1,而2、3无效。。。
方向键选择方面希望能使得上下左右随选,目前似乎只能上&左、下&右,对上或下项菜单进行移动,且移动方式为横行,无法竖行移动。。。即如:当项目布置为2,而项目标题为4,无法直接从1下移至3,必须通过2才能到达3。。。
|
|
2009-4-18 03:07 |
|
|
amazingosp
新手上路
积分 6
发帖 3
注册 2006-9-24
状态 离线
|
『第
14 楼』:
漂亮的界面将会带动DOS工具箱进入一个高潮时期
|
|
2009-4-18 06:34 |
|
|
xiaolongkun0
初级用户
积分 188
发帖 84
注册 2008-12-25
状态 离线
|
『第
15 楼』:
Quote: | Originally posted by VeDe at 2009-4-18 03:07:
尝试了一下4.0最新修正版,一个BUG两个建议:
BUG:
由于新版本采用了800×600的分辨率,然而菜单的 项目标题 在超出640 后的似乎不能显示出来。。。 ... |
|
贴代码出来看看,其实该版与前版坐标有所不同。
|
|
2009-4-18 12:06 |
|
|