中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS汉化世界 & 中文系统 (中文化室) » 用于Config.sys的并列配置菜单 ConfigP.Mnu v4.02
« [1] [2] [3] [4] »
作者:
标题: 用于Config.sys的并列配置菜单 ConfigP.Mnu v4.02 上一主题 | 下一主题
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
状态 离线
『第 8 楼』:  

顶起来哟,好东东!!!!

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
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: