こんにちは、I.Tak.です。 ひさしぶりなのでさっきはシグネチャとかを忘れましたX-( さてl2d3がなぜうまく伸長できなかったか、ですが、ずばり 「bim2bin2はmaxdisが効かないのではないか?!」 と疑っています。以下に説明します。 これはchuck0t.sys(chuck0t.exeをリロケートしてヘッダを 取ったもの)のダンプです。^と~で下線を引いたところに注目し てください。 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f 00000d30: 36 c7 05 f8 ff ff ff cf 03 00 00 36 a3 fc ff ff -------------------------------------^^^^^^^^^^^ 00008d30: 31 c0 bd 80 df ff ff 48 b9 1c 00 00 00 89 4d fc -------------------------------------~~~~~~~~~~~ 00008ef0: 00 d4 ff ff 1f b9 00 00 04 00 e8 37 16 00 00 36 -------------------------------------------------^^^^^^^^ 00008f00: a3 74 df ff ff 89 c2 b9 00 10 00 00 e8 22 17 00 ----------^^ そしてこちらは, それをmaxdis:32kで圧縮したのち, IPLで伸長し た結果をダンプしたものです(FMTOWNSのダンプ機能が役立った)。 上のダンプと比較して, ~で強調したところがコピーされている のが分かると思います。 00008ef0: 00 d4 ff ff 1f b9 00 00 04 00 e8 37 16 1c 00 00 -------------------------------------------------~~~~~~~~ 00008f00: 00 74 df ff ff 89 c2 b9 00 10 00 00 e8 22 17 1c ----------~~ これは状況証拠でしかありませんが, 0x0d39のデータをコピーする べきなのに0x8d39のデータをコピーしてしまったように見えます。 それで、距離が15ビットで表現できる範囲を超えてしまったので はないかと思い、48KBまで距離をとれる伸長ルーチンを作って試し ました。起動はできましたが、どこか壊れているようでアプリを 起動することはできませんでした。 l2d4はもちろんそんなことはなくて、うまく展開・起動できます。 以上の結果から、「bim2bin2は怪しい。それもl2d3がmaxdisを 理解していないらしい」と考えられます。どうでしょう? 念のため、これはl2d3/l2d4/osaskcmp/exeリロケーションなど 盛り込んだIPLです。l2d3ルーチンに間違いは無いと思います。 http://user.ecc.u-tokyo.ac.jp/~g240845/osask/lzh/bootsec3.lzh I.Tak. <g240845 !Atmark! mail.ecc.u-tokyo.ac.jp> http://user.ecc.u-tokyo.ac.jp/~g240845/