電子ブロック工房:2012年 05月の記事

BASICインタープリター [Z80]

2012年5月31日

KM-Z80(MZ-80K互換マイコン)で使える高級言語として、BASICインタープリターを作成中。

2012-05-31-BASIC.png

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)。