无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: zhaohj
打印 上一主题 下一主题

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
1771#
发表于 2011-11-30 11:30:23 | 只看该作者

回复 #1773 chenall 的帖子

C大,建议能不能取消边框?
我们可以自己用背景做边框。。。。。
回复

使用道具 举报

1772#
发表于 2011-11-30 11:33:12 | 只看该作者

回复 #1773 chenall 的帖子

c大  29版有个问题  用 color standard=XX 设置完背景色后  菜单边框的背景色也被改了  再用color border=XX 设置也无效
回复

使用道具 举报

1773#
发表于 2011-11-30 11:41:40 | 只看该作者
C 大新版的在程序菜单里用echo -e -n \n\n    $[0004]设置颜色时又出现下图的情况了!



还有一个问题现在 GRUB4DOS 是不是不支持动态的vhd文件啊?用动态的vhd做RAMOS加载到内存启动失败!固态的没有问题!
这是截图:


[ 本帖最后由 thttht 于 2011-11-30 13:36 编辑 ]
回复

使用道具 举报

1774#
发表于 2011-11-30 14:13:55 | 只看该作者
大家测试有没有下面图中左下角的字母:

11.jpg (37.81 KB, 下载次数: 163)

11.jpg
回复

使用道具 举报

1775#
发表于 2011-11-30 14:42:25 | 只看该作者
@zhaohj
把设置颜色的命令放在菜单头就行了,否则不能即实生效。
如果放在批处理或TITLE下面,需要清屏才可以重设背景色。
你可以在设置standard颜色之后立即执行clear命令。

@sratlf
什么模式下的,注意看更新说明,目前的border只有VBE模式有效。
其它模式的和以前一样。

@thttht
你是不是版本搞错了,一切正常
另外从来就没有支持VHD。。。固实的VH因为是RAW格式的所以当然支持的。
回复

使用道具 举报

1776#
发表于 2011-11-30 14:43:40 | 只看该作者
@mygamexxx

因为你调整了字距。屏幕宽度不够显示底部信息所以就会这样子了。你可以使用800X600的应该就没有这个问题了。

下个版本再处理一下。

[ 本帖最后由 chenall 于 2011-11-30 14:58 编辑 ]
回复

使用道具 举报

1777#
发表于 2011-11-30 14:55:54 | 只看该作者
@hotdll
有支持的,不过没有提供直接支持。
修改menu_border的值就行了。
以下信息
#define menu_border ((*(struct border ***)0x8304)[29])

struct border {
        unsigned char disp_ul;
        unsigned char disp_ur;
        unsigned char disp_ll;
        unsigned char disp_lr;
        unsigned char disp_horiz;
        unsigned char disp_vert;
        unsigned char menu_box_x; /* line start */
        unsigned char menu_box_w; /* line width */
        unsigned char menu_box_y; /* first line number */
        unsigned char menu_box_h;
        unsigned char menu_box_b;
        unsigned char border_w;
} __attribute__ ((packed));

用批处理修改border_w的值为0就可以取消边框(VBE模式有效)
set /a a=29<<2+*0x8304  //获取menu_border指针的数据
set /a b=*%a%+8           //解开指针+8得到的b是指向menu_box_y的开始处内存。
修改该处的值使得最高字节为0即border_w=0
set /a c=*%b%&0xffffff
write %b% %c% 写入就行了。

当然了你懂得C语言,用C语言写一个比较直观。
回复

使用道具 举报

1778#
发表于 2011-11-30 14:57:05 | 只看该作者

回复 #1779 chenall 的帖子

是在vbe模式下  graphicsmode -1 640

原始菜单没加任何color  启动了后在命令行执行

color border=31  #边框变为白色

color standard=0x1F  #命令行背景为蓝  字白色  返回菜单发现边框背景也变为蓝色了
回复

使用道具 举报

1779#
 楼主| 发表于 2011-11-30 15:01:34 | 只看该作者
原帖由 chenall 于 2011-11-30 14:42 发表
@zhaohj
把设置颜色的命令放在菜单头就行了,否则不能即实生效。
如果放在批处理或TITLE下面,需要清屏才可以重设背景色。
你可以在设置standard颜色之后立即执行clear命令。


是放在菜单头的,目前滚屏后会这样,不滚屏正常。

Snap1.jpg (64.3 KB, 下载次数: 127)

Snap1.jpg
回复

使用道具 举报

1780#
发表于 2011-11-30 15:02:34 | 只看该作者

回复 #1782 sratlf 的帖子

哦,那是因为边框背景色无效,没有使用。画柜形的时候直接前景色画上去的。

清屏的时候使用的是standard背景色清的,所以就这样了,下次考虑使用normal背景颜色清屏。
回复

使用道具 举报

1781#
发表于 2011-11-30 15:03:02 | 只看该作者
原帖由 chenall 于 2011-11-30 14:42 发表
@zhaohj
把设置颜色的命令放在菜单头就行了,否则不能即实生效。
如果放在批处理或TITLE下面,需要清屏才可以重设背景色。
你可以在设置standard颜色之后立即执行clear命令。

@sratlf
什么模式下的,注 ...


C大  版本没有用错!是11.29号新版的,我说的这个情况和截图是在VBE模式下的菜单文件里,不是命令行下。也不是批处理中!!!

还有sratlf大说的情况的确是这样的在VBE模式下color border= 只能设置菜单框的颜色无法设置菜单框的背景色,菜单框的背景色是由color standard= 参数的背景色来控制的!!!

大大们发帖好快啊!刚刚还没有这些。。。。。
我打字太慢了!!!!

[ 本帖最后由 thttht 于 2011-11-30 15:07 编辑 ]
回复

使用道具 举报

1782#
发表于 2011-11-30 15:04:34 | 只看该作者

回复 #1785 thttht 的帖子

执行菜单之后会使用standard颜色,所以不应该出现这个问题。你可以再详细试试,如果还是有问题可以把可以重现的文件打包上来。
回复

使用道具 举报

1783#
发表于 2011-11-30 15:06:32 | 只看该作者

回复 #1783 zhaohj 的帖子

这个暂时无解,之前的就是这样子的了。我看看能不能处理。
回复

使用道具 举报

1784#
发表于 2011-11-30 15:18:27 | 只看该作者
原帖由 chenall 于 2011-11-30 15:04 发表
执行菜单之后会使用standard颜色,所以不应该出现这个问题。你可以再详细试试,如果还是有问题可以把可以重现的文件打包上来。


C大 麻烦你帮看一下!把文件上传这里了!是不是我那里用法错误啊?
NTBOOT.rar (307.23 KB, 下载次数: 10)
回复

使用道具 举报

1785#
发表于 2011-11-30 15:38:42 | 只看该作者

回复 #1781 chenall 的帖子

谢谢C大
今天刚把系统重做好。刚搭建好平台。这几天生意还可以,有点忙。

我抽口看代码,慢慢消化。不急。
回复

使用道具 举报

1786#
发表于 2011-11-30 15:40:53 | 只看该作者

回复 #1781 chenall 的帖子


  1. struct border {
  2.          unsigned char disp_ul;
  3.          unsigned char disp_ur;
  4.          unsigned char disp_ll;
  5.          unsigned char disp_lr;
  6.          unsigned char disp_horiz;
  7.          unsigned char disp_vert;
  8.          unsigned char menu_box_x; /* line start */
  9.          unsigned char menu_box_w; /* line width */
  10.          unsigned char menu_box_y; /* first line number */
  11.          unsigned char menu_box_h;
  12.          unsigned char menu_box_b;
  13.          unsigned char border_w;
  14. } __attribute__ ((packed));
复制代码

您的外部命令menuset
不就是改这11个值的。。。。
娃哈哈。
回复

使用道具 举报

1787#
发表于 2011-11-30 15:56:39 | 只看该作者

回复 #1788 thttht 的帖子

回复 #1788 thttht 的帖子

试了一下确实如此。。我再查查看。。应该之前的版本也是一样的。

使用8位的颜色代码就行了。
比如:
color 0x87之类的

使用64位的颜色代码因为$[0004]是使用8位的,之前只处理了让它直接使用8位色的。

[ 本帖最后由 chenall 于 2011-11-30 16:09 编辑 ]
回复

使用道具 举报

1788#
发表于 2011-11-30 15:57:07 | 只看该作者

回复 #1790 hotdll 的帖子

MENUSET就是修改这些的值的。
回复

使用道具 举报

1789#
发表于 2011-11-30 18:16:14 | 只看该作者
先上传一个试下,解决以下问题。

1.滚屏的问题。 #1783
2.echo背景色的问题。 #1777
3.边框背景色问题 #1776

4.简化color_func代码。 麻烦多试试看看有没有问题。

请到#1799下载附件

[ 本帖最后由 chenall 于 2011-11-30 22:55 编辑 ]
回复

使用道具 举报

1790#
发表于 2011-11-30 21:02:10 | 只看该作者

回复 #1793 chenall 的帖子

#1776问题解决
回复

使用道具 举报

1791#
发表于 2011-11-30 21:57:18 | 只看该作者

回复 #1794 sratlf 的帖子

OK,刚更新了附件。

4.简化了color_func代码。
回复

使用道具 举报

1792#
 楼主| 发表于 2011-11-30 22:18:29 | 只看该作者
“1.滚屏的问题。 #1783” 问题已经解决。
但出了个新bug,normal的前景色与背景色都无效:
color normal=0x110000401100ffff highlight=0x110000401100ff00

Snap1.jpg (27.43 KB, 下载次数: 112)

Snap1.jpg
回复

使用道具 举报

1793#
发表于 2011-11-30 22:34:39 | 只看该作者

回复 #1796 zhaohj 的帖子

谢谢反馈,没有注意。。。
稍后修正。
回复

使用道具 举报

1794#
 楼主| 发表于 2011-11-30 22:48:26 | 只看该作者
“3.边框背景色问题 #1776”我测试还是无效
回复

使用道具 举报

1795#
发表于 2011-11-30 22:54:34 | 只看该作者
color命令应该OK了。。

@zhaohj
边框只有前景色有效,使用的是NORMAL的背景色。

看#1784我的回复。

[ 本帖最后由 chenall 于 2011-11-30 22:56 编辑 ]

grub4dos.zip

297.66 KB, 下载次数: 13, 下载积分: 无忧币 -2

回复

使用道具 举报

1796#
 楼主| 发表于 2011-11-30 23:02:27 | 只看该作者
我上面提的问题已经解决!
回复

使用道具 举报

1797#
发表于 2011-11-30 23:02:50 | 只看该作者

回复 #1797 chenall 的帖子

splashimage占用了64m后的内存么?
  1. splashimage /BACK.BMP
  2. cat /menu.usr > (md)0x20000+10
  3. configfile (md)0x20000+10
复制代码

=================================================
判断splashimage是否加载背景,可有什么特征值?

[ 本帖最后由 zxw 于 2011-11-30 23:05 编辑 ]
回复

使用道具 举报

1798#
发表于 2011-11-30 23:12:54 | 只看该作者

回复 #1801 zxw 的帖子

splashimage 没有占用32MB以上的内存。

#define splashimage_loaded ((*(unsigned long **)0x8304)[46])

/*
  flags for vbe splashimage
  splashimage_loaded & ~0xf   SPLASH_BASE_ADDR
  if image load success set bit 1=1;
  SPLASH_BASE_ADDR+4                image Width.
  SPLASH_BASE_ADDR+8                image height
  SPLASH_BASE_ADDR+16                image data
  the image data use 32bit colors.eg. width=4,height=2
  xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
  xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
*/

只要判断splashimage_loaded的值是否为0就行了。

高位的是为了方便以后使用外部命令加载背景图提供的扩展。
回复

使用道具 举报

1799#
发表于 2011-11-30 23:20:29 | 只看该作者

回复 #1801 zxw 的帖子

看了一下,是因为输出重定向还是使用16MB的没有移到32MB以上,所以....

我记得已经移了的,我再改改。
回复

使用道具 举报

1800#
发表于 2011-11-30 23:27:09 | 只看该作者

回复 #1803 chenall 的帖子

呵,那就对了。明白了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-7 01:16

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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