NEXTOR PR 03 08
3.8。デバイスドライバに関する情報を取得する(_GDRVR、78h)
パラメータ:C = 78H(_GDRVR) A =ドライバインデックス、またはスロットとセグメントを指定する0 D =ドライバスロット番号(A = 0の場合のみ) E =ドライバセグメント番号、ROM内のドライバのFFh (A = 0の場合のみ) HL = 64バイトデータバッファへのポインタ 結果:A =エラーコード HL =ドライバに関するデータでいっぱい
システムに存在するデバイスドライバに関する情報を返します。この機能はMSX-DOS1モードで動作します。
デバイスドライバは、インデックスまたはスロットとセグメント番号のペアで指定できます。ドライバをインデックスで指定するには、レジスタAに(1から始まる)インデックス番号を設定します。ドライバのスロット番号とセグメント番号は、他のドライバ情報とともにデータバッファに返されます。これはどのドライバがシステムに存在するかを発見するのに役立ちます。
情報を収集したいドライバのスロット番号とセグメント番号がわかっている場合は、これらのパラメータをレジスタDとEに設定し、A = 0に設定します。ドライバインデックスを指定した場合と同様に、スロット番号とセグメント番号はデータバッファに返されます。
指定したインデックスに関連付けられているドライバがない場合、または指定したスロットとセグメントのペアを持つドライバがない場合は、.IDRVRエラーが返されます。システム内に存在するドライバの数を事前に知る方法はありません。そのため、すべてのドライバを検出するには、ドライバインデックス1から開始して.IDRVRエラーが発生するまでインデックス番号を増やす必要があります。
データバッファに返される情報は次のとおりです。
+0:ドライバスロット番号
+1:ドライバセグメント番号、ドライバがNextor内に埋め込まれている場合はFFh またはMSX-DOSカーネルROM(現在のバージョンでは常にFFh)
+2:起動時にこのドライバに割り当てられたドライブ名
+3:起動時にこのドライバに割り当てられた最初のドライブ文字(A:= 0など) 起動時にドライブが割り当てられていない場合は未使用
+4:ドライバーフラグ: bit 7:1 =>ドライバはNextorドライバです 0 =>ドライバはMSX-DOSドライバです (MSX-DOSカーネルROMに埋め込まれています) ビット6〜3:未使用、常にゼロ ドライバがDRV_CONFIGルーチンを実装している場合、ビット2:1 ビット1:未使用、常にゼロ ビット0:1 =>ドライバはデバイスベースのドライバです 0 =>ドライバはドライブベースのドライバです
+5:ドライバのメインバージョン番号
+6:ドライバのセカンダリバージョン番号
+7:ドライバのリビジョン番号
+8:ドライバ名、左寄せ、スペースを埋め込んだ(32バイト)
+40 .. + 63:予約済み(現在は常にゼロ)
MSX-DOSドライバの場合、ドライバフラグバイトは常に0で、ドライバのバージョン番号やドライバ名に関する情報は返されません。
Nextorは、バージョン2.0.5以降のDRV_CONFIGルーチンを使用します。詳細はNextor 2.0 Driver Development Guideをご覧ください。