手作りZ80コンピュータ


今更ですが、Z80を使ってコンピュータを作ってみたくなりました。
というのは、インターネットでTK80コンパチのボードを売っていたのです。なんと懐かしい、1976〜7年ごろ東京の秋葉原ではNECのbitINに大変な人だかり、TK80これを買うかどうか、思案したものです。その時は結局モトローラにしました。
ということで早速このTK80コンパチボードを購入しました。将来CP/Mも走るそうです。そうこうしている内に自分で設計してボードも外注してコンピュータらしいものをZ80で作りたくなりました。昔作ったコンピュータは手配線の塊で動くけど見栄えが良くない。 
現状を調べてみると、結構すごいマニアの方がいるようですが、私の作るコンピュータはワンボードコンピュータそこそこのものですのでたいしたことはできませんが、遊ぶのには面白いと思います。
しかし部品が余り手に入りません。
Z80自体はあるようですが、PPIの8255(82C55)やシリアルの8251(82C51)特に8251、またロジックICも入手が難しくなってきています。数の少ないICは値段もびっくりするような価格になっており、ほしいけど、うう〜んとなってしまいます。
とりあえず手持ちの部品をメインに設計します。



まずは開発環境です。アセンブラとROMライターですが、アセンブラは、今持っているPC−8801MkUとCP/Mでマクロアセンブラを使います。PC−8801MkUは、本体が2台と白黒CRTモニター1台、プリンターのRP−80です。CRTのモニターは場所をとるので、液晶モニターを使えるようにアダプターを作りました。ナナオのFlexScanはみんな24Kに対応しているようなので、オークションで1、500円ほどで1台手に入れてPC−88用にしました。その後で、手持ちのシャープの古い機種LL−T142Aが24kに対応していることがわかりました。押入れから引っ張り出してコネクタをつなぎ変えてみますと、ちゃんと写るのです。残念、はじめに調べとけばよかった。
アダプターはDsub15をDin8Pに変換をすればOKです。PC−8801MkUはデジタル8ピンです。RGB各信号を150Ωの抵抗を入れてつなぎます。
       Din8p       Dsub15p
      2 グランドーーーーーー5,6,7,8,10
      4 Hsync−−−−−13
      5 Vsync−−−−−14
      6 R−−−150Ω−−1
      7 G−−−150Ω−−2
      8 B−−−150Ω−−3

ROMライターはPC88やPC98用で、その昔大阪の共立(シリコンハウス)でキットで出ていたものです。プリンターの変わりにセントロニクスで接続してHEXデータをプリントアウトするとデータが転送されます。アクノリッジに対応しないためMS−DOSでは動きません。
PC−8801MkUなど古いPC用です。

これで開発環境はそろいました。


コンピュータの基本仕様はコンソールパネルパネルからメモリーへ読み書きできる。
RS−232Cで端末と接続(Widowsの通信ソフトで接続する)、セントロニクスのプリンターへ出力。PPIを1箇所外部と接続できるようにする。
プリンターは昔のRP−80を使用します。RP−80は小さくていいのですがだいぶガタが来ています。スプロケットのレバーのスプリングが外れます。
最近セントロニクスプリンターがなくなってきましたが、ドットプリンターでしたら大抵OKです。
NECのマルチインパクト700XXでもOKです。(オークションで1500円ほどで入手しました、安いけど重い)PC−8801MkUに接続して印刷OKでした。

次に基板作成に使うCADですが、PCBEというのがなかなか良いとのことで、早速ダウンロード。
この様なCADを始めて使いましたが、面白いカンタン。このガーバーデータを基板屋さんに送ればいいのです。P板.comという基板屋さんがPCBEのデータを扱っていましたのでここに頼みました。


アートワークプリント図
シルク印刷


初めてだったので回路はOKと安心していたら裏面のランドがないと連絡があって、よく調べてみると、標準パーツのデータそのままなのでOKと思いましたらそれは片面用データでもう一度やり直し。スルーホール用と違ったんです。また交差している所が残っていて4回目でやっとOKとなって試作発注。10日ほどで完成。
早速コンソールパネルをつないで調べてみました。

何箇所か変なところがあって手直ししました。裏ランドがなくてやり直した時の訂正誤りが元でした。
プルアップしておかないといけないところを3箇所忘れていたり、プルアップのはずがプルダウン、配線が途中で切れていたり、ロジック設計誤り
1箇所でIC追加などです。


PPIテスト用のボード使ってをメモリー、リードライト及び動作テスト。これらの訂正箇所をPCBEで修正、それとROM、RAMをスイッチで切り替えていたところを、ソフトで切替できるようロジックを追加。もう1度基板屋さんへ試作発注しました。ハードは基本的にはこれでOK。



基板画像1

基板画像2
さて、ソフトの方ですが、
モニタープログラムとして、端末とRS−232Cで接続して、コマンドを打ち込みます。
コマンドは、
1、メモリーを表示、修正。
2、メモリーの範囲を指定して表示。
3、メモリーの範囲を指定して印字。
4、レジスターの表示。
5、スタートアドレスを指定してプログラムの実行。

PC−8801MkUのCP/Mでワードマスターで入力して、マクロアセンブラを使ってアセンブルしました。




電源を入れてリセットすると

READY
#_と表示してコマンド待ちとなります。

READY
#MA000  アドレスA000を表示します。
MA000   入力を再表示します。
A000 22 1F データを表示しますので1Fに変更します
A001 66 Q  アドレスA001を表示します、Qを打って終了します
READY    コマンド待ちになります
#MA000 A01F アドレスA000〜A01Fまで表示します。
MA000 A01F  入力分を再表示
A000:1F660210D490050E69A3115752C8DE99ED
A010:DF6A31808C2A18C32EA2A124ECAA2280A8
READY 16データずつ表示します。行の終わりにチェックサムをつけます。
#_
      
      Rを打ってレジスタを表示します
READY
#R
R
A BC  DE  HL  IX  IY  SP
52 030A 1F00 E002 E401 E403 E7FC
READY
#_   
Mコマンドの代わりにPを使い印字範囲を指定すると範囲を印字します。
アドレス8000からプログラムを実行する場合は
G8000 と入力します。
小文字でも使えます。
1.2Kバイトほどのモニタープログラムです。



今後、少しずつ詳しい内容をアップしていきます
基本構成
回路説明
組み込み説明

ポータブルミキサーの製作のページを作りました。
  ポータブルミキサーの製作
ホームへ戻る

このサイトはリンクフリーです。
内容や写真、図表の無断使用はご遠慮ください。