注文は何ですかint 13h
とはah=02h
読まれます19
始まるセクタを(C, H, S) = (0, 0, 1)
2つのヘッド、トラックあたり18個のセクタと片面当たり80台のトラックの提供(フロッピー)ディスクジオメトリ。
または、より一般的には、トラック0の終わりであるヘッド0に到達するとどうなりますか?トラック1またはヘッド1に行きますか?この場合でも正しく動作しますか?
編集:待って..これは実際には時間、分、秒のようなものですか?トラックの終わりに達すると(Sが18より大きい)、Hは増加しますか?
最新のBIOSは、マルチトラック1の読み取りと書き込みの概念をサポートしています。トラックの終わりを超えて読み取りまたは書き込みを行うと、次のトラックに進みます。最も幅広いBIOS(新旧)との互換性を最大限に高めるために、トラックの境界を越えて読み取りまたは書き込みを行わないことを検討することをお勧めします。
トラックあたり18セクター/ 2ヘッド/ 80シリンダー(3.5 "1.44MBフロッピー)のドライブジオメトリでは、CHS(0,0,18)の後のセクターはCHS(0,1,1)です。CHSでセクターに到達した後(0,1,18)次はCHS(1,0,1)です。ある意味、これはHH:MM:SSに似ています。
ドライブジオメトリには、合計2880(80 * 2 * 18)のセクターがあります。セクターに0から2879(両端を含む)の番号を付けると、それらは論理ブロックアドレス(LBA)と呼ばれます。
Int 13h / ah = 2はCHS値を取ります。次の式(または同等のもの)を使用して、LBAをCHS値に変換できます。
C = (LBA ÷ SPT) ÷ HPC H = (LBA ÷ SPT) mod HPC S = (LBA mod SPT) + 1 HPC = Heads per cylinder (aka Number of Heads) SPT = Sectors per Track, LBA = logical block address "mod" is the modulo operator (to get the remainder of a division)
LBAからCHSへの変換のセクションで、この他のStackoverflowの回答で、LBAからCHSへの計算について詳しく説明しました。これらの計算を使用してテーブルを作成した場合、番号付けは次のようになります。
LBA = 0: CHS = ( 0, 0, 1) LBA = 1: CHS = ( 0, 0, 2) LBA = 2: CHS = ( 0, 0, 3) LBA = 3: CHS = ( 0, 0, 4) LBA = 4: CHS = ( 0, 0, 5) LBA = 5: CHS = ( 0, 0, 6) LBA = 6: CHS = ( 0, 0, 7) LBA = 7: CHS = ( 0, 0, 8) LBA = 8: CHS = ( 0, 0, 9) LBA = 9: CHS = ( 0, 0, 10) LBA = 10: CHS = ( 0, 0, 11) LBA = 11: CHS = ( 0, 0, 12) LBA = 12: CHS = ( 0, 0, 13) LBA = 13: CHS = ( 0, 0, 14) LBA = 14: CHS = ( 0, 0, 15) LBA = 15: CHS = ( 0, 0, 16) LBA = 16: CHS = ( 0, 0, 17) LBA = 17: CHS = ( 0, 0, 18) LBA = 18: CHS = ( 0, 1, 1) LBA = 19: CHS = ( 0, 1, 2) LBA = 20: CHS = ( 0, 1, 3) LBA = 21: CHS = ( 0, 1, 4) LBA = 22: CHS = ( 0, 1, 5) LBA = 23: CHS = ( 0, 1, 6) LBA = 24: CHS = ( 0, 1, 7) LBA = 25: CHS = ( 0, 1, 8) LBA = 26: CHS = ( 0, 1, 9) LBA = 27: CHS = ( 0, 1, 10) LBA = 28: CHS = ( 0, 1, 11) LBA = 29: CHS = ( 0, 1, 12) LBA = 30: CHS = ( 0, 1, 13) LBA = 31: CHS = ( 0, 1, 14) LBA = 32: CHS = ( 0, 1, 15) LBA = 33: CHS = ( 0, 1, 16) LBA = 34: CHS = ( 0, 1, 17) LBA = 35: CHS = ( 0, 1, 18) LBA = 36: CHS = ( 1, 0, 1) LBA = 37: CHS = ( 1, 0, 2) LBA = 38: CHS = ( 1, 0, 3) LBA = 39: CHS = ( 1, 0, 4) LBA = 40: CHS = ( 1, 0, 5) LBA = 41: CHS = ( 1, 0, 6) ... [snip] ... LBA = 2859: CHS = (79, 0, 16) LBA = 2860: CHS = (79, 0, 17) LBA = 2861: CHS = (79, 0, 18) LBA = 2862: CHS = (79, 1, 1) LBA = 2863: CHS = (79, 1, 2) LBA = 2864: CHS = (79, 1, 3) LBA = 2865: CHS = (79, 1, 4) LBA = 2866: CHS = (79, 1, 5) LBA = 2867: CHS = (79, 1, 6) LBA = 2868: CHS = (79, 1, 7) LBA = 2869: CHS = (79, 1, 8) LBA = 2870: CHS = (79, 1, 9) LBA = 2871: CHS = (79, 1, 10) LBA = 2872: CHS = (79, 1, 11) LBA = 2873: CHS = (79, 1, 12) LBA = 2874: CHS = (79, 1, 13) LBA = 2875: CHS = (79, 1, 14) LBA = 2876: CHS = (79, 1, 15) LBA = 2877: CHS = (79, 1, 16) LBA = 2878: CHS = (79, 1, 17) LBA = 2879: CHS = (79, 1, 18)
1マルチトラックのサポートは、ディスクアクセスがシリンダーを越えることができるという意味ではありません。マルチトラックディスクアクセスは、同じシリンダーで開始および終了する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加