復活!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
前へ
次へ
ホームページトップへ戻る