復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第9回]
●トラックとセクタ
前にも説明しましたように、CP/Mは最初に開発されたDOS(Disk Operation System)です。
CP/Mを理解する上では、ディスクをまず理解することなしには、先に進むことはできません。
CP/Mでディスクと言う場合には、ハードディスクではなくてフロッピーディスクを指します。
そのフロッピーディスクも少し前までのPC9821やWindowsパソコンに標準でついていた3.5インチのフロッピーディスクではなくて、それよりも以前の8インチまたは5.25インチのフロッピーディスクです。
メディアの形状は3.5インチとは異なりますが、基本的な仕組みは変わりません。
そのフロッピーディスクのトラックやセクタについて説明をしようと思いましたが、ふと思いついて、1984年当時に「トランジスタ技術」(CQ出版社)に連載しました「つくるパーソナルコンピュータ」を読み直してみましたら、我ながら要領よく説明してあるじゃないの、と思いましたので、その部分をそっくりそのまま丸写ししてしまうことにいたしました。
以下は「つくるパーソナルコンピュータ第10回」(トランジスタ技術1984年10月号)からの引用です。
5.25インチフロッピーディスクについての説明です。
(フロッピーディスクは)磁気記録方式のレコード盤のようなものだと考えてください。
ただレコードは、始めから終わりまで1本の連続した溝にデータが記録されており、針がその溝にそって移動することにより、データを再生しますが、フロッピーディスクでは35〜40本(8インチでは77本)の同心円があって、ドライブユニットのヘッドは、そのいずれかの円周上にセットされます。そこでディスクが1回転することにより、その円周上のデータを記録再生します。
ヘッドはインターフェースから送られるステップパルスによって、さきほどの同心円と直角方向に(つまり半径上を)移動して、任意の円周上にセットされます。
この同心円をトラックといいます。最外周がトラック0で、一番内側がトラック34または39です(少し前までは35トラックが普通だったが、最近は40トラックが一般的になってきている)。
レコードと違って、ディスクに、はじめから線が引いてあるわけではなく、ドライブユニットにセットして、イニシャライズすることによって、あとからこのトラックが作られます。したがって正確に言えば、購入したばかりのディスクは、のっぺらぼうで、トラックはありません。それを35トラックで使うか、あるいは最近普及しつつある、倍トラック、つまり80トラックで使うか、そのいずれにするかはドライブユニットの規格によって決まります。
ところで、片面しか記録しない場合は、1枚のディスクで40トラックになるわけですが、今回のシステムで考えている両面記録タイプの場合には、ディスクの表だけではなく、裏側にも同じように記録されます。
この場合、ドライブユニットのヘッドは、ディスクをはさむように2個が向かい合ってセットされています。この上下のヘッドは別々に動くのではなく、同時に移動します(つまり、上のヘッドがトラック0にセットされているときは、下のヘッドも裏側のトラック0にセットされている)。
このように、両面タイプの場合にはトラック数は表裏あわせて倍の80トラックあることになります。そして、表と裏の同心円(トラック)をいっしょにして、シリンダと呼ぶことがあります。
これはもともと大型コンピュータに使われているディスク装置からきた言葉です。このような装置は、1枚のディスクではなくて5枚とか10枚とかのディスクをひとまとめにしてアクセスする構造になっており、ヘッドも10〜20が同時に動きます。
このような装置では、同じ同心円上に位置するトラックが10〜20あることになり、ちょうど円筒状に重なっているように見えるところから、シリンダという名称で呼ばれます。
さて話をもとにもどして、このトラックの上にデータを記録していくわけですが、一般には、トラックにだらだらと記録していくのではなく、いくつかに区切って記録していきます。
この区切りをセクタといい、1トラックを16セクタに区切るのが一般的です。もちろん、これもトラックと同じく、はじめからハード的に決められているわけではなく、目的に応じてある程度自由に決めることができます。そのため、この方式をソフトセクタと呼ぶことがあります。
1トラックが16セクタの場合、1セクタには128バイトのデータが記録されます。これが単密度記録です。本システムでは1セクタに256パイトのデータが記録できる倍密度記録方式のドライブユニットを使用します。
各セクタにはラベルに相当する部分が設けられており、そのラベルデータを識別することにより、任意のセクタのデータをREAD、WRITEすることができます。
このラベルデータ部分(IDと呼ぶ)には、シリンダ番号、セクタ番号、ヘッド番号(表か裏かで00か01を記入する)、セクタ内の記録バイト数などの情報を入れておかなければ、データのREADやWRITEはできません。
購入したばかりのディスクには何も記録されていません(もちろんID情報も書かれていない)ので、そのままではREADはもちろん、WRITEすることもできません(この点が磁気テープなどと異なる点である)。
このID情報はあらかじめ一定の手続きで、ソフト的に書き込んでおく必要があります。この手続きを一般にイニシャライズとよんでいます。
以上の説明で、トラックとセクタがどのようなものか、おおよそご理解いただけたことと思います。
トラックとセクタについておおよそご理解いただいたところで、いよいよ仮想フロッピーディスクの説明になるのですけれど、ちょっと時間がありませんので、それは次回ということにさせていただきます。
実は急ぎでかなりの数量のご注文をいただきましたので、これから数日間はその作業に集中しなければなりません。
説明がこまぎれになってしまうかもしれませんが、ご了承をお願いいたします。
ワンボードマイコンでCP/Mを![第9回]
2012.1.19upload
前へ
次へ
ホームページトップへ戻る