惊喜:grub4dos-0.4.5b-2010-09-25后的版本
不经意间发现,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 编辑 ] 是啊,以前判断UD启动要多加一条命令,现在可以精简了。 顺便问下判断是否pxe启动也是read 0x8280吗 值是多少谢谢了现在只能手机上网不太方便查 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 编辑 ] 原帖由 zxw 于 2010-9-27 23:35 发表 http://bbs.wuyou.net/images/common/back.gif
不经意间发现,chenall 为grub4dos-0.4.5b-2010-09-25_test 后的版本,增强了功能: set boot_drive to FB_DRIVE if exist.
经测试发现:fb盘启动后,read 0x8280 为 0x23.
这样变动很有针对性,也更合理.但判断非U ...
想不到你跟我一样也需要这样 原帖由 zhaohj 于 2010-9-28 08:30 发表 http://bbs.wuyou.net/images/common/back.gif
pxe: checkrange 0x21 read 0x8280
UD: checkrange 0x23 read 0x8280
CD: checkrange 0x9F read 0x8280
...
谢谢了 不知其他的设备启动时值是多少 想完整了解下 呵,找到了,fb启动设备号 0x82b9
checkrange 0x80 calc *0x60000=*0x82b9&0xff可检测fb盘是否识别为硬盘。
[ 本帖最后由 zxw 于 2010-9-29 13:22 编辑 ] 原帖由 zxw 于 2010-9-28 17:58 发表 http://bbs.wuyou.net/images/common/back.gif
呵,找到了,fb启动设备号 0x82b9
checkrange 0x80 calc *0x60000=*0x82b9 可检测fb盘是否识别为硬盘。
是不是需要外部命令 calc 这句?
可以用wenv自带的calc功能代替吗?
发现 map命令好像有问题……
回复 #8 cchessbd 的帖子
有内置calc命令 这说的是什么啊?能否稍微提点一下? 晕啊,又发现操作符 ! 什么时候又取消了啊? 原帖由 zxw 于 2010-9-28 17:58 发表 http://bbs.wuyou.net/images/common/back.gif呵,找到了,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 原帖由 chenall 于 2010-9-29 11:38 发表 http://bbs.wuyou.net/images/common/back.gif
标准的作法如下:
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
呵,发帖时写漏了…… checkrange 0x80 calc *0x60000=*0x82b8>>8&0xff
我喜欢这样用
calc 0+*0x82b8>>8&0xff-0x80 || ECHO =0x80
1. 不需样不需一个临时变量 *0x60000
2. 它只是一条命令,checkrange的话实际上是两条命令 原帖由 tuxw 于 2010-9-29 23:18 发表 http://bbs.wuyou.net/images/common/back.gif
我喜欢这样用
calc 0+*0x82b8>>8&0xff-0x80 || ECHO =0x80
1. 不需样不需一个临时变量 *0x60000
2. 它只是一条命令,checkrange的话实际上是两条命令
嘻嘻,GRUB4DOS新的版本中前面的0+应该可以去掉了。 原帖由 tuxw 于 2010-9-29 23:18 发表 http://bbs.wuyou.net/images/common/back.gif
我喜欢这样用
calc 0+*0x82b8>>8&0xff-0x80 || ECHO =0x80
赞一个,思路简洁高效!
[ 本帖最后由 zxw 于 2010-9-30 10:07 编辑 ] 原帖由 chenall 于 2010-9-30 08:12 发表 http://bbs.wuyou.net/images/common/back.gif
嘻嘻,GRUB4DOS新的版本中前面的0+应该可以去掉了。
已经看到你最新的更新日志了,但从兼容性上考虑,保留0+要好一点 外部命令怎么用啊
页:
[1]