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

復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります

[第6回]

●ND80ZVCP/Mプロジェクト

前回までの説明で、Z80ニーモニックで書かれたCP/Mのソースプログラムが”The Unofficial Web site”からダウンロードできるということと、それは個人ユースにしか認められないということがご理解いただけたと思います。

そのことをふまえて、ND80ZVにいかにしてCP/Mを移植していくのか、という具体的な作業についての説明にとりかかることにいたします。

ND80ZVにCP/Mを移植する作業は、3つのステップに分けて進めることになると考えています。

●作業1 ND80ZVを改造しないでCP/Mを移植する

まず最初のステップではダウンロードしたCP/M2.2をND80ZVを改造しないでそのまま移植します。

実は私の作ったオリジナルの開発環境としては、ZBK開発システム(ZBK開発セット)があります。
こちらはCPUにZ80上位互換のKL5C8012を使っていて、処理が高速で行なえます。
CPUクロックが20MHzでかつ内部でパイプライン制御をしていますから、ND80ZVの3倍程度の速度で処理が行なえます。
またメモリもRAMを128KB搭載していて、RAM上のワークスペースも、ND80ZVが8000番地〜になっているところを4000番地〜のエリアを使うことができますし、マシン語のツールとしても、ND80ZVにはない機能を使うことができます。

なにかと便利なのですが、今回はあえてZBK開発システムは使わず、最初からND80ZVのみで移植作業をするつもりです。
なぜかといいますと、すでにND80ZVをご購入いただいたお客様、あるいはこれからご購入いただくお客様が、お手元のND80ZVだけで、このホームページにこれから少しずつ紹介していく予定の移植作業をそっくりそのまま体験していただけるように、という配慮からです。

しかし、多少なりともCP/Mをご存知の方は、ND80ZVに少しの改造も加えないで、CP/Mを走らせることはできないだろう、とお思いかもしれません。

ご存知の通り、CP/Mは0100番地から始まるトランジェントエリアにプログラムをロードしなければなりませんし、当然そこはRAMでなければなりません。
ND80ZVでは0000〜7FFFはROMエリアになっていて、ND80ZモニタプログラムやZB3BASICが実装されています。
そこをRAMにするにはND80ZVをそのように改造しなければなりませんし、そもそもND80ZVのROMにはCP/Mシステムに必要なイニシャルローダーなどという機能は組み込まれていません。

またCP/Mではトランジェントエリアにプログラムをロードするだけではプログラムを実行することはできません。
あらかじめフロッピーディスクにプログラムをファイルネームをつけてセーブしておき、そのファイルネームをコマンドとしてコンソールから入力すると、フロッピーディスクからそのプログラムが0100番地からのトランジェントエリアにロードされて、それから実行される、という仕組みになっています。

今回考えておりますCP/Mシステムでは、フロッピーディスク装置を外付けにするのではなく、またSDカードなどを外付けにするのでもなくて、ND80ZVとUSBで接続したWindowsパソコンのハードディスク内に仮想フロッピーディスクを置いて、それにアクセスする、という仕組みにするつもりでおります。

しかしそうするためにはWindows側にもそのためのプログラムが必要になります。
当然のことながら現在ND80ZVに附属しておりますWindows側のプログラムには、そのような仮想フロッピーディスクを扱う機能は含まれていません。
そういうプログラムも当然作らなければなりませんが、今はまだありませんし、したがってすでにND80ZVをご購入いただいたお客様も、それから近々のうちにND80ZVをご購入いただくお客様もそのようなプログラムを今使うことはできません。

それじゃやっぱりできないじゃないの?

あ。
それは勿論、CP/Mを本来の形で実行するには、そのような準備が必要なのは当然なのですけれど、とりあえず、試しに、実験室といいますか、模型のような感じでなら、できるのです。
一定の制約はありますが、その範囲内でなら、立派にCP/Mを走らせることができます。

どうやればよいか?
次回あたりでは具体的に説明をいたしますから、それまでの間に考えてみてください。

●しかしCP/Mをどう扱うのか?

それはちょっと困った問題です。
前回の説明で、CP/Mのソースリストをダウンロードすることはできますが、それを商用に使うことはできません。
つまり、私がダウンロードして、それをND80ZVに組み込んで、皆様に配布することはできないのです。

さて、どうするか?

これに限らず世の中にはちょっと見には障害とかハンディにしか思えないことが、目の前に立ちはだかるなどということがよくあります。
しかし、工夫次第では、逆にそれをうまく利用してしまう、なんていう逆転の発想があったりします。

確かに、CP/Mを私がダウンロードして、それを私がND80ZVに組み込んで、皆様に配布することはできません。

しかし、皆様方ご自身がそれぞれダウンロードして、そしてご自分が所有するND80ZVに組み込んでいただく、ということならば、できるじゃありませんか。

それならば、これから私がこのサイトで皆様方に、CP/Mソースプログラムをご自身でダウンロードしていただき、それをアセンブルしていただいて、ND80ZVに移植していただくまでを、手取り足取り説明させていただくことにすれば、よろしいのではありませんか。

私がただ一方的に移植作業を行なって、それを実況中継するだけというよりも、何倍か楽しくて、そして何倍もためになるのではありませんか。

もちろんBIOSの作り方もしっかりご説明いたします。
CP/Mパソコンの作り方教室です。
授業料無料ですよお。
参加資格は、ND80ZVをご購入いただいたお客様、ということですから、これは安いものじゃありませんか。

その通りにやってみたけれど、うまくいきません。
なんていう場合にはメールでわからないところを質問していただいて、私がそれにこのサイトでお答えする、なんていうのも有りだと思います。

ああ。
そうでした。
このステップではND80ZVでの作業が先行します。
MYCPU80は、このステップでは受け皿になるソフト(つまりBIOSのもとになるソフト)が揃っていませんから、残念ながらCP/Mを移植することはできません。
つぎの第2ステップになれば、Windows側のプログラムもできてきますので、MYCPU80はその段階で参加することになります。

●作業2 ND80ZVを改造する

さてとりあえずはそのようにして、既存のND80ZVのままで、CP/Mを走らせますが、あくまでそれはモデルといいますか模型的なものです。
そのままでは、数あるCP/Mのアプリケーションを走らせることはできません。

そこで、そのようにするために、第2段階の作業を行ないます。
ここではND80ZVを改造してフルRAM(RAM64KB)にするとともに、ROM/RAMの切り換え回路を作ります。
コストの問題もありますから、ここは手作りを生かしてできるだけローコストで、かつ簡単に作業できるようなものを考えたいと思います。

この段階ではROMにも手を加えて、イニシャルローダーなどの機能を追加しなければなりません。
ROMはこちらで用意することもできますが、お客様自身でもそういうことができるように、ローコストなROM WRITERなどを用意できるとよいと思います。
ま、しかし、そのようにできるかどうかは、今のところはちょっと未定です。

第2ステップではWindows側のプログラムも作成しなければなりません。
ここではじめて仮想フロッピーディスクが登場します。

Windows側のプログラム開発には、私はフリーのCコンパイラであるBorland Cコンパイラを使っています。
ND80ZVのZB3BASICのWindows側のプログラムもBorland Cコンパイラで作りました。
Borland Cコンパイラは、インターネットから誰でもダウンロードして使うことができます。
CP/MシステムのWindows側プログラムも、この連載で詳細に説明するつもりですから、それを参考にして皆様ご自身がプログラムを書くということもできて、面白いのではないか、と思います。

●そして最後のステップです

さていよいよ第3ステップ、最終段階です。
CP/Mソースプログラムを皆様がご自身でダウンロードして、それをND80ZVに組み込んでいただくことで、CP/Mが走りますから、それはそれでよろしいのですけれど、しかし、中日電工としては、それはあくまで「参考教材」で、商品にはなりえません。

せっかくここまでシステムを作り上げてきましたのに(当然Windows側のプログラムや、ND80ZVのBIOS部分は中日電工のオリジナルです)、いつまでもライセンスの問題で、肝心のCP/M部分だけは、ユーザーが個人的にダウンロードして、それを組み込まなくてはならない、というのも、なんだかなあと思います。

いえ、それはそれで教材としては面白いのですけれど、それとは別に、やっぱり商用として堂々と販売できるものが欲しくなります。

そこで。
第3段階ではCP/M互換の中日電工製DOSを作ってしまいましょう。
これは当社独自のオリジナルになりますし、Y様から開発費の提供を受けて進める作業になるかと思いますから、この製作過程やソースプログラムは守秘義務になりますでしょう。
ND80ZVまたはMYCPU80をご購入いただいた皆様には、おそらくROMの形で、有償にて供給させていただくことになるかと思います。

ワンボードマイコンでCP/Mを![第6回]
2012.1.15upload

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