2018.7.25
前へ
次へ
ホームページトップへ戻る


KL5C80A12マイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
KL5C80A12はZ80互換の高速高性能8ビットマイクロコントローラです。
残念なことに数年前に生産中止になってしまいました。
しかし当社ではKL5C80A12を使った組込みマイコンボードはまだ健在です。
そのKL5C80A12を使ったND80Z3.5上位互換マイコンボードの製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第23回]


●ZBKボードのメモリマップ

このところ2ヶ月余りの間、ND80KL/86ボードに搭載する16ビットCPU、AM188について書いてきました。
ND80KL/86にはAM188CPUボードのほか、8ビットCPU、KL5C80A12も搭載できます。
というか、もともとはND80Z3.5の上位ボードとしてKL5C80A12ボードを企画したのでしたが、どうせのことならということで、そこにAM188CPUも搭載できるように機能を拡張したのですから、KL5C80A12のほうが本来のCPUということになります。
そういうことなのですが、なにしろAM188は今まで全然さわったことがありませんでしたので、本当にものになるかどうか、とにかくある程度のところまで実際にシステムを作り上げておくべきではないか、と考えてKL5C80A12についてはしばらく作業を中断して、AM188のほうを優先してシステム作りをしてきました。
そのAM188のシステムプログラムもなんとか使えそうなところまで出来てきましたので、しばらくぶりにKL5C80A12のほうに取り掛かることにした次第です。

KL5C80A12についてはおよそ2ヶ月半ぶりの記事となります。
なんだか久しぶりで頭がまだうまく回転してくれません。
今回はウォーミングアップです。
KL5C80A12はZ80CPUの上位互換CPUです。
Z80の命令はそのまま実行できます。
ということでND80Z3.5に搭載しているZB3BASICも、それからZB3DOS(CP/M互換DOS)も実行できます。
ただKL5C80A12はZ80CPUコアだけではなくて、周辺I/O回路やMMU(Memory Management Unit)も100pinのチップに組み込まれているため、それらの初期設定が必要ですから、ND80Z3.5のシステムROMをそのまま実装することはできません。
ND80Z3.5のシステムROMにその初期設定部分さえ組み込めば、ND80Z3.5と同じ動作を10MHzの高速で実行することができるようになります。
ZB3DOS(CP/M互換DOS)はそのまま高速で実行できます。
ですので、既存のND80Z3.5のソフトウェアは一部を手直ししたうえで、そのままKL5C80A12版ND80KL/86ボード用としてキットに同梱します。

実は。
せっかくのKL5C80A12ですので、もうひとつ大きな目玉ソフトを搭載するつもりです。
ホームページトップの下の方にKL5C80A12を搭載したZBKシリーズについての紹介があります。
BASICプログラムをROM化することができる組込み制御用のBASICボードです。
ND80Z3.5やND8080に搭載しているZB3BASICはこのZBKボードに搭載しているBASICをもとにして、27C256と62256用のシステムに作り変えたものです。
ZB3BASICは27C256に収まるようにシステムプログラムのサイズは32KBですが、ZBKV3BASICのシステムはKL5C80A12のMMUを使うことでBASICのほかにもラインアセンブラ、ライン逆アセンブラなどの機能も含め、48KB近いサイズになっています。
これをなんとかKL5C80A12版ND80KL/86のもうひとつのシステムプログラムとして組み込みたいと考えて、目下のところその作業中なのです。
参考までに、現行のZBKシリーズ用のシステムメモリマップを下に示します。

ZBKシリーズのROMは27C1001ですが、後半の64KBはユーザー用のBASICプログラムをROM化したときのためのスペースですので、システムプログラム用には上の図のように27C512に収まるサイズです。
これをこのままKL5C80A12版ND80KL/86用のシステムにしたいと考えています。
ND80Z3.5やND8080のBASICシステムでは0000〜7FFFをROMのシステム領域に割り当てていて、ユーザー用のBASICエリアは8000〜DFFFの24KBです。
これに対してZBKV3BASICシステムではバンク切換えをすることで、システムROM領域は0000〜3FFFの16KBに押さえ、残りの48KBをRAMに割り当てています。
そのうちユーザー用のBASIC領域には4000〜DFFFの40KBを割り当てていますから、ZB3BASICの約7割増しのユーザーRAMエリアとなります。

下は上図のシステムROMマップの詳細です。

0000〜1FFFは常駐のエリアで、2000〜3FFFのアドレスはバンク切換えで8KB単位に分割したROMのエリアが割り当てられます。

KL5C80A12マイコンボードの製作[第23回]
2018.7.25upload

前へ
次へ
ホームページトップへ戻る