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

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

[第86回]


●ファンクションコール0Eのテスト(3)

前回のテストプログラムの実行によって、

「ファンクションコール0Eによるカレントドライブの指定はユーザープログラムの中だけ有効で、プログラムを終了すると、プログラムの中で行なったカレントドライブの指定はキャンセルされてしまうらしい」

ということがわかりました。
ここで「らしい」と書きましたのは、もう少し進んでテストをする余地が残っていることに気が付いたからです。

そこで、今回は、もう少し進んでテストをしてみました。
前回と同じように、
FTST10−2 *.*[Enter]
と入力してプログラムを開始しました。

a>ftst10-2 *.*
drvno.?a
FNC0E-1.COM
FTST10.COM
FTST10-2.COM
end
drvno.?b
FNC0E-0.COM
end
drvno.?0
FNC0E-0.COM
end
drvno.?
a>

drvno.?の表示に

と入力すると、Aドライブにセーブされているファイルが表示されました。

次のdrvno.?の表示に

と入力すると、Bドライブにセーブされているファイルが表示されました。

次のdrvno.?の表示に

と入力すると、Bドライブにセーブされているファイルが表示されました。
ドライブbニして’0’を入力したときは、現在選択されているドライブがそのまま維持されます。

ここで[Ctrl][z]を入力してプログラムを終了しました。
Bドライブを選択した状態でプログラムを終了したのですが、
a>
と表示されてしまいました。
カレントドライブは、プログラムを実行する前と同じAドライブに戻ってしまいました。

この状態で続いて、もう一度FTST10−2を実行します。

a>ftst10-2 *.*
drvno.?0
FNC0E-1.COM
FTST10.COM
FTST10-2.COM
end
drvno.?
a>

FTST10−2の実行開始後、最初のdrvno.?の表示に

を入力すると、Aドライブにセーブされているファイルが表示されました。

プログラムの実行を開始する直前のカレントドライブがプログラム内でもそのまま選択されていることが確認できました。

でも、念には念を入れて、もう少しテストを続けてみました。

今度は、
a>b:[Enter]
でカレントドライブをBドライブに変更しておいて、そこで
b>a:ftst10−2 *.*[Enter]
と入力してプログラムの実行を開始しました。

a>b:
b>a:ftst10-2 *.*
drvno.?0
FNC0E-0.COM
end
drvno.?
b>

先ほどと同じようにdrvno.?の表示に

を入力すると、今度はBドライブにセーブされているファイルが表示されました。

以上のテストの結果をまとめてみますと、こういうことになります。
1)プログラムを開始したときのカレントドライブはプログラムの中でも、そのまま維持される。
2)プログラムの中でファンクションコール0Eによってカレントドライブを変更すると、そのプログラムの中では、次にファンクションコール0Eによってカレントドライブの再変更が行なわれるまでは、カレントドライブはそのまま維持される。
3)プログラムの中でファンクションコール0Eによって行なわれたカレントドライブの変更は、プログラムを終了するとキャンセルされて、プログラムを開始する前のカレントドライブに戻る。

この最後の3)がここ数日の一連のテストではっきりさせたかったことです。
ここでもう一度[第82回]で引用しました「応用CP/M」(村瀬康治著。アスキー出版局)のファンクション0Eについての説明文を再掲します。
(以下引用文中「ファンクション14」は「ファンクション0EH」のことです」)。

「つまりファンクション14によって選択されたドライブが、デフォールト・ドライブとなる。新しく選択されたドライブは、当ファンクションにより再選択が行なわれるか、リブートされるまでは変化しない。」

うーん。
これは、もう堂々とした宣言ですものねえ。
でも。おそらく著者がうっかりして、そのように思い違いをしてしまったのでありましょう。
リブートされるまでもなく、プログラムを終了した時点で、プログラム内で選択されたドライブはキャンセルされて、プログラム開始前のカレントドライブの状態に戻ってしまいます。

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

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