NEXTOR DDG 04 06 04

From Z80 Machines Wiki
Jump to: navigation, search

4.6.4.LUN_INFO(4169h)

論理ユニットの情報を取得します。

入力:A =デバイスインデックス、1〜7
        B =論理ユニットインデックス、1から7
        HL =非ページ1 RAMのバッファへのポインタ
出力:A = 0:OK、バッファは情報で埋められています
            1:エラー、提供されたデバイスインデックスまたは論理ユニット番号のデバイスまたは論理ユニットが使用不可、または無効

このルーチンは、デバイスの特定の論理ユニットに関する特定の情報を返さなければなりません。 HLで渡されたアドレスが1ページになることはありません。そのため、ドライバはページングについて心配する必要はなく、指定されたアドレスに直接データを生成できます。 返される情報は、次の構造を持つ12バイトブロックです。

+0(1):メディアタイプ:
        0:ブロックデバイス
        1:CDまたはDVDリーダーまたはレコーダー
        2-254:未使用(将来の利用のために予約済み)
        255:その他の種類
+1(2):セクターサイズ。この情報が当てはまらない、または利用できない場合は0
+3(4):利用可能なセクタの総数、この情報が適用されない場合は0
        または利用できません
+7(1):論理ユニット機能フラグ:
        メディアがリムーバブルの場合はビット0:1
        メディアが読み取り専用の場合はビット1:1
        論理ユニットがフロッピーディスクドライブの場合、ビット2:1
        ビット3〜7:未使用、ゼロでなければならない
+8(2):シリンダー数
+10(1):ヘッド数
+11(1):トラックあたりのセクタ数

「ブロックデバイス」は、論理セクタへのアクセスを介して読み書きできるすべてのデバイスです。これにはフロッピーディスク、ハードディスク、ペンドライブ、マルチメディアカードなどが含まれます。ブロックデバイスは読み取り可能で、オプションでDEV_RWルーチンを介して書き込み可能でなければなりません。

現在のバージョンでは、Nextorは、非ブロックデバイスとして報告されているか、または512バイトとは異なるセクタサイズを持つデバイスでの作業を拒否します。ファイルシステムへの直接アクセスのサポートは将来のバージョンで予定されている機能です。

トラックあたりのシリンダ、ヘッド、およびセクタに関する情報は、ハードディスクにのみ適用されます。他のデバイスタイプの場合、または何らかの理由でこの情報が利用できない場合は、これらのフィールドに値0を返す必要があります。この情報は、Nextorカーネルでは使用されませんが、ディスク上のパーティションを適切に調整するためにデバイスパーティショニングツールで使用できます(Nextまたは現在のバージョンのNextorでは、この情報は組み込みパーティショニングツールでは使用されません)。

「読み取り専用」フラグは、設計上読み取り専用のデバイス(CD-ROMなど)に対してのみ設定する必要があります。動的に書き込み保護および書き込み可能にできるデバイスは、読み取り専用デバイスとして報告しないでください。

Nextorの現在のバージョンでは、Nextorのデバイスベースのドライバによって制御されるデバイスをフォーマットすることはできません。これは将来のバージョンで計画されている機能であり、「フロッピーディスクドライブ」フラグが設定されているデバイスでのみ利用可能になるでしょう。