あとはROMに書き込まれたデータがおかしいとしか考えられないわけで
ロジアナでリセット解除直後の最初にフェッチされるコードをデータバスから取り込んでみました
その結果がこれ。
一見良さそうですが「EB/FE」って上位下位逆!? これでは動かないわけです
もともとROMライタのバッファにはコードが以下のように展開されています
ROM上の0x1FFF0(システムのロケーション上は0xFFFF0)にJMP$の「EB/FE」のコードがありますが
オペコード「EB」が偶数番地すなわち16ビットの下位8ビット
オペランド「FE」が奇数番地すなわち16ビットの上位8ビット
にアライメントされなければなりません
バッファからはvoid*ポインタをunsigned shortでキャストしていっぺんに16ビット数値dataを引き、これを2個の8ビットポートを介してROMのデータバスに接続されます。
ポートとバッファ間は以下のように相互変換していて、本来は正しく上位下位がセットされるはずなのですが・・・・・
どこで逆転しちゃったんでしょうか