2024年4月1日の日記を表示中
2024年 4月1日 (月)
■基板
スーパーパンを使ったKABUKIのコンフィギュレーションの末尾2Byteの調査を継続しています。スーパーパンは、EEPROMの中にちょっとだけ命令が入っていて、起動直後にこれをSRAM上の特定領域 (0xFD10) に読み出した後、起動処理の中でそこを一旦経由するという変な動きをします。コンフィギュレーションの末尾が 0x70 0x00 で起動して、0xF0 0x00 で起動しないのは、おそらく前者と後者でここの動きが変わってしまうからだと推測されます。後者の場合、画面に「RAM OK」と出たところでハングアップしたような状態になるんですが、MAMEで確認すると、ちょうどそのタイミングでSRAM上の命令にジャンプしているので間違いないでしょう。
というわけで、ここをロジアナで観測してみることに。ひとまず 0xF0 0x00 のときは生のデータがSRAMに書き出されているはずなので、EEPROMからコピーした命令をSRAMから読み出して実行するところを引っ掛ければよいのでは、と考えてSRAMから 0xCDを読み出すところを探してみました。アドレスを全ビット見られれば簡単なんですが、ロジアナのチャネルが少ないので、データ 8bitとアドレスの上位4bitだけを見ていますw
で、無事 0xCDを読んでいるところは見つけられたんですが、その後に 0x81 を読まずに SRAMに 0xFD 0x11を書いているようです。
0xFD 0x11 は0xFD10 の次なので、次に実行する命令のアドレスということになりそうです。これはつまり、0xCDをオペコードとして読み出して実行しようとしたところで、KABUKIが独自に持ってるメモリ保護の仕組みに引っかかってトラップか何かになったか、RST命令としてデコードされたとかで、割り込み処理ルーチンに飛ぼうとしてスタックポインタにアドレスを積もうとしている状況みたいな? いずれにしても、やはりこの EEPROMからコピーしてきた0xFD10の命令を実行するところで止まっているのは間違いないようです。
2024年4月1日の日記を表示中
[コメントを書く]