2014.7.21

次へ

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

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


[第1回]


●いよいよMYCPU80のCP/M化プロジェクトの開始です…、が。

MYCPU80をつくろうという記事を書き始めましたのは2008年8月のことですから、それからもうはや6年近くが過ぎてしまいました。
それがMYCPU80組立キットとして結実しましたのが、翌年2009年9月ですから、それからでもかれこれ5年近くが経過したことになります。

発売を開始しました当初は、こんな巨大な組立キットなどとても売れそうにはあるまい、と思っていたのですが、うれしい誤算といいますか、予想は見事にはずれて発売開始後およそ5年たった今でもときどきご注文をいただいております。
まさに、感謝、感謝であります。

MYCPU80はここであらためて説明するまでもなく、かのインテルの歴史的CPU8080の完全互換回路を汎用のHCMOSで実現したものです。
それが8080互換であることを証明するためと、ちょいとした遊び心で、余った空きスペースにこれもかのNECの歴史的ワンボードマイコンTK−80の互換回路を実装しています。

発売しました当初は、TK−80互換というところまで出来れば十分ではないか、と思っていたのでありますが。
なんだかご購入いただいた皆様方の中にはそれだけでは飽き足らず、過去に流行ったソフトの移植やらオリジナルのツールの組込みやらに挑戦される方も出てまいりました。
他方では、拡張システムはいつ出るのか、といったお問い合わせも時折いただくこともありました。

そうなってきますと、できればなんとかしたい…と思うのが人情でありまして、さてどうしたものか、と時折思案はしておりましたが、当ホームページにてそれ以後の経緯につきましてはすでにご案内の通り、続いてND80ZV(その改良版のND80Z3.5)の開発に突き進むことになり、さらにはとうとうCP/M互換DOSの開発に挑戦することになってしまいました。
そのCP/M互換DOSも企画開始からおよそ1年半の歳月をかけ、昨年(2013年)5月にND80ZV(ND80Z3.5)用として発売を開始いたしました。
続いて葛Z術少年出版様のCP/M互換マイコンシステムLegacy8080の開発に取り組み、それはこの春に無事完成しつい先ごろから葛Z術少年出版様において発売を開始されました。

えっと、何を書くつもりでしたっけ…。
あ。そうでありました。
そういう次第でありまして、MYCPU80の拡張につきましてはとてもとても手がつけられる状況ではありませんでした。
しかし葛Z術少年出版様の吉崎様からCP/M互換マイコンシステムの企画開発のお話をいただき、それの実現に向けて動き出した当初から、ひょっとしてCP/M互換DOSが出来上がったら、その次はなんとかしてMYCPU80に移植してみたいものだ、と考えておりました。

そもそもCP/Mといえば、当初は8080CPUで走ることを前提として開発されたOSでありました。
ええ。
MYCPU80はその8080互換であります。

CP/M互換DOSは当社のワンボードマイコンND80ZV(ND80Z3.5)用と、葛Z術少年出版様のLegacy8080用として開発をいたしました。
いずれのシステムもCPUはZ80またはZ80上位互換CPUを搭載しています。
オリジナルのCP/Mは8080の命令コードで書かれていましたが、ND80ZV(ND80Z3.5)用およびLegacy8080用ということでしたら、Z80の命令コードで書いてもよい理屈です。
いまさら8080でもありませんものね。

しかし私の頭には、いずれMYCPU80でも走らせたいという考えもありましたものですから、プログラムそのものはZ80アセンブラを使って作りましたが、極力8080の命令コードに限定して書くことに努めました。
もちろんZ80で追加されたレジスタ群は使用しておりません。
あ。ま。ちょいとメモリサイズの制約で、たまらず禁断のZ80固有命令を使ってしまったところもほんの一部にあるのでありますが。
そんな経緯でありますから、やる気になれば、MYCPU80でもCP/M互換DOSを走らせられるはず。

ま。理屈ではそうなのでありますが、いざやってみようといたしますと、そりゃあ、そんな簡単なものじゃありませんです。
あ。それは私の思いもありまして。

確かにCP/M互換DOSそのものは、そのようにほとんどが8080の命令のみで書きましたから、ちょいと手直しをすればMYCPU80でも走らせられるはず、ではあります。
ベースになるBIOSのさらに下層ではND80Zモニタのサブルーチンを利用していますが、利用しているところだけをMYCPU80用に書き直すことはさほど困難なことではありません。

あ。勿論増設用のメモリ回路は必要です。
しかしそれもND80ZV用の増設メモリボードとほぼ同じ仕様でできそうという見当はちょいと以前についておりました。
じつを言いますと、増設用のメモリ基板はもうできてしまっているのです(ジャン!)。

それならもう問題はないじゃないか、ということなのでありますが。
いや。それだけじゃあ、面白くないのでありますね。

確かにCP/M互換DOSは私が書いたオリジナルではあります。
しかし、もとはといえば他人様がお書きになったものの互換であるに過ぎません。
つまりはオリジナルであってオリジナルではありません。
そのCP/M互換DOSの上でたとえばマイクロソフト様のM80BASICが走って、さらにその上でSTARTREKが走ったとしても、それはそれでそのようなことが実現すれば皆様方はおおいに満足でありましょうけれど、正直なところ、私にとってはちょっと不満足なのでありますね。
なんたってみんな他人様のプログラムじゃありませんか。
そこがちょいと面白くありませんのです。

ほら。
他人様のプログラムじゃないものがあるじゃありませんか。
ND80ZV(ND80Z3.5)のROMに書き込んであります、ZB3BASICとマシン語モニタこそは、ちょいと大げさにいいますと私が半生をかけて作り上げてきた中日電工のオリジナルシステムプログラムなのです。

できれば。
CP/M互換DOSよりも前に、それをMYCPU80に組み込んでみたい。

おおお。
それこそはまさに悪魔のささやき。
なんたってZB3BASICこそは最初から8080を意識せずにZ80CPUに特化して書き上げたZ80オンリーのシステムプログラムなのでありますよ。

もちろん。
Z80アセンブラを使って、8080にはない、Z80で追加された便利な命令コードをふんだんにちりばめて、そしておお、Z80で追加された、IXレジスタもIYレジスタも、そしてもちろん、A’レジスタもH’L’、D’E’、B’C’レジスタもしっかりと使ってしまった、オブジェクトサイズでは28Kバイトにもなる大プログラムであります。
一応念のために申し上げますと、このBASICは平方根SQRは勿論のこと、SIN、COS、TANから常用対数LOG、自然対数LN、指数関数EXPまでを、しかも単精度浮動小数点演算だけではなくて倍精度でのそれらも実装した本格的なBASICであります。
とても半端じゃありません。
それを。
全部書き直して8080で実行できるプログラムにしてしまう???

そりゃあ。
あなた。
ちょいと狂気ではありませぬか。

MYCPU80でCP/Mを![第1回]
2014.7.21upload

次へ

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