SMC-777Cをシステムディスクから起動したときの画面はノイズがないが、BASICを選択しBASICに制御が移ったらノイズが発生する。どうやらBASIC側でカラーパレットボードの存在を確認したらenableにするらしい。
 ということでBASIC側から制御してカラーパレットを有効/無効にしてどう変わるか確認してみる。
 OUT &H51,6:OUT &H51,7でキャラクタ画面とグラフィック画面それぞれに対するカラーパレットの適用をOFFにする。OUT &H51,&H16:OUT &H51,&H17でカラーパレットをONにする。これによりノイズもOFF/ONと変化することがわかった。さらに絞り込んでOUT &H51,7とOUT &H51,&H17でグラフィック画面に対する設定のみでノイズが観測できることがわかった。なおBASICのWIPEコマンド(画面消去)を実行するとカラーパレットが存在すれば有効化される。
 これらの動作はSMC-777にカラーパレットボードを追加したものでも再現したので個別の問題ではなさそう。

 SMC-777Cの本体からの16色表示信号とカラーパレットボードからのカラー信号はエミッタとコレクタを共有した2つのトランジスタで切り替えている。外への出力はエミッタフォロワ。出力したい信号の反対側のベースを7405(オープンコレクタ)により強制的にGNDレベルに落として抑止している。
2022-08-08 02.36.26

 この信号の切り替えはIC60のLS74で行っている。このFFのCLKは4φ(16MHz)。
 カラーパレットボードが実装されていてdisableにされている状態では本体からのカラー信号が有効でカラーパレットボード側の信号がGNDに落とされている。このときノイズは出ない。

2022-08-08 02.46.32

 IC60(LS74 UNIT-1)のQ出力が"L"のとき、本体カラー有効。Q="H"のときカラーパレット側有効。

・カラーパレットボードが存在しないとき(*CPON="H")、常にQ="L"。
・カラーパレットボードが存在するとき(*CPON="L")は*BLANK="L"のときに強制的にQ="L"。その他"H"。

CRCPはキャラクタ表示に対するカラーパレットが有効なことを示す信号(OUT &H51,&H16)。
GRCPはグラフィック表示に対するカラーパレットが有効なことを示す信号(OUT &H51,&H17)。
C/*Gは現在表示中のドットがキャラクタかグラフィックかを示す信号。キャラクタ画面はグラフィック画面の手前で、キャラクタ文字のフォントがある位置で"H"、透過部分で"L"となる。

カラーパレット側が有効になるのは:
・CRCP="H"でC/*G="H"のときにD="H"が与えられCLK後にQ="H"。
・GRCP="H"でC/*G="L"のときにD="H"が与えられCLK後にQ="H"。

・カラーパレット側切替時に本体カラー側が落としきれてないんじゃないかなとIC106 7405(カラー信号をGNDに落とす役割)に重ねて74HC05を置いてみたが変わらず。

・カラーパレットと本体ボードを接続するケーブルCN3-CN1をシールドしてみたが変わらず。
・カラーパレットに供給される4φにダンピング抵抗47Ωを挿入してみたが変わらず。

 う〜ん、カラーパレットボードからの信号にすでにノイズが乗っているのかなあ。続く。