无忧启动论坛

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

惊喜:grub4dos-0.4.5b-2010-09-25后的版本

[复制链接]
跳转到指定楼层
1#
发表于 2010-9-27 23:35:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不经意间发现,chenall 为grub4dos-0.4.5b-2010-09-25_test 后的版本,增强了功能: set boot_drive to FB_DRIVE if exist.
经测试发现:fb盘启动后,read 0x8280 为 0x23.
这样变动很有针对性,也更合理.但判断非UD区究竟被识别为(hdx,x)还是(fdx,x)似乎相对要曲折些了.

[ 本帖最后由 zxw 于 2010-9-27 23:38 编辑 ]
2#
发表于 2010-9-28 00:27:23 | 只看该作者
是啊,以前判断UD启动要多加一条命令,现在可以精简了。
回复

使用道具 举报

3#
发表于 2010-9-28 08:19:51 | 只看该作者
顺便问下  判断是否pxe启动也是read 0x8280吗    值是多少  谢谢了  现在只能手机上网  不太方便查
回复

使用道具 举报

4#
发表于 2010-9-28 08:30:56 | 只看该作者
pxe:  checkrange 0x21 read 0x8280
UD:   checkrange 0x23 read 0x8280
CD:   checkrange 0x9F read 0x8280
fd0:                   0x00
fd1:                   0x01
...
hd0:                  0x80
hd1:                  0x81
...

hd32:                0xA0

[ 本帖最后由 zhaohj 于 2010-9-28 11:04 编辑 ]
回复

使用道具 举报

5#
发表于 2010-9-28 09:16:45 | 只看该作者
原帖由 zxw 于 2010-9-27 23:35 发表
不经意间发现,chenall 为grub4dos-0.4.5b-2010-09-25_test 后的版本,增强了功能: set boot_drive to FB_DRIVE if exist.
经测试发现:fb盘启动后,read 0x8280 为 0x23.
这样变动很有针对性,也更合理.但判断非U ...


想不到你跟我一样也需要这样
回复

使用道具 举报

6#
发表于 2010-9-28 09:28:36 | 只看该作者
原帖由 zhaohj 于 2010-9-28 08:30 发表
pxe:  checkrange 0x21 read 0x8280
UD:   checkrange 0x23 read 0x8280
CD:   checkrange 0x9F read 0x8280
...


谢谢了  不知其他的设备启动时值是多少  想完整了解下
回复

使用道具 举报

7#
 楼主| 发表于 2010-9-28 17:58:43 | 只看该作者
呵,找到了,fb启动设备号 0x82b9
checkrange 0x80 calc *0x60000=*0x82b9&0xff可检测fb盘是否识别为硬盘。

[ 本帖最后由 zxw 于 2010-9-29 13:22 编辑 ]
回复

使用道具 举报

8#
发表于 2010-9-28 20:14:37 | 只看该作者
原帖由 zxw 于 2010-9-28 17:58 发表
呵,找到了,fb启动设备号 0x82b9
checkrange 0x80 calc *0x60000=*0x82b9 可检测fb盘是否识别为硬盘。


是不是需要外部命令 calc 这句?

可以用wenv自带的calc功能代替吗?

发现 map命令好像有问题……
回复

使用道具 举报

9#
发表于 2010-9-28 22:33:39 | 只看该作者

回复 #8 cchessbd 的帖子

有内置calc命令
回复

使用道具 举报

10#
发表于 2010-9-28 22:46:12 | 只看该作者
这说的是什么啊?能否稍微提点一下?
回复

使用道具 举报

11#
发表于 2010-9-28 22:47:42 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

12#
 楼主| 发表于 2010-9-28 23:24:46 | 只看该作者
晕啊,又发现操作符 ! 什么时候又取消了啊?
回复

使用道具 举报

13#
发表于 2010-9-29 11:38:02 | 只看该作者
原帖由 zxw 于 2010-9-28 17:58 发表
呵,找到了,fb启动设备号 0x82b9
checkrange 0x80 calc *0x60000=*0x82b9 可检测fb盘是否识别为硬盘。


标准的作法如下:
checkrange 0x80 calc *0x60000=*0x82b8>>8&0xff
0x82b8 是存放fb_status的内存位置。
fb_drive = (fb_status >> 8) & 0xff;
而fb_status >> 8 & 0xff就是fb_drive.

简便一点就是(省去移位操作)
checkrange 0x80 calc *0x60000=*0x82b9&0xff
回复

使用道具 举报

14#
 楼主| 发表于 2010-9-29 13:14:35 | 只看该作者
原帖由 chenall 于 2010-9-29 11:38 发表


标准的作法如下:
checkrange 0x80 calc *0x60000=*0x82b8>>8&0xff
0x82b8 是存放fb_status的内存位置。
fb_drive = (fb_status >> 8) & 0xff;
而fb_status >> 8 & 0xff就是fb_drive.

简便一点就是(省去移位操作)
checkrange 0x80 calc *0x60000=*0x82b9&0xff

谢谢c大出来解释,更明白了。
我实际是这样写的:checkrange 0x80 calc *0x60000=*0x82b9&0xff
呵,发帖时写漏了……
回复

使用道具 举报

15#
发表于 2010-9-29 23:18:18 | 只看该作者
checkrange 0x80 calc *0x60000=*0x82b8>>8&0xff


我喜欢这样用
calc 0+*0x82b8>>8&0xff-0x80 || ECHO =0x80
1. 不需样不需一个临时变量 *0x60000
2. 它只是一条命令,checkrange的话实际上是两条命令
回复

使用道具 举报

16#
发表于 2010-9-30 08:12:56 | 只看该作者
原帖由 tuxw 于 2010-9-29 23:18 发表


我喜欢这样用
calc 0+*0x82b8>>8&0xff-0x80 || ECHO =0x80
1. 不需样不需一个临时变量 *0x60000
2. 它只是一条命令,checkrange的话实际上是两条命令


嘻嘻,GRUB4DOS新的版本中前面的0+应该可以去掉了。
回复

使用道具 举报

17#
 楼主| 发表于 2010-9-30 09:01:06 | 只看该作者
原帖由 tuxw 于 2010-9-29 23:18 发表


我喜欢这样用
calc 0+*0x82b8>>8&0xff-0x80 || ECHO =0x80

赞一个,思路简洁高效!

[ 本帖最后由 zxw 于 2010-9-30 10:07 编辑 ]
回复

使用道具 举报

18#
发表于 2010-9-30 13:23:47 | 只看该作者
原帖由 chenall 于 2010-9-30 08:12 发表


嘻嘻,GRUB4DOS新的版本中前面的0+应该可以去掉了。

已经看到你最新的更新日志了,但从兼容性上考虑,保留0+要好一点
回复

使用道具 举报

19#
发表于 2022-10-3 17:47:22 | 只看该作者
外部命令怎么用啊
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-26 18:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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