2016-07-13 16:31 — asano
カテゴリー:
初めて作ったマイコンボード、Z-80ボード1号機、の部品です。残念ながら現物はバラして部品取りにしてしまっているので現存しません。
中1の夏休みに作り始め、何とか動作するところまでこぎつけましたが、やはり実用性は無く、あまり使わないままばらしてしまったと記憶しています。
タイトルの「形見」というのはボード自体は残っていないけれども、ボードに使われていたであろう部品を発見したということです。
これはデータの表示に使っていた7セグメントLEDのためのデコーダ、F9368です。0~9のBCDをデコードできるものは多くありますが、0~9に加えてA,b,C,d,E,Fも含めたHEXのデコードができるのは知る限りこれだけですね。
他にもM54405, MC14495などいくつかあるようですが、少数派なのは間違いないです。
こちらはアドレス・データの入力に使っていたロータリースイッチ、エンコードされた4ビットを出力します。本当は0~9,A,B,C,D,E,Fの刻印のあるものが欲しかったのですが、そんなものあるはずも無く10表記で我慢です。
この両者ともジャンク箱の中から発見したのですが、このZ-80ボード以外で使用した記憶はないので、おそらくこの1号機に使っていた部品でしょう。
当時愛読していた雑誌『初歩のラジオ』1982年10月号から数ヶ月にわたって連載されていた「Z80マイコン・ボード Shock-1」をアレンジして作ったのがこのボードです。主な変更点は以下の通り。
- 基板レイアウトの変更
- ラッピング配線ではなくハンダ付け
- LED表示をバイナリからHEXに変更
- アドレス・データのスイッチもビット毎のOff/Onから4ビット毎の0~15に変更
まだ中学生でお金がないのでとにかく安く買える万能基板を使いました。
記事では余程ハンダ付けに自信がない限りラッピングにしろとあったのですが、上と同じくコストのかかるラッピングなど選択できませんでした。それでもハンダ不良による不具合はほとんど無かったですね。
元々(記事)はアドレス・データの各線にLEDが一つずつ付いていたのですが、アドレスバスは意味がない(CPU動作中は高速点滅で読めない、CPU停止して操作中はスイッチの状態をそのまま表示するだけ)ので省略、データバスは上記のF9368でデコードして7セグHEX表示にしています。
同様にスイッチもビット毎にトグルスイッチが並んでいたのを上記のロータリースイッチに変更しています。
じつはこれが大問題で、バスをプルアップしておいてスイッチはGND側に接続されていたのですが、このロータリースイッチは正論理なのでそのままだと0~15が15~0と反対になってしまい使いにくいことこの上もなくなります。仕方なくインバータで反転するのですが、まだオープンコレクタとトライステートの違いとかがわかっていない頃だったので四苦八苦しましたね。結局どうやったのか記録も記憶も何も残っていないのが残念です。
どうやって使うか、簡単に書いてみます。
電源を入れたら(CPUはメモリのゴミを読み込んで暴走しています)、DMA/RUN(だったかな)スイッチをDMAに切り替えます。これでCPUにBUSREQ信号が送られてCPUは停止しバスが解放されます。
この状態でアドレス・データのロータリースイッチを回して目的のアドレス・データにして書き込みスイッチを押すと1バイトがメモリに書き込まれます。プログラムのサイズだけこれを繰り返すことになります。
一度リセットスイッチを押してからDMA/RUNをRUNに切り替えると実行が始まります。
終わったら再度DMAに切り替え、アドレスのロータリースイッチを回してアドレスを合わせると、そのアドレスのメモリ内容がLEDに表示されるというわけです。
そういうわけで動作確認用の短いプログラムを走らせて見たりしたのですが、長いプログラムを入力するのは非常に面倒なので、動作確認以上のことはほとんどできませんでした。ではこの製作は無駄だったかというと、そうは思いません。作れば動くということがわかりましたし、次は楽にプログラムを入れるにはどうすればよいか考えるようになりましたから。
ROMを載せればよいということで2号機につながりましたし、さらにテンキー入力できればパソコンと同様になるということで3号機があります。さらにシリアル等でパソコンと接続すればパソコン側に保存することも可能になる、これも3号機で実現しています。
Add new comment