|
本帖最后由 sratlf 于 2014-4-30 15:14 编辑
坛友2010guoguo发现的一个疑似bug 讨论过程可以见我的帖子#2544到#2549 同时感谢2010guoguo的辛苦测试
在这个帖子里我重新整理下 有条件的也可以帮忙测试下 看是不是普遍问题 测试内容见我的帖子#2550测试文件见附件 是个批处理和img合并的文件 批处理见下(已精简没用内容)
- !BAT
- debug 1
- set runs=%~nx0
- set runpath=%~p0
- ::交换磁盘并更新,避免交换后ud内容丢失
- read 0x82b8
- read 0x82b9
- map (hd0) (hd1)
- calc *0x82b9=*0x82b9&0xffffff00|0x81
- map (hd1) (hd0)
- map --rehook
- ::分离img文件并map到fd3
- set loadfile=%@root%%%runpath%%%runs%
- map --mem=0x20000%loadfile% (rd)
- cat --locate=\x1f\x8b --number=1 (rd)+1
- calc *0x82d8=*0x82d8-%?%
- calc *0x82d0=*0x82d0+%?%
- map --mem (rd)+1 (3)
- map --rehook
- exit
复制代码
如果不执行 calc *0x82b9=*0x82b9&0xffffff00|0x81 这条命令更新ud位置 下面命令的执行都没有错误
执行了以后 cat --locate=\x1f\x8b --number=1 (rd)+1 的结果在0107版和之前的版本(0724)上会出现差异 原图可以看帖子#2549
0107版得到的结果为0x232e 之前版本得到的结果为0x24f 0107版在执行 map --mem (rd)+1 (3) 时报错 之前版本不会
用同一个测试文件 我自己测试cdrom启动 两个版本得到的都是0x24f 没有任何报错 会不会是0107版的某些改动引起了bug
更新:#2554正常版本的截图
#2559 0107版出错的截图
对比#2549的截图会发现
1,不执行calc *0x82b9=*0x82b9&0xffffff00|0x81 更新ud位置的话 两个版本cat --locate得到的结果是相同的 可以正常执行map --mem (rd)+1 (3)
2,更新ud位置的话 0107版以前的cat --locate得到的结果正常 0107版得到的结果始终为 0x232e
|
|