その4の回路では問題がありましたので修正しています。
・その4改
MREQ がネゲート(つまり CPU から読み書きされない)、CAS がアサートされた時にそのアドレスをラッチする。
この条件の時は、画面描画範囲からデータを読み出しているタイミングなので、どのアドレスにアクセスしているかが読み出せます。
実際の回路は、それ以外にラッチしたアドレスをクリアする機能が必要になります。
組んでみた回路がこれです。
I/O ポートは、0x40(アドレス下位)、0x41(アドレス上位)で、0x41 アクセス時は同時にクリアします。
手抜き仕様なので、クリアというよりアクセスした時のアドレスが入ります。
MREQ を1クロック引き伸ばしているのは、MREQ に対して CAS がちょっと遅れて出力されるための処置です。
動かしてみたテストプログラムがこれです。
vsynccir.zip
実際に動かした所です。
ダウンロードは🎥こちら
うちの P6 の調子があまりよくないせいか色がヘンになったりしますが、水平2分割が出来ています。

