Hinweise zu den C-Routinen

Hinweise zu den Routinen FOPEN, FCLOSE, FGETC, FPUTC, FGETS und FPUTS:

Diese Routinen arbeiten mit Adressen auf Dateikontrollblöcke oder mit Gerätekodes. Beides wird von der Routine FOPEN geliefert. Diese Routine wandelt eine Zeichenkette der Form DU:FN.EXT oder DEV: um. Es bedeuten:
DLaufwerk A..P
UBenutzernummer 0..15
FNDateiname
EXTDateiextension

In diesem Fall wird ein dynamischer Speicherbereich angefordert und zurückgegeben. Bei Aufruf von FCLOSE wird dieser Speicherbereich wieder freigegeben. Er umfasst den Platz für den FCB (36 Bytes), vier Rekords (512 Bytes) und internen Speicher (6 Bytes = 554 Bytes).

Bei Dateien wird, in Abhängigkeit vom gewählten Modus, folgende Aktivität ausgeführt:
r, orÖffnen einer Datei zum Lesen. Ist die Datei nicht vorhanden, so wird ein Fehler zurückgegeben.
w, owÖffnen einer Datei zum Schreiben. Ist eine Datei vorhanden, so wird diese zuvor gelöscht.
aÖffnen einer Datei zum Schreiben. Ist eine Datei vorhanden, so wird der Schreibzeiger auf das Ctrl-Z (End of file) positioniert, andernfalls wird eine neue Datei angelegt.
oaÖffnen einer Datei zum Schreiben. Ist eine Datei vorhanden, so wird der Schreibzeiger hinter den letzten Rekord positioniert, andernfalls wird eine neue Datei angelegt.

Für Geräte wird folgender Kode erzeugt:
CON:w3
RDR:r4
PUN:w5
LST:w6
CON:r7
NUL:w8
NUL:r9

Bei Aufruf der Routinen FGETC und FGETS kann als Gerätekode auch 1 gewählt werden. Dann wird die Datei oder das Gerät gewählt, das in $STDIN definiert ist (Voreinstellung CON:). Bei Aufruf von FPUTC und FPUTS ist Kode 2 erlaubt, es gilt die Definition in $STDOUT (Voreinstellung ebenfalls CON:).
Ist der binäre Modus nicht gewählt, so wird
bei der Eingabe die Folge <CR><LF> zurückgegeben als <LF>
bei der Ausgabe die Folge <LF> ausgegeben als <CR><LF>

Für die Geräte existiert das Kontrollbyte $FLAGS, dessen Bits wie folgt definiert sind
xxxxxx00CON, gepufferte Eingabe
xxxxxx01CON, ungepufferte Eingabe, <CR> wird als <LF> zurückgegeben
xxxxxx10CON, ungepufferte Eingabe
xxxxxx11CON, ungepufferte Eingabe, Zeichen wird nicht auf Bildschirm ausgegeben
xxxxx1xxCON, binäre Ausgabe
xxxx1xxxRDR, binäre Eingabe
xxx1xxxxPUN, binäre Ausgabe