MSX-DOS2 FCS 03 18

From Z80 Machines Wiki
Jump to: navigation, search

3.18最初の検索[FCB](11H)

パラメータ:C = 11H(_SFIRST)

DE =未開封のFCBへのポインタ

結果:ファイルが見つからない場合、L = A = 0FFH

ファイルが見つかった場合は= 0。


この関数は、FCBで指定されたドライブ(FCBにゼロが含まれる場合はデフォルトのドライブ)の現在のディレクトリで、FCBのファイル名と拡張子に一致するファイルを検索します。ファイル名があいまい( "?"文字を含む)になっていると、最初の一致が見つかります。エクステントフィールドの下位バイトが使用され、ファイルが十分大きい場合にのみファイルが検索されます。 このエクステント番号を含める通常、エクステントフィールドは、この関数を呼び出す前にプログラムによってゼロに設定されます。システムファイルとサブディレクトリのエントリは見つかりません。

適切な一致が見つかった場合(A = 0)、ディレクトリエントリはDTAアドレスにコピーされ、その後にドライブ番号が付きます。必要に応じて、これをOPENファンクションコールのFCBとして直接使用できます。エクステント番号は検索FCBからのエクステントの下位バイトに設定され、レコード数は適切に初期化されます(OPENの場合と同様)。エクステントバイトには通常の位置(ファイル名拡張子フィールドの直後)が使用されるため、ディレクトリエントリの属性バイトはS1バイトの位置に格納されます。

一致が見つからない場合(A = 0FFh)、DTAは変更されません。いかなる場合も、DEによって指されたFCBがまったく変更されることはありません。この関数は、SEARCH FOR NEXT関数で検索を続行できるように十分な情報を内部的に記憶しているため、SEARCH FOR NEXT関数を実行する場合はFCBを保存する必要はありません。

CP / Mで、ドライブ番号が「?」に設定されている場合この関数では全部 割り当て済みまたは空きのディレクトリエントリが一致します。エクステントフィールドが "?"に設定されている場合も同様です。ファイルのどの範囲でも一致します。これらの機能は両方とも、通常はCP / Mファイリングシステムに固有の特別な目的のCP / Mプログラム( "STAT"など)でのみ使用されます。どちらの機能もMSX-DOS 1/2に存在しません。