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