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

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

[第158回]


●ND80ZVの上でMBASICが動く仕組み

ND80ZVはTK−80互換のワンボードマイコンです。
そのただのレトロなワンボードマイコンをUSBでWindowsパソコンに接続することで、昔の8ビットパソコンのようにBASIC(ZB3BASIC)やマシン語のデバッガなどが使えるようになります。
さらにその上でCP/M互換DOSが走り、前回はさらにさらに、その上でMBASICが走ってしまいました。
一体どのような仕組みになっているのか?
興味をお持ちの方もいらっしゃるかと思います。
そこで今回はそのあたりについて簡単に説明をすることにいたします。

これは前回お見せしましたMBASICの起動画面です。



この画面では3つの異なるシステムの表示が行なわれています。
画面の一番上の行に、
*** nd80z3 basic ****
と表示されておりますように、ここでは最初はZB3BASICが起動しています。
その下のところでマシン語モニタコマンドの/ldや/svを使っていますが、ここでBASICのプログラムを入力して、それを実行することもできます。
現在はCP/M互換DOS(ZBDOS)のデバッグ中ですから、そのシステムプログラムをロードしたりセーブしたりしています。
一般的に言いますとマシン語デバッガ(マシン語モニタ)の機能ですが、ND80ZVのZB3BASICではマシン語デバッガはBASICと同じレベルで共存していて、いつでも使うことができます。

そのマシン語デバッガの機能のひとつ、JPコマンドでCP/M互換DOSを起動しています。
JP D233
の実行です。
CP/M互換DOSが起動してもオープニングメッセージは表示されませんが、ZB3BASICモードでは、プロンプトの表示が

だけだったのが、CP/M互換DOSが起動すると、
A>
のようにカレントディスク名+プロンプトマーク(>)の表示になります。
これ以後はZB3BASICではなくてCP/M互換DOSのコントロール下に置かれます。
DIR はCP/Mのコマンドです。
ディスクドライブのディレクトリを表示します。
ここではAドライブのディレクトリが表示され、VFTST1.COMとMBASIC.COMの2つのファイル名が表示されています。

いずれ詳しく説明しますが、実はここでアクセスしているAドライブはWindowsのCドライブ内にあって、ND80ZVリモートプログラム(ZB3.exe)と同じフォルダ内に作成された仮想フロッピーディスク(A.VFD)なのです。

それはともかく、ここで
mbasic
と入力することで、MBASICが起動されました。
これ以後はMBASICの制御下に置かれます。

この画面ではZB3BASICが起動する前の状態は表示されていませんが、その前はND80ZVをUSB接続してWindowsのコマンドプロンプトからリモート入力する、リモートコントロールプログラムのモードからスタートしています。

それらのプログラムの関係を模式的に図で示すと下のようになります。
図は各システムプログラムの依存関係を模式的に示したもので、メモリマップ上の位置関係を示したものではありません。



最下層にはND80Zモニタプログラムがあります。
その一部に組み込まれたUSBリモートプログラムがWindows側とのデータのやり取りをします。
ZB3BASICもCP/MのBIOSと同じ働きのマシン語モニタプログラムの上に置かれています。
ZB3BASICはマシン語モニタのルーチンをCALLすることで、Windows側とのデータのやり取りをします。
CP/M互換DOSも、そのマシン語モニタにアクセスすることで、Windows側とデータのやり取りをします。
CP/M互換DOSは、BIOSをCALLすることでWindows側とデータのやり取りをします。
MBASICはCP/M互換DOSのファンクションコールとBIOSコールの両方にアクセスしてデータのやり取りその他を行ないます。
このように低次のプログラムを高次のプログラムがCALLするという階層構造の仕組みから成り立っています。

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

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