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

復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80Z�Vと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

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