原帖由 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 ...
原帖由 zhaohj 于 2010-9-28 08:30 发表
pxe: checkrange 0x21 read 0x8280
UD: checkrange 0x23 read 0x8280
CD: checkrange 0x9F read 0x8280
...
原帖由 zxw 于 2010-9-28 17:58 发表
呵,找到了,fb启动设备号 0x82b9
checkrange 0x80 calc *0x60000=*0x82b9 可检测fb盘是否识别为硬盘。
原帖由 zxw 于 2010-9-28 17:58 发表
呵,找到了,fb启动设备号 0x82b9
checkrange 0x80 calc *0x60000=*0x82b9 可检测fb盘是否识别为硬盘。
原帖由 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
checkrange 0x80 calc *0x60000=*0x82b8>>8&0xff
原帖由 tuxw 于 2010-9-29 23:18 发表
我喜欢这样用
calc 0+*0x82b8>>8&0xff-0x80 || ECHO =0x80
1. 不需样不需一个临时变量 *0x60000
2. 它只是一条命令,checkrange的话实际上是两条命令
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) | Powered by Discuz! X3.3 |