このBLOGをさかのぼって見ていただけるとわかりますが、KZ80-CPUBはSBC8080 CPUルーズキットの置き換え(というほど互換性は高くないですが)を目指して当初作成しました。SBC8080用にはElectrelicさんのuniversal monitorのバイナリも公開されてまして、たいへん便利な機械語モニターなので、universal monitorを動かすところまでをまとめてみたいと思います。
SBC8080ルーズキットとKZ80-CPUB
SBC8080ルーズキットは、電脳伝説さんが作られたインテル8080 CPUを動かすCPUボードであります。以下のBLOGに詳細がありますので、ご存知の方も多いはず。

SBC8080 CPUルーズキットは40PフラットケーブルでSBC8080 SUBルーズキットとつなぎ2枚のボードでコンピューターとして稼働します。

SBC8080 SUBルーズキットは、モニターやBASICを格納できるPROM、プログラム実行用のスタティックRAMなどのメモリーと、テレタイプ端末に見立てたパソコンのターミナルソフトと通信するためのインテル8251シリアルICを搭載しているイカすボードです。
これを使ってCPUボード部分をZ80 CPUのボードを繋いだら動くんではないか?というのがKZ80-CPUBを作った発端です。最初はユニバーサル基板で試作しました。詳しくは、以下のBLOGをご覧ください。
KZ80-CPUBはgithubでガーバーデータ含めて公開してますので、FusionPCBさんあたりに5枚とか発注して作ることもできます。
5枚もいらないわいという方は、オレンジピコショップさんで1枚から買えます。
KZ80-CPUBとSBC8080 SUBルーズキットに部品組み付け
まずは、KZ80-CPUBとSBC8080 SUBルーズキットを動かします。
KZ80-CPUBの部品組み付け注意点
KZ80-CPUBですが、以下のgithub wikiに部品表と共に説明をまとめていますので一読ください。リビジョンごとに必要な部品が異なります。
水晶振動子 発振のための74HC04インバータIC
水晶振動子の発振のために74HC04インバータを使用しています。こちらは74HCU04(アンバッファードタイプ)を使用する方が安全です。74HC04(バッファードタイプ)でもいまのところ正しく動作することが確認できてはいますが….
各種抵抗器の値
水晶振動子の発振回路については、回路図の定格値を使用するのが良いと思います。LEDの電流制限抵抗についてはお使いになるLEDに合わせて適宜選んでください。プルダウン抵抗を3.3kΩにしてありますが、そこは10kΩでも問題ないと思います。
水晶振動子の周波数
水晶振動子の周波数がgithub wikiの部品表では「7.3728MHz」となってますが、こちらはCPUを駆動するクロックでシリアルクロックは別にSBC8080 SUBルーズキットに搭載されていますので、好きな周波数で大丈夫です。ただし、10MHzぐらいまでのものが良いと思います。それ以上速くするとメモリーなどがついてこない気がします。
SBC8080 SUBルーズキット部品組み付け注意点
SBC8080 SUBルーズキットは、電脳伝説さんの詳細な技術資料が公開されていますのでそちらを熟読いただいて部品組み付けを行なってください。
http://www.amy.hi-ho.ne.jp/officetetsu/storage/sbc8080_techdata.pdf
使えるROMはUV-EPROMかW27C512
最初わたしもハマったのですが、SBC8080 SUBルーズキットで使えるPROMは27256相当ということでUV-EPROMかそのピン互換のICが必要です。フラッシュ型で使いやすい28C256とはピンが微妙に違うので注意です。
ピン互換のROM ICとしては、64kB分あって容量的には半分無駄にしちゃいますが W27C512が使えます。何度も書き換える時に電気的に消去できるので楽です。
わたしが最初にSBC8080+SUBルーズキットを組み付けたときの苦労話は以下のポストをご覧ください。
W27C512はAmazonとかにも売ってたりしますが、本物なのかどうか??? オレンジピコショップさんで在庫があるときが狙い目かもです。UV-EPROMはデータ消去するのに紫外線ランプが必要ですけど、いまだと秋月電子さんでも取り扱っていたりしますので入手性は良いです。
当然ながら若松通商さんなど老舗部品屋さんでゲットすることも可能です。
512k bit ROMの時の注意
SBC8080 SUBルーズキットのPDFで、ROMライター(TL866CS)で書き込む際の注意が出てますが 、256kbit(32kバイト)ROMの手順でありまして、W27C512や 秋月電子で売ってるNMC27C512AQ200などの512kbit(64kバイト)ROMだとちょっと一工夫必要です。
SBC8080 SUBルーズキットの回路図を見るとわかりますが、512kbit ROMの1番ピン(A15)がプルアップされています。つまり、$8000以降のメモリー番地が有効となってるわけでありまして、$0000番地のデータはROMの$8000番地に書き込みが必要です。

Universal MonitorのROMへの書き込みのところで、一工夫する場合の例をご紹介します。
SBC8080用Universal Monitorをゲット&書き込み
つぎにUniversal MonitorのSBC8080版をゲットして、PROMへ書き込みします。
Universal MonitorのSBC8080版をダウンロード
Universal Monitorはソース配布が基本ではありますが、各種マイコン用にビルドしたバイナリも配布されています。
上記URLの”SBC8080用”のところから、一番新しいtat.gzとかzipアーカイブのデータをダウンロードして解凍し、IntelHexのROM書き込み用データをゲットしてください。
PROMへ書き込み
PROMへの書き込みはTL866II PlusなどがAmazonでも安価で入手できて、WIndowsパソコンで手軽にROM焼きができるので便利です。昔ならROMライタ自作から始まったので、今は夢のように楽ちんです。

まずTL866II Plusの場合、ライター付属のソフトでダウンロードしたUniversal MonitorのIntel Hex形式のROMデータを読み込みます。256kbit(32kバイト)タイプのPROMだとSBC8080 SUBルーズキットの画像付き手順のままでOKです。
前述した512kbit(64kバイト)タイプのROMの場合一工夫が必要です。わたしの愛用するROMライター TL866II Plus(TL866CSの上位互換)で書き込む際の画面をご紹介するとこんな感じです。Intel Hexファイルで$0000番地のデータを、ROMの$8000から読み込んであげる必要があります。

$8000番地からUniversal Monitorのデータが、書き込みソフトのバッファに読み込めたことを確認したら「Prog」ボタンを押して書き込みGo!!です。

KZ80-CPUBとSBC8080 SUBルーズキットをつないで動作確認
ROMにUniversal Monitorのデータが書き込めたら、SBC8080 SUBルーズキットへ挿入して、KZ80-CPUBと40Pフラットケーブルでつないで動作確認であります。

フラットケーブルは40Pなので入手性は良いと思いますが、秋月電子さんの通販でもコネクタつきで売ってますのでお薦めです。わたしは秋月電子さんの200円のリボンケーブルの途中にコネクタだけ別に買って圧着して短いリボンケーブルつくったりして使ってます。
あと62256型SRAMですが、写真では秋月電子で売ってる表面実装タイプ(SOP)の部品と変換基板で作ったものを装備しています。ちょっと安く作れますが普通に若松通商さんあたりでゲットする方が安定してお薦めです。^^)
動作確認のため、5VのACアダプター(1Aぐらいのやつ)と、FTDI互換のUSBアダプターを繋いで、Windowsパソコンの方はTeraTERMを立ち上げて動作確認であります。
上の写真みたいに、TeraTERMではシリアルポートとして見えますので9600bpsで接続し、電源ONしたときにUniversal Monitorのプロンプトが出ればOKです。
ちゃんとCPU判別が発動してZ80と認識されているのが嬉しいポインツです。
ここからは好きなプログラムをIntel Hex形式で用意して、Lコマンドでマイコンのメモリーへ読み込めば、Z80マイコン上であんなことやこんなことが自由自在にできるわけであります。
RAMも32kB装備でありますから70年代や80年代のマイコン/パソコンと遜色ないメモリー空間ですので、いろんなことができるはず。といっても、この状態だと「テレタイプ相当の入出力でできること」という制約がありますが。^^)
ぜひ、いろいろとやってみてお楽しみください。
今後は昔作ったFM音源ボードを繋いでみたりとか、偽MSX1化していく流れとかをBLOG記事にできたらいいなと思ってます。
偽MSX1の基板は、まだあちこちバグだらけなので 、気軽に組み立てるにはちょっと時間がかかりそうですが、まぁボチボチとすすめていきます。
コメント