2014.7.30

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

MYCPU80でCP/Mを!
超巨大基板の8080互換HCMOS・CPUでCP/Mを走らせてしまおうという、なんとも狂気なプロジェクトです!


[第7回]


●ND80Z3.5(ND80ZV)のシステムROMメモリマップ

MYCPU80でCP/Mを走らせるための作業は二段階に分けて考えています。
まず最初にND80Z3.5(ND80ZV)のZB3BASICシステムを移植して、その後にZB3DOS(CP/M互換DOS)を移植するという段取りです。
ND80Z3.5(ND80ZV)のZB3BASICシステムはROMに書かれています。
下はそのROMのメモリマップです。



TK80モニタが2つとND80Zモニタがありますが、これはND80Z3.5(ND80ZV)がパソコンとUSB接続しないで単独でも動作するためのマシン語モニタの機能と、USB接続したときのZB3BASICのBIOSとしての機能を併せ持たせるようにしているためです。
これから移植作業する予定のMYCPU80では0000番地台のTK−80モニタがあればよく、その他の2つのモニタプログラムは必要ありません。

ZB3BASICシステムプログラムは上の図のようにアドレス1000〜7FFFの領域に機能別に複数に分割したマシン語プログラムとして格納されています。
このようにいくつかのプログラムに分割されているのはひとつには機能ごとにプログラムを作成したほうがデバッグがやりやすいためでありますし、またオリジナルZ80アセンブラの限界(オブジェクドサイズで約8KB)のためでもあります。
プロジェクトの中でモジュール化するという概念は私は好きではありませんので、こういう形でやってきています。

●まずはデバッグツールの移植です

上記のプログラムはZ80CPUで実行することを前提として作成したものですから、そのままMYCPU80に移植してもまともには動いてくれません。
MYCPU80は8080互換です。
Z80CPUを前提として書かれた上記のシステムプログラムには8080では実行できない命令が随所で使われています。
それを何とかしないことには、一歩も先へは進めません。
それをどうするか?
については次回説明の予定です。

それを何とかするとして、上記のシステムプログラムのどこから手をつけるかということも重要な手順です。
実は上記のシステムプログラムはTK80、ND80Zモニタプログラムを別にして、さらに大きく3つのプログラムに分けられます。
まず最初の1つは基本的な入力コマンド処理およびBIOS機能とマシン語デバッグプログラムです。
ZMON1N、ZENTRY1Xとその間にあるコマンドテーブル(CMDTBL1G)です。
次の2つ目はZB3BASICの本体です。
コマンドテーブル(CMDTBL2C)とZBASIC2V、ZBSB2_2L、ZRRCNV1Hです。
そして最後の3つ目は倍精度浮動小数点演算プログラムZDFLO1Bです。

まず最初にZMON1N、ZENTRY1Xだけを移植できれば、基本的なキー入力操作が行なえるようになりますし、マシン語のデバッグツールが使えるようになります。
マシン語のデバッグはきっと必要になりますから、最初にまずそこから始めるのがまともな手順となります。

MYCPU80でCP/Mを![第7回]
2014.7.30upload

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