1,041
edits
Changes
→4.6.3. DEV_STATUS(4166h)
===4.6.3. DEV_STATUS(4166h) ===
入力:A =デバイスインデックス、1〜7
B =論理装置番号、1から7論理ユニット番号、1から7
デバイス自体のステータスを返すには0
出力:A =指定された論理装置の状況指定された論理ユニットの状況
0が指定された場合は、デバイス全体に対して
0:デバイスまたは論理ユニットが使用不可、またはデバイス
同じデバイスインデックスが割り当てられているデバイスが接続されています。
論理ユニットの場合は、メディアが変更されています。
このルーチンはデバイスのメディア変更ステータスを知らせます。 Nextorは通常、LUN_INFOによって返された情報ブロックに「取り外し可能」フラグが設定されている論理装置に対してのみこのルーチンを呼び出します。ただし、MSXNextorは通常、LUN_INFOによって返された情報ブロックに「取り外し可能」フラグが設定されている論理ユニットに対してのみこのルーチンを呼び出します。ただし、MSX-DOS 1モードで実行している場合は、ルーチンは固定論理装置に対しても呼び出されます(固定論理装置の場合、このルーチンは常にAに0または1を戻す必要があります)。 1モードで実行している場合は、ルーチンは固定論理ユニットに対しても呼び出されます(固定論理ユニットの場合、このルーチンは常にAに0または1を戻す必要があります)。
Nextorの現在のバージョンでは、このルーチンはB = 0で呼び出されることは決してありません(装置自体の状況を確認してください)。 0で呼び出されることは決してありません(デバイス自体の状況を確認してください)。 USBバスなどのホットプラグ対応デバイスシステムのサポートは、将来のバージョンで予定されています。
Nextorは、ブートセクタチェックサムメカニズムを使用して、DEV_STATUSの呼び出しに応答してドライバがA = 3を返したときのデバイスの変更を管理します(詳細については、Nextor 2.0ユーザマニュアルの「メディア変更の管理」を参照)。ブートセクタの読み取りとチェックサムの計算を避けるために、ドライバは可能な限り適切なデバイス変更情報を返すべきです(つまり、DEV_STATUSは3ではなくA = 1または2を返すべきです)。
重要な注意:このルーチンによって戻される状況は、常に同じルーチンの直前の呼び出しに対するものです。デバイスが変更されている場合、DEV_RWへの呼び出しによってDEV_STATUSへの次の呼び出しがA = 1を返さないようにする必要があります。つまり、メディアの変更 - DEV_RWへの呼び出し - DEV_STATUSへの呼び出しの順序で、最後の呼び出しはA = 2を返さなければなりません。この動作は、Nextorドライブマッピングエンジンが正しく動作するために必要です。