HomeGEMDOSVerzeichnisfunktionenARGV-Verfahren

5.16 Zeichenweise Ein-/Ausgabe

Cauxin  Zeichen von serieller Schnittstelle lesen.
Cauxis  Eingabe-Status der seriellen Schnittstelle ermitteln.
Cauxos  Ausgabe-Status der seriellen Schnittstelle ermitteln.
Cauxout Zeichen auf serielle Schnittstelle schreiben.
Cconin  Zeichen von Standardeingabegerät einlesen.
Cconis  Tastatur-Puffer nach anliegenden Zeichen abfragen.
Cconos  Ausgabe-Status des Standardausgabegeräts überprüfen.
Cconout Zeichen auf Standardausgabegerät schreiben.
Cconrs  String von Standardeingabegerät einlesen.
Cconws  String auf Standardausgabegerät ausgeben.
Cnecin  Zeichen ohne Darstellung am Bildschirm einlesen.
Cprnos  Drucker-Status ermitteln.
Cprnout Zeichen auf Drucker ausgeben.
Crawcin Zeichen ohne Darstellung/Interpretation einlesen.
Crawio  Zeichen direkt von Tastatur lesen oder auf Bildschirm ausgeben.

Hinweis: Die Ausgaberoutinen des GEMDOS emulieren ein VT-52-Terminal.

5.16.1 Cauxin

Name: »character auxiliary input« - Eingabe über serielle Schnittstelle.
Gemdosnummer: 3
Deklaration: int32_t Cauxin ( void );
Beschreibung: Die GEMDOS-Routine Cauxin liest ein Zeichen von Handle 2 ein - normalerweise die seriellen Schnittstelle aux:. Die Funktion wartet solange, bis das Zeichen eingetroffen ist.

Hinweis: Atari empfiehlt, für diese Zwecke die BIOS-Funktion Bconin zu verwenden.
Ergebnis: Die Funktion liefert als Ergebnis das eingelesene Zeichen im low Byte des zurückgelieferten WORDs.
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cauxout   Bconin

5.16.1.1 Bindings für Cauxin

C: int32_t Cauxin ( void );
Assembler:
move.w    #3,-(sp)     ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

5.16.2 Cauxis

Name: »character auxiliary input status« - überprüft den Eingabestatus der seriellen Schnittstelle.
Gemdosnummer: 18
Deklaration: int16_t Cauxis ( void );
Beschreibung: Die GEMDOS-Routine Cauxis überprüft den Status von Handle 2 - normalerweise die seriellen Schnittstelle aux:, dahingehend, ob ein Zeichen empfangen werden kann.

Hinweis: Die Funktion arbeitet bei Umlenkung der Ein-/Ausgabe erst ab GEMDOS-Version 0.15 korrekt. Atari empfiehlt, für diese Zwecke die entsprechende BIOS-Funktion zu verwenden.
Ergebnis: Die Funktion liefert folgende Resultate:
Wert Bedeutung
   
-1 Zeichen im Puffer verfügbar
0 kein Zeichen verfügbar
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cauxos

5.16.2.1 Bindings für Cauxis

C: int16_t Cauxis ( void );
Assembler:
move.w    #18,-(sp)    ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

5.16.3 Cauxos

Name: »character auxiliary output status« - überprüft den Ausgabestatus der seriellen Schnittstelle.
Gemdosnummer: 19
Deklaration: int16_t Cauxos ( void );
Beschreibung: Die GEMDOS-Routine Cauxos überprüft den Status von Handle 2 - normalerweise die seriellen Schnittstelle aux: dahingehend, ob Zeichen ausgegeben werden können.

Hinweis: Atari empfiehlt, für diese Zwecke die BIOS-Funktion Bcostat zu verwenden.
Ergebnis: Die Funktion liefert folgende Resultate:
Wert Bedeutung
   
-1 Zeichen kann ausgegeben werden
0 Zeichen kann nicht ausgegeben werden
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cauxis   Bcostat

5.16.3.1 Bindings für Cauxos

C: int16_t Cauxos ( void );
Assembler:
move.w    #19,-(sp)    ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

5.16.4 Cauxout

Name: »character auxiliary output« - schreibt ein Zeichen auf die serielle Schnittstelle.
Gemdosnummer: 4
Deklaration: int32_t Cauxout ( int16_t c );
Beschreibung: Die GEMDOS-Routine Cauxout schreibt das Zeichen c auf Handle 2 - normalerweise die seriellen Schnittstelle aux:.

Hinweis: Die Funktion arbeitet bei Umlenkung der Ein-/Ausgabe erst ab GEMDOS-Version 0.15 korrekt. Atari empfiehlt, für diese Zwecke die BIOS-Funktion Bconout zu verwenden.
Ergebnis: Die Funktion liefert im Fehlerfall einen negativen Wert zurück.
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cauxin   Bconout

5.16.4.1 Bindings für Cauxout

C: int32_t Cauxout ( int16_t c );
Assembler:
move.w    c,-(sp)      ; Offset 2
move.w    #4,-(sp)     ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #4,sp        ; Stack korrigieren

5.16.5 Cconin

Name: »character console input« - liest ein Zeichen vom Standardeingabegerät.
Gemdosnummer: 1
Deklaration: int32_t Cconin ( void );
Beschreibung: Die GEMDOS-Routine Cconin wartet, bis ein Zeichen verfügbar ist und liest ein Zeichen vom Standardeingabegerät mit Handle 0. Als Standardeingabegerät dient in der Regel die Tastatur.

Hinweis: Durch Setzen von Bit-3 der Systemvariablen conterm kann veranlaßt werden, daß in den Bits 24..31 der Wert von Kbshift zurückgegeben wird. Leider gibt es keine Möglichkeit, Ein-/Ausgabeumlenkung sowie ein Dateiende zu erkennen. Aus diesem Grund definieren viele Bibliotheken die Tastenkombination Control-Z (ASCII-Code 26) als Zeichen für das Dateiende.
Ergebnis: Die Funktion liefert als Ergebnis in einem LONG den ASCII-Code des Zeichens im niederwertigen Wort (Bits 0 .. 7). Wenn das eingelesene Zeichen von der Tastatur kommt, beinhalten die unteren acht Bits des höherwertigen Worts (Bits 16 ... 23) den Scancode der Tastatur mit dem Zustand der Shift Taste wie oben beschrieben. Wenn eine Nicht-ASCII Taste gedrückt wurde, wird als ASCII Code 0 zurückgeliefert.
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cconout   Cconis   Kbshift

5.16.5.1 Bindings für Cconin

C: int32_t Cconin ( void );
Assembler:
move.w    #1,-(sp)     ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

5.16.6 Cconis

Name: »character console is waiting« - prüft nach, ob ein Zeichen im Standardeingabepuffer vorliegt.
Gemdosnummer: 11
Deklaration: int32_t Cconis ( void );
Beschreibung: Die GEMDOS-Routine Cconis überprüft den Status von Handle 0 - normalerweise der Standardeingabe-Puffer, dahingehend, ob ein Zeichen empfangen werden kann.
Ergebnis: Die Funktion liefert folgende Resultate:
Wert Bedeutung
   
-1L Zeichen verfügbar
0L Zeichen nicht verfügbar
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cconin

5.16.6.1 Bindings für Cconis

C: int32_t Cconis ( void );
Assembler:
move.w    #11,-(sp)    ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

5.16.7 Cconos

Name: »character console output status« - prüft den Status des Standardausgabegerätes.
Gemdosnummer: 16
Deklaration: int16_t Cconos ( void );
Beschreibung: Die GEMDOS-Routine Cconos überprüft den Status von Handle 1 - normalerweise das Standardausgabegerät, dahingehend, ob Zeichen ausgegeben werden können.

Hinweis: Die Funktion arbeitet bei Umlenkung der Ein-/Ausgabe erst ab GEMDOS-Version 0.15 korrekt.
Ergebnis: Die Funktion liefert als Ergebnis den Status des Standardausgabegeräts, und zwar wie folgt:
Wert Bedeutung
   
0 Zeichen kann nicht ausgegeben werden
1 Zeichen kann ausgegeben werden
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cconout

5.16.7.1 Bindings für Cconos

C: int16_t Cconos ( void );
Assembler:
move.w    #16,-(sp)    ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

5.16.8 Cconout

Name: »character console output« - schreibt ein Zeichen auf das Standardausgabegerät.
Gemdosnummer: 2
Deklaration: int32_t Cconout ( int16_t c );
Beschreibung: Die GEMDOS-Routine Cconout schreibt das Zeichen c auf das GEMDOS Handle 1 - normalerweise das Standardausgabegerät. Als Standardausgabegerät dient in der Regel der Bildschirm.

Hinweis: Das Zeichen c enthält in den Bits 0..7 den zugehörigen ASCII-Code (alle anderen Bits müssen 0 sein). Es erfolgt keine Umwandlung von Linefeed, deshalb müssen ASCII 13 und ACII 10 ausgegeben werden, um einen Zeilenumbruch zu erzeugen. Die Funktion arbeitet bei Umlenkung der Ein- bzw. Ausgabe erst ab GEMDOS-Version 0.15 korrekt. Für ältere Versionen darf dieses Handle nicht auf ein reines Ausgabedevice umgelenkt werden, da dieser Aufruf versucht, aus dem Ausgabestream zu lesen um spezielle Tastenkombinationen zu bearbeiten.
Ergebnis: Der Rückgabewert der Funktion ist vom Betriebssystem abhängig. Es gilt:
Betriebssystem Wert
   
TOS kein sinnvoller Rückgabewert
MagiC < 3.00
< 0 = Fehler
0L = Ausgabegerät ist voll
1L = Ausgabe war erfolgreich
MiNT/MagiC > 3.00
< 0 = Fehler
0L = Ausgabegerät ist voll
1L = Ausgabe war erfolgreich
4L = Ausgabe auf dem Terminal war erfolgreich
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: BindingCconin   Cconos   VT-52-Terminal

5.16.8.1 Bindings für Cconout

C: int32_t Cconout ( int16_t c );
Assembler:
move.w    c,-(sp)      ; Offset 2
move.w    #2,-(sp)     ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #4,sp        ; Stack korrigieren

5.16.9 Cconrs

Name: »character console read string« - liest einen String von der Standardeingabe.
Gemdosnummer: 10
Deklaration: int32_t Cconrs ( LINE *buf );
Beschreibung: Die GEMDOS-Routine Cconrs liest einen String von der Standardeingabe (GEMDOS Handle 0) - normalerweise die Tastatur, und schreibt die Zeichen gleichzeitig auf die Standardausgabe (GEMDOS Handle 1) - normalerweise der Bildschirm.

Dazu schreibt man in die Komponente maxlen die Anzahl der einzulesenden Zeichen - 1. Die Eingabe wird von der Funktion abgebrochen, wenn die Return-Taste betätigt wird, oder die maximale Eingabelänge überschritten wurde.

Spezielle Tastenkombinationen bewirken unterschiedliche Funktionen. Im einzelnen:
Eingabe Bedeutung
   
Return Ende der Eingabe
Control-J End of line; don't place Ctrl-J in buffer
Control-H Kill last character (= Delete)
Backspace letztes Zeichen löschen
Control-U/X ganze Zeile löschen
Control-R Zeile neu eingeben
Control-C Programm (!) abbrechen


Hinweis: Umlaute werden von der Funktion erst ab GEMDOS Version 0.15 korrekt behandelt, ein evtl. Dateiende wird nicht erkannt. Gelesene Zeichen werden sogar dann auf dem Bildschirm ausgegeben, wenn die Standardausgabe umgelenkt worden ist.

In MagiC ist die Funktion stark erweitert worden; hier gilt:
Eingabe Bedeutung
   
Cursor hoch/runter letzte Eingaben zurückholen
Cursor links/rechts Cursor ein Zeichen bewegen
dto. mit Shift Cursor an Zeilenanfang/-ende
Home Cursor an Zeilenanfang
Insert Einfügemodus
Shift-Insert Überschreibmodus
Shift-Clear Eingabe löschen
Tabulator wechselseitig Zeilenanfang/ende
Undo letzte Eingabe
Delete/Backspace Zeichen unter/vor Cursor löschen
F1..F10 Environmentvariablen F1..F10 abrufen


Bei normalen Dateien wird in MagiC bis zum ersten LF gelesen, wobei CR überlesen wird. Die Environmentvariablen können dabei mit jedem beliebigen Kommandointerpreter (z.B. der Mupfel) belegt werden.
Ergebnis: Die Funktion liefert bei fehlerfreier Ausführung den Wert 0L zurück und im Fehlerfall eine negative Zahl.
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cconws   MagiC

5.16.9.1 Bindings für Cconrs

C: int32_t Cconrs ( LINE *buf );
Assembler:
pea       buf          ; Offset 2
move.w    #10,-(sp)    ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

5.16.10 Cconws

Name: »character console write string« - schreibt einen String auf das Standardausgabegerät.
Gemdosnummer: 9
Deklaration: int32_t Cconws ( CONST BYTE *buf );
Beschreibung: Die GEMDOS-Routine Cconws schreibt den String buf auf das GEMDOS Handle 1 - normalerweise das Standardausgabegerät con:. Der String muß mit dem ASCII-Zeichen Null beendet werden. Für GEMDOS Versions kleiner 0.15 darf dieses Handle nicht auf ein reines Ausgabedevice umgelenkt werden, da dieser Aufruf versucht, aus dem Ausgabestream zu lesen um spezielle Tastenkombinationen zu bearbeiten.
Ergebnis: Unter TOS 1.04 liefert die Funktion den Wert 0L bei erfolgreicher Ausführung bzw. den Wert -1L im Fehlerfall. Unter anderen Betriebssystemen ist die Funktion offenbar als void deklariert, denn sie liefert dort überhaupt keinen brauchbaren Rückgabewert.
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cconrs   VT-52-Terminal   ASCII-Tabelle

5.16.10.1 Bindings für Cconws

C: int32_t Cconws ( CONST BYTE *buf );
Assembler:
pea       buf          ; Offset 2
move.w    #9,-(sp)     ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

5.16.11 Cnecin

Name: »character no echo input« - liest ein Zeichen vom Standardeingabegerät.
Gemdosnummer: 8
Deklaration: int32_t Cnecin ( void );
Beschreibung: Die GEMDOS-Routine Cnecin liest ein Zeichen direkt vom GEMDOS Handle 0 - normalerweise der Standardeingabe con: (üblicherweise die Tastatur), ohne daß das Zeichen auf dem Standardausgabegerät ausgegeben wird.

Hinweis: Flußkontrolle kann durch die Tastenkombinationen Control-S (Ausgabe stoppen) bzw. Control-Q (Ausgabe fortsetzen) erreicht werden. Bei GEMDOS Versions kleiner 0.30 hängt sich die Funktion auf, wenn das Handle umgeleitet wurde un ein End-of-File erkannt wird.
Ergebnis: Die Funktion liefert als Ergebnis das eingelesene Zeichen.
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cconin   Crawcin   Crawio

5.16.11.1 Bindings für Cnecin

C: int32_t Cnecin ( void );
Assembler:
move.w    #8,-(sp)     ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

5.16.12 Cprnos

Name: »character printer output status« - prüft den Status der Druckerschnittstelle.
Gemdosnummer: 17
Deklaration: int16_t Cprnos ( void );
Beschreibung: Die GEMDOS-Routine Cprnos überprüft den Status von Handle 3 - normalerweise die parallele Schnittstelle, dahingehend, ob Zeichen ausgegeben werden können.

Hinweis: Es ist sehr zu empfehlen, diese Funktion vor einer gewünschten Druckausgabe zu nutzen, da zum Erkennen des Drucker-Timeouts ein Zeitraum von ca. 30 Sekunden vergeht.
Ergebnis: Die Funktion liefert folgende Resultate:
Wert Bedeutung
   
-1 Drucker bereit
0 Drucker nicht bereit
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cconos

5.16.12.1 Bindings für Cprnos

C: int16_t Cprnos ( void );
Assembler:
move.w    #17,-(sp)    ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

5.16.13 Cprnout

Name: »character printer output« - schreibt ein Zeichen auf die Druckerschnittstelle.
Gemdosnummer: 5
Deklaration: int32_t Cprnout ( int16_t c );
Beschreibung: Die GEMDOS-Routine Cprnout schreibt das Zeichen c auf das GEMDOS Handle 3 - normalerweise die Druckerschnittstelle prn:.

Das auszugebende Zeichen belegt dabei die Bits 0..7, alle anderen Bits müssen 0 sein.

Hinweis: Vor der Druckausgabe sollte per Cprnos überprüft werden, ob der Drucker zur Ausgabe bereit ist. Die mit Hilfe der Funktion Setprt vorgenommenen Einstellungen werden beim Druck von quasi allen TOS Versionen nicht beachtet. Die Funktion arbeitet bei Umlenkung der Ein-/Ausgabe erst ab GEMDOS-Version 0.15 korrekt.
Ergebnis: Die Funktion liefert im Fehlerfall den Wert 0 zurück.
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cprnos   Setprt

5.16.13.1 Bindings für Cprnout

C: int32_t Cprnout ( int16_t c );
Assembler:
move.w    c,-(sp)      ; Offset 2
move.w    #5,-(sp)     ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #4,sp        ; Stack korrigieren

5.16.14 Crawcin

Name: »character raw input« - liest ein Zeichen ungepuffert vom Standardeingabegerät.
Gemdosnummer: 7
Deklaration: int32_t Crawcin ( void );
Beschreibung: Die GEMDOS-Routine Crawcin liest ein Zeichen vom GEMDOS Handle - üblicherweise die Standardeingabe, ohne daß es dabei sofort auf dem Bildschirm ausgegeben wird oder die spezielle Tastenkombinationen bearbeitet werden.

Hinweis: Die Funktion arbeitet bei Umlenkung der Ein-/Ausgabe erst ab GEMDOS-Version 0.15 korrekt.
Ergebnis: Die Funktion liefert als Ergebnis das eingelesene Zeichen.
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cconin   Cconout   Crawio

5.16.14.1 Bindings für Crawcin

C: int32_t Crawcin ( void );
Assembler:
move.w    #7,-(sp)     ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

5.16.15 Crawio

Name: »character raw input output« - ermöglicht ungepufferte Ein-/Ausgaben.
Gemdosnummer: 6
Deklaration: int32_t Crawio ( int16_t w );
Beschreibung: Die GEMDOS-Routine Crawio führt ungepufferte Ein-Ausgaben durch. Für den Parameter w gilt, wobei nur die unteren 8 Bits beachtet werden (und alle anderen Bits 0 sein sollten):
Wert Bedeutung
   
0xff Zeichen von Standardeingabe lesen
sonst Zeichen auf Standardausgabe ausgeben


Hinweis: Die Funktion arbeitet bei Umlenkung der Ein-/Ausgabe erst ab GEMDOS-Version 0.15 korrekt.
Ergebnis: Falls der Parameter w den Wert 0xff besitzt, liefert die Funktion in einem LONG den ASCII Code des eingelesenen Zeichens im niederwertige WORD (Bits 0 .. 7) zurück. Wurde das Zeichen von der Tastatur gelesen, enthält das höherwertige WORD (Bits 16 ... 23) den Scancode der Tastatur mit dem Status der Shifttaste in den oberen 8 Bits wenn Bit 3 der Systemvariable conterm gesetzt ist. Wenn eine Nicht-ASCII Taste gedrückt wurde, wird als ASCII Code 0 zurückgeliefert.

Ein Wert von 0 bedeutet, daß kein Zeichen verfügbar ist.
Verfügbar: Alle GEMDOS Versionen.
Gruppe: Zeichenweise Ein-/Ausgabe
Querverweis: Binding   Cconin   Cconout   VT-52-Terminal

5.16.15.1 Bindings für Crawio

C: int32_t Crawio ( int16_t w );
Assembler:
move.w    w,-(sp)      ; Offset 2
move.w    #6,-(sp)     ; Offset 0
trap      #1           ; GEMDOS aufrufen
addq.l    #4,sp        ; Stack korrigieren

HomeGEMDOSVerzeichnisfunktionenARGV-Verfahren