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

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

[第140回]


●ファンクションコール0E(ディスクドライブセレクト)

ファンクションコール0Eについては[第82回]が書き始めですが、そこでは仮RAMディスクを当初AドライブだけだったものをAドライブとBドライブに2分割するようにシステムを変更することから始めましたので、実際にテストプログラムを作ってテストを始めたのは[第84回]になってからでした。

いろいろ試行錯誤をしていますが、最終的には[第86回]で、テストプログラムFTST10−2を使ってテストしたものが一番まとまっていると思います。
そこで今回は、[第86回]と同じようにして、テストプログラムFTST10−2を使って、ファンクションコール0Eの動作を確認してみることにしました。

テストの過程を画像に撮れませんでしたので、ログファイルで説明をいたします。

>/ld ftst10-2.bin,8100
loading FTST10-2.BIN ...00c4(196)bytes loaded,from 8100 to 81C3
>jp d233

A>save 1 ftst10-2.com

A>ftst10-2 *.*
drvno.?a
FTST10-2.COM
SEARCH.COM
CMP.COM
FTST9.COM
FTST7.COM
FTST8.COM
FTEST2.COM
FTEST4.COM
COPY.COM
FNC0BT2.COM
end
drvno.?b
FNC0BT2.COM
FNC0BT1.COM
FNC0BT.COM
FNC06T2.COM
FNC0304T.COM
end
drvno.?0
FNC0BT2.COM
FNC0BT1.COM
FNC0BT.COM
FNC06T2.COM
FNC0304T.COM
end
drvno.?
A>

ftst10−2 *.*[Enter]
と入力して、
drvno.?
の表示に

と入力すると、Aドライブのファイル名が全て表示されました。

次に
drvno.?
の表示に

と入力すると、Bドライブのファイル名が全て表示されました。

今度は、
drvno.?
の表示に

と入力すると、その直前の指定と同じBドライブのファイル名が全て表示されました。
0を入力したときは、その時点でのカレントドライブがそのまま指定されます。
ここで[Ctrl]+[Z]を入力して、一旦プログラムを終了しました。

ここまでは順調です。
[第86回]と同じ結果が得られています。

この調子なら今回も楽勝か、と思ったのですが。
問題はこのあとで発生しました。

テストの続きです。

A>ftst10-2 *.*
drvno.?0
FTST10-2.COM
SEARCH.COM
CMP.COM
FTST9.COM
FTST7.COM
FTST8.COM
FTEST2.COM
FTEST4.COM
COPY.COM
FNC0BT2.COM
end
drvno.?
A>b:

B>a:ftst10-2 *.*
A:FTST10-2 *.*?
B>a:ftest2
A:FTEST2?
B>end of ZBDOS

もう一度、
ftst10−2 *.*[Enter]
と入力して、
drvno.?
の表示に

と入力しました。

すると、Aドライブのファイル名が全て表示されました。
これも[第86回]と同じ結果が得られました。
ここでまた[Ctrl]+[Z]を入力して、プログラムを終了しました。

次にカレントドライブをBドライブに変更して、そこで
a:ftst10−2 *.*[Enter]
と入力したところ、まさかのエラーです。
A:ftst10−2 *.*?
と表示されてしまいました。

念の為にAドライブのほかのファイルを指定して、
a:ftest2[Enter]
と入力してみましたが、やはり同じように
A:ftest2?
と表示されてしまいました。

さてはCCPにバグがある、と睨んで調べてみましたら、ファイル名にドライブbつけて、プログラムを起動するところで、そのドライブbノしたがってドライブをセットするところにバグがありました。
ドライブb設定するファンクションコールをテストしていて、ドライブbフ設定でこけてしまうなんて、シャレにもなりません。

バグを修正して、もう一度テストプログラムを再実行しました。

今度は
a:ftst10−2 *.*[Enter]
と入力して、正しく実行されました。

A>b:

B>a:ftst10-2 *.*
drvno.?0
FTST10-2.COM
SEARCH.COM
CMP.COM
FTST9.COM
FTST7.COM
FTST8.COM
FTEST2.COM
FTEST4.COM
COPY.COM
FNC0BT2.COM
end
drvno.?
B>end of ZBDOS

drvno?
の表示に

と入力して、Aドライブのファイル名が表示されました。
これも[第86回]と同じ結果になりました。

やっと。
めでたし、めでたし、です。

[2012.8.27訂正]
カレントドライブがBドライブの状態でFTST10−2を起動して、drvno?の表示に0を入力したときにAドライブのファイル名が表示されていますがこれは誤りです。
本来はBドライブのファイル名が表示されるはずです。
どうやらまだバグが残っていることに気が付かなかったようです。
このことについては[第206回]に書きました。

ワンボードマイコンでCP/Mを![第140回]
2012.6.4upload
2012.8.27訂正


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