復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第365回]
●ファイル名の変更のところを直しました
前回は時間がなくなってしまいましたので、あれぇ?と思いつつ終わってしまいました。
前回の終わりのところで仮想フロッピーディスクドライブのB.vfdをBOLD.vfdに名前を変更しましたが、そこのところがちょっとおかしかったのです。
最初はCP/M互換DOSを起動した状態でファイル名の変更をしようとしたところ、Windowsから拒否されてしまいました。
ファイルを使用中なのでファイル名の変更や削除はできません、というわけです。
それはその通りなのですが、ZB3DOSを終了しないことには、名前の変更ができませんでした。
そこのところがおかしかったのです。
仮想フロッピーディスクドライブはCP/M互換DOSを実行中のときのみ使っているはずですのに…。
さては?
と思ってプログラムを調べてみましたら、CP/M互換DOSを終了してもファイルをクローズするのを忘れておりました。
これはいけません。
さっそく修正いたしました。
修正後のプログラムZB3DOS1Q.EXEを実行しました。
今度はうまくいきました。
ZB3[Enter]
でZB3BASICに戻った状態でC.vfdをCOLD.vfdに変更しましたが、今回は拒否されませんでした。
その後もう一度/CPM[Enter]でCP/M互換DOSを起動しました。
C.vfdが自動作成されました。
●リブートはとりあえずCPPだけということに
前回、オリジナルのCP/Mではウォームブート時にはBIOS以外のシステムプログラム(CCPおよびDOS)を再ロードしているらしい、と書きました。
で、本日はCP/M互換DOSもそのように直すべきかどうかあれこれ検討しておりましたら一日つぶれてしまいました。
あらためてCP/M互換DOSのプログラムを見てみますと、なにしろよくわからないままにスタートして、しゃにむに作り上げてきたものですから、特にワークエリアの配置が相当にいい加減で、そこのところが障害となって、BIOS以外を再ロードするためには、ワークエリアの大幅な異動と整理が必要なことがわかってきました。
それで、途中まではその移動作業をやっていたのですが、とりあえずは作業中止をいたしました。
こんなことに首をつっこみますと、また収拾がつかなくなって泥沼にはまりかねません。
ちょっとみっともないプログラムですけれど、いずれすっきりした形に変更することにしまして、とりあえずは現行のままにすることにいたしました。
とにかく急がなくてはいけません。
ほかに仕上げてしまいたい機能がまだ残っておりますので、そちらの作業を進めることにいたします。
その機能につきましては、できあがりましたら、また説明をいたします。
さて。
このところ、何をやっておったのかということにつきまして。
たっぷりと一週間を費やして格闘しておりましたことは2つありました。
そのひとつはこれです。
●STARTREKです!
もう10日ほど前になりますが、Y様からメールが届きました。
「MBASIC用のSTARTREKプログラムが入手できましたので送ります。
CP/M互換DOS上のMBASICでも動作するかどうか試してみてください」
おお。
これがかの有名なSTARTREK!
もちろん、さっそくLOADして試してみました。
ところが、だめ。
信じられないエラーに遭遇してしまいました。
原因がまったくわからず、とうとうMBASICの逆アセンブルリストをもとに、BASICの動作解析までやるはめになってしまいました。
その結果は。
意外なところに原因がありました。
そのお話は、次回以降で少しずつしていくことにいたします。
とにかくはなんとか問題解決いたしまして、無事STARTREKがスタートいたしました。
うむむ。
実のところ、遊び方がよくわかりませんのです。
どうやら決められた制限時間内に敵の船を破壊せよ、ということらしいのでありますが。
COMMAND?
に、とりあえず適当なキーを入力してみましたら。
コマンドの一覧が表示されました。
しかし。
どないせよちゅうねん。
ま。
遊び方はさっぱりわかりませんが、とにかくは動いてくれているようです。
ご覧の通りSTARTREKは無事動いたようでありまして、CP/M互換DOSの互換性がかなりのものであることが証明されたことになると思います。
ワンボードマイコンでCP/Mを![第365回]
2013.4.9upload
前へ
次へ
ホームページトップへ戻る