XIPいじり

やはりXIPのimgfs.dllがあやしかったのか?ようやくROMに焼いたATOKが動くようになったので、XIPport.exeだけでうまく移植できないモジュールDLLを、自力で移植する方法を忘れないうちにメモ。
使うものはXIPport, M'Reloc,テキストエディタ。.exeはphysical relocateのみが必要なので、XIPportだけでrelocateできる。エラーがでるとしたら、XIP領域の不足なのでROMHDR.txtを編集して領域確保。大きく増やすと起動しないことが多いのでいじりすぎないのがコツ。
XIPportでdumpしたらwrite mapして、map.txtを作っておく。以後、map.txtを見ながらM'Relocでの修正やimageinfo.txt編集をしていく。
作業するモジュールを上書きしたら、M'Relocでvirtual memoryの配置を見る。上段のvbaseだけでなく、サイズや下段のデータ領域も合わせる。新規にモジュールを追加する場合は、モジュール名.txtもコピーしておき、配置は何とかひねり出して押し込む。
M'Relocはimageinfo.txtは更新してくれないので、vbaseとD=で指定されるvirtual addressを修正する。で、おもむろにXIPportでrealoc P。エラーが出ずに済めば、physical relocateも完了しているので、build & write。Flameの場合は、diskimage.nb0のオフセット001C0000。
といったことを、Flame with ATOK/HTKで書いてみるテスト(^^;