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

トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆


[第220回]



●REGISTER回路(3)テストプログラムのためのコネクタ接続

下の図は前回お見せしましたが今回の説明の助けとするために再掲します。

REGISTER回路基板を将来トランジスタ版CPU回路の一部として組み込んだ場合にはマシン語命令のデコード回路を経て上図のRX、WX信号がREGISTER回路基板に供給されることになります。
このREGISTER回路の説明の後で説明する予定のREGISTERセレクト回路でそのRX、WX信号が作成されます。
ですからその時点でもう一度そのセレクト回路基板を接続して動作テストをするつもりですが、まずはその前の段階としてREGISTER回路基板のみを単独でテストすることにします。
手っ取り早くて簡便なテスト方法は今までやってきましたようにND80Z3.5を使って82C55の入出力コネクタを上図のコネクタに接続してBASICプログラムでテストをするという方法になりますでしょう。
ただ今までテストをしてきた試作基板の信号入出力コネクタは10pinでした。
そうではないコネクタも変換基板を使って10pinに変換してつなぎました。
上図のCN1を見るとR0−R7で8pin、W0−W7も8pinなのでこれも変換基板を使って16pinを8pin×2に分ければそれとCN3を合わせてちょうど26pinケーブルの反対側を10pinコネクタ3個に分けたケーブルが使えそうです。
最初はそうするつもりでプログラムの作成にかかったのですが、じきにそれでは駄目だということに気が付きました。
CN3には+5VとGNDが配置されていますからここにCポートの10pinコネクタを割り当てることになります。
それはそれでよいのですが、今までの回路とは違って今回のd0−d7はレジスタと内部バスがつながるところですから、Cポートの向きは入出力になります。
残念なことに82C55の一般的なモードでは向きは入力か出力のみ設定できますが入出力はありません。
ということはレジスタに値を書き込むときの動作テストではCポートを出力に設定し、逆にレジスタから値を読み出すときにはCポートの向きを入力に設定することになります。
ところが困ったことに82C55はそのように向きを設定するためにコントロールワードアドレスに方向制御のためのコマンドを書いたとき、もともと出力に設定されていたほかのポートの出力も全部L(0)にクリアされてしまいます。
どういうことかといいますと、たとえばAポートにR0−R7を割り当て、BポートにW0−W7を割り当ててCポートからd0−d7にテストデータを出力することを考えてみます。
データを出力する前にW0−W7、R0−R7は全ビットを1にしておかなければなりません。
そのようにしておいてCポートからテストデータを出力します。
それから書き込み信号としてW0〜W7のいずれかを一旦0にしてからすぐに1にします。
これでデータがレジスタに書き込まれます。
問題はその後で書き込んだデータを読み出すときに発生します。
今度はデータを読み出すためにCポートの向きを入力に設定しなければなりません。
ところが向きを設定するために82C55にコントロールワードを書き込むとその瞬間にAポートもBポートも全ビットが0になってしまいます。
その瞬間にせっかくレジスタに書き込んだデータは失われてしまいます。
この問題を解決するためにはどうしてももう1個別の82C55が必要になります。
そこでND80Z3.5にI/Oボードを増設することにしました。
82C55を2個使ってR0−R7、W0−W7につなぐ82C55とd0−d7につなぐ82C55を分ければ上記の問題を避けることができます。
下はその接続イメージ図です。

上の説明では例としてR0−R7、W0−W7をAポートとBポートに接続するというように書きましたが82C55側のコネクタのピン配列の都合でR0−R7、W0−W7は増設I/Oの82C55のBポートとCポートに接続します。
図のように接続すればND80Z3.5上の82C55のCポートの向きを変えても増設I/Oの82C55の出力は変化しませんから上で説明したような問題は発生しません。

下はコネクタの接続図です。

左側のケーブルは82C55側は26pinコネクタですがREGISTER側は26pinのうちの11pinから26pinの16本のケーブルに16pinコネクタを取り付けたものを用意しました。
右側のケーブルは今まで何回もテストに使ってきた片方が26pinコネクタで反対側が10pinコネクタ3個のケーブルを使います。
10pinコネクタ3個のうち真ん中のCポートからの10pinコネクタのみをREGISTER基板のCN3に接続します。

テストのために上の接続イメージ図のように接続した写真です。


カメラを引いて全体が写るようにしてみました。


トランジスタでCPUをつくろう![第220回]
2020.4.15upload

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