NEXTOR PR 03 09

From Z80 Machines Wiki
Jump to: navigation, search

3.9.ドライブレターに関する情報のGet(_GDLI、79h)

パラメータ:C = 79H(_GDLI)
             A =物理ドライブ(0 = A:、1 = B:など)
             HL = 64バイトデータバッファへのポインタ 

結果:A =エラーコード
             HL =ドライブに関するデータで埋められる

特定のドライブレターに関する情報を返します。この機能はMSX-DOS 1モードで動作します。 データバッファに返される情報は次のとおりです。

+0:ドライブ状態     
0:未割り当て     
1:NextorまたはMSX-DOSドライバに接続されている記憶装置に割り当てられている     
2:未使用     
3:未使用     
4:RAMディスクに割り当てられています(他のすべてのフィールドはゼロになります)。 
    +1:ドライバスロット番号 
    +2:ドライバセグメント番号、ドライバがNextor内に埋め込まれている場合はFFh     またはMSX-DOSカーネルROM(現在のバージョンでは常にFFh) 
    +3:ドライバ内の相対ドライブ番号
        (ドライブベースのドライバのみ。デバイスベースのドライバの場合はFFh) 
    +4:デバイスインデックス(デバイスベースのドライバのみ。
           ドライブベースのドライバとMSX-DOSドライバの場合は0) 
    +5:論理ユニットインデックス(デバイスベースのドライバのみ)。
           ドライブベースのドライバとMSX-DOSドライバの場合は0) 
    +5から+8:最初のデバイスセクタ番号(デバイスベースのドライバ内のデバイスのみ。
           ドライブベースのドライバとMSX-DOSドライバの場合は常にゼロ 
    +9から+63:予約済み(現在は常にゼロ)

システムでサポートされている最大ドライブ番号より大きいドライブを指定した場合は、.IDRVエラーが返されます。 Nextorで有効なドライブ番号が指定されていても、現在どのドライバにも割り当てられていない場合、エラーは返されませんが、空の情報ブロックが返されます(ドライブステータスバイトをチェックする必要があります)。 「最初のデバイスセクタ番号」は、ドライブの最初の論理セクタとして扱われる絶対デバイスセクタ番号です。

通常、デバイスパーティションの開始セクタか、デバイスにパーティションがない場合はデバイスの絶対セクタ0です。ドライブがデバイスベースのドライバのブロックデバイスに割り当てられているかどうかを確認するためにゼロに対してこの値をテストすることはできません(この目的のために「ドライブステータス」フィールドを使用してください)。