MSX-DOS2 FCS 03 60

From Z80 Machines Wiki
Jump to: navigation, search

3.60ファイル属性の取得/設定(50H)

パラメータ:C = 50H(_ATTR)

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

またはfileinfoブロックポインタ

A = 0 =>属性を取得 1 =>属性を設定する

L =新規属性バイト(A = 1の場合のみ)

結果:A =エラー L =現在の属性バイト

この関数は通常、ファイルやサブディレクトリの属性を変更するために使用されます。現在の属性を見つけるために使うこともできますが、これは通常 "find first entry"機能(機能40h)で行われます。 A = 0の場合、ファイルまたはサブディレクトリの現在の属性バイトがレジスタLに返されるだけです。

A = 1の場合、属性バイトはレジスターLに指定された新しい値に設定され、この新しい値もレジスターLに戻されます。ファイルのシステム、非表示、読み取り専用、およびアーカイブ・ビットのみが変更可能です。そしてサブディレクトリのための隠されたビットだけ。他の属性ビットを変更しようとすると、 "。IATTR"エラーが返されます。 fileinfoブロックが渡されると、その中の属性バイトは新しい設定で更新されません。

グローバルファイル名文字は許可されていないため、この関数で設定できる属性は1つのオブジェクト(ファイルまたはサブディレクトリ)だけです。ルートディレクトリの属性は変更されていないため変更できません。開いているファイルハンドルがある場合、ファイルの属性は変更できません( ".FOPEN"エラー)。 「。」の属性ただし、「..」ディレクトリエントリは変更できます。 "CON"のようなデバイス名が指定されている場合、エラーは返されませんが、デバイスの属性は実際には変更されません(何も持っていないため)。