CPU side: program 時 のφ2 を high 固定にする
CPU A12 の変な動作は改善されたように見えますが、 Program ROM A17:13 は相変わらず 0 固定のため、なんともいえません。
PPU side: program 直後のバンク切り替えに失敗する
当初普通に書き込みが出来たため、あまり気にせずに CPU side の不具合の分析に集中してたのですが、その実験中に charcter 側のデータが何故か変わったので書き直しのつもりでやってみたら何故か書き込みが全く安定しません。
- page 0 のデータを書いたら、 page 0xa に書かれた
- programming の後のバンク切り替えに失敗する。その後は programming address によって動作が変わるようだ。
- PPU 0x0000-0x0fff: バンク切り替えが無視されるが、書き込みが続行される
- PPU 0x1000-0x1fff: バンク切り替えが無視されてるのかよくわからないが、書き込みが停止する。その後のデータを読み出すと 0xa8, 0xe8 を交互に出しているので programming polling 待ちなのかもしれない
何かしらデータバスがおかしいのか、書き込みがうまくいってないかの状況判断がさっぱりできず諦めモードです。ロジアナで全部波形をみればわかるんでしょうけど、プローブを60本ぐらいつなぐのが非現実的でやる気が起きません。
kazzo ではデータバスをCPUとPPUで共有してるのがまずいのかもしれないし、分離してみるとなると専用ハードを作る必要があって時間もかかるし、これも非現実的です。