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

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

[第217回]


●ファンクションコール22H(ランダムライト)(その2)

前回からの続きです。
前回は[第106回]と同じレコード番号表を作成して、VFTST202を実行しました。
その結果作成されたランダムファイル(TEST.RAF)のFCBを確認してみたところ、正しく作成されていないことがわかりました。
仮想FDDのためにCP/M互換DOSプログラムを書き換えたのですが、ランダムアクセス部分にバグがありました。

バグを取り除いてからもう一度VFTST202を再実行しました。
今度はうまくいったようです。
前回と同じようにして、実行の結果作成されたTEST.RAFのFCB部分を表示させてみました。



[第167回]の結果はこうでした。



各FCBの名前部分の次(13バイト目)はエクステントbナす。
1つのFCBにはデータ部のブロックai2バイト)を記録する16バイトのエリアがあります。
したがって1つのFCBには8ブロックの情報が記入できます。
ファイルのサイズが大きくて8ブロックを越える場合には、同じファイル名のFCBが複数作成されます。
同じファイル名のFCBを区別するために、何番目のFCBかを示しているのがエクステントbナす。
ランダムアクセスファイルの場合にはレコードbノよって、飛び飛びにデータが作成されます。
そのためレコードbノよっては、少ないレコードでも複数のFCBが作成されてしまうこともあります。
レコードbニブロックaAエクステントbフ関係については[第106回]および[第107回]を参照願います。
そのエクステントb比較してみると、[第167回]と今回の結果は一致していることがわかります。

それともうひとつ、各FCBの16バイト目(上の段の最後の位置)は、そのエクステントに含まれるレコード数を示しています。
ここも[第167回]と今回の結果は同じになっています。
ただ各FCBの下側の16バイトに記入されているブロックbヘ、その位置も数値も異なっています。
そのことについては説明が必要なのですが、本日も時間がなくなってしまいました。
この続きは次回にすることにいたします。

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

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