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

ワンボードマイコンをつくろう!(パソコンの原点はここから始まった) TK80ソフトコンパチブル!8080、Z80マシン語からBASICまでこれ1台でこなせます

[第131回]


●ND80ZVをBSに接続する

ND80ZVをご購入いただいたお客様(大阪府のM様)からメールをいただきました。
以下がいただいたメールの要旨です。

「30数年前にTK−80BSを購入して、その後ずっと押入れにしまったままになっていたのですが、少し前に取り出して久しぶりに使ってみたところ、まだ正常動作することがわかりました。
せっかくND80ZVを購入しましたから、いろいろ使ってみる手始めとして、ND80ZVとBS(Basic Station)とを接続してみたのですが、動きませんでした。
ND80ZVはROM、RAMフル実装ですから、とりあえずはそれをTK−80と同じアドレス範囲に限定してアクセスするように改造してみたのですが、BS上のROMもRAMも認識できません(ND80ZVのモニタROMは一部書き換えました)。
BSに接続してもND80ZVは正常に動作します(TK80モニタの動作)。
ただオシロで信号を調べたところA10〜A14の波形が崩れています。
このアドレスラインには念の為バッファとして74HC367を入れています。
どうもBSのROM、RAMがアクセスできないことと、A10〜A14の波形が崩れていることとの間になにか関係があるような気がしますがよくわかりません。
ND80ZVの回路図を見るとA10〜A14には74HC126が使われていますが、この回路の働きについてお教えいただけませんでしょうか?
また何か解決へのヒントがありましたらお教え下さい」

M様からご質問をいただいたA10〜A14の回路というのはこの回路です。

7segmentLEDにRAMの表示バッファの内容をDMA転送するための回路です。
[第35回]で詳しく説明をしています。
7segmentLEDにアドレスとデータを表示するために1秒間に数百回、わずかな時間CPUを強制的に停止させて、メモリから表示データを読み出してLED表示回路にラッチしています。
上の回路はそのときに、RAMのLED表示データを格納しているメモリアドレスを強制的に出力するための回路です。

しかしこの回路はほんのわずかな時間しかアクティブになりませんから、BS回路をつないだからといって、それがなにか影響して波形がつぶれるというようなことは考えられません。
原因はどこか他にあるのでは、と思いました。

しかし、それは私の浅慮だったことが後でわかりました。
この回路が関係しているのでは、というM様の狙いが正しかったのです。
それは後にわかったことで、この時点では余りに情報量が少な過ぎました。
そもそも私はBSは見たこともさわったこともありません。
インターネットで検索してみても、これといった情報はみつかりませんでした。

誤配線かなにかが原因ではと思い、まずはND80ZVをどのように改造したのか、それをメールで教えてください、とお願いしました。
M様からは手描きの回路図がメール添付で送られてきました。
下図はM様から送られてきた回路図をもとに私がND80ZVの回路図に描き加えたものです。

破線内がM様が追加された回路です。
ROMは正解ですがRAMは、この位置ではバックアップ時には問題がありますからIC18pin3の後ではなくて、pin2の前(IC20のpin11の後)に入れてください、とアドバイスしました。
しかしこの回路なら、そのほかには問題はないはずです。

M様が追加された回路はA10〜A14が全て0のときのみにアクティブになる信号をROMとRAMのセレクト信号に加えるものです。
この回路の追加によって、ROMはアドレス0000〜07FF、RAMはアドレス8000〜87FF以外はアクセス禁止になります。
どこにも問題はありません。

なおBSにはA0〜A15、D0〜D7のほか、MREQとRD、WRを組み合わせて、MEMR、MEMWを作って供給されたとのこと、それも正解です。

全くもって謎です。
謎は2つあります。
そのひとつは、なぜBSのROM、RAMの内容が全く読み出せないのか、ということです。
もうひとつは、なぜA10〜A14の波形がつぶれてしまうのか、ということです。
M様がバッファとしてA10〜A14に74HC367を追加されたのにもかかわらず、波形がつぶれてしまうというのはどういうことなのか?
しかし、そもそもA10〜A14にバッファは不要なはずです。
ほかのアドレスラインに比べて特にA10〜A14だけが弱いということはありません。
この74HC367については不要だと思います、とご返事しました。

それにしてもなぜBSのROM、RAMにアクセスできないのか。
その謎の手がかりを求めて、ネットを検索していましたら、TK−80とBSとの接続について書かれた次の文が目に止まりました。

「TK-80の基板はフルデコードするために、パターンをカットしてデコード信号を接続できるようになっていた。
Basic Station基板はROMとRAMを搭載しているため、BS基板とTK-80を接続する際にはこのフルデコード改造を行う必要があった。そのためBasic Station基板上にはTK-80基板上のROMとRAMのアドレスをデコードする回路が載っており、このデコード信号がエッジコネクタ経由でTK-80基板に送られるようになっていた。TKー80側ではパターンをカットした後、この信号をメモリチップ用のデコーダに接続しなければならなかった。」
(以上ウィキペディアより引用)

うっかりしていましたが、確かにそうでした。
TK−80はROMもRAMもフルデコードしてありませんでしたから、ROMは0000〜7FFF、RAMは8000〜FFFFのアドレスでアクティブになってしまいます。
したがってTK−80をBSに接続するためには、そのROMとRAMのセレクト回路を、今回M様がやられたような回路を追加してフルデコードしなければなりません。
しかしそれには回路図でお見せしましたようにかなり面倒な作業が必要になります。
ユーザーがそのような作業をしなくてもよいように、TK−80のパターンをカットして、そこにBS側でつくられたデコード回路からの信号を接続するように考えられていたことが、上の解説記事からわかりました。

うむむ。
TK−80とBSとの接続については、そういういわば「奥の手」が使われていたことがわかりました。
ひょっとすると、まだ他にもなにか「奥の手」が使われていて、そのためにTK−80とBSとを接続している、何か特別の信号があるのではあるまいか?

そこで、
「アドレスバス、データバス、MEMRD、MEMWRと、上で引用しましたウィキペディアの説明にあるデーコード信号を除く、それ以外にもTK−80とBSをつなぐ信号が何かありませんか?」
とM様にお尋ねしました。

本日は時間がなくなってしまいましたので、この続きは次回にいたします。

ワンボードマイコンをつくろう![第131回]
2011.12.28upload

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