NEXTOR 03 03

From Z80 Machines Wiki
Jump to: navigation, search

3.3メディア変更の管理

デバイスからデータを読み書きしようとする前に、MSX-DOSはアクセスされたファイルシステムに関する内部情報を更新するために、メディアが変更されているかどうかデバイスドライバに尋ねます。 Nextorも同じことをしますが、アクセスされているドライブがデバイスベースのドライバにマッピングされている場合、ディスクのパーティショニングが関係するため、状況は少し複雑になります。

Nextorが、リムーバブルデバイスベースのドライバにマップされているドライブでメディアの交換を検出すると、次の手順が実行されます。

  • ドライブは、デバイス上で見つかった最初に使用可能な有効なプライマリパーティションにマップされます。有効なパーティションはFAT12とFAT16パーティションです。デバイスにパーティションテーブルがない場合、ドライブはその絶対セクタ0にマッピングされます。
  • 同じデバイスの他のパーティションにマップされている他のすべてのドライブは、マップされないままになります。

デバイスドライバは、デバイス変更ステータスを要求されたときに「不明」と返信することもあります。その場合の手順は以下のとおりです。


  • Nextorが最初にデバイスベースのドライバ上のデバイスにマップされたドライブのブートセクタを読み取ると、ブートセクタの内容の16ビットチェックサムを計算し、それを残りのディスクパラメータと一緒に格納します。
  • Nextorがドライバにデバイス変更ステータスを要求し、応答が「不明」の場合、ドライブのブートセクタを再読み込みし、チェックサムをもう一度計算します。それが以前に保存されたチェックサムと一致する場合、Nextorはデバイスが変更されていないと見なします。それ以外の場合は、デバイスが変更されたと見なし、ドライバがデバイスの変更を報告したときと同じマッピング手順を実行します。

不要なメディアチェック(および不要なブートセクタの読み取りとチェックサムの計算)を回避するために、リムーバブルデバイスにマップされたドライブをロックすることをお勧めします。