MSX-DOS2 FCS 03 48

From Z80 Machines Wiki
Jump to: navigation, search

3.48.ファイルハンドル作成(44H)

パラメータ:C = 44H(_CREATE)

DE =ドライブ/パス/ファイルASCIIZ文字列

A =オープンモードb0 set =>書き込みなし

b1 set =>読み取りなし

b2 set =>継承可能

b3..b7 - 明確でなければならない

B = b0..b6 =必須属性

b7 =新しいフラグを作成

結果:A =エラー

B =新しいファイルハンドル


レジスターBの属性で指定されているファイルまたはサブディレクトリーは、drive / path / fileストリングで指定されている名前とディレクトリーに作成されます。レジスターBがボリューム名を指定していると、 "。IATTR"エラーが戻されます。

ファイルまたはサブディレクトリを作成できない場合はエラーが返されます。この場合のエラー条件は、「新規エントリの検索」機能(機能42h)と同じで、主なエラーコードは「.FILEX」、「。DIRX」、「。SYSX」、「.FILRO」、「」です。 FOPEN "、"。DRFUL "および" .DKFUL "。 「新規検索」機能と同様に、「新規作成」フラグ(レジスターBのビット7)が設定されていると、既存のファイルは削除されず、常に「.FILEX」エラーが返されます。

属性バイトがサブディレクトリを指定する場合、隠しビットも隠しサブディレクトリを作成するように設定されてもよい。ファイルの場合は、隠しビット、システムビット、または読み取り専用ビットを設定して、適切な属性を持つファイルを作成できます。無効な属性ビットは単に無視されます。ファイルは常にアーカイブ属性ビットが設定された状態で作成されます。

上記の "open"関数と同じようにファイルが自動的に開かれ、ファイルハンドルがレジスタBに返されます。 "open mode"パラメータは "open"関数と同じように解釈されます。サブディレクトリは(これは無意味なので)開かれないので、レジスタBは0FFhとして返されますが、これは有効なファイルハンドルにはなり得ません。