ワンボードマイコンをつくろう!(パソコンの原点はここから始まった)
TK80ソフトコンパチブル!8080、Z80マシン語からBASICまでこれ1台でこなせます
当記事は2009年11月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 |
2011.6.30 前へ 次へ 目次へ戻る ホームページトップへ戻る |
☆ND80ZVに機能を追加します [第41回]〜[第44回]まで4回にわたって紹介しましたUSBを使ったリモートプログラムのほかにも、さらなる機能の追加を思いつきました。 その機能とは…。 |
[第46回]
●とんでもないことを思いついてしまいました
やっと基板発注までこぎつけたZ80版TK80ボードND80ZVなのですが、おまけとしまして、リモートプログラムもほぼ出来あがりましたし、ゲームプログラムをいくつかまとめた「応用プログラム集」も各プログラムの動作確認はほぼ終わりましたから、あとはがんばって説明書を書くだけ、というところまできたのですけれど。
またまた耳元で悪魔のささやきが…。
はい。これが、ND80ZVのメモリマップです。
Z80CPUがアクセスできる64KBのメモリ空間に、ROM27C256(アドレス0000〜7FFF、32KB)とRAM62256タイプ(アドレス8000〜FFFF、32KB)を実装しています。
RAMは32KBのうちほとんどが空っぽです。
こんなに広いメモリ空間はマシン語プログラムだけではとても使い切れません。
まあ、なんと、もったいないこと。
一方ROMの方なのですが、こちらもしっかり空いています。
アドレス2000〜7FFFには何も入っていませんから、32KBのROMエリアのうち、なんと24KBも余っています。
むむむ。
なんとも、もったいない…。
この空いたところに、BASICが入らないだろうか…。
いや、しかし、それは余りにきつい作業になるのでは…。
当社のND80K(川崎製鉄のCPU、KL5C8012を使ったワンボードマイコンです)にはオプションとしてBASICROM版があります。
でもそれは、27C256(32KB)ではなくて、27C1001(128KB)にぎっしりとプログラムがつまったROMなのです。
しかも、それをZ80の64KBのメモリ空間で実行させるために、0000〜3FFFの間にバンク切り換えで割り当てている、というちょいとすごい代物なのです。
とりあえず余分なところは極力切り捨てるとしても、果たしてさきほどの空いているメモリのサイズにおさまるかどうか。
また仮になんとかおさまったとしても、バンク切り換えを前提にして書かれているプログラムをリニアなプログラムに直さなければなりません。
おお、そもそも、ND80KはオプションのBASICROMを実装してZBK開発セットと組み合わせたときには、パソコンとの通信をUSBでできるようになりますが、それはFTDI社のFT245を使って、仮想的なRS232として通信を行っていますので、そこをHIDで行うように書き換えなくてはいけません。
かなりハードなことをやっておりますから、うまく移行できますかどうか。
いずれにせよ、かなりな作業量になりますでしょう。
やめておけばよいのに…。
でも、もうとりかかってしまいました。
CPUをつくろう!第531回(2010.6.22upload)を再編集
ワンボードマイコンをつくろう![第46回]
2011.6.30upload
前へ
次へ
目次へ戻る
ホームページトップへ戻る