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

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

[第142回]


●ファンクションコール0DH(ディスクリセット)

ファンクションコール0DHは全てのドライブのライトプロテクトを解除します。
ファンクションコール0DHは[第92回]でテストしました。
作成したテストプログラムはFTST13です。

FTST13の働きはきわめて単純です。
ファンクションコール0DHを実行して、ドライブのライトプロテクトを解除するだけです。
[第92回]で行なったのと同じようにしてテストをしてみます。
前回行なったFTST11(ライトプロテクトセット)とFTST12(R/Oベクトルの取得)の2つのプログラムの実行と合わせて行ないます。

logfile nd80zlog\05311524.txt open

ND80ZVに接続しました
0001 0000 - z
1000 00C3 - 
*** nd80z3 basic ****
>/ld ftst13.bin,8100
loading FTST13.BIN ...0006(6)bytes loaded,from 8100 to 8105
>jp d233

A>save 1 ftst13.com

A>ftst11

A>b:
B>a:ftst11

B>a:ftst12
0003

B>a:ftst13

B>a:ftst12
0000

B>end of ZBDOS
>0000 00C3 - 
リモート接続を終了しました
logfile closed at Thu May 31 15:25:55 2012

最初にAドライブでFTST11を実行して、次にBドライブでもFTST11を実行しました。
その後FTST12を実行してR/Oベクトルを表示させました。
FTST11の実行によってA、Bドライブがリードオンリーになりましたから、R/Oベクトルの値は0003と表示されました。
次にFTST13を実行してから、もう一度FTST12を実行しました。
FTST13の実行によって全てのドライブのライトプロテクトが解除されましたから、R/Oベクトルの値は0000と表示されました。

●ファンクションコール25H(ディスクドライブのリセット)

ファンクションコール25Hもディスクドライブのリセットです。
ファンクションコール0DHは全てのドライブのライトプロテクトを解除しますが、それ以外はなにも変更しません。
ファンクションコール25Hはドライブb指定して(複数のドライブを指定可能)、そのドライブのライトプロテクトを解除するとともに、ログインベクトルの該当するビットも0にします。

ファンクションコール25Hは[第100回]で説明しました。
そこで作ったテストプログラムはFTST18です。
また結果を確認するために、ログインベクトルとR/Oベクトルを取り出して表示するプログラムも作りました。
FTST19です。

[第100回]と同じようにしてテストしてみました。

A>ftst11

A>b:
B>a:ftst11

B>a:ftst19
L 0003
R 0003
B>a:ftst18 a:

B>a:ftst19
L 0003
R 0002
B>a:
A>ftst11

A>ftst19
L 0003
R 0003
A>ftst18 b:

A>ftst19
L 0001
R 0001
A>

最初にAドライブとBドライブでFTST11を実行し、そのあとFTST19を実行しました。
ログインベクトル(L)もR/Oベクトル(R)も0003と表示されました。
次に ftst18 a: を実行してからFTST19を実行すると、FTST18によってAドライブのライトプロテクトが解除されたため、Rは0002と表示されました。

そのあとAドライブでFTST11を実行すると、それによってまたAドライブにライトプロテクトがセットされたため、R=0003になりました。
次にAドライブで ftst18 b: を実行すると、ログインベクトルとR/Oベクトルの、Bドライブのビットがクリアされたため、L=0001、R=0001と表示されました。

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

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