MSX-DOS2 FCS 03 16

From Z80 Machines Wiki
Jump to: navigation, search

3.16 OPEN FILE [FCB](0FH)

パラメータ:C = 0FH(_FOPEN)

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

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

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


未開封のFCBには、現在のドライブを示すために0のドライブ、あいまいなファイル名と拡張子を含める必要があります。指定されたドライブの現在のディレクトリで、一致するファイルが検索され、見つかった場合はそれが開かれます。サブディレクトリまたはシステムファイルである一致エントリは無視され、ファイル名があいまいな場合は、最初に適切な一致エントリが開かれます。

デバイス名は、デバイスが実際にはディスクファイルであるかのようにアクセスできるように、FCBに(コロンなしで)入れることができます。標準デバイス名は「プログラムインタフェース仕様」で定義されています。 エクステント番号の下位バイトはこの関数によって変更されず、ファイルは指定されたエクステントを含むのに十分な大きさである場合にのみ開かれます。通常、一時プログラムはこの関数を呼び出す前にエクステント番号をゼロに設定します。 CP / Mとの互換性を確保するために、エクステント番号の上位バイトはゼロに設定されます。

FCBのファイル名と拡張子は、ディレクトリエントリから開かれたファイルの実際の名前に置き換えられます。これは通常、以前のものと同じですが、あいまいなファイル名または小文字のファイル名が使用されている場合は異なる場合があります。

レコード数は、指定されたエクステント内の128バイトレコードの数に設定されます。これはファイルサイズから計算されます。ファイルサイズフィールド自体、ボリュームID、および8つの予約済みバイトも設定されます。現在のレコードフィールドとランダムレコードフィールドは、この機能によって変更されることはありません。読み取りまたは書き込み機能を使用する前にそれらを初期化するのは、アプリケーションプログラムの責任です。

ファイルが見つからない場合は、 "APPEND"環境項目が調べられます。これが設定されている場合は、ファイルを探すための2番目のディレクトリを指定するドライブ/パス文字列として解釈されます。指定されたディレクトリでファイルが検索され、見つかった場合は上記のように開かれます。この場合、元のドライブバイトがゼロ(デフォルト)であれば、ファイルの正しいアクセスを保証するために、FCBのドライブバイトはファイルが見つかったドライブに設定されます。