マイコン独立大作戦
CRTインターフェースボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第24回]
●CPUボードとの接続について考える
今頃になって何を…というようなものですけれど。
何しろあまりにものすごいスパゲッテイ状態だったものですから、気がめげてしまわないように、もう必死になってひたすら基板配線と格闘していたのです。
やっとなんとか押さえ込めたと思って、ほっと一息ついたら、はてCPUボードとの接続はこれでよかったのかしらん。
今頃気になってきてしまいました。
今まではずっとND80Z3.5と接続してテストをしてきました。
ええ。
ですのでND80Z3.5との接続については問題ありません。
F800〜のVRAMアドレスに00〜FFを繰り返し書き込んだ結果の画面は、もう何回もお見せしています。
ところでそのVRAMアドレスと重なるCPUボード上のメモリはどうなっているのか?
気になるところでありましょうが、それについてはまた後日。
今はCPUボードとの接続のお話です。
書きましたようにND80Z3.5については問題ありません。
ND80ZVについては大いに問題有りです。
ND80ZVを作りました当初は、昔と違いましてROMもRAMも大容量になっておりましたので、Z80のアクセスできる最大メモリの64KBは、ROM32KB、RAM32KBを当然のようにフル実装してしまいました。
すると外部に拡張するためのバスコネクタには、I/Oだけあればよいではないか?
そう考えた結果、アドレス線についてはA0〜A7のみでそれとIOWR、IORD、リセットと電源ラインを配しただけの外部コネクタ仕様でスタートすることになりました。
ところがその後に皆様ご存知の通りの展開となりまして、まさかのCP/M互換DOSの開発ということになってしまいました。
私はほとんどCP/Mについて経験も知識もなかったのですよねえ。
この歳になってまさかそのような展開になるなど、それこそお釈迦様でもご存知あるめえ…。
ましてこの私がご存知あるわけがない。
え?
0000〜がRAM…???
いや、そりゃあ、えらいことでしょお。
できませんよお。
だって、そこはモニタROM様が占有なさっておりますし…。
外にお移りいただくったって、拡張コネクタはI/O専用なので、いまさら外部にメモリを増設するなどムリ。
だったのでありますが。
そういうわけにはいきませんでしょう。
それまでにND80ZVをご購入いただいたお客様に申し訳が立ちませぬ。
なんとかしなければ。
というようないきさつが有りまして、ND80ZVにつきましては、CPUとROMのICソケットを利用して、その上にRAMを増設するという苦肉の策でなんとか切り抜けたのでした。
そういうことがありましたので、その後にそのところを改良して基板上に裏RAM用の配線を追加するとともに、さらにA8〜A15とRD、WRを配した10pinフラットケーブルコネクタを追加し、従来のI/O拡張コネクタにはMREQも配線しました。
さてさて。
余計な説明が長くなってしまいましたが、そういうわけでND80Z3.5ではA8〜A15とMREQとWRが外部に取り出せます。
ND80ZVにはそれがありません。
どうするのだ?
そこはやっぱりご愛顧いただいておりますND80ZVユーザーの皆様のためにもなんとかしなければなりませぬ。
まあ。
なんとかすることになるでしょうから、それは先になってから落ち着いて考えましょう。
ということで、ここまできてしまいました。
その対策につきましては、ちょっと準備の関係で次回以降にさせていただきます。
今回はそれとは別件です。
実に我ながらいい加減なお話で。
先般発売いたしましたND8080なのですが。
なにしろND8080用のCP/M互換DOSもあわせて発売しましたことでもありますし、ND80ZVからND80Z3.5への改良も経験したあとのことでもありましたから、ND80Z3.5と同じように、しっかりA8〜A15を配した10pinコネクタもついております。
ですからND80ZVは対策が必要だけれども、ND8080については大丈夫。
ノープロブレム。
じゃなかったのですよお。
えっ。
MREQがない?
だめじゃないの?
今頃になってから…。
どーするのさ。
う。う。う。
頭がさびついておりました。
Z80ではMREQ、IOREQとRD、WRだったのですけれど、8080の場合には8228を介していきなりMEMR、MEMW、IOR、IOWが出ておりました。
IOR、IOWは26pinのI/O拡張バスにはND80ZV、ND80Z3.5でもそれと同じ信号を出していますから、Z80でも8080でも同じように扱えます。
しかし、MREQがないとは全くの誤算でありました。
[第14回]でお見せしたビデオRAM、キャラクタージェネレータROM回路です。
74HC157と74HC245によって、内部のアドレス信号、データ信号と外部(CPU)からのアドレス、データ信号を切り換えています。
その切換えにはMREQが必要なのでした。
こちらも[第14回]でお見せしました。
アドレスセレクト回路です。
上位アドレスとMREQからF800〜FFFFのときにアクティブになる信号をつくり、それを上の74HC157と74HC245に送っています。
ここにMREQの代わりにMEMWを入れたって、それではビデオRAMに対してWRの立ち上がりと同時にアドレス、データがOFFになってしまうので、そういうわけにはいきません。
う…?
本当に、いきませぬか?
お。
ひょっとしたらいくのかも…。
考えているだけではものごと先に進みませぬ。
まずは試してみるのが一番。
で。
MREQの代わりにMEMWを配線して、そこにND8080を接続してみましたところ。
おお。
ND80Z3.5と接続したときと同じプログラムを使って、ちゃんと00〜FFを繰り返し書き込んで、同じ画面になりました。
あれ?
そのプログラム。
まだ見せていませんでした?
あ。それはまた後で。
今は、果たしてMREQの代わりにMEMWでよいのかどうかというところ。
うむむ。
そうか。
MEMWが74HC157に入ってRAMのWR信号になる一方で、同じMEMWが74HC138(IC19)〜74HC32(IC24)を経由して74HC157と74HC245のスイッチ信号になるわけだから、そこにわずかな遅れが出て、WRの立ち上がりよりもアドレス、データがわずかに遅くまで残る、ということか。
オシロで確認してみました。
あれ?
遅れていない?
上側(CH1)はRAMのpin27(WR)で、下側(CH2)は74HC245のpin19です。
時間軸を拡大してみましたら。
おお。
遅れておりました。
でも。
10nsではちょっと心配です。
そこで、下のように遅延回路を追加しました。
74HC10+74HC04は74HC08にしたいところですが、74HC08の空きがなくて、74HC10が余っていましたのでこうなりました。
もう一度オシロで見てみました。
おお。
大体よい感じの遅延になりました。
ちょっと拡大してみました。
50ns程度です。
これならよさそうです。
これでND8080についてはクリアできたようですが。
ND80ZVについても対策は考えてありますので、それは次回あたりにて。
MYCPU80も接続したいなあ。
あれ?
こちらはバスコネクタのピンレイアウトが全然違うじゃないの?
(今頃になって!)
CRTインターフェースボードの製作[第24回]
2016.9.29upload
前へ
次へ
ホームページトップへ戻る