2014.9.3

前へ
次へ
ホームページトップへ戻る

MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!


[第29回]


●問題はregRD信号の誤出力

前回はWKLrd信号が出るはずのないタイミングで誤って出ることがある、ということを突き止めました、と書きました。
さらに調べてみますと、結局はそのタイミングでregRD信号が誤って出力されてしまうことがあるのが、そもそもの原因ということがわかりました。

regRD…。
それがわかったとき、思わずため息をついてしまいました。
最悪すぎる…。

regRDはOR出力で、ほとんど全ての命令回路から出力されています。
ですからregRDだけ見ていても何も分かりません。

下は「MOV,MVI」の回路図です。

この回路の中で「regRD」は楕円で囲った2箇所から出力されています。
もっともこのうち右下のregRDはクロックM3のタイミングで出力されます。
問題のT4(クロック4)のタイミングではありませんからこれは除外できます。
その上方のregRDはクロックM2(T4,T5)のときに出力されますから、これは誤出力の可能性リストに含まれます。
誤出力の原因はおそらく断線だと思われますがそれはともかくとしてそのタイミングでそこのregRDがアクティブ(L出力)になるということは、ロジックから考えるとIC155のpin3がHということです。
もしregRDがアクティブのときにIC155のpin3がHになっていたら、そのラインがおかしい(そのラインかまたはその上流のどこかが断線している)ということになります。
口で言うのは簡単ですけれど、それを調べていくのは大変なことです。

ええ。
でも、調べましたよ。
覚悟をきめまして。
全ての回路のうち、T4のタイミングでregRDが出力される可能性がある回路を全部、ぜーんぶ!
どうやったかといいますと、前回やりましたICテストピンのうちいくつかを外してそれを上記のように考えてregRD出力回路の前段のIC端子につないで、前回と同じように信号取得して調べていったのです。
正直言って、疲れました!
なんたってあの大きな基板のあっちとこっちという具合に測定しなければならないところもありますから、ICテストピンのリードの長さが足りなくなって、こんなことになってしまいます。



こんな調子でregRD出力回路を調べていきましたら、1箇所おかしなところをみつけました。

●やっと原因箇所を特定…のはずだったのですが


ADD、ADCなどの回路です。
回路図の上のほうに鉛筆で印をつけています。
その部分の回路図です。

PCLを測定していたところ(データの第3バイト)を、その代わりにIC196pin12をビット0、IC204pin4をビット1、同pin5をビット2、IC115のpin2をビット3として観測を行ないました。
その結果を解析しましたところ、おかしなところがみつかりました。
しかしとそれはちょっと納得できないデータでした。



61行から65行で、第3バイトの下位4ビットがA(1010)になっています。
これはおかしいデータです。
この説明を書いていて、今気が付きました。
そのずっと上のほう、33行から38行でも第3バイトの下位4ビットがA(1010)になっています。
ここに気が付くべきでした。
第3バイトのビット0はIC196pin12です。
ここはOPコードのビット6の反転信号が入ります。
OPコードC2(11000010)のビット6は1です。
ですからこの場合はそのインバート信号は0ですから、それについては正常です。
しかし33行から38行のOPコードはAF(10101111)ですから、この場合には測定データの第3バイトのビット0は1のはずです。
おお、そういえば、今また気が付いてしまいました。
測定データの第3バイトのビット0はOPコードのビット6の反転信号のはずなのに、ほとんどデタラメじゃありませんか!
ここにもっと早く気が着いていたら、もっと早く解決しておりましたのに。
とにかくしかし、このとき51行から65行の第3バイトの下位4ビットがおかしいことには気が付きました。
ビット0(IC196pin12)は’0’なのに、そのうしろのビット1(IC204pin4)とビット3(IC115のpin2)が’1’になるわけがありませんから。
それは矛盾している結果なのですが、とにかくIC115のpin2がHなので、ここからregRDが出てしまい、その結果このときWKLRDがアクティブになってしまったのです。

ここまで追求していながら、私はここで痛恨の判断ミスをしてしまいました。
まあ上の結果からは仕方が無い面もあったのですが、私はIC196のpin11とIC204のpin4の間か断線している、と判断してしまいました。
でも、テスターで測ってみましたらちゃんと導通しているじゃありませんか。
むむ、おかしい。
ということでもう一度データを取り直してみましたら、なんと異常現象は発生しなくなってしまいました。
なんということか!
ううう。悪魔の仕業ぢゃあ。

かくて私は疑心暗鬼のまま、ここまでチェックを進めてきたregRD回路を、またもう一度最初から調べ直すという無駄作業に没頭してしまったのでありました。
ああ(Alas!)。
悪魔の仕業ぢゃあ!

MYCPU80でCP/Mを![第29回]
2014.9.3upload

前へ
次へ
ホームページトップへ戻る