        $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. Au�erdem 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 aufgef�hrt 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 f�r 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 zur�ck, 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
----------------------------------------------------------------------
