復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第274回]
●E−80(仮称)ミニコンのフロントパネル回路図
前回はIMSAI8080のフロントパネル回路が思いもよらぬものでしたと書きました。
今回はその回路がどのようなものであったのかについて説明をいたします。
前回書きましたように私の手元にはインターネットからダウンロードしたIMSAI8080のMANUALがあります。
そこにはフロントパネルの回路図もついております。
しかし、それをここでそのまま公開する権利は私にはありません。
その代わりに。
現在開発作業を進めておりますE−80(仮称)ミニコンのフロントパネルの回路図をお見せすることにいたします。
あ。
E−80(仮称)ミニコンは私が設計しているものですけれど、しかしそれは中日電工がY様から請け負って作業しているものでありますから、いくら私が設計したものでありましても、やっぱり勝手に公開することはできません。
ですけれど。
幸いY様からは、後進のためになることでしたら公開しても構いません、というお許しを得ております。
そういうことで、E−80(仮称)ミニコンのフロントパネルの回路図を見ながら説明を進めていくことにいたします。
E−80(仮称)ミニコンのCPUはZ80互換のZ8S180ですから、8080CPUのIMSAI8080とは当然回路は異なっております。
しかし、Y様からのたっての要望によって、E−80(仮称)ミニコンのフロントパネルの基本的な仕組みはIMSAI8080と同じになっています。
ですので、E−80(仮称)ミニコンのフロントパネル回路についての説明は、基本的な部分についてはIMSAI8080のフロントパネル回路と同じである、と考えていただいてもよろしいかと思います。
さてそれではE−80(仮称)ミニコンのフロントパネル回路図をお見せすることにいたしましょう。
これがフロントパネルの中心、いわば心臓部です(回路図1)。
そしてこちらが16個のアドレス・データ兼用スイッチ回路です(回路図2)。
こちらは主としてLED表示回路です(回路図3)。
うーん。
回路図をお見せしただけではご理解いただくことは難しいでしょうねえ。
ま。
ぼちぼち説明をしていくことにいたしましょう。
この回路の一見して不思議なところは、アドレススイッチ(のはずのもの)が、アドレスバスではなくて、なんとデータバスに直接つながってしまっていることです(2番目の回路図)。
D0〜D7はデータバスです。
そしてアドレスバスA0〜A15はといいますと、3番目の回路図、つまりLED表示回路にしかつながっていません。
なんじゃそりゃあ。
おかしいじゃないの。
これでどうやってメモリのアドレスを指定することができるのさ。
そうなのです。
そこがこの回路の一見して不思議なところなのです。
しかも、前回書きましたようにラッチもカウンタもありません。
あ。
2番目の回路図で8ビットのデータラッチ74HC373が使われておりますが、これは全く別の目的に使われています。
その出力がLED表示になっていることがおわかりいただけますでしょう。
これはフロントパネルの機能のひとつで、I/OアドレスFFHの出力ポートの機能なのです。
プログラムでOUT (FF),Aを実行するとAレジスタの値がここにラッチされ、その内容がLEDに表示される仕組みになっています。
ですからこの74HC373はパネルスイッチを使ったアドレスの設定には全く無関係です。
あ。一番目の回路図には74HC73がいくつか使われています。
おお。それって組み合わせればデータラッチやカウンタになるんじゃないの?
何か、こう、時間差を利用した巧妙なシリアルカウンタのような…。
そんなんじゃありません。これも全然違いますね。
その証拠に74HC73が使われているところはばらばらで、第一そのどれひとつとして出力がアドレスバスにつながっているものはありません。
あ。
もちろんこの74HC73が重要な役目を担っていることは事実ですけれど。
いかがでしょうか。
このフロントパネル回路がいかに不思議なものであるかがおわかりいただけましたでしょうか。
念のために申し上げておきますとE−80(仮称)ミニコンに使われておりますRAMは512K×8ビットのスタティックメモリですけれど、特別の構造をしたものではなくて、62256をただそのまま大容量に拡張しただけのごく普通のRAMです。
ううう。
こ、こんな回路で、アドレスを設定して普通のメモリからデータを読み出したり、書き込んだりできるう?
そ、そんなばかな。
きっとどこかにタネがあるに違いない!
ええ。
その通りです。
手品のタネはちゃんとこの回路図の中にしっかりと描いてあります。
ヒントを申し上げますと、前回私が書いたことがそのヒントです。
前回の終わり近くのところで「普通このような動作を簡単に実現するにはPICなどを使うとよいと思う」という意味のことを書きました。
そうです。
ND80ZV(ND80Z3.5)でも、メモリからデータを読み出したり、書き込んだりするのに、ROMに書き込んだモニタプログラムを利用しています。
えっ?
じゃあやっぱりPICを使ったんだ。
使っていません。
IMSAI8080の時代にはPICは有りませんでしょう。
ほら。
あるじゃありませんか。
どーんと大きなのがひとつ。
CPUがありますでしょう。
IMSAI8080では8080が、そしてE−80(仮称)ミニコンにはこれまたでかいZ8S180がちゃんとのっかっているじゃありませんか。
CPUはラッチとデコーダとカウンタのかたまりのようなものです。
こいつを利用しない手はありませんでしょう。
そこに目をつけた先達はさすがに神でありました。常人などではありませんね。
あ。あ。あ。
だって、だって、おかしいじゃないの。
ROMは無いんでしょ。
RAMだけなんでしょ。
それで、そのRAMにプログラムを書き込むのにパネルスイッチを使うんでしょ。
そのパネルスイッチの操作にCPUを使うって言ったって、じゃあそのCPUを使うためのプログラムはどこにあるのさあ。
ああ。
ずるい。やっぱり内緒のROMが隠してあるんだ。
ですから、ROMなどありませんってば。
ここでお見せした回路で、ちゃんとCPUが動いて、それでアドレスの設定もアドレスのインクリメントも全部できてしまうのですよお。
いやあ。
これを考え出した昔の先輩達はほんとすごかった、と思いますね。
さて。
まるでケムに巻かれたようなお話でありますが。
いったいこの回路でなにをどうやっているのか、ちょいと次回まで考えてみてくださいませ。
ワンボードマイコンでCP/Mを![第274回]
2012.12.25upload
2012.12.26回路図1を修正
2012.12.28回路図1を再修正
前へ
次へ
ホームページトップへ戻る