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

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

[第224回]


●TEST.RAFのデータレコードの確認

[第216回]から前回([第223回])までファンクションコール22H(ランダムライト)について長々と書いてきました。
やっとこれで次のランダムリード(ファンクションコール21H)に進める、と思ったのですが、まだ書かねばならないことがあったことをうっかりして忘れてしまっておりました。

前回も検証しましたように、FCBを見る限りでは、確かにランダムレコードがルール通りに記録されているように見えます。
しかし本当のところはどうなのか、実際にそのレコードbフデータが正しくデータレコードとしてディスクに記録されているかどうかは、確かめてみないことにはわかりません。

実はそのこともすでに確認して画像の記録もとってあったのですが、そんなこともすっかり忘れてしまっておりました。
実際にデータが正しく書き込まれているかどうかを確認するために、VFDUMP.EXEを実行して調べてみました。
全部のデータについて確認するのは大変なことですから、とりあえずレコードbO1A2と01A5について確かめてみました。

前回にもお見せしたレコードbフ割り当て図から、レコードbO1A2と01A5は、エクステントbO3の3番目の位置のブロックにあることがわかります(下図)。

エクステントbO3
レコードbO180〜01FF
0180
018F
0190
019F
01A0
01AF
01B0
01BF
01C0
01CF
01D0
01DF
01E0
01EF
01F0
01FF


その3番目の場所にはブロックbO073Hが書かれていました。
そこで、まずブロックbO073Hの最初のセクタが、ブロックbO000Hの最初のセクタを0としたときに、セクタだけを通しで番号をつけると何番になるかを計算で求めます。
0073Hは10進数に直すと115です。
1ブロックは16セクタですから 115×16=1840
レコードbO1A2は、そのブロックの3番目のセクタに書き込まれるはずですから、そのセクタの通しの番号は1842になります。
またレコードbO1A5は、そのブロックの6番目のセクタに書き込まれるはずですから、そのセクタの通しの番号は1845になります。

下はVFDUMPで仮想FDDのAドライブのセクタbP842と1845の中身を表示させているところです。


おお。
間違いなくそのセクタにレコードbニ同じ数値がきっちり書き込まれています。
VFTST202は、レコードデータとしてそのレコードb繰り返し書き込むようにプログラムされています。
間違いありません。
これで、やっとファンクションコール22Hについての説明は終わりです。

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

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