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