无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)最好用的系统一键装机工具广告联系 QQ:184822951 微信:wuyouceo
楼主: 2011yaya2007777

[发布] 增强 GRUB4DOS 菜单编辑功能,支持动画,支持精简字库,支持图形菜单

    [复制链接]
 楼主| 发表于 2015-8-12 18:15:24 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-8-12 21:47:36 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2015-8-13 11:36 编辑
另外我测试了一下是乱码的,字体不能内置吗??


从 FbinstTool 导出的字库,只包含中文字符:
20*20字体,每字符 120 字节,以 0x0A 结束。正确。
22*22字体,每字符 88 字节,错误。应当是 120 字节。以 0x0A 结束。正确。

从 grldr 导出的字库:
20*20字体,包含中文、英文。中文每字符 120 字节,正确。英文每字符 80 字节,正确。以  0x0D、0x0A 结束,与 unifont.hex 不一致。有文件头  DotSize=20,可以确定字体尺寸。
22*22字体,只包含中文,每字符 88 字节,错误。应当是 120 字节。以  0x0D、0x0A 结束,与 unifont.hex 不一致。没有文件头。

是否可以去掉 '0x0d'?是否可以全部加文件头?看看 22*22字体是怎么搞错了。

刚才又从 grldr 导出 20*20 字体,结果同上面的 22*22 字体,错误的!不知何故。


回复

使用道具 举报

发表于 2015-8-13 21:09:16 来自手机 | 显示全部楼层
直接抄了楼主的菜单,菜单字体颜色怎么设置也无效果,看到楼主的回复才知道是 entryhelp= 参数引起的,删掉就好了,不知道这个参数为什么会使颜色设置失效?
回复

使用道具 举报

 楼主| 发表于 2015-8-13 22:00:16 | 显示全部楼层
不知道这个参数为什么会使颜色设置失效?

后来删除了这个参数。回头我修改一下菜单示例。
回复

使用道具 举报

发表于 2015-8-14 00:49:43 来自手机 | 显示全部楼层
哇,看图片已经支持哪是阿拉伯文?蒙文?
回复

使用道具 举报

 楼主| 发表于 2015-8-14 18:35:55 | 显示全部楼层
今天上传的版本,已经可以加载内置菜单的字库.
内置菜单的头部需有:
DotSize=20
是20*20 点阵字库.
回复

使用道具 举报

发表于 2015-8-14 19:56:31 | 显示全部楼层
32 * 32 的也可以哦

QQ截图20150814195551.png
回复

使用道具 举报

 楼主| 发表于 2015-8-16 12:15:25 | 显示全部楼层
若支持32*32点阵字体,需要 0x800000 字节空间。
若支持48*48点阵字体,需要 0x1200000 字节空间。

目前 UNI 字体开始于 0x1800000,可用空间 0x700000。
GRUB_MOD_ADDR(builtins.c)占用 0x1f00000,长度 0x100000。
cmd_buffer(cmdline.c)命令缓存占用 0x1ff0000,长度 0x10000。

若支持到 32*32,则可以把 GRUB_MOD_ADDR 及 cmd_buffer 挪到其它地方。
若支持到 48*48,则只能把 UNI 字体移动到 0x2020000 ,即 PRINTF_BUFFER(cmdline.c)打印缓存之后。
请不点及 chenall 定夺。
回复

使用道具 举报

发表于 2015-8-16 17:15:11 | 显示全部楼层
本帖最后由 chenall 于 2015-8-16 17:22 编辑

可以考虑使用动态分配内存,一劳永逸.

但是需要先完善malloc和free函数

另外一点,如果这些功能占用的空间比较大,可能的话可以考虑用外部命令来实现,内核尽量不要太大.

点评

外部命令方式不错,没用外部命令就默认还是16 *16 字体,如果有外部命令的情况就根据外面命令的设定来显示菜单,自定义的字体只需在用在菜单上外部命令可以自带字体(或者用一个尾续的批处理带上字体外部命令和字体  详情 回复 发表于 2015-8-16 22:23
回复

使用道具 举报

发表于 2015-8-16 22:23:38 | 显示全部楼层
chenall 发表于 2015-8-16 17:15
可以考虑使用动态分配内存,一劳永逸.

但是需要先完善malloc和free函数

外部命令方式不错,没用外部命令就默认还是16 *16 字体,如果有外部命令的情况就根据外面命令的设定来显示菜单,自定义的字体只需在用在菜单上外部命令可以自带字体(或者用一个尾续的批处理带上字体外部命令和字体),命令行还是固定为16 * 16 字体。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2020-7-16 03:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表