F8 I/Oボード(その5: INS/OUTS対応)
前回まででIN
/OUT
命令で8251にアクセスできるようになりました。これで実用上困ることはありませんが、F8にはさらにポートアドレスが0,1,4~15の場合にのみ使える短縮命令INS
/OUTS
があります。
前回までで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"に固定されるので以前と同じ動作になります。
いままでアナログのや工夫で何とかやってきましたが、ついにデジタルのオシロスコープを買ってしまいました。
RigolのMSO1074Zです。価格は今までのOS-5100Aとほぼ同等ですね。AliExpressあたりで輸入すればもう少し安くなりますが、劇的に異なるわけではないので安心をとって国内調達です。
OS-5100A購入時の条件は当然クリアしています。最低50MHzできれば100MHz⇒帯域は70MHzですが後から100MHzに上げることも可能なようです。2現象できれば4現象⇒4現象でさらに16本までのロジック入力(8本ごとにアナログ入力が減るのでロジック16本使うとアナログは2現象まで)ができます。遅延掃引⇒もちろん可能です。
電脳伝説@vintagechipsさんの最新作SBCV20ルーズキット、発売と同時に注文したところ翌日に到着したので早速組んでみました。
今回は事前に必要な部品は確保していたので素直に組めました。とはいっても新規に調達が必要だったのは19.6608MHzのクリスタルのみです。
組み方としてはV20用のほか8088用にもできますが、8088は8088ボードで動かせているので今回はV20用で組むことにします。