↓がCRTC周りの回路図です(以前にアップしたものから一部を修正しています)。
CRTKILLの信号を、一度H-SYNCで叩いてから、LSIに入力しています。
これはもしかして1行単位でCRTKILL(バスリクエストOFF)が出来るのでは?
という事で調べてみました。
↓が作成したプログラムです。
crtkill.zip
Mode5,Page3 で動かして下さい。
RUN すると、WAIT値を聞いてくるので、とりあえず 200 を入力してみて下さい。
上の方に縞模様が出ると思います(時間が経つと変化します)。
スペースキーを押すと、ループから抜けます。
プログラムの内容は、以下の通りです。
1)垂直同期が来るまで待つ
2)CRTKILL (バスリクエストOFF)にする
3)一定時間待つ
4)CRTKILL を解除する(バスリクエストONにする)
5)1)に戻る
です。5)で戻る前に、画面左上と右下に適当な値を書き込んでいます。
実行してもらうとわかりますが、CRTKILL (バスリクエストOFF)は以下のように動作しているようです。
・CRTKILL の解除は、水平同期(横の行)単位で行われている。
・CRTKILL の最中に表示されるデータは、画面右下(データとアトリビュートの両方)が表示される。
ただ、CRTKILL の設定は、水平同期(横の行)単位で行われているかどうか不明です。
今回のプログラムでは、1フレーム間に、
CRTKILL設定→CRTKILL解除
ですが、これを1フレーム間に、
CRTKILL設定→CRTKILL解除→CRTKILL設定→CRTKILL解除
とやっても、縞模様が2つ出来るような期待通りの動作をしてくれません。
やっぱり動きがナゾです...

