无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
12
返回列表 发新帖
楼主: 2010khmsoft
打印 上一主题 下一主题

[已解决] 已解决---郁闷-再谈XPM制作怎么还是这样-原来grub4dos-0.4.6a-2013-04-19版要这样设置

[复制链接]
31#
 楼主| 发表于 2013-5-11 20:13:08 | 只看该作者
不点 发表于 2013-5-11 17:36
我刚刚看了最新的源代码,确认不存在下面的用法:

graphicsmode -1 100:1000 100:1000 24:32 640:480

果然设置了graphicsmode -1 640 后启动菜单定位graphicsmode set 0x142 地址上,而且是以640*480 的XPM文件的全铺效果,图片未失真。

想问一下默认的graphicsmode -1   为:0x147 地址上,可以设置1028*800的图片吗
回复

使用道具 举报

32#
发表于 2013-5-11 20:55:10 | 只看该作者
1028x800 ?没听说过这么个分辨率,你是指 1280x800?(还是指 1024x800?不过这似乎也很少见到。)

分辨率究竟支持多少种,那是没有规定的。就是说,不同的机器,有不同的情况,没法确定。

如果你希望设置为最大支持的分辨率,那就用 graphicsmode -1 -1 -1 24:32 这个命令中限制颜色深度为 24 位至 32 位,这样比较安全,因为这是 grub4dos 的 vbe 模式所支持的颜色深度,其他的颜色深度不被 grub4dos 支持。

而如果你希望设置为 1280x800,可以用以下两条命令:

graphicsmode  -1  -1  -1  24:32
graphicsmode  -1  1280  800  24:32

其中,第一条命令保证适应几乎所有的机器,设定最大可能支持的分辨率,总可以成功进入 vbe 模式。
第二条命令的意思是,在 bios 支持的情况下,设定为 1280x800 的分辨率。这第二条命令是有可能失败的,因为有些机器不支持这么一个特殊的分辨率。可以把上述两条命令整理为一个命令行,如下:

graphicsmode  -1  -1  -1  24:32  &&  graphicsmode  -1  1280  800  24:32

由 && 和 || 等操作符连接的两条或多条命令,会忽略出错代码,整体上按成功执行处理,不管有没有出错。

这样,当 BIOS 支持 1280x800 的分辨率时,结果也正是如此设定的。否则,当 BIOS 不支持 1280x800 的分辨率时,其结果是,设定为 BIOS 所支持的最大分辨率。

回复

使用道具 举报

33#
 楼主| 发表于 2013-5-11 22:50:43 | 只看该作者
不点 发表于 2013-5-11 20:55
1028x800 ?没听说过这么个分辨率,你是指 1280x800?(还是指 1024x800?不过这似乎也很少见到。)

分辨 ...

手误分辨率输入错误
谢谢你的回答,明白了
另外 graphicsmode 0x6A 的0x6A是什么意思,为何放到graphicsmode -1 100:1000 100:1000 24:32 代码的下面,运行脚本会停止运行?
回复

使用道具 举报

34#
发表于 2013-5-12 00:39:27 | 只看该作者
本帖最后由 不点 于 2013-5-12 11:42 编辑

graphicsmode 命令的第一个参数,是直接指定图形模式的值。按照视频 BIOS 的规范,小于 0x100 的值,都是老式的 VGA 图形模式,而大于或等于 0x100 的模式,才是新型的 VBE 图形模式。

0x6A 就属于旧的 VGA 图形模式的一种,它是 800x600 的分辨率。新版 grub4dos 不再支持旧的 VGA 图形模式,开发者不保证 VGA 模式一定能够在新版下正常使用。因此,用户在新版之下应该使用新的 VBE 图形模式。

graphicsmode 命令的第一个参数,如果是 -1,它表示,将替用户探测出一个符合用户所指定条件的 VBE 图形模式。用户也可以指定一个大于或等于 0x100 的模式值,不过,那可不具有普遍适应性。新版的 VBE 规范没有定义模式值以及它们所代表的分辨率。所以,如果直接指定模式值,那是无法保证在其他电脑上通用的。新版 VBE 也没有规定究竟有哪些分辨率是必须支持的。因此,你不敢保证 640x480 一定被所有的 VBE BIOS 支持。同理,也不敢保证 800x600,1024x768,以及其他任何一个分辨率,一定被所有的 VBE BIOS 支持。

补充:还有这样的可能性,某些早期的主板或显卡的 BIOS 不支持 VBE,只支持旧的 VGA 模式。那样的话,graphicsmode 命令将失败出错。不过这样的电脑,似乎很难见到了。

有人还遇到了这样一台旧的笔记本电脑:它支持 VBE,但是颜色深度只支持 16 位的,不支持 24 位和 32 位的。这样的话,grub4dos 也不支持它。这有点遗憾。grub4dos 的开发者当初权衡了一下,决定放弃对 16 位以下色深的支持,只支持 24 位和 32 位色深,这样能够降低 grub4dos 处理的复杂度,使得程序代码能够针对 24 位和 32 位色深进行优化。所幸的是,老式笔记本也消失殆尽了,只遇到了一个案例。

继续思考这个问题。有这样的可能性:虽然你的 BIOS 支持 VBE,也支持 24 位或 32 位色深。但是,对于某个特殊的分辨率(例如 1024x768),却只支持 16 位色深。那样的话,grub4dos 在这台电脑上也就无法支持 1024x768 的分辨率了。

640x480 是一个古老的分辨率,它很有名气,因为 Win98 时代它就成为了一个标准,恰如 1.44M 软盘成为标准软盘那样。有理由相信,大多数 VBE BIOS 都支持 640x480 的分辨率。然而前面提到过,新版 VBE 规范不强制 VBE BIOS 一定支持以往的旧规范所规定的分辨率。因此,即使 640x480,也有可能不被某个新的 VBE BIOS 支持了。
回复

使用道具 举报

35#
 楼主| 发表于 2013-5-12 14:51:40 | 只看该作者
不点 发表于 2013-5-12 00:39
graphicsmode 命令的第一个参数,是直接指定图形模式的值。按照视频 BIOS 的规范,小于 0x100 的值,都是老 ...

感谢不点老师的指点,有了一点大致的了解了。

看来还得努力学习了,请问有没用系统的grub4DOS学习教程和命令参数文本参考规范教程

长期泡在远景,也混了个达人头衔,在这一块却是白脖子
回复

使用道具 举报

36#
发表于 2013-5-12 19:45:37 | 只看该作者
本站有 grub4dos 讨论区,可以在置顶的文档中学习。也可以在 internet 上搜索资料。

我知道,那些能够接触到 grub4dos 的人,都不是普通人,都是比较特殊的人。有很多人都是当地的电脑高手,经常给周围的人解决电脑的故障。
回复

使用道具 举报

37#
发表于 2014-7-15 14:35:42 | 只看该作者
不点 发表于 2013-5-11 17:36
我刚刚看了最新的源代码,确认不存在下面的用法:

graphicsmode -1 100:1000 100:1000 24:32 640:480

"另外,你前面提到的graphicsmode -1  640:480 也是错误的用法。不过,系统检查不严格,没有按错误处理罢了。就是说,上述这条命令按 graphicsmode -1 640 来处理了。"这两个参数显示效果并不都是一样的。比如:graphicsmode -1  640和graphicsmode -1  640:800,显示结果就会不一样。
菜鸟发言,莫笑
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 13:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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