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

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

[第223回]


●VFTST202を再実行しました

VFTST202を実行した結果作成されたランダムファイル(TEST.RAF)のブロックアローケーションエリアに書かれたブロック�bヘ各エクステントにそれぞれ1個ずつでした。
これはもとになるレコード番号表に偏りがあって、わざとそのような番号表になっていたためです。
この番号表は[第106回]で作成したものをそのまま使いました。
その時点ではND80Z�Vの上の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

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