简介:
2017-02-04(yaya)
此指令用于检查空目录状态。该指令返回值为假。2016-12-08(yaya)修复了对lz4和vhd不再显示压缩进度的问题。新增了对lzma的压缩进度提示功能。
2016年11月9日(未被激活):在二进制数$0x8205$中的第5位设置为1,将终止了该指令的执行。2016-04-13(yaya)具备动画菜单功能。在配置动画菜单时需设置多个参数包括:菜单行数、列数等具体数值。详细来说,类型选项允许用户选择高亮颜色翻转模式线框显示以及背景透明度设置其中最佳效果是使用黑色背景作为底图。此外,路径文件名需要指定为特定的扩展格式*n.??? 该格式中n值范围限定在00至99之间。另外支持不同字体大小和文字颜色同时允许附加图标辅助表现。2016-03-25(yaya)允许菜单字符采用不同字型表示。例如:七使用不同字型,将 .hex 文件中的 unicode 码 4e03 设置为 0080,将其表示为 X0080,即十六进制文件的相应编码调整。
2016年3月23日(yaya)对 Echo 功能进行增强。
提升 Echo 功能表现,如通过 -e 选项附加字符显示特定字节内容。
Echo 命令以 -e 选项附加字符 X2191 展示 Unicode 字符 U+2191。
2016年3月15日(yaya)发布了以下功能增强:
•新增了F2热键用于暂停动画播放。
•添加了控制位码值为$0x83B$,其中第0号位设置为$0b01$时执行停止操作。
•精简字库模式已开放使用,其参数定义如下:--simp= <起始>,<终止>,...,<起始>,<终止>。例如:
- 使用 --font-high=24 加载 $24\times24$ 的全字库
- 不使用热键时加载 $32\times32$ 全字库
- 使用精简字库模式时加载 $46\times46$ 汉字全字库
- 同时使用精简字库及F1热键功能时可加载 $40\times40$ 汉字全字库
•已终止对基于 bin 格式的字体文件支持。
2016年3月3日(yaya)新增功能如下:
1. 支持设置图像背景色。语法格式为:splashimage --fill-color=[0xrrggbb]
其中,作用包括:
- 作为小尺寸图片的背景。
- 可直接用于菜单界面,无需加载背景图片。此时只需设置字体前景色即可。
2. 新增动画菜单功能。语法格式如下:
splashimage --animated=[type]=[delay]=[last_num]=[x]=[y] START_FILE
其中,[type]参数定义为:
bit 0-3:播放次数;bit4:无限循环模式;bit7:背景透明。
参数说明:
- type=00:禁止播放。
- 播放n次:显示序列图像各n次,并占用独享时间。可用于启动界面或开场展示。
- 延迟[delay]:设置为滴答单位(118.2秒),影响序列图像之间的显示间隔。
- 序列数[last_num]:定义序列图像总数,采用两位数编号(从1开始计数)。
- [x][y]参数用于图像偏移处理。
提示:
请以十六进制形式输入上述数值,避免输入错误。建议背景色选用白色或黑色,以便去除杂波;若使用彩色背景,则需确保纯度较高。
3. 支持固定图片设置透明背景功能。语法格式为:splashimage [--offset=[type]=[x]=[y]] FILE
其中:
- [type]参数定义为bit7类型,支持透明背景。
该功能可实现以下效果:
- 当offset类型选中时,会自动创建带有透明边框的图片。若未选中,则直接使用原始图片。
注意事项:
- x和y偏移值默认设为0,无需额外参数设置即可生效。
2016-02-14(yaya) setmenu 函数新增菜单项目背景长度的设置参数,默认为简短。splashimage函数新增图像起始位置设置(默认值为0)
2015-08-20(yaya)
1. 不支持 16x16 点阵字库。
通过添加相关参数,可以实现以下功能:
--hex* --bin 字体输出类型;
--horiz-scan* --verti-scan 点阵字符扫描模式;
--h-to-l* --l-to-h 点阵字符在字节中的存储方式;
--font-high=[font_h] 点阵字符的高与宽(应相等)。
注释:
1. 使用 --bin 选项可选择二进制字体输出。
2. 若无此需求,可省略相关参数设置。
3. 基于内存限制,当前支持的最大点阵字库尺寸为 32x32;中文小字库可达 40x40。
内置字体文件中,若非基于16x16的点阵字符,则需声明 DotSize=[font_h]。
受内存限制,目前仅支持最大 32×32 的大字库,而中文的小字库则可支持到 40×40。
2. 已移除对 VGA 模式的支持。2015-07-07(yaya)
1.支持每像素16位彩色模式(64K 5:6:5)。
2.支持 jpg(jpeg,jpe)图像格式。
3.在 vbe 模式,使用 echo -rrggbb 可以显示 216 种彩色样本。
4.使用 echo -v 可以显示版本、内存信息。
5.增加 setmenu 函数,增强图形菜单编辑功能。参数:
--ver-on --ver-off 版本信息打开关闭。默认打开;
--lang=en --lang=zh 按键帮助信息中英文切换。默认英文;
--auto-num-off --auto-num-on 关闭打开菜单自动编号。默认关闭;
--font-spacing=[font]:[line] 设置字符间距行间距。单位:像素。默认0。应当位于下面的参数之前;
--string=[x]=[y]=[color]=[string“] 字符串位置、颜色与内容,可用于标题,说明,帮助等。单位:列,行,24位色彩。
注:如果省略颜色,位于菜单框以上按标题颜色,位于菜单框以下按帮助文本颜色;
字符串头尾要加英文双引号;
列数=图像水平像素(字符宽+字符间距) 字符宽=8;
行数=图像垂直像素(字符高+行间距) 字符高=10;
--box x=[x] y=[y] w=[w] h=[h] l=[l] 项目标题起始列,起始行,每行最大字符数,最大菜单项数,菜单框线条宽度(像素);
注:w=0 表示水平居中。此时 w 应当在 x 之后;
l=0 表示不显示菜单框;
--help=[x]=[w]=[y] 项目帮助位置。单位:列,行。默认1行;
注:x=0 由边框确定(默认);w=0 水平居中;
--keyhelp=[y_offset]=[color] 按键帮助位置,颜色。单位:列,行,24位色彩。
注:y_offset=0,项目与按键帮助位于同一区域,项目帮助可以覆盖按键帮助(默认);
y_offset !=0,是按键帮助到项目帮助的行偏移,两者共存;
y_offset<=4,是项目帮助的显示行数;
color 默认 “color helptext;
--u 恢复菜单原始状态。
--timeout=[x]=[y]=[color] 倒计时位置、颜色。单位:列,行,24位色彩。
改进 NTFS 文件系统:对于驻留属性文件(小文件),支持修改,并可使用 blocklist 展示相关信息;而对于非驻留属性列表,则不再设置大小限制。2015-03-23(yaya) 内置的USB 2.0端口可以支持驱动原生4K扇区格式的存储设备2014-10-29 1.(tinybit) Workaround for BIOS of BENQ notebook that only supports version 1.在2014年10月15日,为问题204提供了一个解决方案或替代方法(chenall)。对skip_to()函数进行调整,在引号内的内容采用原有方法处理以确保兼容性;设置@boot变量并添加调试信息;在将控制权转移至grub4dos之前,可预先设定两个变量boot_drive和install_partition的值;修复屏蔽map的信息。2014-10-09(yaya) 2.过滤相关信息。通过 bootlace.com 部署 grldr.mbr 到 gpt 分区类型的设备2014-09-02(yaya) 1. ext4分区实现了64位功能模块并支持元块组划分;2.grldr头部及其mbr文件结构具备搜索gpt分区相关grldr的能力;3.修复了 bootlace 问题。
2014-08-17
1.修复了GPT隐藏功能的缺陷,实现了对gpt分区的正常隐藏操作.
2.提升了GPT分区搜索算法的效率.
3.提供了便捷的访问途径,但避免在管理界面中显式展示GPT保留区.
2014-08-01(不点)
1.该方法可有效解决 reboot.pro 报告的分区 ID 为 00 的分区无法被识别及访问的问题。
2.该解决方案解决了 chainloader --raw 在加载硬盘 BPB hidden sectors=0 引导扇区时出现故障,并且这一问题在英文论坛上也曾报告过。
3.通过清除 ud 启动过程中的残留信息,可避免后续启动被误认为是 ud 启动(因为后续启动本就不是从 ud 启动而来)。
1.该修改确保了 builtins.c 中的 default_func 和 geometry_func 函数代码与 0.4.5c 版本保持一致。
2.在 common.c 和 stage2.c 文件中,代码也已调整至与 0.4.5c 版本一致,仅对 0.4.6a 版本有特殊改动。
2014-07-9(yaya) 修复软盘扫描。 配置为 16 插槽映射的功能。
2014-06-23(yaya)
1. 实现了对具有片段化的文件进行仿真的增强功能,最大支持32个片段块,并且当全部切换至新版时,将能够完整传输这些片段的信息。
2. NTFS文件系统的非驻存属性列表长度被限定在了8KB以内。
3. 修复了UDF格式光盘驱动程序存在的问题。
4. 解决了ISO 9601-14-Joliet文件格式转义符号在显示时出现的问题。
2014-01-16(yaya)
1. 当FDD模式下的U盘(具备BPB功能,未配置分区表)通过BIOS被分配驱动器号为0x80时,系统将其映射至逻辑地址0x00位置,并相应地屏蔽了驱动器号0x80。这种操作既能避免用户直接访问U盘的可能,又能有效防止死机现象。此外,这一配置还解决了之前提到的64位逻辑扇区读取问题。
2. 该功能已修复:在FDD模式下执行find命令时不再返回(hd0)的问题已得到解决。
3. 用户界面菜单列表中默认位置的ISO文件夹路径(0PE.ISO)已被修正为更合理的位置设置。
4. USB 2.0驱动程序可通过用户菜单或命令行启动,使用usb --init参数加载映像文件。
5. USB 2.0驱动增加了对集线器(HUB设备)的支持功能。在安装过程中若出现失败提示,请重启设备后重新尝试加载。系统将自动初始化U盘并采用逐扇区读取的方式继续操作。
6. 当发生多扇区读取失败时,系统会提示用户拔出U盘后再重新插入,并建议按任意键继续。随后,系统将在默认位置对U盘进行重置,并切换为逐扇区分割方式继续读取过程。
7. 该功能增强了文件名称的识别能力,提供更灵活的管理方式。
7.1 用户可以自由选择文件名的大写或小写形式;但在特定分区(grldr.mbr和grldr.pbr)中,必须使用全大写字母进行命名。
7.2 在特定分区(grldr.pbr)中:
- FAT16、FAT32分区采用8.3字节格式表示文件名;
- ext2、exFAT、NTFS分区则采用12字符的长度。
7.3 在grldr.mbr分区中,建议使用不超过12个字符的文件名。
7.4 为确保兼容性及稳定性,建议用户避免使用过长(超过8个字符)或复杂度过高的文件名。此外,文件扩展名也不应超过3个字符。如果文件名包含分隔符.,则必须全部保留不可省略。
2014年4月1日发布的新版本对现有功能进行了多项优化和增强:
• 优化支持USB 2.0接口驱动器枚举功能,增加了设备号识别能力;从当前工作目录执行程序后,缓存数据被移动至内存地址$0x80000处,并精简驻留内存占用至4KB。
• 支持基于碎片的文件仿真模式,最多可处理8个片段。该功能占用内存范围在11KB到13KB之间(具体占用量取决于是否加载光驱)。
• 为Windows XP系统提供了支持短文件名的小写形式,并采用位掩码的方式指定小写字母的位置:当且仅当位0x0c中的第3位设置为1时,文件名称将被设为小写;同理,若第4位设置为1则表示文件扩展名应采用小写。
• 该版本能够正确识别由mkisofs 2.002.01生成但存在Bug的Joliet格式CD。
2013-10-18
1.新增功能类似于CMD的PATHEXT,允许用户设定默认文件扩展名。可通过命令行参数--set-ext进行配置。例如,执行命令:.g4b;.g4e
在运行时无需手动指定文件类型,系统会根据当前目录中的文件自动识别并应用相应的扩展名规则。
2013-10-17
1.更新代码库以支持最新版本的HOTKEY功能。
2013-07-10
1. insmod 现在允许使用长文件名(以前最多支持 11 个字符,现在无限制).
2. 通过修改相关代码,成功消除了编译过程中的警告信息.
2013-06-30 1.该方法能够有效优化由于命令行指令数量过多以及批处理参数较多而引发的内存溢出问题。
2013-03-19
新增了带有优先执行功能的命令分隔符;;,确保后续操作不会受到影响。通过示例代码展示新功能:
set a=abcd ;; echo %a% ;; set a=
2013-03-02
修复了菜单边框尾部右角带有箭头符号的bug。
支持在多种显示状态下自定义菜单背景色,设置border=xx即可。
2012-05-16 1.移除对遵循ISO9660标准的文件系统中大小写敏感性的限制。在新版本中,ISO9660文件系统的大小写敏感性被彻底移除。
2012-03-19 1.修复批处理CALL嵌套超过13层导致程序崩溃的问题
2012年2月22日
文件:
stage line command file
修复了通过管道操作时可能导致的内存占用问题。
2012年2月10日
文件:
stage built-in functions.c
修正了cat --locate=x22命令运行时出现的错误。
查看相关讨论:wuyou论坛
cmdline.c
避免对缓冲区设置限制,已取消管道|缓冲区限制的操作。
2012年2月1日
构建脚本已得到修复。
stage built-in functions.c
修正了build script(问题71)。
cat --replace命令的使用已被支持,并新增了-n到-n的功能(问题70)。
stage stage2.c
内存地址为0x8276的current_entryno变量存在漏洞(问题70)。
stage disk IO.c
已启用部分类型为00的数据写入功能,具体可参考:reboot.pro 16004页码__st__25。
stage cmdline.c
修复了skip_to操作引发的错误。例如:
cat --locate=abc def (md)内存地址为0x300+1。
2012-01-17
1.解决了一个由map --rehook导致的问题。http:bbs.wuyou.comviewthread.php?tid=180142&page=231#pid2373207
2.进行了部分微调。
3.版本号更新至0.4.5c2011-12-302011-12-26 1.优化菜单自动生成编号。improve autonumber.
2011年12月13日
修正grub_sprintf函数%d不能正确显示负数的bug.
该命令在新增>=和<=比较符后,支持数值型比较。
新的if命令支持新增>=和<=两种比较符。
新版本的if命令增加了三种比较方式:大于等于、等于以及小于等于。
当输入两端均为数值时,系统会自动进行数值对比;若非数值,则依据字符的ASCII码值进行比较。
2011-12-11
1.可以调用map --status=n来查询已挂载磁盘的状态。通过使用--status=n选项,调用map命令可以返回相关信息。
返回以下两个变量的值:
%?%=Start_Sector
%@retval%=Sector_Count
如果该磁盘不存在,则返回0.
2011-12-08
1. 自动编号菜单(在动态菜单中使用时特别有用)。该功能可为菜单项自动生成编号,尤其适合有标题的菜单场景。
支持菜单 AutoNumber. This is particularly useful when the menu has a title.
使用方法:
Menu items can be numbered automatically by entering two hexadecimal digits.
The delimiter character is specified in ASCII code, where space (0x20) or hyphen (-, 0x2d) serves as the separator.
更多信息:
http://bbs.wuyou.com/viewthread.php?tid=180142&page=193#pid2351695
2011-12-06
1.修复漏洞。
2.当采用调试模式启动时,能够显示用于执行条件菜单的命令。自2011年12月5日起新增条件式菜单项:IfTitle。其语法设置如下: IfTitle [] Actual Title displayed 该菜单仅在条件不满足时方能显示有效。例如,若HD0,0目录下存在bootmgr文件则显示第一个菜单项;若存在NTLDR文件则显示第二个菜单项。CheckIfTitle: [if exist (hd0,0)bootmgr] Conditionally boot from (hd0,0): NT6.X
ChainLoader (hd0,0)bootmgrTitle if ((HD: 0,0 exists) and not NTLD), boot to NT5.X from HD: 0,0
ChainLoader located at HD: 0,0
2011-12-01
BUG已更正。
新增支持通过INT 18进行启动的功能。
操作说明:
可通过boot -1或boot --int18执行该功能。
部分代码经过优化整合,实现了更为简洁的效果。
2011年11月29日:
此次修复了软件中的一个潜在问题。新增了color指令语法规则,其语法格式如下:color color_state=color [..]其中color_state参数可选值包括:normal(未选中菜单)、highlight(已选中菜单)、helptext(菜单帮助信息)以及standard(默认色,适用于控制台界面)。此外,border选项仅在VBE模式下有效。新增了setcolorsetcolorstate函数,该函数用于设置特定的颜色状态参数。
2011-11-27
1. 当将fontfile命令放置于splashimage之后执行时,会导致背景图片出现颜色错误问题。
2.VGA模式(0x120x6a)在不使用splashimage命令的情况下,能够指定与console模式相同的字体颜色。
2011-11-22
1.支持配置控制台字符样式颜色和背景色(仅限于文本模式或VBE模式)
方法:可以通过仅提供单一参数的方式直接调用color命令完成设置。
注释:在命令行界面或批处理脚本文件中进行操作时会生效。
2011-11-19
1. 当bit设置为0时显示光标,而当bit设置为1时则展示 SplashScreen。
使用setcursor函数(参数n)可以调整光标状态,并且可以通过命令行进行配置。调用Fn键的第70号功能,将光标和 SplashScreen关闭掉。
清理不必要的代码片段。
2011-11-18
1.可应用 splashimage 以 BMP 格式存在(VBE 模式仅适用).
2.当在 VBE 模式之外使用 BMP 图片时,系统会尝试自动生成适合的分辨率设置.
2011-11-03
1.修复一个map函数的bug。该错误已由map_func函数完成修复。
相关讨论:
http:bbs.wuyou.comviewthread.php?tid=201887
http:bbs.wuyou.comviewthread.php?tid=201647
2.在ISO9660文件系统中,忽略文件名大小写的比较。通过设置名称比较的区分度为零,可实现大小写不敏感的名称对比。
相关命令:
您可以通过以下命令关闭此功能:
write 0x4CA24 0
3.cat命令新增了--locatei参数,用户可通过此选项进行查找操作。在实际应用中,可以指定大小写的比较方式为忽略大小写。例如:
cat --locatei=Test (md)0x300+1
2011-10-07
新增变量?$_BOOT用于访问启动GRUB4DOS的Boot_drive。为了节省代码量,GRUB4DOS核心团队已移除对WENV(基于tuxw版本)的兼容性处理。UUID命令在判断字符时默认区分大小写,用户若需统一处理可进行相应设置。
2011-10-02
1. 移除对FB启动盘的相关修正措施,恢复原样.
2. 进行其他批次处理相关的代码优化工作.
2011-09-28
1.修复了对磁盘分区进行读写的Bug(原为disk_io.c),感谢Yonsm提供报告和测试反馈。
解决了位于disk_io.c中的一个潜在问题,该错误可能导致数据传输异常。
2011-09-13 1.修复insmod中的一个漏洞(无法将默认路径下的文件通过insmod进行操作) 实现了insmod相关功能的稳定性提升。2011-09-05
1.insmod能够指定模块名称,例如使用insmod配置fat.gz和fat文件名.
Support specified name when insmod a module.
2011-09-02
1.resolved an issue with the setlocaendlocal command.
2011-08-25
1.addressed a bug in the cat command that causes errors when using the --locate-align flag.
2.resolved an issue with the cat_func function.
2011-08-23
1.included help text for the echocat command. (issues: 38,40)
2.fixed an issue with displaying all help information via the help command.
2011-08-09
1.batches up and fixes a bug related to callgoto.
2.the new call can directly execute any command.
2011-08-08:
1.对某些代码进行了微调。
2.解决了在使用调用机制与逻辑运算符连接时Ctrl+C强制中止批处理脚本可能失败的问题。
3.当管道符|被用于长度超过0xC00的字段时,多余的部分将不会传递。2011-08-01 日期:2011-07-30 1.批处理任务中支持通过快捷方式Ctrl+C来进行强行终止其运行状态的中断。
2011年7月19日
内部变量$?_WENV=$?_UUID=
注:鉴于未来将移除$?_UUID以保持兼容性,建议在适当时间前采用$%?%或$%?_WENV%替换掉$%?_UUID%,以便获取UUID值。
此外,当前可用的字符串信息包括:
1. uuid dev(…) 可用于获取指定设备对应的UUID字符串。
2. cat --locate= 则可返回最后定位到的位置。
关于随机算法部分已进行了优化或调整。
2011年7月13日,在启动cmain之前对程序的内存空间进行初始化。
2011-07-12
1. 在执行clear命令时将count_lines设为零。这将确保计数准确无误。
2. 内置变量新增@retval等同于原来的0x4cb00。这一变更在功能上与之前版本保持一致,仅是对变量命名进行了调整以提高可读性。
3. 增加setlocal @和endlocal @的用法及其相关操作。这些命令主要用于批处理环境中的局部变量管理:
setlocal @允许在批处理脚本中定义局部变量,以便于代码组织与维护。
使用endlocal @可以将当前脚本的局部变量范围限定在该脚本内部,避免外部脚本对当前设置的影响。
需要特别注意的是:setlocal命令一旦被使用,在后续未明确声明的情况下前面的setlocal命令会影响后面的代码。因此,在批处理脚本中,建议将所有setlocal命令集中放置于最开始部分,并确保它们之间的正确衔接以避免不必要的变量残留影响。
2011-07-11 1.设置本地变量块,并采用与Windows批处理类似的使用方法。
2011-07-05:
1. 努力解决%~d0和%~f0路径提取上的难题,现已有望正确获取该路径。
2. 已成功实现转向操作的正常执行。
3. 其他相关代码进行了必要的优化与调试。2011-05-27
1. 对PXE_DIR系统参数文件夹进行优化工作。
2. 其他细节微调完善。
2011-05-25@176
1. 优化CAT命令查找字符串的相关代码。
2. 将批处理调试模式的启动条件改为仅在DEBUG 3时才启用。
3. 减少编译过程中的警告提示。
2011-05-23@174
1.解决了一个与TFTP相关的路径问题,表示衷心感谢2011exuejiao@wuyou.
2.在批处理操作中可以使用 debug 3 来临时开启调试模式。
2011-04-30@159
1.移除前一版本对批处理参数的相关设置,恢复至04-16版的配置状态。
2.修复了一个Bug(函数print_root_device)。
3.新增了对文件全路径和大小的详细配置选项。
4.支持通过errorcheck命令来控制批处理脚本对错误进行检测(默认情况下会自动跳出并提示)。
2011-04-29@157
1. find命令已停止搜索(hdx)设备。
2. 移除@root变量开头多余的空白字符。
3. ls 命令增加了一个名为 dev 的新参数,其功能是展示设备列表。
4. 批处理脚本进行优化后,在处理(bd)设备中 %~d0 时,将采用真实的设备信息。
2011-04-25@156
1.新建两个内置变量@root和@path。
- @root:当前根目录位置。
- @path:当前默认外部命令查找路径。
2.修复一个可能导致程序出错的潜在风险因素,该修复依赖于临时存储区域内存。
3.批处理代码的处理能力得到显著提升。
2011-04-16@153
md5crypt 识别并接受参数。当紧随一个字符串时,该系统会立即生成其对应的MD5值。
菜单允许用户输入变量作为指令启动。
2011-03-30@151
1. LZMA格式解压被暂时禁用了(当需要解压较大规模的文件时,该功能不可用)。
2. 添加内置变量`?_UUID`。通过使用`uuid`命令将当前磁盘分区的唯一标识符赋值给内置变量`?_UUID`。
于2011年3月29日@150时,insmod *.mod增加了对模块文件头进行GRUBEXEC签名识别的功能。注:请注意,当前该软件仍支持旧版本MOD文件格式,在未来某个时间点将不再支持此功能,请按照要求使用新的MAKEMOD工具重新生成MOD模块。对批处理任务中的文件路径及名称进行操作时,会自动识别并处理包含空格的情况。在操作过程中,所有空格位置前均需附加转义字符以确保程序正确运行。注释:在程序运行过程中,默认情况下对包含特殊字符的路径和文件名进行处理无效(如%~1),但在指定特定参数(如%p=1)后,上述操作将被启用。2011-03-26@150
当使用kernel (rd)+1启动时,默认的启动设备被设置为当前root。
2011-03-25@149
1. 修改cat命令替换时显示的信息:
使用--locate选项指定位置索引S进行替换操作,此过程仅在调试模式启用时才会输出相关信息。
2. 批处理参数新增%*代表所有参数%1 %2 %3...:
在批处理指令中,使用%*替代标准输入的全部命令行参数,其中具体包括独立执行的任务标识符、工作目录以及相关操作选项。
2011-03-24
1. set p 功能进行增强(可能与先前版本存在不兼容性),新增了一个新参数 set_p:N。
主要变动:
1). 若用户未提供输入,则该功能将避免清除原有的设置值。(原先的版本会进行清除处理。)
2). 增加了一个延迟机制,在此时间内无用户输入则系统会自动退出。
set p:N = prompt
一旦在指定的时间段内无用户输入,该变量将保持不变,并且系统会立即终止处理。
为了提高使用便捷性,将shift指令整合为系统内建指令.该程序可接受参数格式:shift n或Shift n.具体的使用方法建议参考CMDlinux平台提供的官方帮助文档.
日期:2011-02-19
段落:
1.修复kernel加载grub2 loader的问题。
Corrected the issue with kernel booting grub2 loader.
2.现在可以运行16位程序,和wee的机制一样(直接移植了wee里面的代码)。
Now, 16-bit programs can be executed seamlessly, mirroring WEEs functionality (with direct porting of WEEs core code).
2011-02-15
1. 新增实现代数运算功能
2. 优化GPT的分区划分逻辑,确保检测更为严格。
2011-02-12
1.引入了对GPT进行分区检测的机制,当该检测未能通过时,将采用单磁条(MBR)分区技术。
2.部分代码进行了微调优化。
2011-02-10
1.删除所有涉及UTF8转义UNICODE的操作,并同步更新UNIFONT设置。
2.解决environ_cmd函数中变量字符串截取相关的BUG问题,并感谢sratlf@wuyou的报告。
请注意:自2011年2月10日起,为了正常显示UNICODE字符,需要使用最新版的UNIFONT。
请注意:更新unifont至最新版本是必要的。新版本的unifont能够显示任何位置的unicode字符。获取最新版本的unifont:http:code.google.compgrubutilsdownloadslist
2011-01-28
1.实现获取GPT分区表。
为了解决区分MBR分区表和提高编程便利性,统一采用$0xEE$表示所有GPT分区类型。解决了某个问题,当前系统已支持超1TB的数据存储。但仍存在无法处理超过2TB数据的限制。
2011-01-26
1.修复了run_line中的一个错误后,将导致返回值变为false。
2.新增了IFSET命令的帮助信息的描述内容。
3.增加了新的语法结构用于检测变量或文件的存在性:if exist variable|filename command.
4.当pause输出被禁用时,debug参数小于0将不再显示倒计时;而当debug参数小于1时,同样也不显示按键码。
2011-01-22
1.设置A参数时采用十六进制数进行存储,而a参数则以十进制形式保存。
2.解决了goto语句中出现的一个错误。
3.修正了重定向操作符的运算异常。2011-01-19
set命令已弃用支持通过回车键输入的处理方式。
修复了导致无法正确读取批处理参数的应用问题。
修复了可能导致文件访问异常的fb文件系统不稳定问题。2011-01-14
set命令得到提升.新增两个参数:l和u.
set l a=Abcd
将字符串Abcd转换为小写;u用于将字符串转换为大写.
2011-01-13
修复UT8菜单编码自动生成Bug的问题
2011年1月10日:
1. 解决SET指令出现的问题,并新增带p标志的参数
2. 排查并消除Linux启动过程中内存溢出问题.
2011-01-09
1.该菜单可管理变量。
2.可实现变量分离,其中的操作与CMD中的方式一致;无法进行变量替换。2011-01-08 1.重构sprint格式化字符串函数,实现了一定程度的支持以dot、dash或星号作为宽度与精度控制符的指定。
2011-01-07
1.该SET命令增加了一个名为a的参数,在后续运算中会将运算结果直接赋值给指定的变量。
2.该new safe_parse_maxint function now supports unary operators, enabling it to perform single-argument calculations.
2011-01-06
1. 优化CAT命令的输出效果,使其仅在遇到字符终止符0时才会中断显示过程。
2. 在批处理环境中新增一个限定指令shift,该指令只能在这类操作中使用。
3. 经过改进,skip_to功能可跳过指定字符序列,具体包括ASCII码0x52(R)和0x6E(N)。
4. 命令集*的使用可以一次性清空系统内的所有用户变量。
2011-01-05
优化了run_line的运行逻辑,使其执行效率提升。同时,将外部命令command的标准执行目录调整为$bootgrub/。
2011-01-03
页游指令已正式启用,支持基于字符集的查询操作。新增了一种类似于MS-DOS时期的条件判断命令if:
如果[I] [NOT] STRING1==STRING2 [COMMAND]
注意,在设置条件表达式时,需确保比较运算符==紧邻目标域前后不得带有任何空白字符。
此外,新增了set指令,支持数据类型的存储与管理。自本版本起已正式引入变量机制,其使用方式与MS-DOS系统完全一致。
注解表明,当前实现采用了与WENV方案相同的策略架构,因此本功能可视为对WENV的一种简化复现。
2011-01-02
1.增加了--test-key参数可以让pause命令显示按键扫描码。
2.grub_sprintf函数可配置字符串精度控制符。
2011-01-01
1.修正find命令中的缺陷。需要注意在进行条件查询时可能存在错误。
2.对批处理参数的设置进行了优化,在简便性上有显著提升。具体来说,在一个命令串中若给出的参数为1 2 3 4 5 6 7 8 9 0 a b c,则%9将被赋值为9 0 a b c。
2010-12-31:
增强 pause 命令,新增了显示按键扫描码的功能。需将 debug 设置为 -1。
示例:展示单个按键的扫描码
debug -1 && pause && debug 1
注:该功能现已通过 --test-key 参数取代。
增强hiddenmenu命令的功能,新增了一个--chkpass参数。当需要隐藏菜单时,按下Esc键需输入正确密码方能显示菜单。启用该功能后,若误按其他按键将立即启动默认菜单。
可选地,可通过--chkpass=KEY可以自由设置默认的Esc键的操作方式。使用此参数时,默认的Esc按键允许用户按照指定代码组合进行操作。例如,运行hiddenmenu --chkpass=0x8500时,按下F11键方能显示菜单;执行hiddenmenu --chkpass操作后,按Esc键即可显示菜单;调用hiddenmenu命令并设置--chkpass=0x2200,则输入Alt+G组合键可启动菜单。
当菜单初始化包含password命令时,必须输入密码才能显示菜单。如果不确定按键代码,可以参考上述功能获取帮助。
2010年12月28日:
1.对部分BUG进行修复;
2.增加了PAUSE命令显示倒计时的功能;
3.对fsys_fb.sys代码进行了微调优化了数值计算精度。
2010-12-25
1. delmod现已成为一个内部命令。
2. 重新编写insmod和delmod相关的代码块,确保加载的模块固定在内存18MB起始位置。
2010-12-21
1.将insmod从command_func中独立出来作为内部命令运行.
现如今,可以通过加载“.ext”文件来使用insmod管理多个相关脚本.
示例:
insmod grub4dos.ext
该命令集合通过MAKESYS脚本进行构建.
2010-12-18
1.在进行查找替换操作时,对参数进行具体配置。设置一个参数--number=N以指定查找次数。
2010-12-17
1.checkrange_func被发现存在一个bug并修复了它。
2010-12-16
1.解决了可能在批处理运行时导致(ERROR 25)问题.
2.重构了批处理运行函数.
2010-12-15
1. 恢复日期格式设置为2010年12月1日时的文件系统分区表内容。
2. 启动时将主硬盘(BD)设置为主机驱动器(UD)。默认保留号分区(SAVED_DRIVE)设为可访问分区。
3. 通过采用7-Zip压缩格式来减少文件包体积,以提高传输效率和存储空间利用率。
2010-12-14
1. 优化了对...的支持。现在无需从fbinst启动即可自由访问其创建的分区。
2. 支持在批处理中执行外部命令并调用gotocall标签.
2010-12-12版本更新内容:
新增了exit命令项,该功能可立即退出当前批处理作业,并在操作后若存在指定参数将返回对应的错误数值。
对原有相关代码进行了多方面的优化工作,提升了整体运行效率和性能表现。
重新定义了pause函数,在新版本中该功能将直接返回用户所按按键对应的ASCII编码数值。
2010-12-11版本更新内容如下:
1. 优化批处理脚本参数管理功能,使其与CMD环境下的批处理操作保持一致的特性。
2. 用户可通过菜单中的goto命令快速定位所需功能项,实现跳转至特定菜单项目。
3. 当调用delmod函数时,新增了-l选项用于查看已加载的组件。若-l后面紧跟其他参数,则表示需要检查对应组件是否已加载。
2010-12-10
1.修改后将内存地址的定义进行了变更(相较于之前的版本)。
将此前未启用解压功能的设置改为自动解压模式。
2.在特定位掩码中,bit2的位置被指定为:当该值为1时会显示解压进度信息;若设为0则不会展示相关信息,默认情况下此位保持关闭状态。
3.对gotocall函数进行了优化。
在2010年12月9日发布的版本中,批处理脚本增加了支持:gotocall和标签(:label)的功能。该批处理脚本支持调用参数:label的值,并使用标签(:label)作为跳转标记。CALL :label arguments将被替换为“调用参数:label的值。”
为了提升程序运行效率,在内存中导入外部命令。加载到内存中的外部指令包括insmod path-to-program和delmod program。批处理脚本的参数范围为%0至%9,并遵循CMD批处理脚本的标准格式;用户可以通过省略前后方括号的方式,直接使用这些参数而不必包裹在额外的引号中。
On November 24, 2010, a bug in the skip_to function was resolved. Thanks to Tuxw for the fix of the bug in the skip_to function.2010年11月21日,针对(ud)平台的自动输入建议问题进行了详细讨论。2010-11-19, support of the PxE_dir list. 1. To add support for PXE directory lists, it is necessary to ensure that each TFTP ROOT directory contains a dir.txt file. Commands can be used to generate these files as demonstrated below:以下是改写后的内容
2010-11-16
1. 优化mallocfree函数。
2. 现在支持在外部命令内部嵌套执行其它外部命令。调用方式如下:builtin_cmd(char *cmd,char *arg,chat *flags); builtin_cmd(NULL,Command and parameters,flags);
2010-11-15
1.将内置于Windows的echo指令的标准换行字符设置为\r\n格式
2.新增一个名为mallocfree的功能模块
2010-11-04
1. 优化运行单行命令功能。支持连续串行多个命令行指令。例如:
echo a | echo b | echo c | echo
此外,该系统还支持以下操作符:>>和>。
2. 新增的>>运算符与现有>运算符功能相似,仅会在目标文件的第一个字符末尾追加内容。注释:当前实现中该运算符对文件大小无影响。
该内建函数新增两个参数,其默认行为是不自动换行且允许使用转义符。参数-n的设置确保在非转义情况下不会触发换行。\n\n2010-10-28版本中新增了以下功能:\n第一个bug已被修复。\nfind命令现在支持通过cdrom --init参数指定光驱,并且仅搜索第一个符合条件的驱动器。
2010-10-27
1. 实现对printf函数进行修改,使其与C语言的语法一致,并通过%%符号显示单个百分号。
2. 对find的查询代码进行改写。
3. 增加find函数中与设备相关的参数,具体格式为--devices=[DEVICES]。
注释: DEVICES可以是以下字符的组合:u、p、n、h、c、f 依次对应 ud、pd、nd、hd、cd 和 fd。--devices=hcf 该方法仅限于查询hd、cd和fd设备,并从hd开始搜索。注释:首先检查current root,如果不在列表中则跳过。通过该参数进行调整,默认情况下查找顺序的设置遵循ud->pd->nd->hd->cd和fd依次排列的规则4.设置--ignore-cd和--ignore-floppies选项(自动进行转换处理).
2010-10-26
1.该find函数支持特定参数形式$fdx,y$的配置。
2.在查找过程中默认优先访问当前目录。
2010-10-03
1.使用操作符|时,默认会添加空格,同时可有效避免死机或重启问题。
2.该操作可确保在处理涉及分隔符的情况时运行稳定。
2010-09-30
1.修复操作符号标识失效问题。
2.将内置菜单的#大写文件MENU.LST转换为小写(确保兼容性)。
3.内置的echo命令。
用法:
[ -P: [ - ] XX [ - ] YY ] MESSAGE
其中XX为行号,YY为列号。XXYY被设定为Messenger显示位置的参数。XX和YY分别指定了行和列的索引值(其中符号-表示取逆序位置)。2010-09-25
1. 修复了Calc程序中的一个逻辑漏洞。
2. 在使用fbinst加载时设置默认根目录为ud,并将boot_drive配置为在从fbinst加载时启用。
3. 新增可在菜单操作中使用的自定义脚本initscript。
该脚本用于初始化菜单,在每次显示完菜单后自动执行。同时,如果某个菜单操作失败并返回主菜单后再次尝试启动时会重新运行此脚本以确保正确加载。命令名称为initscript.g4d.
2010-09-25
1.简易计算器调整:若运算表达式中未使用赋值操作符(=),则不会保存计算结果;然而,自增 (++ ) 和自减 ( -- ) 操作例外。
示例:
calc *0x60000 + 4 不会将结果存储至内存地址*0x60000。
calc *0x60000++ 将结果存储至*0x60000变量中。
calc = 1+2 同上。
2.当前图形模式已允许直接切换graphicsmode,无需通过terminal console进行转换。2010-09-16 1.对导致出现Error 27的一个错误进行了更正。2010-09-06
1. 在命令行中使用管道分隔器>进行重定向(类似于DOS中的输出重定向功能)
实现了两个语法运算符|和>,类似于DOS的输出重定向功能。例如:
1. 将abcd后接efg:pause abcd | pause efg
输出结果为:efgabcd
2. pause 0x60000并以#提示后续操作:pause 0x60000 | read #There is a space after the read.
进行后续操作时应先运行read命令:run read 0x60000
或者执行以下操作:help > (hd=0,0)帮助文档或help > (md)文件路径 help.txt必须已存在,grub4dos不能创建新文件或改变文件大小。
2010-09-05
1. 修改TAB的显示方式,现在采用8字节对齐的显示方式。
2010-08-10
1. 修正了一个disk_io.c中的BUG,在设置root为CD驱动时可能会返回Error 25。该种方式具有显著的效果。
2. 提高了colinux环境下源代码构建在cofs设备上的速度,这将有助于提升整体运行效率。
2010-06-21
1.应用新版FB的支持补丁进行安装
来源:http:www.burgloader.combbsindex.php?topic=37.30
2010-05-02
1.系统在PEXE启动过程中首先尝试从root目录中的menu.lst加载必要的配置文件。
2010-04-17
1. 优化了命令行自动生成功能。现在通过使用TAB键可立即查看当前目录中的文件列表,而(hd0,0)+TAB则可快速浏览(hd0,0)目录下的文件集。
在之前的版本中,用户必须按照如下方式操作:
root +TAB
2. 对get_cmdline函数进行了优化,以确保其能够更加便捷地被外部命令调用。
2010-03-29
1.外部命令执行过程进行优化。
Default path is set to (bd)grub. The system will first search for the default (bd)grubecho file; if not found, it will proceed to look for standard echo files only. Additionally, theres a file-specific search configuration that applies exclusively to the (fd0)echo abcd file.
The find command now includes an --ignore-oem option.
A link to more information about this resource can be found at http:code.google.compgrub4dos-ireneuszp.
2010-03-10 1.根据当前布局参数,系统能够自动生成边框位置信息。
2010-03-09
注释karyonix 4G GZIP MAP代码块。通过加载UNIFONT字库的外部命令实现多语言支持功能。支持以UTF8编码的菜单文件实现多国语言显示。
通过UNIFONT字库支持多语言菜单界面设计。
2010年3月1日安装了karyonix版本4G地图补丁。该版块讨论内容可参考以下资源:http:bbs.znpc.netviewthread.php?tid=5844以及http:www.boot-land.netforumsindex.php?s=&showtopic=10096&view=findpost&p=91378Externally add the fontfile command. Implement the menuset external command.2010-02-09
重新编写cmp部分的代码(注:由于采用了仅1MB缓存的设计,相较于之前完全缓存版本,该方法在比较速度上可能会有所延迟)。
新增了一个可选参数 --skip= ,其作用为:允许在进行比较操作时跳过若干个字节长度的字符。
此功能特别适用于需要结合--hex选项进行差异分析的情况。2010-02-05, 该系统已增加一个简单计算器功能模块. 其中, calc [*INTEGER=] [*]INTEGER OPERATOR [[*]INTEGER] 的实现支持基本的算术运算和简单的数值计算功能遵循官方提供的计算工具 calc 的功能和操作流程,在使用时无需额外配置即可完成计算任务,完全相同的功能和操作流程已经内置于系统中。2010-01-13 调整默认可执行文件搜索路径参数设置为 --set-path=PATH 例子 使用命令 line interface 设置 command --set-path=(bd)grub
2010-01-09
增加了对命令行参数的一种选项功能--set-root,该功能允许指定默认可执行文件的搜索路径。通过添加一个新选项--set-root到命令行中来配置系统参数。该搜索路径的默认值被指定为( bd ) grub。
2009-12-03 g@chenall.cn
对cat --hex命令进行了优化,该命令处理过的文本中所有ascii码大于127的部分均被正确解码。
为cmp --hex命令进行过升级,其后续输出的文本内容均可支持中文字符显示。在功能实现过程中,我们增加了基于菜单界面的颜色配置选项,不同区域的设置通过特殊的高亮色标识加以区分。
日期:2009-12-01 g@chenall.cn
完成源码同步任务至版本号为2009年12月1日(修正了NTFS文件系统中DD或WRITE操作的异常问题)。
优化了cat命令的选项设置,在特定条件下支持通过-hex参数指定读取长度。具体内容参考:http://bbs.znpc.net/viewthread.php?tid=5784&page=10&fromuid=29#pid42939
2009-11-29 g@chenall.cn
对chainloader功能进行了调整,在使用rd+1的情况下,若未指定edx设备,则将当前设备设为EDX。
更改了chainloader_func的设置方式:当采用rd+1时,系统会自动将主逻辑控制器设为EDX。
从光盘上的BOOTMGR启动硬盘上的VISTAWIN7系统。此操作可从任何存储设备启动该操作系统。
通过以下命令进行详细配置:
- map --mem=0xF000至BOOTMGR
- find --set-root --ignore-cd --ignore-floppies至BOOTBCD
- 应用rd+1设置
参考链接:http://bbs.znpc.net/viewthread.php?tid=5784&page=7&fromuid=29#pid42684
建议阅读README_GRUB4DOS.txt以获取关于EDX的详细信息。
源码同步至官方发布版本:2009-11-29。
日期:2009-11-28 g@chenall.cn
修正了内存超过2G时访问出现问题的情况。具体修改如下:
- 修改cmp_func以显示差异偏移(十六进制表示)
提供示例:
$ cat --hex (md)0x40002F+1
$ map --mem (md)0x600000+0x1902
日期:2009-11-26 g@chenall.cn
修改cmp_func代码,增加了--hex选项以显示差异偏移(十六进制表示)。
添加了--hex参数至cmp命令中。此参数可直接显示差值的十六进制偏移量。
日期:2009-11-24 g@chenall.cn
新增了设备bd(启动设备),其功能为指定启动驱动器。注:使用configfile命令会改变当前主逻辑控制器。
示例:
$ added (bd) support.
(bd):the boot drive.
建议参考配置文件以调整启动顺序
$ configfile (hd0,1)menu.lst
现在,系统将从hd0,1启动。