        $43 CHANGE MODE

        int Fattrib( char *fname, int flag, int attrib );

Mit der Funktion İCREATEİFCREATEİ kann man einer Datei ein bestimmtes Attribut 
zuordnen. Dieses Attribut kann mit der Funktion CHANGE MODE ermittelt 
und gegebenenfalls ge„ndert werden. Dazu mu der Name oder ggf. der 
Pfadname der Datei als Parameter an CHMOD bergeben werden. Ein 
weiteres Parameter-Wort gibt an, ob die Datei-Attribute ermittelt 
oder gesetzt werden sollen. Auerdem mu ein Wort bergeben werden, 
in dem die neu zu setzenden Attribute enthalten sind. Beim Ermitteln 
der Attribute wird dieses Wort zwar nicht ben”tigt, sollte aber 
trotzdem bergeben werden. Die m”glichen Datei-Attribute haben wir 
zum Teil bereits bei der Funktion İCREATEİFCREATEİ gezeigt, sie sollen trotzdem 
noch einmal in tabellarischer Form aufgefhrt werden.

 $00 = normaler Datei-Status, lesen/schreiben m”glich
 $01 = File ist READ-ONLY.
 $02 = 'verborgenes' File
 $04 = System-File
 $08 = File ist Volume-Label, enth„lt den Diskettennamen
 $10 = File ist ein Subdirectory
 $20 = Datei wurde beschrieben und korrekt geschlossen.

Die Attribute $10 und $20 k”nnen beim Kreieren einer Datei nicht 
angegeben werden. Das Attribut $20 wird vom Betriebssystem vergeben, 
w„hrend fr das Erstellen von Subdirectories vorteilhaft die 
GEMDOS-Funktion İMKDIRİ..\DIR\DCREATEİ verwendet wird. Die MKDIR-Funktion erzeugt 
nicht nur den Directory-Eintrag mit dem entsprechenden Attribut, 
sondern richtet das Subdirectory physikalisch auf der Diskette ein.

Grunds„tzlich erh„lt man nach dem Aufruf in D0 den aktuellen 
Attributwert zurck, nach dem Setzen des Attributs also auch den 
neuen Wert, oder aber wie bei allen anderen Funktionsaufrufen eine 
negative Fehlermeldung.

----------------------------------------------------------------------
        1. Beispiel

MOVE.W  #1,-(SP)        * Datei soll READ-ONLY-Attribut erhalten
MOVE.W  #1,-(SP)        * Kennzeichen Attribut setzen.
PEA     pathname        * den Pfadnamen ben”tigen wir auch
MOVE.W  #$43,-(SP)      * Funktionsnummer
TRAP    #1
ADD.L   #10,SP
TST.W   D0              * ist ein Fehler aufgetreten?
BMI     error           * scheint so
...
pathname:               * Null-Byte am Ende nicht vergessen!
        dc.b    'killme.not',0

        2. Beispiel

MOVE.W  #0,-(SP)        * Dummy-Wert, wird nicht zwingend ben”tigt
MOVE.W  #0,-(SP)        * Kennzeichen Attribut ermitteln
PEA     pathname        * und den Pfadnamen
MOVE.W  #43,-(SP)       * Funktionsnummer
TRAP    #1
ADD.L   #10,SP
TST.W   D0              * ist ein Fehler aufgetreten?
BMI     error           * scheint so
...
pathname:               * Null-Byte am Ende nicht vergessen!
        dc.b    'was_bin.ich',0
----------------------------------------------------------------------
