无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)无忧启动网成立20周年!广告联系 QQ:184822951 微信:wuyouceo
查看: 33333|回复: 180

[发布] grub4dos支持VBE 显示模式的外部命令(阶段性完美版)

[复制链接]
发表于 2011-10-14 00:24:36 | 显示全部楼层 |阅读模式
下载最新版本附件。

直接在GRUB4DOS下作为外部命令运行即可。。

支持带字库参数(为了方便编程测试只支持VTEDIT生成的字库)。比如

vbe vfont=/vt.exe

效果图看附件。

执行之后会进入VBE 0x101 640*480*8的模式.

使用terminal console命令退出。

执行VESA之后不可以使用FONT/UNIFONT/SPLASHIMAGE/GFXMENU等图形界面的命令,可能会导致死机。

代码修改自这里

http://bbs.znpc.net/viewthread.php?tid=6136&extra=page%3D1

这边也有一个测试的版本
http://bbs.znpc.net/viewthread.php?tid=6139&page=2#pid48977

要使用VFONT字体需要加VFONT参数

例子:

vbe vfont=/vt.exe

为了便于测试,支持指定模式比如

vbe mode=0x101 (默认)640x480x8
vbe mode=0x103 800x600x8
vbe mode=0x107 1280x1024x8

具体的可以自己使用vbeprobe命令查看。

最新版本的参数介绍
vbe mode=[mode] vfont=[vfont] demo

1.vbe demo(vbe界面演示)
2.vbe mode=[mode] 进入指定的vbe 模式,配合vfont参数可以显示中文。

使用以下命令返回。
terminal console

最新版本可以使用color命令设置颜色。
color NORMAL [HIGHLIGHT [HELPTEXT [HEADING]]]

和console模式中的一样可以指定不同的地方显示不同的颜色。
例子:
color 0xff00 0xffffff 0xff00ff 0xffff00

颜色代码格式:0xRRGGBB
注:颜色代码是一个32位的数值(只有后面24位有效)。

另外还可以使用color 设置光标颜色和背景色
color -1 背景色 光标色
color -1 0 0xff0000

注:背景色只有x8(256色)的模式下有效。

2011-11-05  自动检测并使用800X600X32/24模式.
配合最新版GRUB4DOS使用2011-11-04以上的版本.
支持调用用GRUB4DOS的FONT命令加载的字库.
例子,如下两行就可以了.
font /unifont.hex
vbe

可以使用这里的工具生成小字库.
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=180142&page=151#pid2332577


2011-10-17
阶段性完美版。修复所有已知的BUG,支持显示一个启动图片。
例子:
vbe bmp=/test.bmp (效果看附件)

注:这个图片必需是BMP格式,24位色,并且是系统所支持的分辨率才可以使用。
比如800x600x24或1024x768x24等.

2011-10-16 更新
进入实用性阶段。支持设置颜色(包括光标的颜色)

2011-10-14 晚上11点更新
基本上可以作为日常使用了,尝试支持所有支持的模式,支持滚屏等。

注:如果发现执行之后是一片黑屏这时是没有死机的,可能是颜色不对。
输入以下命令回车后就可以返回了(盲打),一次不行就再输几次一般都可以正常退出的。
terminal console

[ 本帖最后由 chenall 于 2011-11-5 21:44 编辑 ]
20111014.png

800x600x24 的效果图

800x600x24 的效果图
20111017222051352.jpg

vesa.rar

4.11 KB, 下载次数: 179, 下载积分: 无忧币 -2

vesa-2011-10-14.zip

5.17 KB, 下载次数: 121, 下载积分: 无忧币 -2

vbe-2011-10-16.zip

4.84 KB, 下载次数: 106, 下载积分: 无忧币 -2

vbe-2011-10-17.zip

5.46 KB, 下载次数: 79, 下载积分: 无忧币 -2

vbe-2011-10-19.zip

3.76 KB, 下载次数: 84, 下载积分: 无忧币 -2

vbe-2011-11-05.zip

4.39 KB, 下载次数: 248, 下载积分: 无忧币 -2

必须配合2011-11-04以上的版本使用.

 楼主| 发表于 2011-10-14 00:33:27 | 显示全部楼层

回复 #1 chenall 的帖子

这个只是个半成品。。还需要完善,有时间我再慢慢完善,顺便可以学习一下VBE的编程

很多东西都得临时学,如果有人可以给GRUB4DOS打一个补丁完美支持VBE的话就再好不过了,嘿嘿。
回复

使用道具 举报

发表于 2011-10-14 00:33:44 | 显示全部楼层
试试新玩意。              
回复

使用道具 举报

发表于 2011-10-14 02:33:13 | 显示全部楼层
越来越强大了,支持一下....
回复

使用道具 举报

 楼主| 发表于 2011-10-14 18:00:35 | 显示全部楼层
再上传一下,参数有变化。

要使用VFONT字体需要加VFONT参数

例子:

vesa vfont=/vt.exe

为了便于测试,支持指定模式比如

vesa mode=0x101 (默认)640x480x8
vesa mode=0x103 800x600x8
vesa mode=0x107 1280x1024x8

具体的可以自己使用vbeprobe命令查看。

目前的版本只适应8位的颜色。其它的模式可以会显示异常。

另外这个版本支持光标显示了。滚屏的还没有处理,目前显示满一页就自动清屏。

vesa-2011-10-14.zip

4.79 KB, 下载次数: 49, 下载积分: 无忧币 -2

回复

使用道具 举报

发表于 2011-10-14 18:22:55 | 显示全部楼层
c大动作真快,前几天还在猜测什么时候实现

===========================
测试了一下,对vmare支持不太好。貌似死机。
qemu测试正常。

呵,要是以后支持utf-8格式就好了。

[ 本帖最后由 zxw 于 2011-10-14 18:58 编辑 ]
回复

使用道具 举报

发表于 2011-10-14 20:50:18 | 显示全部楼层
新东东啊   辛苦了C大 目前不会用啊  留位学习
回复

使用道具 举报

发表于 2011-10-14 21:04:37 | 显示全部楼层
C大的脚步越来越快,又有新的好东西了。
回复

使用道具 举报

 楼主| 发表于 2011-10-14 23:51:20 | 显示全部楼层
再更新了一下,基本上可以作为日常的使用了,可以代替默认的CONSOLE模式。

使用了字库之后,这个目前可以支持显示64个不同的字,VFONT只支持30个。
回复

使用道具 举报

发表于 2011-10-15 00:01:36 | 显示全部楼层
在vmare还是黑屏,盲打输入一次terminal console后,能正常退出。重复几次,还是黑屏。
回复

使用道具 举报

 楼主| 发表于 2011-10-15 00:15:51 | 显示全部楼层

回复 #10 zxw 的帖子

你可以换一个显示模式看看。

用vbeprobe查看支持的模式。

然后使用类似如下的命令。
vesa mode=0x114
回复

使用道具 举报

发表于 2011-10-15 00:36:35 | 显示全部楼层

回复 #11 chenall 的帖子

用vbeprobe查看如附件,反复测试所有*8的模式,依旧黑屏。其它模式呈现不正常彩色。
再看,支持的模式与你给出的有出入。
如,你提供的:vesa mode=0x101 (默认)640x480x8

1.png
回复

使用道具 举报

 楼主| 发表于 2011-10-15 00:48:03 | 显示全部楼层
重新上传了一个,强制指定颜色为纯白色。。

这下应该正常了,顺便把cls功能也修改了一下,用内存清零的方法来清屏。
回复

使用道具 举报

 楼主| 发表于 2011-10-15 00:49:15 | 显示全部楼层

回复 #12 zxw 的帖子

你注意看一下应该在后面,vmware也有支持0x101模式的。


新的版本应该支持所有模式,一般情况下文字应该是白色的,光标颜色不同模式可能会不太一样。

[ 本帖最后由 chenall 于 2011-10-15 00:52 编辑 ]
回复

使用道具 举报

发表于 2011-10-15 00:56:29 | 显示全部楼层

回复 #14 chenall 的帖子

OK,默认模式显示、字体加载测试正常了。后期加上字体颜色支持就比较完美了。

另,不知能否继续改造以支持utf-8格式?

========================
继续“贪得无厌”地臆想:
如能获得类似天汇的源代码,再改造个中文输入法,嘿嘿!!

[ 本帖最后由 zxw 于 2011-10-15 01:16 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-10-16 17:23:42 | 显示全部楼层
更新了一下,进入实用性阶段,,,,

具体见一楼介绍。

另外有一个问题,我不知如何处理,麻烦知道的朋友提供一些资料。
对于背景色的设置,8位色的模式色只要调用int 10修改调色板0的颜色就可以了。

其它模式下有没有类似的方法?
回复

使用道具 举报

发表于 2011-10-16 18:35:10 | 显示全部楼层

回复 #1 chenall 的帖子

谢谢C大的劳动。
看来G4D支持32位色也是不远了。
晚上抽空测试下。好像体积可以小很多
回复

使用道具 举报

发表于 2011-10-16 18:36:13 | 显示全部楼层

回复 #15 zxw 的帖子

这个想法非常好。我也有类似的想法。
回复

使用道具 举报

发表于 2011-10-16 18:39:14 | 显示全部楼层
原帖由 chenall 于 2011-10-16 17:23 发表
更新了一下,进入实用性阶段,,,,

具体见一楼介绍。

另外有一个问题,我不知如何处理,麻烦知道的朋友提供一些资料。
对于背景色的设置,8位色的模式色只要调用int 10修改调色板0的颜色就可以了。

其它 ...

C大帮您找到了一点资料
http://www.dzsc.com/data/html/2010-7-6/83956.html
回复

使用道具 举报

发表于 2011-10-16 20:05:05 | 显示全部楼层
8位颜色需要设置 Palette,本来就是个很落后的技术,应该淘汰。它只是为了兼容以前的 VGA/EGA 等而存在的技术。

新的 15/16/24/32 位不需要设置调色板就能直接使用颜色,这难道不好吗?
回复

使用道具 举报

发表于 2011-10-16 21:35:43 | 显示全部楼层
原帖由 不点 于 2011-10-16 20:05 发表
8位颜色需要设置 Palette,本来就是个很落后的技术,应该淘汰。它只是为了兼容以前的 VGA/EGA 等而存在的技术。

新的 15/16/24/32 位不需要设置调色板就能直接使用颜色,这难道不好吗?

不對。
Palette 是為了節省記憶體(及頻寬)的做法,並不存在「落後」與否的說法。
要不要支持8位元色深我也沒意見,我只是來糾正這個錯誤的想法的。
回复

使用道具 举报

发表于 2011-10-16 23:00:10 | 显示全部楼层
你说得对,Roy。

我的意思还有一层:8 位根据 “下标” 来寻找真正的颜色,这 “拐弯” 了,不爽。这个 “不爽”,就转换成 “落后” 了。

而 Direct Color 是 “直接着色”,不需要利用下标这个 “中转站”,是最简单的着色方案。简单就是 “美”。
回复

使用道具 举报

发表于 2011-10-17 12:40:11 | 显示全部楼层
测试了下,光标上的中文菜单显示会乱码。
回复

使用道具 举报

发表于 2011-10-17 17:36:11 | 显示全部楼层

回复 #23 zhuyoucheng 的帖子

菜单必须是ansi格式,其中的文字,必须用vtedit生成。

[ 本帖最后由 zxw 于 2011-10-17 17:38 编辑 ]
回复

使用道具 举报

发表于 2011-10-17 19:12:18 | 显示全部楼层

回复 #24 zxw 的帖子

是用VTEDIT生成的菜单,我的意思是不在光标上的菜单中文显示正常,当光标移动到哪个菜单哪个菜单上的中文字就是乱码
回复

使用道具 举报

 楼主| 发表于 2011-10-17 22:24:44 | 显示全部楼层

回复 #25 zhuyoucheng 的帖子

谢谢报告,已经修复,请从一楼下载新的版本测试。

新的版本修正了在VMWARE或实机中显示字符可能会乱码的问题。

新的版本默认是800x600x24,如果不支持该模式则使用800x600x16,如果还是不支持必须手工指定。

如果有带bmp参数,会自动设置一个和BMP文件一样分辨率的模式。

[ 本帖最后由 chenall 于 2011-10-17 22:26 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2011-10-17 22:31:40 | 显示全部楼层
学不点一样,阶段性完美版。。。

也许以后我也不考虑8/15/16,特别是8位色。编程太麻烦了。去除这些的支持可以使得程序更小巧。方便以后移值到GRUB4DOS里面去。

目前对于设置背景图片我还没有任何头绪,不知有没有什么比较好有办法?

要显示一个图片比较简单,新的测试中就支持BMP格式,要支持其它格式也很简单。

问题是我不知道如何把这个图片设为背景。

难道要分配一块内存存放图片,然后输出字符的时候和这个进行比较运算。这样感觉效率太低了。
回复

使用道具 举报

发表于 2011-10-17 23:24:39 | 显示全部楼层
@chenall

不幸的是,grub4dos 中的 splashimage 图片,就是按照你所说的最后一句话来处理的。

目前可以先考虑国际化问题,暂时不要考虑背景图片问题。
回复

使用道具 举报

 楼主| 发表于 2011-10-17 23:44:35 | 显示全部楼层
明天再试试看看把UNIFONT的字库移植过来。。。

为了方便测试VBE的功能我写了一个BIOS的外部命令,这样就可以不用编程直接测试。(当然了这个BIOS命令不单单是用于测试VBE功能的)

有兴趣的朋友可以试试,如果对中断资料比较熟的话,配合批处理没有什么不可能的。^_^.

http://chenall.net/post/grub4dos_biosint/

[ 本帖最后由 chenall 于 2011-10-17 23:46 编辑 ]
回复

使用道具 举报

发表于 2011-10-18 00:00:20 | 显示全部楼层

回复 #29 chenall 的帖子

晕啊,太强大了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2020-10-21 18:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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