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

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

[第121回]


●とりあえず,ビルトインコマンド

連休後の数日をかけて一気に書き上げてしまいました、CP/M互換のオリジナルDOSのバグ取り作業を、これまた数日かけて行なってきました。
まっさらな白紙の状態からプログラムを書き始めましたのが5月6日です。
本日は5月15日ですから、まだちょうど10日間です。

でも。
とりあえずビルトインコマンドについては、ざっと動くところまでできてしまいましたので、ここにつつしんでご報告申し上げます。

え?
CP/M2.2のソースプログラムから部分コピーでもしたのじゃないか?とお疑いですか?
そんな、メンドーなことはやりませんよお。
最初っからオリジナルで書いてしまうのが、一番簡単なのです。
ま。お暇な方は両者をじっくり比較してわずかでも同じところがあるかどうかお調べになってくださいませ。
信じられないほど完璧に異なっていることがご理解いただけると思います。

CPMのビルトインコマンドは以下の5つです。
DIR
ERA
TYPE
SAVE
REN
それに、ユーザープログラムのファイル名をコマンドとして実行するMSDOSでもお馴染みの機能です。

ビルトインコマンドはCP/Mに最初から組み込まれている基本コマンドです。
そのほかのコマンドはCP/Mを起動後にユーザプログラムと同じようにファイル名を入力することで実行できるトランジェントコマンドです。

このシリーズの始めからずっと説明をしてきましたCP/M2.2ソースプログラムをアセンブルして実行できるのは上に書きましたビルトインコマンドのみです。
そういうわけでありますから、まずはそのビルトインコマンドが動くようになれば、CP/M互換DOSの基本的なところはほぼクリアできたことになります。

このあとは個々のファンクションコールについてのデバッグが待っているのでありますが、まあ大体峠は越えたと思います。

じつは。
もっと時間がかかるだろうと予想していたのでありますが、思ったより簡単にクリアできてしまいました。

ふむむむ。
ずいぶんトシはとってしまいましたけれど、まだまだもうろくなどしてはおりませんぞ。
ちょいと自慢できますでしょう。

あ。
勿論、まだ細部にわたっては組み込んでいかなければいけないところも残っているのですけれど、ここまでが大変なところなので、ここまで来てしまえばあとはずいぶん楽だと思います。

しかし。
そんなに短期間で、まともなものができるのか?
お疑いはごもっともでありますが。
その、信じられないことをやってしまうのが、中日電工のウリなのでありますから。
以下に実際に操作しているところの画面をお見せいたしますです。

DIRコマンドとユーザープログラムの実行機能につきましては、[第119回]で実行している様子をお見せしました。
以下はそのほかのコマンドの実行画面です。
もっともDIRコマンドは毎回登場しますけれど。

まずはERAコマンドです。
ERAはファイル削除コマンド(ERASEの略)です。



デバッグ作業で使ったあとの仮RAMディスクをそのまま使おうとしたのですが、やっぱり最初から再実行したほうがよいと思いましたので、以前にバックアップしてあった仮RAMディスクの内容を再ロードして、そこからスタートすることにしました。
/ld rmdskab2.bin,8800
が、それです。

jp d233
で、CP/Mじゃなかった、互換DOSを起動しまして、まずはDIRコマンドでディレクトリを表示させました。

どれでもよいのですけれど、中ほどにありますFTST10−5.COMを削除してみることにしました。
era ftst10−5.com
と入力してから、もう一度DIRコマンドでディレクトリを表示してみました。
FTST10−5.COMが削除されて、表示されなくなりました。

次はSAVEコマンドです。
これが一番難しかったですねえ。



アドレス8100H(本来は0100H)から始まるトランジェントエリアにファイルをロードするために一旦CP/Mじゃなかった、互換DOSを終了してZB3BASICに戻ります。

今回はTYPEコマンドで使いたいと思いますから、テキストファイルをロードしました。
画面中ほどの、
/ld ftst18.txt,8100
が、それです。

そのあと互換DOSに戻って、
save 2 ftst18.txt
を実行しました。

そのあとDIRコマンドでディレクトリを表示させました。
さきほど削除したファイル名の位置に、新しくFTST18.TXTが表示されました。

このように途中に削除した空きがあると、そこに新しいFCBを書き込むように働きます。
ちゃんとしっかり働いておりますでしょう。

RENコマンドです。
リネーム、つまりファイル名を変更するコマンドです。



あっと、うっかりTYPEコマンドを実行しようとしてしまいました。
順序として、まずはRENコマンドのテストでした。
ren ftst18.txt test18.txt
と入力しました。

CP/MのRENコマンドはちょっと書式が特殊です。
でも、やはりMSDOSの流儀のほうがしっくりきますから、ここは互換性にこだわらずに、MSDOS流に、
REN 旧ファイル名 新ファイル名
という書式にしました。

そのあとDIRコマンドで名前が変更されたことを確認しました。

そして最後がTYPEコマンドです。



type test18.txt
と入力しました。

test18.txtの内容が表示されました。



拍手喝采、いただけますでしょうか。

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

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