8085AのCPUボードを作ろうとした場合、
本体のCPU以外に 必ず 使わないといけない ICが1個だけあります。 それは何でしょう?
8ビットのラッチ(記憶)ができるICを使わないといけません。 なぜなら、8085Aは 「データバス」と「アドレスバス(下位)」が同じピンから(時間差で)出ているからです。
例えば、今回使う 三菱のICであれば ↓ 「M5L8212P」という型番、
例えば、NECであれば ↓ 「uPB8212C」という型番。 これが まだ手元にあります。 貴重な1個!
要は、8212という本家IntelのセカンドソースのICが 通常 使われて来ました。 従来は。(IC名称:8ビット INPUT/OUTPUTポート となっています)
参考のため、TK-85の回路図を眺めてみましょう。
中央の四角が CPUの 8085 です。(赤枠部分 ↓ が8212)
回路図が 手書き なのが 時代を感じさせます。 (笑)
他人の回路図を見ていて、「回路設計」と言えるのか? と 指摘されそうですが、楽して確実に動かすためには 何でもします。 昔の回路を読むのは、むしろは良い勉強になります。
「マルチプレックス」と云って、ICのピン数を減らすため 同じピンに 違う信号を出して、外部の回路で切替させる方式をとっています。
「ALE」という信号が Hi の時に 下位のアドレス8ビットが出力されるので、これをラッチしているんですね? それと、/DMAという信号が入った時にラッチ出力をカット(ハイ・インピーダンスに)して、他ICのアドレス出力が有効に使えるようにもしています。(← これを忘れている回路が多い)
ダウンロードした 三菱の 8085A データシートの、
8085Aの すぐ次のページに 8212の資料が載っていました。
英語でよくわからん・・・
11番ピンの STB(Strobe:ストローブ)信号が Hi で データを取り込んで、Lowになったらラッチしたままになるのだと思うが、3ステート(=Hiインピ)にする条件がよく分からない。 (DS1と2のANDなのかORなのか?)
こんな不親切な表を見るより、内部の回路(ブロック・ダイヤグラム)を見た方が よほど分かりやすかったりする。
これでも ごちゃ ごちゃしていて分かりづらいので、TK-85の回路の通り、
1番、2番ピン(MD信号と /DS1信号)を 常にLowにした シンプルな回路に書き直してしまえ!
↓
これなら分かり易い! やはり STB(=Hi)でデータ取込、DS2がHiの時だけ DATA Outputを出力、これがLowになったら 出力をカットする・・・ これだけ!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
なぜ、こんな面倒な確認をしているかというと、
8212というIC、 すでに 入手しづらく 結構 高価なんです。 現在では。
さらに、消費電力 800mW (5Vなら 160mA)という「大飯食らい」。 CPUと同じくらい電気を消費し、ICが熱くなるんです。(MZ-700のキャラクタジェネレ―タを作る時 使ったことがあるので分かる) で、これは使いたくない。(持ってはいますが 使うのもモッタイナイ) 代わりのICを探すと・・・
74HC573 っていうのがありました。↓
(HC273でも良いのですが、ピンの並びが気にくわない!)
それと、74HC574という Hiへの立ち上がりエッジでラッチしてくれるICもあるので、これでも良いいのかな?と思ったのですが、駄目でした。 ALEがHiへの立ち上がり時は ↓ まだ アドレス信号が不安定でした。(エッジ取込ではノイズに弱いし) Lowエッジに反転させれば良いけど面倒。
危ない、あぶない・・・
HC573の /OE(Outputイネーブル)信号に HOLDA信号を接続しておけば、CPUがHALT状態の時や DMA転送の時などに アドレス出力がカットできます。 結果 ↓ こんな感じ
古いTTLレベルのICから、HCタイプを駆動するのには 入力にプルアップ抵抗も必要でしょう。 47K-8素子を付けておく事にします。
ようやく、設計 らしくなって来ました。 よね?
INTELではDバスとAバスの重畳方式が、このあとも暫く続きましたねー。
8212は74SタイプのTTLですからね(だからNECではuPD型番でなくuPB型番)。仰る通りヒートシンクを使いたくなるICです。
>DS1と2のANDなのかORなのか?
よ~く目を凝らしてデータシートをご覧ください。バーDS1とDS2の間に小さな中点があります。印刷の汚れではなく、当時の論理式表現でANDです。