        $3C CREATE



        int Fcreate( char *fname, int attr );



In allen Betriebssystemen luft der Zugriff auf Dateien ber die 
Sequenz Erffnen der Datei, Zugriff auf die Daten, also Lesen oder 
Schreiben von Daten und abschlieendem Schlieen der Datei. Diese 
'Dreieinigkeit' existiert auch unter GEMDOS, allerdings gibt es eine 
Ausnahme. Unter CP/M z.B. kann auch eine nicht vorhandene Datei 
erffnet werden. Mit dem Erffnen wird dann die bisher nicht 
vorhandene Datei eingerichtet. Unter GEMDOS erhalten Sie in diesem 
Fall eine Fehlermeldung, da eine Datei grundstzlich erst einmal 
kreiert, also geschaffen werden mu. Dazu dient der Aufruf $3C, 
Fcreate(). Diesem GEMDOS-Aufruf werden zwei Parameter bergeben, die 
Adresse des gewnschten Filenamens und ein Attribut-Wort.



Wird als Attribut-Wort Null bergeben, so wird eine ganz normale 
Datei eingerichtet, die sowohl beschrieben wie auch gelesen werden 
kann. Wird als Attribut der Wert 1 bergeben, so kann die Datei nach 
dem Schlieen nur noch gelesen werden. Sie ist softwaremig 
schreibgeschtzt (was natrlich nicht verhindern kann, da die Datei 
nach einem Formatieren der Diskette verschwunden ist).



Weitere mgliche Attribute sind $02, $04 und $08. Das Attribut $02 
erzeugt eine 'versteckte' Datei und das Attribut $04 eine 
'versteckte' Systemdatei. Das Attribut $08 schlielich erzeugt ein 
'Volume-Label'. Das (optionale) Volume-Label ist der Name, der einer 
Diskette beim Formatieren gegeben werden kann. Aus den maximal 11 
Bytes des Namens und der Extension wird dann der Diskettenname 
erzeugt. Dateien mit einem der letzten drei Attribute sind von der 
normalen Directory-Suche im DESKTOP ausgenommen. Sie erscheinen 
jedoch im Directory z.B. des Programms COMMAND.TOS.



Wenn die Funktion CREATE beendet ist, so wird im Register D0 ein 
File-Descriptor, auch File-Handle genannt, zurckgegeben. ber diese 
File-Handle (ein numerischer Wert zwischen 6 und 45) gehen alle 
weiteren Zugriffe auf die Datei. Beim Schreiben, Lesen und Schlieen 
von Dateien mu die Handle angegeben werden. Insgesamt knnen also 
maximal $28 = 40 Dateien gleichzeitig geffnet werden.



Wenn beim CREATE-Aufruf bereits eine Datei mit diesem Namen 
existiert, so wird diese auf Null-Lnge abgeschnitten. Das ist 
gleichbedeutend mit der Sequenz Lschen der alten Datei und Erstellen 
einer neuen, gleichnamigen Datei, geht aber sehr viel schneller.



Erhalten Sie nach dem CREATE-Aufruf eine gltige Handle-Nummer in D0 
zurck, so mu die Datei nicht noch zustzlich mit $3D OPEN erffnet 
werden.



----------------------------------------------------------------------
MOVE.W  #$0,-(SP)       * Datei soll R/W-Status erhalten

PEA     filename        * Adresse des Filenamens auf den Stack

MOVE.W  #$3C,-(SP)      * Fcreate-Funktionsnummer

TRAP    #1              * GEMDOS aufrufen

ADDQ.L  #8,SP           * das bliche

TST     D0              * Fehler aufgetreten?

BMI     error           * scheint so

MOVE    D0,handle       * File-Handle fr sptere Zugriffe merken.

...

filename:

dc.b    'myfile.dat',0  * Null-Byte nicht vergessen !

handle:

ds.w    1

----------------------------------------------------------------------
