IC・トランジスタで出来たコンピューターを設計・製作するためのブログ

Jeans & Development 電子ブロック工房 三日坊主 フロントページ

KM-Z80(MZ-80K互換マイコン)製作編 [Z80]

2012年5月28日

ブレッドボードではなく、ユニバーサル基板上にKM-Z80を作成した。
2012-05-28-IMG_9716.jpg

ずっとブレッドボードのまま保存しておくわけにも行かないし、また、公表したKM-Z80の回路図の確認もかねてということで、ユニバーサル基板の上にKM-Z80を構築してみた。

SDCC用の環境構築 [Z80]

2012年5月22日

Z80用のコンパイラとして、何か使えるかなと思い、Webを色々検索してみると、SDCC (Small Device C Compiler)というものを見つけた。ライセンスはGPLだから、普通に使える。

使い方に関する情報が多くはない。それでも先人の方々がいらっしゃるので、初めての人間には非常に助かる。以下のページを参考にして、KM-Z80用(MZ-80K用)のソフト開発環境を構築してみた。
Z80のC言語クロスコンパイル(SDCC)(1) - Resilient Mind
SDCCでクロス開発環境をインストールと使い方(Z80用) - Tosikの雑記

KM-Z80(MZ-80K互換マイコン)回路図編 [Z80]

2012年5月16日

先日紹介したKM-Z80の回路について、少し説明します。

KM-Z80は、ICとして以下のものを用いています。CPLDについてはPLCCパッケージのものが、その他のICについてはDIPパッケージのものが、Digi-Keyあたりで手に入ると思います。

CPU: Z84C00 (Z80 CPU; Zilog)
RAM: 62256 (32 Kbytes static RAM, Cypress)
Timer: 82C54 (8253 upper compatible; Intersil)
CPLD: EPM3032ALC44-10N (Altera)
Microcontrollers: PIC12F683, PIC18F25K22, PIC18f14K22, PIC18F14K50 (Microchip)

用いたZ80は、本来10 Mhzで動く能力を有していますが、MZ-80Kのクロックスピードにあわせるため、2 Mhzで使用しています。RAM は、32 Kbytes のものを用いていますが、そのうち、4 Kbytesを仮想ROMとして、別の 4 Kbytes をキャラクターディスプレイ用に用いているので、KM-Z80 の中で実際にRAMとして使用可能なのは、24 Kbytesです。

MZ-80Kでは、コプロセッサとしてI/O用に8255、タイマー用に8253を用いていますが、これらの代わりに、PIC18F14K22と82C54を用いました。PIC18F14K22の中で、8255の動作をエミュレートしています。82C54は8253のアッパーコンパチブルなので、そのまま用いています。

キャラクターディスプレイは、汎用ロジックやCPLDなどで構築すると複雑なので、代わりにPIC18F25K22で実装しました。ここの部分が KM-Z80 のミソと言っても良いでしょう。これの開発途中で試作品として出来たのが、以前紹介した、PIC18F14K50を用いたキャラクターディスプレイです。

KM-Z80(MZ-80K互換マイコン)紹介編 [Z80]

2012年5月14日

KM-Z80は、Sharpが1978年に製造・販売したMZ-80Kと互換性のある、ワンボードマイコンです。以下の特徴があります。

CPUにZ80を使用。2 Mhzのクロック周波数で作動。
RAMとして、24 Kbytesを利用可能。
仮想ROMに、1 Kbytesのモニタープログラムを内蔵。
PS/2キーボードを使用。
40文字×25行の、キャラクターディスプレイ。
NTSCビデオ信号を介して、テレビモニターにキャラクターを表示。
カセットテープもしくは、PCのWAVファイルとして、プログラムを呼び出し・保存が可能。

ブレッドボード上に作成した試作品は、下のとおりです。
2012-05-13-kmz80-1.jpg

KM-Z80(MZ-80K互換マイコン)完成 [Z80]

2012年5月3日

8253回りはあっさり解決し、緑・赤LEDは追加したPIC18F14K50に接続して、完成。名づけて、KM-Z80(私のイニシャル+Z80)。

MPLAB C32 compilerを使ってみた [PIC]

2012年4月27日

Microchip のPIC32シリーズに、PIC32MX150F128B / PIC32MX250F128B という、DIP-28 の石を見つけた。RAM も 32 KB あるし、PIC32MX250F128B の方は USB ホストとしても使えるので、色々と面白いことに使えそう。価格も、$5 前後と、手ごろである。早速注文したので、2-3日で届くはずだが、待ちきれず、MPLAB C32(PIC32 用の C コンパイラー)で少し遊んでみた。

PIC32は、Microchip独自の開発のCPUではなく、MIPS (Microprocessor without Interlocked Pipeline Stages)という、MIPS Technologiesが開発している RISC アーキテクチャの CPU を用いている。どうやら、ARM に似ているらしい。

レジスタは、32 bit 幅だから、長サイズの整数や浮動小数点演算などは、得意なはずだ。他方、組み込みマイコンではI/Oなどとの連絡を行う必要がある。そちらはどうかと、色々調べてみた。

カセットテープインターフェース [Z80]

2012年4月22日

MZ80Kレプリカの、カセットテープインターフェース部分を、仕上げた。これで、MZ80Kレプリカの完成に、ほぼめどが付いた。

2012-04-22-loading.jpg

キーボードを接続 [Z80]

2012年4月16日

MZ80Kレプリカに、PS/2キーボードを接続し、動作を確認した。これで一応、入力と出力の両方を持つ、コンピューターの基本的な形は出来上がったことになる。

2012-04-16-keyboard.jpg

MZ-MONITOR VER 4.4 [Z80]

2012年4月8日

MZ-80Kレプリカ製作の進捗。モニターが起動するところまで出来た。

現在の姿は、下のとおり。
2012-04-08-kmz80.jpg

MZ80Kレプリカを製作中 [Z80]

2012年4月3日

少し前に、PIC18F14K50を使った、キャラクターディスプレイの記事を書いたが、この記事をお読みになった方の中には、この事を予想なさっていた方がいらっしゃるかもしれない。現在、MZ80Kのレプリカを製作中である。

なぜMZ80Kかというと、色々理由がある。

  1. 一つは私が生まれて2番目に触ったコンピューターであること。本来なら、初めて触ったコンピューター(日立ベーシックマスター)のレプリカを作ってみたいのだが、残念ながら、以下の条件に当てはまらない。
  2. ユーザー数が多かったせいか、web上に情報がたくさん見つかる。
  3. モニターROMと呼ばれる、現在のPCのBIOSに相当するようなものを、入手することが可能。これは、著作権の問題をクリアーするような形でできる。
  4. 同じく、CG-ROMと呼ばれる、フォントデーターを入手することが可能。

構想は半年ほど前からあって、どんな形で実現しようかと色々考えていた。それが実際に目に見える形になり始めたのは、前の週末からである。現在の姿は、こんな感じ。

2012-04-03-kmz80.jpg
<<前の記事   後の記事>>