最近のお買い物(2021/02)
ここ数日Universal MonitorのMC68000系への移植をやっていて、ある程度まとまったら何か書くつもりです。
で気がつくともう2月も終わりですね。
ここ数日Universal MonitorのMC68000系への移植をやっていて、ある程度まとまったら何か書くつもりです。
で気がつくともう2月も終わりですね。
もう一丁 Cバスのボード、これも神田装備さんでの戦利品です。
コンテックのパラレルI/Oボード、PIO-48W(98)です。
ネットで検索するとISAバスのPIO-48W(PC)や98ノート用のPIO-48W(9N)などという姉妹品もあったようです。
パラレルI/Oといってもプリンタポートの類ではなく、汎用のいわゆるGPIO的なものになります。機械などの制御用にパソコンを組み込んで使う際に重宝するもので、昔はトランジスタ技術誌の広告にも似たようなボードがたくさん掲載されていたものです。
今回はしばらく前に神田装備さんで購入したCバスのボードです。
2枚のボードの間にPGAらしきものが見えたので何かのマイコンボードかなと思って買ってみたのですが...
結果的には予想外のボードでした。
まずはサブボードを外してPGAの確認からです。
PGAの石はμPD9305Rでした。何か汎用デバイスでは無さそうな番号なのですが、どこかで聞いたことがあるような気もします。
前回まででIN
/OUT
命令で8251にアクセスできるようになりました。これで実用上困ることはありませんが、F8にはさらにポートアドレスが0,1,4~15の場合にのみ使える短縮命令INS
/OUTS
があります。
汎用ロジックによるI/Oポートが動いたので、次は本命の8251を接続してみます。
回路はシンプルです。
SN74LS138NはAB2~AB7をデコードして8251のCSを作成しています。
8251の前にまずは単純なポートを試してみることにします。
テスト用のボード、ブレッドボードで十分な気がしますがどうも好きになれないので作ってしまいました。
機能は単純です。
IORに対しては下部ジャンパで設定した値をSN74HC541N経由でデータバスに送り込みます。アドレスをデコードしていないのでアドレスは任意です。
IOWに対してはアドレスの下位4ビットとデータの上位4ビットをSN74ALS574NでラッチしてLEDを点灯します。当初データのみの予定でしたがアドレスも見られたほうが便利だろうと変更しました。
これでIN
/OUT
命令実行時の動作と波形を見てみます。ロジックプローブの信号の対応は以下のとおりです。
前回メモリアクセスについて書いたので今回は本題のI/Oアクセスについてです。
最初はIN
命令です。
これまで不明だったリセット解除直後のX'0000'番地からのI/Oリード、X'0000'以外の値を返したら何が起きるか?ということでその3で予告したIORサイクルでデータバスに値を送り込む回路を追加しました。
空だったソケットにはSN74LS541Nを載せました。
下に並ぶショートピンの群れは値の設定用、8ビットのところで区切りがわかるように空けておきます。写真の状態でX'F010'を設定しています。
右上端のショートピンは74LS139でデコードしたIORを74LS541に供給するためのもの、抜けば"H"に固定されるので以前と同じ動作になります。