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

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

[第223回]


●VFTST202を再実行しました

VFTST202を実行した結果作成されたランダムファイル(TEST.RAF)のブロックアローケーションエリアに書かれたブロックbヘ各エクステントにそれぞれ1個ずつでした。
これはもとになるレコード番号表に偏りがあって、わざとそのような番号表になっていたためです。
この番号表は[第106回]で作成したものをそのまま使いました。
その時点ではND80ZVの上のRAMを利用した仮RAMディスクを使っていたため、沢山のデータブロックを作成することができなかったので、わざと1エクステントあたり1ブロックbニなるような番号表を作成したのでした([第106回]参照)。

しかし現在は2MBの仮想FDDを使っていますから、容量は十分すぎるほどあります。
そうなってくると1エクステントに1ブロックのみを集中して作成している現行のテストはちょっと偏りを感じてしまいます。
そこで、レコード番号表に少しだけレコードb追加して、各エクステントにそれぞれもう1つのブロックbェ追加されるようにしました。

今回もとのレコード番号表に追加したのは、次のレコードbナす。
0028
00C7
0182
03E5

そしてその新しいレコード番号表を使って、もう一度VFTST202を実行しました。
前回までと同じブロックbノなるようにするため、すでに作成されていたTEST.RAFは削除したうえで、VFTST202を実行しました。
下はレコード番号表にレコードを追加したあと、TEST.RAFを削除してからVFTST202を実行したところです。



VFTST202を実行した結果作成されたTEST.RAFのFCBをVFDUMPで表示させてみました。



エクステントbO0の3番目の位置にブロックbO077が追加されています。
またエクステントbO3の1番目の位置にブロックbO079が、
エクステントbO7の7番目の位置にブロックbO07Aが、
そしてエクステントbO1の5番目の位置にブロックbO078が追加されています。

今回レコード番号表に追加したレコードb、前回お見せした各エクステントへのレコードbフ割り当ての図に落としてみます。
追加した下記のレコードbェ含まれる枠を水色で着色して示しました。

0028
00C7
0182
03E5

エクステントbO0
レコードbO000〜007F
0000
000F
0010
001F
0020
002F
0030
003F
0040
004F
0050
005F
0060
006F
0070
007F

エクステントbO1
レコードbO080〜00FF
0080
008F
0090
009F
00A0
00AF
00B0
00BF
00C0
00CF
00D0
00DF
00E0
00EF
00F0
00FF


エクステントbO2
レコードbO100〜017F

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


エクステントbO4
レコードbO200〜027F

エクステントbO5
レコードbO280〜02FF

エクステントbO6
レコードbO300〜037F

エクステントbO7
レコードbO380〜03FF
0380
038F
0390
039F
03A0
03AF
03B0
03BF
03C0
03CF
03D0
03DF
03E0
03EF
03F0
03FF


新しく追加したレコードbノ対応してそのデータエリアとして割り当てられたブロックbェそれぞれ上の水色で示した枠の位置にちゃんと書き込まれていることが確認できます。
説明するのもなかなかに面倒なことなのですが、このような働きをするプログラムを作成するのは、もちろん簡単なことではありません。
でもこうやって計算した通りに働いてくれるところを見ると、ちょいとハッピーな気分になります(やったぜ!)。
プログラムを作る楽しみとはこういうところにあるもの、と思います。
いずれ時間がとれましたら、このあたりのプログラム(システムのプログラム)についても実際のソースリストをもとにして説明をしたいと思っています。

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

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