Changes

Jump to: navigation, search

NEXTOR DDG 04 06 03

18 bytes added, 01:50, 2 March 2019
4.6.3. DEV_STATUS(4166h)
===4.6.3. DEV_STATUS(4166h) ===
装置または論理装置の可用性を取得し、状況を変更します。デバイスまたは論理ユニットの可用性を取得し、状況を変更します。
入力:A =デバイスインデックス、1〜7
        B =論理装置番号、1から7論理ユニット番号、1から7
            デバイス自体のステータスを返すには0
出力:A =指定された論理装置の状況指定された論理ユニットの状況
            0が指定された場合は、デバイス全体に対して
            0:デバイスまたは論理ユニットが使用不可、またはデバイス
               または指定された手術ユニット番号が無効です。               または指定された論理ユニット番号が無効です。             1:装置または論理装置は使用可能で変更されていません            1:最後のステータス要求以降、デバイスまたは論理ユニットは使用可能で変更されていません                最後のステータス要求以降。            2:最後のステータス要求以降、デバイスまたは論理ユニットは使用可能で変更されました             2:装置または論理装置は使用可能で変更されました                最後のステータス要求以降。                (デバイスの場合は、デバイスのプラグが抜か               (デバイスの場合は、デバイスのプラグが抜かれ
                同じデバイスインデックスが割り当てられているデバイスが接続されています。
                論理ユニットの場合は、メディアが変更されています。
            3:装置または論理装置は使用可能ですが不可能です            3:最後のステータス要求以降、デバイスまたは論理ユニットは使用可能ですが、                最後から変更されたかどうかを判断する                ステータス要求               変更されたかどうかを判断することは不可能です。
このルーチンはデバイスのメディア変更ステータスを知らせます。 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ドライブマッピングエンジンが正しく動作するために必要です。
システム起動時の最初の呼び出し時(DRV_INITが呼び出された後)にこのルーチンによって戻される値は無関係です。つまり、装置が使用可能であれば、A システム起動時の最初の呼び出し時(DRV_INITが呼び出された後)にこのルーチンによって戻される値は無関係です。つまり、デバイスが使用可能であれば、A = 1またはA = 2が戻される可能性があります。

Navigation menu