home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-06-29 | 249.4 KB | 13,299 lines |
-
-
-
-
-
- S A L T - Programmierhandbuch
-
-
-
-
- Copyright (c) 1988-95 ELSA GmbH, D-52070 Aachen
-
-
- Telix und SALT Copyright (c) 1986-95 deltaComm Development und
- Copyright (c) 1988-95 ELSA GmbH, Aachen. Alle Rechte vorbehalten.
-
-
- Alle Angaben in diesem Handbuch sind nach sorgfältiger Prüfung zusam-
- mengestellt worden, gelten jedoch nicht als Zusicherung von Produkt-
- eigenschaften. ELSA haftet ausschließlich in dem Umfang, der in ihren
- Allgemeinen Geschäftsbedingungen festgelegt ist.
-
- Weitergabe und Vervielfältigung dieses Handbuchs und die Verwertung
- seines Inhalts sind nur mit schriftlicher Erlaubnis von ELSA gestat-
- tet. Änderungen, die dem technischen Fortschritt dienen, bleiben vor-
- behalten.
-
-
-
- Warenzeichen
-
- IBM ist ein eingetragenes Warenzeichen von International Business Ma-
- chines.
-
-
-
-
- 1. Die Telix-Programmiersprache SALT . . . . . . . . . . . . . . 2
- 1.1 Welche Möglichkeiten bietet SALT? . . . . . . . . . . . . 2
- 1.2 Über dieses Handbuch . . . . . . . . . . . . . . . . . . 2
- 1.3 Schreibweise . . . . . . . . . . . . . . . . . . . . . . 2
- 1.4 Erstellen von SALT-Programmen . . . . . . . . . . . . . . 2
-
- 2. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
-
- 3. Programmstruktur . . . . . . . . . . . . . . . . . . . . . . 7
- 3.1 Variablen . . . . . . . . . . . . . . . . . . . . . . . . 7
- 3.2 Ausdrücke und Operatoren . . . . . . . . . . . . . . . . 8
- 3.3 Funktionen . . . . . . . . . . . . . . . . . . . . . . . 11
- 3.4 Anweisungen . . . . . . . . . . . . . . . . . . . . . . . 12
- 3.4.1 Expression . . . . . . . . . . . . . . . . . . . . . . 12
- 3.4.2 If . . . . . . . . . . . . . . . . . . . . . . . . . . 12
- 3.4.3 While . . . . . . . . . . . . . . . . . . . . . . . . . 14
- 3.4.4 Do...while . . . . . . . . . . . . . . . . . . . . . . 15
- 3.4.5 For . . . . . . . . . . . . . . . . . . . . . . . . . . 15
- 3.4.6 Return . . . . . . . . . . . . . . . . . . . . . . . . 16
- 3.4.7 Break . . . . . . . . . . . . . . . . . . . . . . . . . 17
- 3.4.8 Continue . . . . . . . . . . . . . . . . . . . . . . . 17
- 3.4.9 Goto . . . . . . . . . . . . . . . . . . . . . . . . . 18
-
- 4. Eingebaute Funktionen . . . . . . . . . . . . . . . . . . . . 21
- 4.1 Auflistung der Funktionen, nach Typen geordnet . . . . . 21
- 4.2 Beschreibung der einzelnen Funktionen . . . . . . . . . . 23
-
- 5. Systemvariablen . . . . . . . . . . . . . . . . . . . . . . . 150
-
- 6. Anhang A ASCII-Zeichensatz . . . . . . . . . . . . . . . . 194
-
- 7. Anhang B Erweiterte Tastenscancodes . . . . . . . . . . . . 196
-
- 8. Anhang C - Farbattribute . . . . . . . . . . . . . . . . . . 197
-
- 9. Anhang D - Index . . . . . . . . . . . . . . . . . . . . . . 198
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 1 -
-
-
-
- 1. Die Telix-Programmiersprache SALT
-
- Im Kommunikationsprogramm Telix ist eine Programmiersprache namens
- SALT integriert (Script Application Language for Telix). SALT ermög-
- licht die Durchführung beinahe jeder kommunikationsbezogenen Anwendung
- unter Telix. SALT ähnelt der Sprache C, aber auch wenn Sie bereits
- eine der andere Programmiersprachen (wie Pascal, BASIC, etc.) verwen-
- det haben, werden Sie sich bei SALT bald "zuhause" fühlen. Einerseits
- ist SALT zum leichten Erlernen ausgelegt, ist andererseits aber, wie
- die meisten Programmiersprachen, sehr umfangreich, so daß es sich emp-
- fiehlt, dieses Kapitel sorgfältig zu lesen und die angeführten Bei-
- spiele sowie die in Telix enthaltenen Beispiele für SALT-Befehlsdatei-
- en zu studieren.
-
-
- 1.1 Welche Möglichkeiten bietet SALT?
-
- Wie ein Programm jeder anderen Programmiersprache wird ein SALT-Pro-
- gramm (auch ,Scriptdatei' = Befehlsdatei genannt) typischerweise zum
- Ausführen von Aufgaben oder Funktionen benutzt. Diese reichen von sehr
- simplen Aufgaben bis hin zu äußerst komplexen Aktionen. Eine SALT-Be-
- fehlsdatei kann z. B. dergestalt mit einem Eintrag im Anwahlverzeich-
- nis gekoppelt werden, daß sie bei Erreichen des betreffenden Anschlus-
- ses automatisch Ihre Identifizierung und Ihr Paßwort übermittelt. Eine
- weitaus kompliziertere Scriptdatei ist die Basis des Telix-Hostmodus.
-
-
- 1.2 Über dieses Handbuch
-
- Dieses Handbuch ist eine Beschreibung der SALT-Programmiersprache. Es
- ist keineswegs als Lehrbuch über Programmieren im Allgemeinen konzi-
- piert. Es wird davon ausgegangen, daß der Leser bereits mit allgemei-
- nen Programmierkonzepten vertraut ist.
-
-
- 1.3 Schreibweise
-
- Wenn in diesem Handbuch bestimmte Wörter in spitze Klammern gesetzt
- oder kursiv gedruckt sind, z. B. <expression>, handelt es sich um Va-
- riablen, denen ein Wort, eine Wortgruppe oder einige Textzeilen zuge-
- ordnet sind. Die Bedeutung der kursiv gedruckten Wörter wird bei deren
- Erscheinen im Handbuch erläutert.
-
-
- 1.4 Erstellen von SALT-Programmen
-
- Grundsätzlich ist eine SALT-Befehlsdatei eine Folge von Anweisungen in
- einer bestimmten Syntax, die Telix befolgen soll. Zum Erstellen dieser
- Befehlsdatei können Sie jeden beliebigen Text-Editor verwenden, sofern
- die Ausgabe als ASCII-Text erfolgen kann (d. h. wenn Sie Ihr Textver-
- arbeitungsprogramm verwenden, müssen Sie es in der Regel ausdrücklich
- anweisen, den Text im ASCII-Format auszugeben, ohne spezielle Steuer-
- zeichen hinzuzufügen). Sie können einer SALT-Programmdatei jeden be-
- liebigen Namen zuweisen, jedoch empfiehlt sich zur Kennzeichnung die
- Erweiterung .SLT.
-
- Wenn Sie Ihre Befehlsdatei erstellt und auf Diskette oder Platte gesi-
- chert haben, muß sie kompiliert werden. Das in Telix enthaltene Pro-
- gramm CS.EXE liest Ihre ,Quell'datei und gibt ihr eine für Telix ver-
- ständliche Form (kompiliert sie). Telix kann die kompilierte Datei nun
- schneller laden; meist ist sie auch kürzer.
-
- - 2 -
-
-
-
- Zum Kompilieren einer Befehlsquelldatei tippen Sie am DOS-Prompt
-
- cs <Pfadname>
-
- gefolgt von <Enter> (oder Carriage Return). Das Programm CS.EXE muß im
- aktuellen Verzeichnis stehen oder im DOS-Pfad. <Pfadname> steht für
- den Namen der zu kompilierenden Datei, ggf. zusammen mit Laufwerks-
- und Verzeichnisangabe. Die kompilierte Version erhält den gleichen Na-
- men, jedoch die Erweiterung .SLC.
-
- Wenn der Scriptcompiler in Ihrer Quelldatei einen Fehler entdeckt,
- wird er den kompletten Vorgang abbrechen und Ihnen die Zeile, in der
- der Fehler auftrat und seine Art angeben. Der Fehler sollte nun beho-
- ben und die Quelldatei erneut kompiliert werden. Der Vorgang wird wie-
- derholt, bis der Compiler keinen Fehler mehr erkennt.
-
- Unter Telix kann diese kompilierte Datei dann verschiedene Anwendungen
- finden. Sie kann durch den Befehl <Alt>-<G> (Script ausführen), als
- Zusatz zur Befehlszeile beim Aufruf von Telix, an einen Eintrag im
- Anwahlverzeichnis gekoppelt oder innerhalb einer anderen Befehlsdatei
- ausgeführt werden. Die ersten drei Möglichkeiten sind im Telix-Bedie-
- nerhandbuch beschrieben, die letzte später im vorliegenden Handbuch.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 3 -
-
-
-
- 2. Syntax
-
- Beim Editieren von Befehlen, Funktionen und Variablennamen kommt es
- auf Groß- oder Kleinschreibung nicht an, sondern nur innerhalb einer
- Zeichenkettenkonstanten (z. B. "Hello" ist eine andere Zeichenkette
- als "hello"). Zwischenräume (wie Leerzeichen, Tabulator, Carriage Re-
- turn und Line Feed) werden nicht beachtet. Der Befehlsübersetzer igno-
- riert die Plazierung der einzelnen Bestandteile, so daß Sie Ihre Pro-
- gramme beliebig anordnen können.
-
- Beispiel:
-
- if (wert == 1)
- prints("Der Wert ist gleich 1!");
- else
- prints("Der Wert ist ungleich 1.");
-
- ist gleichbedeutend mit
-
- if (wert == 1) prints("Der Wert ist gleich 1!");
- else prints("Der Wert ist ungleich 1.");
-
- und sogar mit
-
- if(wert==1)prints("Der Wert ist gleich 1!");else prints
- ("Der Wert ist ungleich 1.");
-
- Zwischenräume spielen nur dann eine Rolle, wenn sie eine Zeichenkette,
- ein Schlüsselwort oder einen Funktionsnamen unterbrechen. Das Schlüs-
- selwort ,while' z. B. verliert seine Bedeutung, wenn es unterbrochen
- wird. Das gleiche gilt für alle anderen Schlüsselworte und für Funk-
- tionsnamen, zwischen einem Befehl und anderen Zeichen muß ein Leerzei-
- chen stehen. Z. B. hat ,while' eine andere Bedeutung als ,whileabc'.
- Es dient der Klarheit, wenn Sie Ihren Kode durch sinnvolle Einrückun-
- gen und Zwischenräume leicht verständlich gestalten. Es gibt z. B.
- keinen Grund dafür, mehr als einen Befehl in eine Zeile zu setzen;
- auch wenn dies zulässig ist. Ein Beispiel für Programmierstil zeigen
- die in Telix enthaltenen Musterprogramme.
-
- Eine Zeichenkettenkonstante ist eine Folge von ASCII-Zeichen, die in
- Anführungszeichen gesetzt ist, z. B: "Hello", "Goodbye" oder "Telix".
- Häufig werden für Zeichenkettenkonstanten auch Spezialzeichen benö-
- tigt, die über die Tastatur nicht so leicht eingegeben oder auf dem
- Bildschirm nicht problemlos darzustellen sind. Dies löst man über das
- sogenannte Escape-Zeichen, das mit dem Accent circonflex dargestellt
- wird (,^'). Wenn der SALT-Compiler eine Zeichenkettenkonstante liest
- und auf das ,^'-Zeichen trifft, tauscht er es gegen einen bestimmten
- ASCII-Kode auf der Basis des folgenden Buchstabens aus. Im folgenden
- die Übersetzungen:
-
- ^c ,c' sei ein beliebiger Buchstabe. Die dem Buchstaben ,c' zuge-
- ordnete Steuerfunktion wird in den Text eingefügt. So steht ^M
- für <Ctrl>-<M>, ^J für <Ctrl>-<J>, etc. Das ,c' kann groß- oder
- kleingeschrieben werden. Der tatsächliche Vorgang ist hier, daß
- 64 vom Wert des Buchstabens ,c' subtrahiert wird, so daß das
- Escape Zeichen beispielsweise mit ^[ dargestellt werden kann.
-
- ^^ Das eigentliche ,^' wird in den Text eingefügt.
-
- ^" Erscheint im Text als eigentliches ,"'. Wenn eine Zeichenkette
- Anführungszeichen enthalten soll, müssen sie auf diese Weise
-
- - 4 -
-
-
-
- angesteuert werden, da das einfache ,"'-Zeichen vom Compiler als
- Ende der Zeichenkette angesehen wird. Beispiel: ,Er sagte ^"Hal-
- lo^".' wird übersetzt in ,Er sagte "Hallo"'.
-
- ^' Erscheint als eigentliches ,'' im Text.
-
- ^nnn ,nnn' steht für bis zu drei Ziffern für den ASCII-Wert des Zei-
- chens, das in den Text eingefügt werden soll. Es werden höch-
- stens drei Ziffern gelesen bzw. bis zum ersten nicht-numerischen
- Zeichen. Z. B. würde der Compiler die Zeichenkette ,S^65LT' ein-
- lesen und die Zeichenkette ,SALT' ausgeben, weil A den ASCII--
- Wert 65 hat. Wenn nnn innerhalb einer Zeichenkette von anderen
- Ziffern gefolgt wird und weniger als drei Stellen hat, müssen
- Sie die fehlenden Stellen durch ein bzw. zwei Nullen vor der
- Wertangabe ersetzen, weil sonst ein falscher Wert eingelesen
- würde. Die Zeichenkette ,^79 Park Avenue' würde übersetzt in ,0
- Park Avenue', da 79 der ASCIIWert von ,0' ist. Wenn Sie tatsäch-
- lich ein <Ctrl>-<G> (ASCII-Code 7), gefolgt von ,9 Park Avenue'
- möchten, geben Sie die Zeichenkette ,^0079 Park Avenue' ein.
-
- Eine Integerkonstante ist eine Ziffernsequenz aus dem Bereich der gan-
- zen Zahlen von -2147483648 bis 2147483647. Eine Integerkonstante muß
- mit einer Ziffer von 0 bis 9 beginnen oder mit einem Minuszeichen (-),
- das von einer Ziffer gefolgt wird. Bei allen folgenden Zeichenketten
- handelt es sich um gültige Integerkonstanten:
-
- 10
- -400067
- 999
-
- Eine Integerkonstante kann auch in hexaldezimaler Form eingegeben wer-
- den (Basis 16, wobei die Ziffern ,0' bis ,9' durch die Buchstaben ,a'
- bis ,f' ergänzt werden, um über 16 Werte zu verfügen). Hex-Werten muß
- ,0x' vorangestellt werden, damit der Compiler sie als solche interpre-
- tiert, auf Groß- bzw. Kleinschreibung kommt es dabei nicht an. Bei
- allen folgenden Zeichenketten handelt es sich um gültige Eingaben in
- hexadezimaler Form:
-
- 0xff00
- 0Xa2
- 0x7D
- 0x1AbCdEf
-
-
- 2.1 Kommentare
-
- Kommentare in einer Befehlsdatei beeinflussen die Arbeitsweise des
- Programms in keiner Weise, sondern dienen lediglich zur Erläuterung
- oder Beschreibung. Wenn in einer SALT Befehlsdatei die Zeichen // an-
- getroffen werden, so werden alle Zeichen ab dort bis zum Ende der Zei-
- le als Kommentar angesehen und ignoriert. z. B.:
-
- prints("Hallo"); // Diese Zeile bewirkt die Ausgabe von "Hallo"
-
-
-
-
-
-
-
-
- - 5 -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 6 -
-
-
-
- 3. Programmstruktur
-
- Ein SALT-Programm hat folgendes Format:
-
- <global_variable_definition>
- ...
- <global_variable_definition>
-
- <function_definition>
-
- <global_variable_definition>
- ...
- <global_variable_definition>
-
- <Function_definitions>
-
- ...
-
-
- und so weiter. Grundsätzlich besteht eine Scriptdatei aus Definitionen
- globaler Variablen (Variablen, die dann für den Rest dem Programm zur
- Verfügung stehen) und Funktionsdefinitionen (Funktionen bestehen aus
- Befehlszeilen, die als Gruppe zusammengefaßt sind und so über einen
- Namen aufgerufen werden können). Um ablauffähig zu sein, muß sie keine
- globalen Variablen enthalten, notwendig ist lediglich die Verwendung
- wenigstens einer Funktion namens ,main'. Beim folgendem Beispiel han-
- delt es sich um eine komplette Scriptdatei:
-
- main()
- {
- prints ("hallo");
- }
-
- Nach Kompilieren und Starten gibt dieses Programm die Zeichenkette
- "hallo" auf dem Bildschirm aus.
-
-
- 3.1 Variablen
-
- Eine Variable ist ein Platz im Systemspeicher, der eine bestimmte In-
- formation enthält. Der Inhalt einer Variablen kann per Programmierkode
- geändert werden. (daher der Name ,Variable'). SALT kennt zwei Varia-
- blentypen: Integer-Variablen und Zeichenkettenvariablen. Ersterer Typ
- enthält einen Integer-Wert (z. B. 485624 oder -627), während letzterer
- Textzeichen enthält (z. B. "Telix" oder "SCRIPT").
-
- Es ist abhängig von der Plazierung der Definierung einer Variablen, ob
- sie globalen oder lokalen Charkater hat. Ist eine Variable global,
- bedeutet das, daß sie an jeder ihrer Definierung folgenden Stelle bis
- zum Dateiende benutzt werden kann. Wenn sie lokal ist, kann sie nur in
- dem Teil der Datei benutzt werden, in den sie eingeschlossen ist, z.
- B. die Funktion, innerhalb der sie definiert wird . Ein Variablenname
- kann bis zu 31 Stellen haben und die Buchstaben ,A' bis ,Z' oder ,a'
- bis ,z', die Ziffern ,0' bis ,9' und den Unterstrich ,_' enthalten.
- Der Name darf nicht mit einer Ziffer beginnen. Zulässig sind z. B.
- ,his_name2' und ,_his_name2', nicht aber ,_his_name'.
-
- Eine Integer-Variable wird wie folgt definiert:
-
- int <varname>;
-
-
- - 7 -
-
-
-
- wobei <varname> für den Namen steht, der der Variablen zugewiesen wer-
- den soll. Eine andere Definierungsmöglichkeit ist:
-
- int <varname1>, <varname2>, ..., <varnameN>;
-
- wodurch Sie mehr als eine Integer-Variable innerhalb einer Anweisung
- definieren können.
-
- Der Integer-Variable kann wie folgt ein Originalwert zugewiesen wer-
- den:
-
- int <varname> = <int_const>;
-
- <int_const> steht für eine Integer-Konstante. Desgleichen können Ori-
- ginalwerte, wie oben beschrieben, mehrfach definiert werden, in dem
- die Zuweisung vor das Komma gestellt wird.
-
- Einige Beispiele:
-
- int maximum
- int start=0;
- int level, i, count=20, loop;
-
- Eine Zeichenkettenvariable wird wie folgt definiert:
-
- str <varname> [<max>], <varname2> [<max>], ...
- <varnameN> [<max>]
-
- wodurch Sie innerhalb einer Anweisung mehr als eine Zeichenkette defi-
- nieren können. Der Zeichenkette kann wie folgt ein Originalwert zuge-
- wiesen werden:
-
- str <varname> [<max>] = <str_const>;
-
- wobei <str_const> für eine Zeichenkettenkonstante steht. Desgleichen
- können Originalwerte, wie oben beschrieben, mehrfach definiert werden,
- indem die Zuweisung vor das Komma gestellt wird. Einige Beispiele:
-
- str password[80];
- str password[40] = "mypass", name[30];
-
- Das Feld für die Kettenlänge kann bei der Spezifizierung eines Origi-
- nalwertes freibleiben. Dann wird davon ausgegangen, daß die Länge der
- Zeichenkette der des zugewiesenen Texten entspricht.
-
- strname [ ] = "John";
-
- Wenn eine Variable außerhalb einer Funktion definiert wird, hat sie
- globalen Charakter. Innerhalb einer Funktion hat sie nur lokale Wir-
- kung und wird auch nur dort erkannt werden. Wird einer Variable inner-
- halb einer Funktion der gleiche Name zugewiesen, wie er außerhalb be-
- reits existiert, steht er während der Funktion zur Verfügung. Mit dem
- Ende der Funktion wird jedoch bei Zugriff auf die Variable wieder die
- globale Version geliefert.
-
-
- 3.2 Ausdrücke und Operatoren
-
- Ein Ausdruck ist eine Zusammenstellung von Symbolen, die einen Wert
- ergeben, wenn sie ausgewertet werden. Anders ausgedrückt ist ein Aus-
- druck grundsätzlich eine Formel. Ein Ausdruck darf aus Konstanten,
-
- - 8 -
-
-
-
- Variablen, Funktionsaufrufen und Operatoren bestehen. Ein Ausdruck
- kann sehr einfach oder auch sehr kompliziert sein.
-
- Im folgenden einige Beispiele:
-
- 10 + 3 - 5
- 9 * 7 / 63 - 30
- result = 10 * max(a, b)
- month >= 10
- 200
- command == "bye"
- prints("Hallo")
-
- In einem Ausdruck sind es die Konstanten, Variablen und Funktionsauf-
- rufe, mit denen gearbeitet wird, während die Operatoren (+, *, etc)
- diese Arbeiten ausführen. Es gibt viele verschiedene Operatoren, die
- in 2 Gruppen aufzuteilen sind. Binäre Operatoren (wie +, *, /) bezie-
- hen die Ausdrücke auf beiden Seite des Operators in die Kalkulation
- ein, während nicht-binäre Operatoren vor einem einzelnen Ausdruck ste-
- hen und auf diesen einwirken.
-
- Folgende Tabelle ist eine Zusammenstellung der in SALT verfügbaren
- Operatoren:
-
-
- Symbo (Un/Bin)är Seine Aufgabe
- --------------------------------------------------------
- - unär Arithmetische Negation
- ! unär Logisches NOT
- not unär Logisches NOT (alternativ)
- * binär Multiplikation
- / binär Division
- % binär Modula
- + binär Addition
- - binär Subtraktion
-
- Symbol (Un/Bin)är Seine Aufgabe
- -----------------------------------------------------
- < binär Kleiner als
- > binär Größer als
- <= binär Kleiner oder gleich
- >= binär Größer oder gleich
- == binär Gleichheitsszeichen
- != binär Ungleich
- & binär Bitweises UND
- | binär Bitweises ODER
- ^ binär Bitweises Exclusiv ODER
- && binär Logisches UND
- and binär Logisches UND (alternativ)
- || binär Logisches ODER
- or binär Logisches ODER (alternativ)
- = binär Zuweisung
-
-
- Beachten Sie bitte, daß das Minuszeichen sowohl als arithmetische Ne-
- gation als auch zum Subtrahieren verwendet werden kann. Beachten Sie
- bitte weiterhin, daß ,!' gleichbedeutend ist mit ,not' sowie ,&&' mit
- ,and' und ,||' mit ,or'. Den jeweils erstgenannten Formen sollte der
- Vorzug gegeben werden, da sie nicht durch Leerzeichen von anderen Zei-
- chen getrennt werden müssen, um vom Compiler erkannt zu werden, wohin-
- gegen es für Anfänger einfacher sein mag, sich die jeweils zweite Form
-
- - 9 -
-
-
-
- zu merken. Bitte verwechseln Sie ferner nicht ,=' (Zuweisungsoperator)
- mit ,==' (Gleichungsoperator). Ersterer wird verwendet, um einer Va-
- riable einen Wert zuzuweisen, während letzterer gebraucht wird, um
- zwei Werte miteinander zu vergleichen. Angenommen, Sie haben die bei-
- den Ausdrücke <expr1> und <expr2>. <expr1>=<expr2> würde dem einen den
- anderen Wert zuweisen, während <expr1>==<expr2> prüfen würde, ob sie
- gleich sind. Z. B.:
-
- num=10
-
- weist der Variable ,num' den Wert 10 zu, während
-
- num==10
-
- einen Wert ungleich 0 (TRUE) ergibt, wenn num gleich 10 ist und 0
- (FALSE), wenn num ungleich 10 ist. Auch gibt es einen Unterschied zwi-
- schen logischen und Bit-Operatoren. Die logischen Operatoren (wie and,
- &&, or, ||, etc.) arbeiten mit den Werten TRUE und FALSE und liefern
- auch TRUE oder FALSE als Ergebnis, während die Bit-Operatoren (&, |,
- ^) die einzelnen Datenbits bearbeiten. Die Bit-Operatoren müssen in
- einer Telix-Befehlsdatei beinahe nie verwendet werden, es sei denn,
- Sie möchten den Wert eines einzelnen Bits eines Datenbytes feststel-
- len.
-
- Jeder Operator erzeugt einen Wert, der das Ergebnis der ausgeführten
- Operation darstellt (z. B. 10 * 7 würde 70 ergeben). Die konditionalen
- oder Gleichungsoperatoren, wie ==, >, <= etc., ergeben den Wert 0 für
- FALSE und ungleich 0 für TRUE, auf Grundlage der Ergebnisse der jewei-
- ligen Ausdrücke. Sogar der Zuweisungsoperator = ergibt einen Wert.
-
- Das Ergebnis des Ausdrucks
-
- num = 10
-
- wäre 10.
-
- Welche Operatoren vor anderen Vorrang haben, ist festgelegt, um die
- Reihenfolge ihrer Wertung zu bestimmen. Z. B. 7 + 3 * 9 ist gleich 34,
- weil 3 * 9 zuerst gewertet und dann zu 7 addiert wird (* hat Vorrang
- vor +). Im folgenden sind die Operatoren ihrer Wichtigkeit nach aufge-
- führt, zuoberst die Operatoren mit dem höchsten Vorrang. Die in einer
- Zeile stehenden Operatoren sind jeweils gleich wichtig und werden der
- Reihe nach abgearbeitet.
-
- - !
- * / %
- + -
- < > <= >=
- == !=
- &
- |
- and &&
- or ||
- =
-
- Wenn für die Wertung eine Reihenfolge benötigt wird, die hier nicht
- vorgesehen ist, können Klammern verwendet werden. Z. B.: 99 + 1 * 10
- ist gleich 109; (99 + 1) * 10 ist gleich 1000.
-
- Wenn Sie sich nicht über den Vorrang der Operatoren im Klaren sind,
- die Sie beim Schreiben eines Ausdrucks verwenden, sollten Sie von den
-
- - 10 -
-
-
-
- Klammern Gebrach machen!
-
-
- 3.3 Funktionen
-
- Mittels einer Funktion werden einige Befehlszeilen in einer Gruppe
- zusammengefaßt. Eine Telix-Befehlsdatei enthält eine oder mehrere
- Funktionen. Sie bieten einige Vorteile:
-
- ∙ Eine Funktion kann von einer anderen aufgerufen werden und eine
- bestimmte Aufgabe ausführen. Die aufrufende Funktion braucht von
- der aufgerufenen Funktion nur zu wissen, was diese bewirkt. Eine
- Befehlsdatei kann so in handliche Einheiten unterteilt werden, was
- auch das Schreiben des Programms und die Fehlersuche erleichtert.
-
- ∙ Wie bereits erwähnt, arbeitet eine Funktion in einen "Privat"-
- Bereich. Das bedeutet, daß innerhalb einer Funktion definierte Va-
- riable nur in dieser gelten. Deshalb brauche Sie nicht zu befürch-
- ten, daß sie in einem anderen Teil der Befehlsdatei geändert wer-
- den.
-
- ∙ Sie können eine Funktionsbibliothek aufbauen, um fertiggestellten
- Kode nicht mehrfach schreiben zu müssen.
-
- Funktionen werden im folgenden Format definiert:
-
- <funcname> (<arg1>, <arg2>, ..., <argN>)
-
- {
- <variable_def>
- ...
- <variable_def>
-
- <statement>
- ...
- <statement>
- }
-
-
- <funcname> ist der Name der Funktion. Er folgt den selben
- Regeln wie die anderen SALT-Bezeichner. Der selbe
- Name kann nur einmal verwendet werden.
-
- <arg1> bis <argN> sind die dieser Funktion zugewiesenen Werte (Pa-
- rameter). Zuweilen benötigt eine Funktion zum Aus-
- führen ihrer Aufgabe solche Werte. Jede Zuweisung
- erfolgt in der Form <type> <name>, wobei <type>
- entweder ,int' oder ,str' sein kann und <name> der
- Name ist, mit dem die Funktion aufgerufen werden
- soll. Einer Funktion können maximal 12 Werte zu-
- gewiesen werden.
-
- <variable_def> ist die Definierung einer Variablen, wie vorher
- unter dieesem Punkt beschrieben. Jede beliebige
- Anzahl von Variablen kann in diesem Bereich der
- Funktion definiert werden. Sie haben lokalen Cha-
- rakter und sind nur innerhalb dieser Funktion ver-
- fügbar.
-
- <statement> ist eine Anweisung. Eine Funktion kann so viele
- Anweisungen wie nötig haben. Das Format einer An-
-
- - 11 -
-
-
-
- weisung wird nachstehend beschrieben.
-
- Zunächst jedoch ein Beispiel für eine vollständige Funktion:
-
- max (int a, int b)
- {
- int result;
- if (a > b)
- result = a;
- else
- result = b;
- return result;
- }
-
- Diese Funktion gibt von zwei Werten, die ihr übergeben werden, den
- höheren aus. Sie hätte wesentlich einfacher geschrieben werden können
- (ohne Verwendung der Variablen), doch wurde diese Form gewählt, damit
- alle Elemente einer Funktion vorhanden sind.
-
-
- 3.4 Anweisungen
-
- Anweisungen sind Hauptbestandteil eines Programms. Eine Anweisung en-
- det IMMER mit einem Semikolon (;). Wo auch immer Sie Anweisungen ver-
- wenden, können Sie sie mit geschweiften Klammern zu einer Gruppe zu-
- sammenfassen (hierzu später mehr). Es gibt verschiedene Schlüsselwör-
- ter für diese Anweisungen: expression, if, while, do...while, for,
- return, break, continue und goto. Die einzelnen Arten haben jeweils
- einige typischen Bestandteile.
-
-
- 3.4.1 Expression
-
- Der <expression>-Befehl ist der einfachste und gebräuchlichste. Sein
- Format ist:
-
- <expression>;
-
- wobei <expression> für jeden möglichen Ausdruck steht. Einige Beispie-
- le:
-
- result = 20;
- password = "Beef";
- pause (20);
- num = 20 * max(a, b);
-
- Vergessen Sie nicht das Semikolon am Ende einer jeden Anweisung, da
- der Compiler sonst die nächste Zeile als Bestandteil der aktuellen
- betrachten und einen Fehler melden wird.
-
-
- 3.4.2 If
-
- If wird verwendet, wenn eine Anweisung oder eine Gruppe von Anweisun-
- gen nur unter einer bestimmten Bedingung zum Tragen kommen soll. Im
- folgenden das Format eines if-Befehls:
-
- if (<expression>)
- <statement>
-
- Bei <statement> handelt es sich um eine der vor- bzw. nachstehend be-
-
- - 12 -
-
-
-
- schriebenen Anweisungen (d. h. einen Ausdruck oder eine Anweisung mit
- if, while, do...while, for, return, break oder continue), die nur dann
- ausgeführt wird, wenn <expression> zutrifft (Wert ungleich 0). Durch
- Verwendung von geschweiften Klammern kann man so auch eine ganze Grup-
- pe von Anweisungen ausführen bzw. ignorieren lassen. Einige Beispiele:
-
- if (result == -1)
- prints("FEHLER!");
-
- if (num_tries > maximum)
- return 0;
-
- if (month > 10 && day < 20)
- {
- clear();
- prints("Im Bereich.");
- return 1;
- }
-
- Eine weitere Form des if-Befehls ist:
-
- if (<expression>)
- <statement1>
- else
- <statement2>
-
- In diesem Fall wird <statement1> ausgeführt, wenn <expression>
- ungleich 0 (TRUE) ist und anderenfalls <statement2>. Wieder können
- mehrere Anweisungen durch geschweifte Klammern gruppiert werden.
-
- Einige Beispiele:
-
- if (stat == -1)
- prints("Ergebnis fehlerhaft.");
- else
- prints("Funktion fehlerfrei beendet.");
-
- if (level < 10)
- {
- alarm(1);
- prints("Warnung!");
- }
- else
- prints("Alles in Ordnung.");
-
- Da die Anweisung, die bedingt ausgeführt werden soll, jedem beliebigen
- Typ angehören kann, kann jede benötigte Anzahl von if-Befehlen verwen-
- det werden. Z. B.:
-
- if (num < 10)
- if (!error)
- if (read != 0)
- return 1;
-
- Das bedeutet auch, daß folgendes zulässig ist:
-
- if (value == 10)
- do_this()
- else if (value == 100)
- do_that()
- else if (value )) 1000)
-
- - 13 -
-
-
-
- do_something_else();
- else
- do_whatever();
-
- Was hier eigentlich geschieht, ist daß jeder if-Befehl mit dem else--
- Teile des vorherigen verknüpft wird. Obiges Beispiel könnte auch wie
- folgt geschrieben werden:
-
- if (value == 10)
- do_this()
- else
- if (value == 100)
- do_that();
- else
- if (value == 1000)
- do_something_else();
- else
- do_whatever();
-
- Diese Ketten könnten theoretisch beliebig lang sein, der Compiler hat
- jedoch begrenzten Speicherplatz.
-
- Sie können ein Programm in jeder Ihnen angenehmen Weise schreiben,
- jedoch empfiehlt sich der Klarheit wegen die Verwendung von Klammern.
- Klammern an den richtigen Stellen Ihres Programms werden das Lesen
- erheblich erleichtern.
-
- Ein sehr häufiger Fehler, auf den Sie achtgeben sollten, ist das Set-
- zen eines Semikolons nach der Klammer, die den Ausdruck beschließt.
- Wird z. B. folgendes geschrieben:
-
- if (num == 10);
- prints ("Num ist gleich 10");
-
- so würde die Zeichenkette auf jeden Fall ausgegeben, welchen Wert num
- auch immer hat. Der Grund ist das Semikolon hinter der ersten Klammer,
- woduch das Ende der Anweisung angezeigt wird. Obiges Beispiel zeigt
- eine unwirksame (leere) Anweisung.
-
-
- 3.4.3 While
-
- While wird für ständige Wiederholungen (Schleifen) benutzt, während
- eine bestimmte Bedingung erfüllt ist. Die Form ist:
-
- while (<expression>)
- <statement>
-
- <statement> wird immer wieder ausgeführt, solange <expression> un-
- gleich 0 (TRUE) ist. Beachten Sie bitte, daß <statement> niemals aus-
- geführt wird, wenn <expression> zu Beginn gleich 0 (FALSE) ist. Auch
- hier können Anweisungen wieder durch geschweifte Klammern gruppiert
- werden.
-
- Einige Beispiele:
-
-
-
-
-
-
-
- - 14 -
-
-
-
- while (stat != -1)
- stat = myfunc();
-
- while (um < 100)
- {
- printn(num);
- prints("");
- num = num + 1;
- }
-
- while ()
- {
- if (func1())
- return 0;
- func2();
- }
-
- Bitte beachten Sie wieder, daß hinter der Endklammer des Ausdrucks
- kein Semikolon stehen darf.
-
-
- 3.4.4 Do...while
-
- Dieser Befehl ähnelt dem while-Befehl und hat die Form:
-
- do
- <statement>
- while (<expression>);
-
- <statement> wird zumindest einmal ausgeführt und wird solange wieder-
- holt, bis <expression> gleich 0 (FALSE) wird. Einige Beispiele:
-
- do
- stat = func1();
- while (stat != -1);
-
- do
- {
- prints("hallo");
- num = num + 1;
- }
- while (num < 100);
-
-
- 3.4.5 For
-
- Der for-Befehl wird für ständige Wiederholungen (Schleifen) benutzt,
- während eine bestimmte Bedingung erfüllt ist. Er hat Vorteile gegen-
- über dem while-Befehl, weil Zählvariablen ziemlich einfach initiali-
- siert und eingebunden werden können. Folgende Form wird verwendet:
-
- for (<expression1>; <expression2>; <expression3>)
- <statement>;
-
- Der erste Audruck sollte die Zählvariable initialisieren. Wenn Sie z.
- B. von 1 bis 100 zählen möchten und der Variablenname ,num' sein soll,
- hieße der erste Audruck ,num = 1'. Der zweite Ausdruck ist die zu prü-
- fende Bedingung. Solange sie ungleich 0 (TRUE) ist, wird <statement>
- ausgeführt. In obigen Beispiel würde dieser Ausdruck ,num < 100' sein.
- Der dritte Ausdruck bewirkt den Zählvorgang. Im obigen Beispiel wäre
- er ,num = num + 1'. Der hier verwendete forBefehl unterscheidet sich
-
- - 15 -
-
-
-
- im Format von den meisten anderen Sprachen, er gibt jedoch dem Pro-
- grammierer viel Spielraum und Flexibilität. Beachte Sie bitte, daß
- Ausdrücke auch "leer" sein können; dann werden sie als ungleich 0
- (TRUE) gewertet.
-
- Einige Beispiele:
-
- for (count = 0; count < 100; count = count + 1)
- {
- printn(count);
- prints("");
- }
-
- for (c = 1000; c > 0; c = c - 1)
- do_this(c);
-
- Folgendes würde endlose Wiederholungen ausführen:
-
- for (;;)
- prints("Hallo");
-
- Beachten Sie bitte, daß es wirklich keine Einschränkungen für die Art
- des Ausdrucks gibt. Folgendes ist beispielsweise durchaus zulässig:
-
- for (c = num = 0; c < 100 && stat != -1; c = c + 1)
- {
- stat = func(num);
- num = func2();
- }
-
- Die Anweisungen werden nur dann ausgeführt, wenn c kleiner als 100 und
- stat ungleich -1 ist.
-
-
- 3.4.6 Return
-
- Irgendwann muß jede Funktion verlassen werden. Wenn das Ende der Funk-
- tion erreicht wird, erhält die aufrufende Funktion automatisch wieder
- die Kontrolle. Sehr häufig ist es jedoch notwendig, eine Funktion zwi-
- schendurch zu verlassen, möglicherweise zur Prüfung einer Bedingung.
- Auch muß eine Funktion häufig einen Wert ausgeben. Das Format für den
- return-Befehl ist:
-
- return <expression>;
-
- Wenn an irgendeiner Stelle einer Funktion ein return-Befehl angetrof-
- fen wird, erhält sofort die aufrufende Funktion die Kontrolle zurück.
- <expression> ist der auszugebende Wert. Wenn kein Ausdruck angegeben
- wird, erfolgt die Ausgabe eines Dummy-Wertes. Der Ausdruck sollte dem
- Datentyp entsprechen, den die aufrufende Funktion erwartet, d. h. wird
- der Typ ,int' erwartet, so sollte der Ausdruck ein ,int'-Ergebnis ha-
- ben; wird der Typ ,str' erwartet, sollte das Ergebnis des Ausdrucks
- eine Zeichenkette sein. Wegen des begrenzt verfügbaren Speicherplatzes
- kann eine lokale Zeichenkettenvariable NICHT von einer Funktion ausge-
- geben werden. Im folgenden einige Beispiele:
-
- return;
- return 1;
- return level;
- return (sum + 25);
- return "hallo";
-
- - 16 -
-
-
-
- return (func() + 20);
-
- Beachten Sie bitte, daß komplexe Ausdrücke gewöhnlich in Klammern aus-
- gegeben werden. Notwendig ist dies nicht, dient aber der Klarheit.
- Auch sollte klar sein, daß nicht der Ausdruck, sondern sein Ergebnis
- ausgegeben wird.
-
-
- 3.4.7 Break
-
- Bei Verwendung eines Schleifenbefehls (while, do...while, for) ist es
- häufig notwendig, die Wiederholungen abzubrechen. Hierzu dient der
- break-Befehl. Er beendet jeden while-, do...while- oder for-Befehl und
- das Programm wird direkt hinter Ende des Schleifenbefehls fortgesetzt.
- Ein Fehler wäre es, den breakBefehl außerhalb einer Wiederholungs-
- schleife zu plazieren. Das Format des break-Befehls ist:
-
- break;
-
- Angenommen, Sie haben folgenden Kode:
-
- int num = 0;
- while (1)
- {
- num = num + 1;
- if (num > 100)
- break;
- }
- prints("Fertig");
-
- Da die Bedingung dieses while-Befehls immer erfüllt (ungleich 0; TRUE)
- ist, hätte er eine Endlos-Schleife zur Folge, wenn er die Schleife
- nicht bei ,num > 100' durch den break-Befehl verlassen würde. An-
- schließend wird der nächste Befehl ausgeführt (der Funktionsaufruf zum
- Drucken).
-
-
- 3.4.8 Continue
-
-
- Der continue-Befehl wird innerhalb einer Wiederholungsschleife (whi-
- le-, do...while-, for-Befehl) benutzt und hat folgende Form:
-
- continue;
-
- Außerhalb einer Schleifenanwendung ist ,continue' unzulässig. Der con-
- tinueBefehl bewirkt die Rückkehr der Programmkontrolle hinter das Wort
- ,while' beim while- oder do...while-Befehl, wo es bewirkt, daß die
- Bedingung geprüft und die Schleife ggf. erneut begonnen wird, z. B.:
-
- num = 0;
- while (num < 100000)
- {
- num = num + 1;
- if (num > 100)
- continue;
- prints("Hallo");
- }
-
- Im obigen Beispiel bewirkt der continue-Befehl, daß "Hallo" nur dann
- ausgegeben wird, solange ,num' kleiner oder gleich 100 ist, da der
-
- - 17 -
-
-
-
- continue-Befehl ausgeführt wird, sobald ,num' größer als 100 ist, wo-
- durch der Rest der Gruppe wegfällt.
-
- Im folgenden ein Beispiel für einen for-Befehl:
-
- for (num = 0; num < 100000; num = num + 1)
- {
- if (num > 100)
- continue;
- prints("Hallo");
- }
-
- In diesem Fall bewirkt continue das gleiche. Solange ,num' kleiner
- oder gleich 100 ist, wird die ganze Schleife ausgeführt. Sobald ,num'
- größer 100 ist, wird der continue-Befehl ausgeführt und der Rest des
- Schleifenkörpres weggelassen, so daß "Hallo" nicht mehr ausgegeben
- wird.
-
-
- 3.4.9 Goto
-
- Der goto-Befehl wird verwendet, um innerhalb einer Funktion von einer
- Stelle zur anderen zu springen. Der Gebrauch von goto-Befehlen wird
- als schlechter Programmierstil angesehen. Sie können das Programm sehr
- unverständlich machen und sind eigentlich so gut wie nie notwendig.
- Telix ist größtenteils in C geschrieben, worin es einen goto-Befehl
- gibt, doch außer für einige wenige Stücke vorgefertigten Textes wurde
- er weder benötigt noch verwendet. Andererseits kann er sparsam und
- sinnvoll angewendet Ihren Kode zuweilen klarer und evtl. schneller
- gestalten. Der goto-Befehl besteht aus zwei Teilen, dem ,label' (Mar-
- ke), zu dem die Programmkontrolle springen soll und dem Wort ,goto'.
- Eine Marke wird in der Form
-
- <identifier>:
-
- definiert, wobei für <identifier> die gleichen Vorschriften gelten wie
- für Variablennamen. Beachten Sie bitte, daß ein Doppelpunkt hinter dem
- Namen stehen muß (kein Semikolon), welches nicht durch irgendein
- (Leer)-zeichen vom Namen der Marke getrennt sein darf. Eine Marke muß
- nicht auf einer eigenen Kodezeile stehen und wird auch selbst nicht
- als Befehl angesehen. Für goto gebraucht man die Form:
-
- goto <label>;
-
- wobei <label> eine Marke an einer Stelle der Funktion steht, die wie
- vorstehend beschrieben definiert wird. Das Programm wird sodann an
- dieser Marke weitergeführt.
- Im folgenden ein Beispiel:
-
- start:
- prints("Hallo");
- goto start;
-
- Hierdurch würde "Hallo" immer wieder für immer ausgegeben. Es gibt
- keine Vorschriften für die Plazierung einer Marke, so daß obiges Bei-
- spiel auch wie folgt geschrieben werden könnte:
-
- start:prints("Hallo");
- goto start;
-
- Wie bereits erwähnt, gibt es gewöhnlich bessere Möglichkeiten, als die
-
- - 18 -
-
-
-
- Verwendung des goto-Befehls. Z. B. ist
-
- int i = 0;
- do
- i = i + 1;
- while (i < 100);
-
- klarer ausgedrückt als das gleichwertige
-
- int i = 0;
- loop:
- i = i + 1;
- if (i < 100)
- goto loop;
-
- Eine gute Verwendung für goto-Befehls ist das Aussteigen aus einem
- tief geschachtelten while-Befehl, ohne viele zusätzliche Prüfungen
- ausführen zu müssen.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 19 -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 20 -
-
-
-
- 4. Eingebaute Funktionen
-
- In Telix sind eine Vielzahl Funktionen integriert. Diese Funktionen
- werden genauso aufgerufen, wie Ihre eigenen SALT-Funktionen. Jede hat
- eine spezielle Aufgabe (etwas auf dem Bildschirm ausgeben, Zeichenket-
- ten verändern, Disketten-/Plattendateien verlassen, etc.). Jede Funk-
- tion wird über Parameter in einem bestimmten Format aufgerufen und
- gibt einen Integer-Wert oder eine Zeichenkette aus (dieses Ergebnis
- muß nicht unbedingt weiterverwendet werden und ist oft eine Dummy-Va-
- riable).
-
- Die folgenden Seiten enthalten eine nach Typen geordnete Auflistung
- der vorgegebenen Funktionen, gefolgt von vollständigen Beschreibungen
- der einzelnen Funktionen in alphabetischer Reihenfolge. Dort steht zu
- jeder Funktion ihr Aufbau, eine Beschreibung ihrer Aufgabe und der
- Ausgabewert. Oft sind Beispiele für den korrekten Gebrauch mit aufge-
- führt. Zum Auffinden verwandter Funktionen hat jede Funktionsbeschrei-
- bung den Punkt "Siehe auch", in dem verwandte Funktionen aufgelistet
- sind.
-
-
- 4.1 Auflistung der Funktionen, nach Typen geordnet
-
- ∙ Bildschirmoperationen
-
- box, cursor_onoff, clear_scr, getx, gety, gotoxy, printc, printn,
- prints, printsc, pstra, pstraxy, scroll, status_wind, update_term
-
-
- ∙ Behandlung von Zeichenketten
-
- copychrs, copystr, delchrs, gets, getsxy, inschrs, itos, setchr,
- setchrs, stoi, strcat, strchr, strcmpi, strlen, strlower, strmaxlen,
- strpos, strposi, strupper, subchr, subschrs, substr
-
-
- ∙ Behandlung von Zeichen
-
- isascii, isalnum, isalpha, iscntrl, isdigit, islower, isupper, tolo-
- wer, toupper
-
-
- ∙ Operationen am Kommunikations-Port
-
- carrier, cinp_cnt, cgetc, cgetct, cputc, cputs, cputs_tr, flushbuf,
- get_baud, get_datab, get_parity, get_port, get_stopb, hangup, set_cpa-
- rams, set_port
-
-
- ∙ Operationen mit Dateien und Ein-/Ausgabe von Dateien
-
- fclearerr, fclose, fdelete, ferror, feof, fflush, fgetc, fgets, file-
- attr, filefind, filesize, filetime, fnstrip, fopen, fputc, fputs, fre-
- ad, frename, fseek, ftell, fwrite
-
- ∙ Tastaturoperationen
-
- inkey, inkeyw, keyget, keyload, keysave, keyset
-
-
- ∙ Operationen mit Datum/Zeit und Timer
-
- - 21 -
-
-
-
- curtime, date, tsec, tday, thour, time, time_up, timer_free,
- timer_restart, timer_start, timer_total, tmin, tmonth, tyear
-
-
- ∙ Dateiübertragungen und Protokolle
-
- capture, printer, receive, send, transtab, usagelog, ustamp
-
-
- ∙ Befehlsverwaltung
-
- call, calld, delay_scr, is_loaded, load_scr, unload_scr
-
-
- ∙ Anpassung eingehender Zeichenketten
-
- track, track_addchr, track_free, track_hit, waitfor
-
-
- ∙ Andere Funktionen
-
- alarm, chatmode, delay, dial, dos, dosfunction, exittelix, helpscreen,
- loadfon, newdir, redial, redirect_dos, run, send_brk, set_defprot,
- set_terminal, show_directory, terminal, tone.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 22 -
-
-
-
- 4.2 Beschreibung der einzelnen Funktionen
-
- alarm
-
- Aufbau alarm(int <seconds>);
-
- Beschreibung Die Alarmfunktion gibt einen Alarmton aus, der soviele
- Sekunden andauert, wie bei <seconds> angegeben.
-
- Ausgabewert Die definierte Sekundenanzahl wird zurückgegeben.
-
- Siehe auch tone
-
- Beispiel while (!inkey())
- alarm(1);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 23 -
-
-
-
- box
-
- Aufbau box(int <x>, int <y>, int <x2>, int <y2>, int <style>,
- int <hollow>, int <color>);
-
- Beschreibung Diese Funktion wird verwendet, um auf dem Bildschirm
- einen Kasten erscheinen zu lassen. Seine obere linke
- Ecke hat die Position <x>, <y> und die untere rechte
- Ecke die Position <x2>, <y2>. Der Kasten muß auf den
- Bildschirm passen. <color> steht für die Farbe, mit der
- das Viereck gezeichnet wird. Wenn <hollow> einen Wert
- ungleich 0 (TRUE) darstellt, wird das Innere des Vier-
- ecks nicht ausgefüllt. Mit <style> wählen Sie aus, wie
- Sie die Umrandung zeichnen möchten:
-
- 0 Leerzeichen
- 1 einfache Linie
- 2 Doppellinien
- 3 vertikal einfache Linien, horizontal
- Doppellinien
- 4 vertikal Doppellinien, horzizontal
- einfache Linien
-
- Hat <style> irgendeinen anderen Wert, wird
- dieses Zeichen für die Seiten des Vierecks verwendet.
-
- Ausgabewert keiner
-
- Siehe auch scroll
-
- Beispiel box(10, 10, 70, 20, 1, 0, 112);
- // zeichnet farbig ausgefülltes Viereck.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 24 -
-
-
-
- call, calld
-
-
- Aufbau call(str <scriptname>, <arg1>, <arg2>, <arg3>, ...);
-
- calld(str <scriptname>, <arg1>, <arg2>,<arg3>, ...);
-
- Beschreibung Die Funktion call wird benutzt, wenn eine Befehlsdatei
- eine andere aufrufen soll (hineinspringen und später
- wieder zurückkehren). <scriptname> ist der Name der auf-
- zurufenden Befehlsdatei. Ohne Angabe einer Erweiterung
- wird .SLC angenommen.
-
- <arg1> bis <argn> stehen für die Werte (Parameter), die
- der Hauptfunktion der aufgerufenen Befehlsdatei überge-
- ben werden. Diese gibt einen Integerwert oder eine Zei-
- chenkette zurück, kann jedoch keine lokalen Zeichenket-
- tenvariablen ausgeben. Ist die aufzurufende Befehlsdatei
- bereits im Speicher, weil sie zuvor geladen und resident
- gemacht wurde oder wird sie noch durch einen früheren
- Aufruf bearbeitet, so wird sie nicht übertragen, sondern
- das "Gedächtnis" benutzt, d. h. daß globale Variablen
- die Werte haben werden, die sie nach dem letzten Ablauf
- der Befehlsdatei hatten.
-
- calld bewirkt genau das gleiche wie call, außer daß eine
- neue Kopie der angegebenen Befehlsdatei von der Disket-
- te/Platte geladen wird, wenn sie sich bereits im Spei-
- cher befindet. Dies gewährleistet, daß globale Variablen
- in der Befehlsdatei so eingerichtet werden, wie sie in
- der Quelldatei definiert sind und daß genügend freier
- Stack-Speicherplatz vorhanden ist. calld ist jedoch
- langsamer und erfordert mehr freien Speicherplatz.
-
- Ausgabewert Ein Integerwert oder eine Zeichenkette, dem Wert ent-
- sprechend, der von der Hauptfunktion der aufgerufenen
- Befehlsdatei ausgegeben wurde. Wegen des Speicherplatzes
- darf es sich dabei nicht um eine in der aufgerufenen Be-
- fehlsdatei definierte Zeichenkettenvariable handeln.
- Wenn die angegebene Datei nicht gefunden wird, ist der
- Ausgabewert -1. Wenn die aufgerufene Datei vom Benutzer
- abgebrochen wird, ist der Ausgabewert ebenfalls -1.
-
- Siehe auch load_scr, unload_scr, is_loaded
-
- Beispiel stat = call("TEST");
- if (stat == -1)
- prints("Aufgerufener Script konnte nicht
- geladen werden oder wurde abgebrochen.");
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 25 -
-
-
-
- capture
-
- Aufbau capture(str <filename>);
-
- Beschreibung Die Funktion capture wird benutzt, um
- Telix-Protokolldateien zu öffnen, zu schließen, Pausen
- zu bewirken und diese wieder zu beenden. Abhängig vom
- Inhalt der Zeichenkettenvariable <filename> werden un-
- terschiedliche Maßnahmen ergriffen.
-
- Wenn <filename> durch einen gültigen Dateinamen (ggf.
- inkl. Pfad) ersetzt wird, eröffnet Telix diese Datei und
- beginnt, in ihr zu protokollieren.
-
- Wenn <filename> durch "*CLOSE*" ersetzt wird und die
- Protokolldatei gerade geöffnet ist, wird sie geschlos-
- sen.
-
- Wenn <filename> durch "*PAUSE*" ersetzt wird und die
- Protokolldatei gerade geöffnet ist, wird pausiert.
-
- Wenn <filename> durch "*UNPAUSE*" ersetzt wird und die
- Protokolldatei gerade pausiert, wird sie fortgesetzt.
-
- Wenn <filename> keine Zeichen zugewiesen werden (""),
- verhält Telix sich wie nach Drücken von <Alt>-<L> im
- Terminalmodus (auch hier kommt es darauf an, ob die Pro-
- tokolldatei gerade offen oder geschlossen ist.
-
- Ausgabewert Wenn die Ausführung der angegebenen Funktion Schwierig-
- keiten mit sich bringt, wird der Wert -1 ausgegeben,
- sonst ein anderer Wert ungleich 0 (TRUE).
-
- Siehe auch printer
-
- Beispiel if (capture("TELIX.CAP") == -1
- prints("Fehler beim Öffnen der Protokoll-
- datei!");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 26 -
-
-
-
- capture_stat
-
- Aufbau capture_stat();
-
- Beschreibung Diese Funktion gibt einen Integer-Wert zurück, der den
- aktuellen Status der Protokolldatei repräsentiert:
-
- 0 Protokolldatei ist geschlossen
- 1 Protokolldatei ist geöffnet
- 2 Protokolldatei ist geöffnet und pausiert
-
- Ausgabewert Ein Integer-Wert wie oben beschrieben.
-
- Siehe auch usage_stat
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 27 -
-
-
-
- carrier
-
- Aufbau carrier();
-
- Beschreibung Die Funktion carrier gibt einen Wert ungleich 0 (TRUE)
- aus, wenn das vom Modem kommende Signal ,Data Carrier
- Detect' an (high) ist, sonst 0 (FALSE). Beachten Sie
- bitte, daß manche Modems von Hause aus so eingestellt
- sind, daß sie den tatsächlichen Status des Carriererken-
- nungssignals ignorieren und immer ein "high" senden. Da-
- mit diese Funktion wirksam ist, müssen Sie Ihr Modem
- also dazu bringen, das echte Signal zu liefern. Die
- Funktion kann verwendet werden, um zu prüfen, ob Telix
- über Modem mit einem entfernten Rechner verbunden ist,
- da das Carriererkennungssignal immer an sein sollte,
- wenn eine Verbindung besteht. Beachten Sie bitte, daß
- bei Verwendung eines Übertragungskabels ohne Modem die
- Art des Kabels über den Ausgabewert entscheidet.
-
- Ausgabewert Ungleich 0 (TRUE) oder 0 (FALSE), abhängig vom Status
- des Trägererkennungssignals.
-
- Beispiel if (carrier())
- prints ("Verbindung hergestellt.");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 28 -
-
-
-
- chatmode
-
- Aufbau chatmode(int <echo_remote>);
-
- Beschreibung Mit der Funktion chatmode gelangen Sie in den Konversa-
- tionsmodus, wie nach Drücken von <Alt>-<Y> im Terminal-
- modus. Wenn <echo_remote> ungleich 0 (TRUE) ist, wird
- ein Echo der vom entfernten Rechner übertragenen Zeichen
- dorthin zurückgesandt, anderenfalls nicht. Das Echo ist
- für Anwendungen im Hostmodus vorgesehen.
-
- Ausgabewert keiner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 29 -
-
-
-
- cinp_cnt
-
- Aufbau cinp_cnt();
-
- Beschreibung Die Funktion cinp_cnt gibt die Anzahl der im Empfangs-
- speicher anstehenden Zeichen aus.
-
- Ausgabewert Ein Integerwert, wie vorstehend beschrieben.
-
- Siehe auch cgetc
-
- Beispiel if (cinp_cnt() > 10)
- handle_stuff();
-
- while (!cinp_cnt())
- ;
-
- if (cinp_cnt())
- c = cgetc();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 30 -
-
-
-
- cgetc, cgetct
-
- Aufbau cgetc();
-
- cgetct(int <timeout>);
-
- Beschreibung Die Funktion cgetc bewirkt die Ausgabe des ersten im
- Empfangsspeicher anstehenden Zeichens. Befinden sich
- keine Daten im Empfangsspeicher, wird der Wert -1 aus-
- gegeben. Mit dieser Funktion kann geprüft werden, ob
- Daten im Empfangsspeicher anstehen.
-
- Die Funktion cgetct bewirkt die Ausgabe eines Zeichens
- vom Kommunikations-Port. Dabei wird bis zu <timeout>
- Zehntelsekunden auf ein eingehendes Zeichen gewartet.
- Steht bereits ein Zeichen im Empfangsspeicher, wird es
- umgehend ausgegeben. Wenn innerhalb der genannten Zeit-
- spanne kein Zeichen empfangen wird, erfolgt die Ausgabe
- des Wertes -1.
-
- Ausgabewert Ein Integerwert, wie vorstehend beschrieben.
-
- Siehe auch cinp_cnt
-
- Beispiel if (cinp_cnt())
- chr = cgetc();
-
- if ((chr = cgetct(100)) == -1)
- prints("Timeout!");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 31 -
-
-
-
- clear_scr
-
- Aufbau clear_scr();
-
- Beschreibung Die Funktion clear_scr löscht den Bildschirminhalt und
- plaziert den Cursor in die obere linke Ecke an Position
- 0,0.
-
- Ausgabewert keiner
-
- Siehe auch scroll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 32 -
-
-
-
- copychrs
-
- Aufbau copychrs(str <source>, int <target>, int <pos>, int
- <count>);
-
- Beschreibung Die Funktion copychrs kopiert eine Anzahl von Zeichen
- von einer Zeichenkette in eine andere. Zeichen aus der
- Zeichenkette <source> werden so lange in die Zeichenket-
- te <target> ab Position <pos> kopiert, bis <count> Zei-
- chen übertragen wurden. Beachten Sie, daß SALT-Zeichen-
- ketten bei Position 0 beginnen. Es werden nur so viele
- Zeichen übertragen, wie in <target> hineinpassen.
-
- Diese Funktion ähnelt sehr substr, außer, daß sie nicht
- Zeichenkettenorientiert ist. copychrs bricht nicht ab,
- wenn die Zeichenkette eine 0 enthält.
-
- Ausgabewert keiner
-
- Siehe auch copychrs, subchrs, substr, copystr
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 33 -
-
-
-
- copystr
-
- Aufbau copystr(str <source>, str <target>, int <pos>, int
- <max>);
-
- Beschreibung Die Funktion copystr kopiert eine Zeichen-kette in eine
- andere hinein. Die Zeichen der Zeichenkette <source>
- werden in die Zeichenkette <target> ab Position <pos>
- hineinkopiert. (Beachten Sie bitte, daß SALT
- Zeichenketten mit der Position 0 beginnen, nicht mit 1,
- wie in einigen Sprachen). Zeichen werden kopiert, bis
- eine 0 angetroffen wird (gewöhnlich am Ende einer jeden
- Zeichenkette) oder die Anzahl <max> erreicht wird. Eine
- 0 (NUL) wird immer an das Ende der Zielzeichenkette ko-
- piert. Die 0 wird nicht als Teil von <max> berücksich-
- tigt. Es werden nur so viele Zeichen kopiert, wie noch
- in <target> passen.
-
- Ausgabewert keiner
-
- Siehe auch copychrs, subchrs, substr
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 34 -
-
-
-
- cputc
-
- Aufbau cputc(int <character>);
-
- Beschreibung Mit cputc wird <character> zum Kommunikations-Port ge-
- sandt. Es wird das entsprechende ASCII-Zeichen verwen-
- det.
-
- Ausgabewert Kann das Zeichen aus irgendeinem Grunde nicht versandt
- werden, erfolgt die Ausgabe des Wertes -1, sonst wird
- ein anderer Wert ungleich 0 ausgegeben.
-
- Siehe auch cputs
-
- Beispiel cputc(,A');
- cputc(27);// Versenden von Escape
- cputc(,^M');// Versenden von Carriage Return
- cputc(inkeyw());
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 35 -
-
-
-
- cputs
-
- Aufbau cputs(str <outstr>);
-
- Beschreibung Diese Funktion sendet die ihr übergebene Zeichenkette an
- das Modem. Hinter die Zeichenkette wird weder Carriage
- Return noch Line Feed gesetzt.
-
- Ausgabewert keiner
-
- Siehe auch cputs_tr
-
- Beispiel cputs("Goodbye");
-
- str password[] = "mypass";
- cputs(password);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 36 -
-
-
-
- cputs_tr
-
- Aufbau cputs_tr(str <outstr>);
-
- Beschreibung Diese Funktion versendet die ihr übergebene Zeichenkette
- über den Modem-Port, beachtet aber die im Telix-Bedie-
- nungshandbuch beschriebenen Übersetzungszeichen für die
- Übertragung ^ und ~. Die Funktion ist nur dann von Nut-
- zen, wenn dem Modem im Konfigurierungsmenü definierte
- Steuersequenzen gesandt werden sollen.
-
- Ausgabewert keiner
-
- Siehe auch cputs
-
- Beispiel cputs_tr(_modem_init);
- cputs_tr("Logoff^M~yes^M");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 37 -
-
-
-
- cursor_onoff
-
- Aufbau cursor_onoff(int <state>);
-
- Beschreibung Die Funktion cursor_onoff schaltet das Blinken des Cur-
- sors an oder aus (läßt den Cursor verschwinden bzw. wie-
- der erscheinen), abhängig davon, ob der Status ungleich
- 0 (TRUE) oder 0 (FALSE) ist.
-
- Ausgabewert keiner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 38 -
-
-
-
- curtime
-
- Aufbau curtime();
-
- Beschreibung Die Funktion curtime gibt das aktuelle Datum als Anzahl
- vergangener Sekunden seit dem 01.01.1970 zurück. Dieses
- Zeit/Datumsformat wird bei vielen SALT Funktionen ver-
- wendet.
-
- Ausgabewert Ein Integer-Wert wie beschrieben.
-
- Siehe auch date, time, tyear, tmonth, tday, thour, tmin, tsec
-
- Beispiel // Aktuelle Zeit ausgeben
- int t;
- str s[64];
-
- t = curtime();
- date(t, s);
- prints(s);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 39 -
-
-
-
- date
-
- Aufbau date(int <timeval>, str <buffer>);
-
- Beschreibung Die Datumsfunktion schreibt ein Datum in der Form
- mm/dd/yy, dd/mm/yy oder yy/mm/dd (basierend auf der Sy-
- stemvariable date_format) in den <buffer>. <timeval>
- steht für das Datum, das durch die Anzahl der seit dem
- 01.01.70 vergangenen Sekunden ausgedrückt wird. Zeitwer-
- te in dieser Form werden u. a. von den Funktionen curti-
- me und filetime ausgegeben.
-
- Siehe auch time, curtime, filetime
-
- Beispiel str s[16];
- printsc("Das heutige Datum ist ");
- date(curtime(), s);
- prints(s);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 40 -
-
-
-
- delay, delay_scr
-
- Aufbau delay(int <duration>);
-
- delay_scr(int <duration>);
-
- Beschreibung Die Verzögerungsfunktion bewirkt eine Pause, die so vie-
- le 1/10 Sekunden andauert, wie in <duration> spezifi-
- ziert. Während dieser Pause werden sämtliche Funktionen
- unterdrückt, außer dem asynchronen Empfang vom Kommuni-
- kationsport kommender Zeichen.
-
- Die Funktion delay_scr bewirkt lediglich eine Pause in
- der Ausführung der aktuellen Sriptdatei für die angege-
- bene Dauer. Während dieser Zeit werden Zeichen, die vom
- seriellen Port kommen, auf dem Bildschirm ausgegeben,
- während die Tastenbedienungen des Benutzers ebenfalls
- verarbeitet werden.
-
- Ausgabewert Der <duration>-Wert wird ausgegeben.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 41 -
-
-
-
- delchrs
-
- Aufbau delchrs(str <s>, int <pos>, int<num>);
-
- Beschreibung Die Funktion delchrs entfernt eine Anzahl Zeichen einer
- Zeichenkette ab einer bestimmten Position. <s> ist die
- betreffende Zeichenkette und <pos> die Position, ab der
- <num> Zeichen gelöscht werden. Beachten Sie, daß das
- erste Zeichen einer SALT-Zeichenkette die Position 0
- hat. Übrigbleibende Zeichen werden nach links geschoben.
-
- Ausgabewert keiner
-
- siehe auch inschrs
-
- Beispiel str s[] = "123456789";
- delchrs(s, 1, strlen(s) - 2);
- //entferne alle Zeichen der
- // Zeichenkette außer dem
- // ersten und dem letzten
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 42 -
-
-
-
- dial
-
- Aufbau dial(str <dialstr>, int <maxtries>, int <no_link>);
-
- Beschreibung Mit der Anwahlfunktion werden die in <dialstr> spezifi-
- zierten Eintragungen angewählt. Diese sollten im glei-
- chen Format eingetragen werden wie im Anwahlverzeichnis-
- menü. Wenn <dialstr> leer ist (""), wird das Anwahlver-
- zeichnis angezeigt. <maxtries> ist die maximale Anzahl
- von Anwahlversuchen. Wenn z. B. <dialstr> nur einen Ein-
- trag enthält und <maxtries> gleich 5 ist, wird Telix
- fünfmal versuchen, diese Nummer zu erreichen. Sind 5
- Eintragungen spezifiziert, und <maxtries> ist gleich 5,
- so wird jede Nummer nur einmal angewählt. Wenn
- <maxtries> gleich 0 ist, wird der Anwahlvorgang wieder-
- holt, bis eine Verbindung zustande kommt. Wenn eine Be-
- fehlsdatei mit dem entsprechenden Eintrag verbunden ist,
- wird sie ausgeführt, es sei denn <no_link> ist ungleich
- 0 (TRUE).
-
- Ausgabewert Wenn eine Verbindung zustande kam, gibt die Anwahlfunk-
- tion die Nummer des entsprechenden Eintrags aus (oder 1,
- wenn eine Nummer manuell angewählt wurde). Gab es keine
- Verbindung, wird 0 ausgegeben. Wenn <dialstr> ein fal-
- sches Format hat, wird -1 ausgegeben. Ferner wird beim
- Zustandekommen einer Verbindung die Eintragsnummer in
- die Systemvariable _entry_enum eingetragen und der Name
- des Teilnehmers in die Systemvariable _entry_name einge-
- tragen.
-
- Siehe auch redial, _entry_enum, _entry_name
-
- Beispiel int stat;
- dial("10 15", 0);
- dial("m0241 48221", 5);
- stat = dial(number_list, 0);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 43 -
-
-
-
- dos
-
- Aufbau dos(str <command>, int <mode>);
-
- Beschreibung Die Funktion dos ruft den DOS Befehlsübersetzer (gewöhn-
- lich COMMAND.COM) auf und übergibt ihm die angegebene
- Befehlszeichenkette. Wenn es sich bei <command> um eine
- leere Zeichenkette ("") handelt, wird Telix die DOS--
- Shell aufrufen, wie nach Drücken von <Alt>-<J>. Für den
- Fall, daß Sie Befehle oder Programme integrieren, die
- Bedienereingaben verlangen, sollten Sie sicherstellen,
- daß diese auch erfolgen. Der Wert <mode> bietet folgende
- Optionen:
-
- 0 Nach der Ausführung des Befehls wird der ursprüng-
- liche Bildschirminhalt wieder geladen.
-
- 1 Nach der Ausführung des Befehls wird der Bediener
- zum Drücken einer Taste aufgefordert. Hierdurch
- wird das Laden des ursprünglichen Bildschirminhalts
- ausgelöst.
-
- 2 Der ursprüngliche Bildschirminhalt wird nach Aus-
- führung des Befehls nicht wieder geladen.
-
- Diese Funktion ist mit der Funktion run verwandt. dos
- sollte verwendet werden, wenn ein interner DOS-Befehl
- oder eine DOS-Shell benötigt wird. Anderenfalls sollte
- run der Vorzug gegeben werden, weil es weniger Speicher
- einnimmt und schneller ist.
-
- Ausgabewert Die Funktion dos gibt -1 aus, wenn der Befehlsprozessor
- nicht gefunden werden kann oder nicht genügend Speicher-
- platz vorhanden ist, um ihn zu laden. Ansonsten wird 0
- ausgegeben.
-
- Siehe auch run, dosfunction
-
- Beispiel dos("copy a:*.* c:", 1);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 44 -
-
-
-
- dosfunction
-
- Aufbau dosfunction();
-
- Beschreibung Die Funktion dosfunction ruft das DOS-Funktionsmenü auf,
- wie nach Drücken von <Alt>-<F> im Terminal-Mode.
-
- Ausgabewert keiner
-
- Siehe auch dos, run
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 45 -
-
-
-
- exittelix
-
- Aufbau exittelix(int <returncode>, int <hangup>);
-
- Beschreibung Die Funktion exittelix schließt eine momentan geöffnete
- Protokolldatei und verläßt Telix nach DOS hin, wie nach
- Drücken von <Alt>-<X> im Terminalmodus. Der Wert <re-
- turncode> sollte zum DOS ausgegeben werden. Dieser Wert
- kann von jeder möglichen Datei gelesen werden, die Telix
- aufgerufen haben könnte. (Z. B. eine Batch-Datei, die
- den Befehl errorlevel verwendet). Die Option <hangup>
- kommt zum Tragen, wenn Telix gerade eine Verbindung un-
- terhält. Wenn sie auf ungleich 0 (TRUE) eingestellt ist,
- wird Telix eine bestehende Telefonverbindung abbrechen,
- bevor es zum DOS zurückkehrt, anderenfalls bleibt die
- Verbindung bestehen.
-
- Ausgabewert Da diese Funktion Telix beendet, gibt es niemals einen
- Ausgabewert.
-
- Beispiel exittelix(0, 1);
- exittelix(100, 0);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 46 -
-
-
-
- fclearerr
-
- Aufbau fclearerr(int <fh>);
-
- Beschreibung Die Funktion fclearerr löscht die Fehlermeldungen der
- Dateiverwaltung <fh> (file handle) zur aktuell geöffne-
- ten Datei. Außerdem wird das Dateiende-Flag zurückge-
- setzt.
-
- Ausgabewert keiner
-
- Siehe auch ferror, feof
-
- Beispiel int f;
- f = fopen("test.dat", "r");
- ...
- if (ferror(f))
- fclearerr(f);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 47 -
-
-
-
- fclose
-
- Aufbau fclose(int <fh>);
-
- Beschreibung Die Funktion fclose schließt die aktuelle Datei <fh>,
- die zuvor für Ein- oder Ausgaben mit der Funktion fopen
- geöffnet wurde. Stehen noch Daten im Speicher zur Aus-
- gabe auf Diskette/Platte an, so werden sie ausgegeben,
- bevor die Datei geschlossen wird.
-
- Ausgabewert Mit dem Wert -1 werden Schwierigkeiten beim Schließen
- der Datei angezeigt.
-
- Siehe auch fopen
-
- Beispiel int f;
- f = fopen("test.dat", "w");
- ...
- fclose(f);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 48 -
-
-
-
- fdelete
-
- Aufbau fdelete(str <filename>);
-
- Beschreibung Die Funktion fdelete dient dem Löschen von Dateien. <fi-
- lename> ist der Name der Datei, die gelöscht werden
- soll. Die Angabe von Pfaden und Laufwerksnamen ist zu-
- lässig. Es wird sowohl Groß- als auch Kleinschreibung
- akzeptiert. Es dürfen jedoch nicht die Wildcard-Zeichen
- * und ? verwendet werden.
-
- Ausgabewert Wenn eine Datei aus irgendeinem Grunde nicht gelöscht
- werden konnte, wird -1 ausgegeben, sonst wird eine 0
- ausgegeben.
-
- Siehe auch frename
-
- Beispiel fdelete("C:\UTIL\TLX\TELIX.CAP");
- // Löschen einer alten
- // Protokolldatei
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 49 -
-
-
-
- feof
-
- Aufbau feof(int <fh>);
-
- Beschreibung Die Funktion feof bestimmt, ob der Zeiger der geöffneten
- Datei, die durch <fh> bestimmt ist, sich am Ende dieser
- Datei befindet.
-
- Ausgabewert Ein Wert ungleich 0 wird ausgegeben, wenn das Dateiende
- erreicht wurde.
-
- Siehe auch ferror
-
- Beispiel int f, chr;
- f = fopen("test.dat", "r");
- while ((chr = fgetc(f)) != -1)
- // Dateiinhalt ausgeben
- printc(chr);
- if (feof(f))
- prints("Dateiende erreicht.");
- else
- prints("Fehler beim Lesen der Datei!");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 50 -
-
-
-
- ferror
-
- Aufbau ferror(int <fh>);
-
- Beschreibung Die Funktion ferror überprüft die Fehlerbedingung einer
- Datei <fh>. Die Fehleranzeige bleibt bestehen, bis sie
- mit fclearerr gelöscht werden oder die Datei geschlossen
- wird.
-
- Ausgabwert Ein Wert ungleich 0 (TRUE) wird ausgegeben, wenn die
- Fehlermeldungen aufgelistet werden.
-
- Siehe auch fclearerr, feof
-
- Beispiel int f;
- f = fopen("test.dat", "r");
- // Datei nur zum Lesen öffnen
- fputs("Dies sollte die Fehlerbedingung setzen!", f);
- if (ferror(f))
- prints("Fehler beim Schreiben in Datei!");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 51 -
-
-
-
- fflush
-
- Aufbau fflush(int <fh>);
-
- Beschreibung Die Funktion fflush schreibt den zur Datei <fh> gehören-
- den Pufferspeicher zurück. Wenn die Datei für Schreib-
- zugriffe geöffnet ist, werden alle Zeichen, die im Spei-
- cher anstehen, übertragen. Ist die Datei nur für Lesezu-
- griffe geöffnet, wird der Speicher gelöscht.
-
- Ausgabewert Wenn Probleme beim Übertragen des Puffers auftreten,
- wird der Wert -1 ausgegeben.
-
- Siehe auch fopen, fclose
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 52 -
-
-
-
- fgetc
-
- Aufbau fgetc(int <fh>);
-
- Beschreibung Die Funktion fgetc übergibt das nächste Zeichen einer
- Datei <fh>. Die Datei muß mittels der Funktion fopen für
- Ausgaben oder Ein- und Ausgaben geöffnet worden sein.
-
- Ausgabewert Es erfolgt die Ausgabe des gelesenen Zeichens, bzw. -1,
- wenn das Dateiende erreicht oder ein Fehler angetroffen
- wurde.
-
- Siehe auch fopen, fputc
-
- Beispiel int f;
- f = fopen("test.dat", "r");
- while (!feor(f))
- // Alle Zeichen der Datei ausgeben
- printc(fgetc(f));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 53 -
-
-
-
- fgets
-
- Aufbau fgets(str <buffer>, int <n>, int <fh>);
-
- Beschreibung Die Funktion fgets liest Zeichen aus einer Datei <fh> in
- die Zeichenkettenvariable <buffer> ein. Das Lesen wird
- unterbrochen, wenn ein Zeilenvorschub (Line Feed) gele-
- sen oder das Dateiende erreicht wird, ein Fehler auf-
- tritt oder <n> Zeichen gelesen wurden. Das Line FeedZei-
- chen (und das Carriage Return-Zeichen, das diesem ge-
- wöhnlich auf MS-DOS-System vorangeht) wird nicht als
- Teil der Zeichenkette behandelt.
-
- Wichtig: Die unter SALT verwendete Funktion fgets() un-
- terscheidet sich von der gleichnamigen C-Funktion. Zwar
- lesen beide bis zu einem Line-Feed, C jedoch behandelt
- das Line Feed-Zeichen als Teil der Zeichenkette. Diese
- Abweichung wurde gemacht, weil das Line Feed so gut wie
- nie gebraucht wird und anderenfalls nach jedem Lesen
- manuell entfernt werden müßte.
-
- Ausgabewert Beim Auftreten eines Lesefehlers oder Erreichen des Da-
- teiendes, bevor ein Zeichen gelesen werden konnte, wird
- der Wert -1 ausgegeben.
-
- Siehe auch fopen, fputs
-
- Beispiel int f;
- str s[100];
- f = fopen("test.dat", "r");
- while (!feof(f))
- // Dateiinhalt ausgeben
- {
- fgets(s, 100, f);
- printsc(s);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 54 -
-
-
-
- fileattr
-
- Aufbau fileattr(str <filespec>);
-
- Beschreibung Unter MS-DOS besitzen Dateien bestimmte Attribute, die
- ihre Funktionen und bestimmte Abläufe regeln. Wenn im
- Attribut-Byte einer Datei z. B. das ,hidden'-Bit gesetzt
- ist, wird diese Datei mit dem DOS-Befehl ,dir' nicht
- angezeigt. Ebenso kann eine Datei deren ,read only'-Bit
- gesetzt ist, nicht überschrieben werden.
-
- Die Funktion fileattr gibt einen Integer-Wert aus, der
- die Attribute der spezifizierten Datei vertritt. <file-
- spec> ist der Dateiname und kann Laufwerks- und Ver-
- zeichnisangaben enthalten sowie die DOS-Wildcard-Zeichen
- * und ?.
-
- Der ausgegebene Wert ist die Summe der folgenden Attri-
- bute:
-
- 1 Reine Lesedatei.
- 2 Verborgene Datei. Die Datei wird nicht aufgelistet,
- wenn der DOS-Befehl ,dir' ausgeführt wird.
- 4 Systemdatei. Die Datei wird nicht aufgelistet, wenn
- der DOS-Befehl ,dir' ausgeführt wird.
- 8 Diskettenname. Hierbei handelt es sich um den Ver-
- zeichnisnamen der Diskette.
- 16 Unterverzeichnis. Hierbei handelt es sich um den
- Namen eines Unterverzeichnisses.
- 32 Archiv-Bit. Dieses Bit setzt DOS, wenn in eine Da-
- tei etwas eingetragen wurde und dann eine Backup-
- Software prüft, ob die Datei seit dem letzten
- Backup geändert wurde.
-
- Jeder dieser Werte ist ein bestimmtes Bit eines Bytes.
- Zur Prüfung dieser Attribute sollte der Bit-Opertor AND
- verwendet werden. Folgende Zeile prüft beispielsweise,
- ob das ,read only'-Bit gesetzt ist:
-
- if (attrib & 1)
- ...
-
- Ist <filespec> leer (""), so werden die Werte der letz-
- ten mit filefind gefundenen Funktion übernommen. Beach-
- ten Sie bitte, daß nach zwischenzeitlichem Aufrufen von
- filesize oder filetime mit Angaben zum Dateinamen, die
- Eigenschaften der so gefundenen Datei übernommen werden,
- da sie den gleichen Puffer benutzen.
-
- Ausgabewert Es wird ein Integer-Wert ausgegeben, der für die kombi-
- nierten Eigenschaften der angegebenen Datei steht, bzw.
- der Wert -1, wenn die angegebene Datei nicht gefunden
- wird.
-
- Siehe auch filefind, filesize, filetime
-
- Beispiel int attr;
- str filename[64];
- gets(filename, 64);
- if (attr & 6)
- // Verknüpfung von System- mit
-
- - 55 -
-
-
-
- // verborgenen Dateien
- prints("Diese Datei ist als verborgen und
- Systemdatei markiert");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 56 -
-
-
-
- filefind
-
- Aufbau filefind(str <filespec>, int <attrib>, str <buffer>);
-
- Beschreibung Die Funktion filefind verwendet man, um das Vorhanden-
- sein einer oder mehrerer Dateien bzw. Verzeichnisse
- festzustellen. Filefind ordnet <buffer> den Namen der
- ersten Datei zu, die <filespec> entspricht, ggf. ein-
- schließlich Laufwerks- und Verzeichnisangabe. Die DOS
- Wildcard-Zeichen * und ? können verwendet werden (z. B.
- "*.*", "C:\TELIX\TELIX.EXE", "SCRIPTS\TEST??.*"). <at-
- trib> steht für die Eigenschaften (siehe auch fileattr),
- denen die jeweiligen Dateien entsprechen müssen. Man
- definiert diese Eigenschaften durch Addition bestimmter
- Werte, die im eizelnen folgende Bedeutung haben:
-
- 0 Normale und reine Lesedateien
- 2 Verborgene Dateien
- 4 Systemdateien
- 8 Diskettenname
- 16 Unterverzeichnis
-
- Hat <attrib> den Wert 0, werden nur normale und reine
- Ausgabedateien gefunden. Wird der Diskettenname ausge-
- wählt, so werden ausschließlich diese Namen ausgegeben.
- Durch Auswahl jeder anderen Eigenschaft, bzw. Kombina-
- tion (Addition) von Eigenschaften, werden alle Dateien,
- die diese Eigenschaft(en) besitzen sowie normale Dateien
- ausgegeben.
-
- Wenn eine passende Datei, bzw. ein Verzeichnis oder ein
- Diskettenname gefunden wird, wird sie/es/er <buffer> zu-
- geordnet (beachten Sie bitte, daß Laufwerks- und Pfad-
- angaben nicht mit übergeben werden) und ein Wert un-
- gleich 0 (TRUE) ausgegeben. Größe, Datum/ Uhrzeit und
- Eigenschaften der gefundenen Datei können über die Funk-
- tionen filesize, filetime und fileattr abgefrufen wer-
- den. Wird keine Datei gefunden, die den Dateispezifika-
- tionen entspricht, so wird der Wert 0 (FALSE) ausgege-
- ben.
-
- Wenn <filespec> leer ist (""), sucht filefind nach der
- nächsten passenden Datei. Beachten Sie bitte, daß dies
- nicht funktioniert, wenn zwischenzeitlich Dateigröße,
- -zeit oder -eigenschaften mit Angaben zum Dateinamen
- abgerufen werden, da für Suchen und Speichern der glei-
- che Puffer benutzt wird.
-
- Ausgabewert Wenn eine Datei gefunden wird, die den Spezifikationen
- entspricht, wird ein Wert ungleich 0 (TRUE) ausgegeben,
- andernfalls 0 (FALSE).
-
- Siehe auch filesize, filetime, fileattr
-
-
-
-
-
-
-
-
-
- - 57 -
-
-
-
- Beispiel // Alle normalen Dateien des aktuellen
- // Verzeichnisses anzeigen
- str buf[16] = "*.*";
- while (filefind(fspec, 0, buf) !=0)
- {
- prints(buf);
- // gefundene Datei anzeigen
- fspec = "";
- // damit wir weitere Dateien suchen können
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 58 -
-
-
-
- filesize
-
- Aufbau filesize(str <filespec>);
-
- Beschreibung Die Funktion filesize gibt die Größe der spezifizierten
- Datei in Bytes aus. <filespec> steht für den Dateinamen
- und kann Laufwerks- und Verzeichnisangaben sowie die
- DOS-Wildcard-Zeichen * und ? enthalten.
-
- Wenn <filespec> leer ist (""), wird die Größe der letz-
- ten mit filefind gefundenen Datei ausgegeben. Beachten
- Sie bitte, daß nach zwischenzeitlichem Abrufen von Zei-
- ten oder Eigenschaften spezifizierter Dateien die Größe
- der zuletzt so gefundenen Datei ausgegeben wird, da sie
- im gleichen Puffer stehen.
-
- Ausgabewert Es wird ein Integer-Wert ausgegeben, der der Größe der
- angegebenen Datei in Bytes entspricht, bzw. der Wert -1,
- wenn die Datei nicht gefunden werden konnte.
-
- Siehe auch filefind, filetime, fileattr
-
- Beispiel str filespec[24] = "*.*", buf[12];
- int size;
- siz = filesize("TELIX.EXE");
- //Größe der Datei TELIX.EXE ausgeben
-
- // Größe aller Dateien des aktuellen
- // Verzeichnisses addieren
- siz = 0;
- while (filefind(filespec, 0 buf) != 0)
- //bis zur letzten Datei
- {
- siz = siz + filesize("");
- filespec = "";
- // Größe der letzten mit file
- // find gefundenen Datei ausgeben.
- // Bei Folgeaufrufen muß
- // filespec "" sein, damit
- // weitere Dateien gesucht
- // werden können.
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 59 -
-
-
-
- filetime
-
- Aufbau filetime(str <filespec>);
-
- Beschreibung Die Funktion filetime bewirkt die Ausgabe von Datum/Zeit
- der spezifizierten Datei. <filespec> steht für den Da-
- teinamen und kann Laufwerks- und Verzeichnisangaben so-
- wie die DOS-Wildcard- Zeichen * und ? enthalten.
-
- Ausgegeben wird der Zeitpunkt der letzten Dateibearbei-
- tung als Anzahl der Sekunden, die seit dem 1.1.70 ver-
- gangen sind. Diese Datumsform kann bei den Funktionen
- date, time, tyear, tmonth, tday, thour, tmin, tsec u. a.
- benutzt werden.
-
- Wenn <filespec> leer ist, wird Datum/Zeit der letzten
- mit filefind gefundenen Datei ausgegeben. Beachten Sie
- bitte, daß nach zwischenzeitlichem Abrufen von Größe
- oder Eigenschaften spezifizierter Dateien Datum/Zeit der
- letzten so gefundenen Datei ausgegeben wird, da der
- gleiche Puffer verwendet wird.
-
- Ausgabewert Es wird ein Integer-Wert ausgegeben, der für Datum/Zeit
- der angegebenen Datei steht, bzw. -1, wenn die Datei
- nicht gefunden werden konnte.
-
- Siehe auch filefind, filesize, fileattr
-
- Beispiel int time;
- str s[16];
-
- time = filesize("TELIX.EXE");
- if (time == -1)
- prints(",TELIX.EXE' nicht gefunden!");
- else
- {
- printsc("TELIX.EXE wurde erzeugt am ");
- time(time, s);
- printsc(s);
- printsc(" um ");
- date(time, s);
- printsc(s);
- }
-
- // Bei folgendem Beispiel wird davon ausgegangen,
- // daß beide Dateien existieren:
- if (filetime("FILE1") < filetime("FILE2"))
- prints("FILE1 ist älter als FILE2";
- else
- prints("FILE1 ist neuer als FILE2");
-
-
-
-
-
-
-
-
-
-
-
-
- - 60 -
-
-
-
- flushbuf
-
- Aufbau flushbuf();
-
- Beschreibung Die Funktion flushbuf löscht etwaige im Telix-Empfangs-
- speicher anstehende Zeichen. Dies kann z. B. nützlich
- sein, um ungewollt empfangene Zeichen (z.B. durch Lei-
- tungsstörungen) zu unterdrücken.
-
- Ausgabewert keiner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 61 -
-
-
-
- fnstrip
-
- Aufbau fnstrip(str <filename>, int <specifier>, str <target>);
-
- Beschreibung Die Funktion fnstrip ermöglicht die Auswahl bestimmter
- Teile eines Dateinamens. Unter MS-DOS kann ein Dateiname
- aus bis zu vier Teilen bestehen: Laufwerk, Pfad, Name
- und Erweiterung (z. B.: C:\TELIX\TELIX.FON). fnstrip
- bearbeitet den als <filename> angegebenen Dateinamen und
- setzt eine von <specifier> abhängige Kombination der
- vier Namensteile in die Zeichenkette <target>. Folgende
- Werte können <specifier> mit entsprechenden Ergebnissen
- zugeordnet werden:
-
- 0 Voller Dateiname
- 1 Alles außer Laufwerk
- 2 Laufwerk, Name und Erweiterung
- 3 Name und Erweiterung
- 4 Laufwerk, Pfad und Name (ohne Erweiterung)
- 5 Pfad und Name (ohne Erweiterung)
- 6 Laufwerk und Name (ohne Erweiterung)
- 7 Nur der Name
- 12 Nur Laufwerk und Pfad
- 13 Nur der Pfad
- 14 Nur das Laufwerk
-
- Ausgabewert keiner
-
- Siehe auch filefind
-
- Beispiel str filename[64], shortname[16]
- gets(filename, 64);
- // Frage nach einem Dateinamen
- fnstrip(filename, 3, shortname);
- // Nur Name und Erweiterung
- // werden übernommen.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 62 -
-
-
-
- fopen
-
- Aufbau fopen(str <name>, str <mode>);
-
- Beschreibung Man verwendet die Funktion fopen, um eine Disketten-/-
- Plattendatei für Ein- und/oder Ausgaben zu öffnen. Die
- zu öffnende Datei wird unter <name> angegeben. <mode>
- steht für eine Zeichenkette, die angibt, zu welchem
- Zweck die Datei geöffnet werden soll. Für <mode> sind
- folgende Eingaben zulässig:
-
- "r" Öffnet für Lesezugriffe (read)
- "w" Öffnet für Schreibzugriffe (write); verwirft evtl.
- existierende Dateien mit gleichem Namen
- "a" Öffnet für Fortsetzungen (Eingaben am Dateiende (ap-
- pend)). Richtet die Datei ein, wenn sie noch nicht
- existiert.
- "r+" Öffnet für Aus- und Eingaben. Positioniert den Da
- teizeiger an den Dateianfang. (Die Datei muß bereits
- existieren.)
- "w+" Öffnet für Ein- und Ausgaben. Wenn die Datei bereits
- existiert, wird Ihr Inhalt zerstört.
- "a+" Öffnet für Ausgaben und Fortsetzungen. Richtet die
- Datei ein, wenn sie noch nicht existiert.
-
- Wenn eine Datei für Ein- und Ausgaben geöffnet ist (Modus
- "r+", "w+" oder "a+"), kann mit der Funktion fseek, die
- Betriebsart gewechselt werden.
-
- Ausgabewert Die Funktion fopen gibt ein ,handle' aus, das der
- Integer-Zahl entspricht, mit der auf diese Datei zugegrif-
- fen werden kann, bis sie wieder geschlossen wird. Es wird
- 0 ausgegeben, wenn die Datei nicht geöffnet werden kann
- (weil sie nicht existiert, wegen eines Disketten-/Platten-
- fehlers oder weil keine ,filehandles' mehr verfügbar
- sind). Es dürfen maximal 8 Dateien gleichzeitig geöffnet
- sein. Es ist wichtig, nicht mehr benötigte Dateien recht-
- zeitig zu schließen, da ansonsten die 8 verfügbaren
- ,handles' schnell verbraucht sein können.
-
- Siehe auch fclose
-
- Beispiel int f;
- f = fopen("data.txt", "r");
- // Öffnen der Datei für Ausgaben
- if (f == 0)
- prints("Fehler beim Öffnen der Datei!");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 63 -
-
-
-
- fputc
-
- Aufbau fputc(int <c>, int <fh>);
-
- Beschreibung Die Funktion fputc schreibt ein Zeichen in die Datei
- <fh>. <c> ist das zu schreibende Zeichen.
-
- Ausgabewert Es wird das geschriebene Zeichen ausgegeben, es sei
- denn, es tritt ein Fehler auf, dann wird der Wert -1
- ausgegeben.
-
- Siehe auch fputs, fgetc
-
- Beispiel int f, i;
- str teststr[] = "Dies ist eine Testzeichenkette";
- f = fopen("test.dat", "w");
- for (i = 0; i < 21; ++i)
- // Zeichenkette Zeichen für
- fputc(subchr(teststr, i), f);
- // Zeichen in Datei einsetzen
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 64 -
-
-
-
- fputs
-
- Aufbau fputs(str <s>, int <fh>);
-
- Beschreibung Die Funktion fputs schreibt eine Zeichenkette in die
- Datei <fh>. Die Zeichenkette kann bis zu 512 Bytes lang
- sein (alle Zeichenketten schließen mit einer 0;
- hierdurch wird erreicht, daß alle Zeichen vor dieser 0
- geschrieben werden. Die 0 wird nicht geschrieben).
-
- Ausgabewert Eine 0 wird ausgegeben, wenn das Einsetzen der Zeichen-
- kette erfolgreich verlief, ein Wert ungleich 0, wenn
- nicht.
-
- Siehe auch fputc, fgets
-
- Beispiel int f, i;
-
- f = fopen("test.dat", "w>");
- for (i = 0; i < 100; ++i)
- // 100 mal "Hallo" plus Zeilenvorschub
- fputs("Hallo^M^J", f);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 65 -
-
-
-
- fread
-
- Aufbau fread(str <buf>, int <count>, int <fh>);
-
- Beschreibung Mit der Funktion fread werden bis zu <count> Bytes aus
- der Arbeitsdatei <fh> gelesen. Die Zeichen werden der
- Variable <buf> zugeordnet, die entsprechend groß genug
- sein muß.
-
- Ausgabewert Es wird die Anzahl der tatsächlich gelesenen Zeichen
- ausgegeben; diese kann unter <count> liegen, wenn ein
- Fehler auftritt oder das Dateiende erreicht wird.
-
- Die Funktionen ferror und feof können benutzt werden, um
- einen aufgetretenen Fehler von einem erreichten Dateien-
- de zu unterscheiden.
-
- Siehe auch fwrite
-
- Beispiel int f;
- str buffer[40];
- f = fopen("test.dat", "r");
- fseek(f, 1000, 0);
- // Nach Abstand 1000
- // 40 Datenbytes einlesen
- fread(buffer, 40, f);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 66 -
-
-
-
- frename
-
- Aufbau frename(str <alt>, str <neu>);
-
- Beschreibung Die Funktion frename dient der Umbennung einer Datei.
- Die Datei mit dem Namen <alt> wird in <neu> umbenannt.
- Pfade und Laufwerksnamen dürfen mit dem Originalnamen
- angegeben werden, vor dem neuen Namen dürfen sie nicht
- angegeben werden. Die umbenannte Datei verbleibt im Ori-
- ginallaufwerk und -verzeichnis. Groß- oder Kleinschrei-
- bung wird nicht unterschieden.
-
- Ausgabewert Wenn die Funktion erfolgreich ausgeführt worden ist,
- wird eine 0 ausgegeben, sonst ein Wert ungleich 0.
-
- Beispiel frename("\TELIX\TELIX.CAP", "OLDTLX.CAP");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 67 -
-
-
-
- fseek
-
- Aufbau fseek(int <fh>, int <offset>, int <origin>);
-
- Beschreibung Die Funktion fseek positioniert den Dateizeiger in der
- Datei <fh>. Es wird die Position angesteuert, an der die
- nächste Ein- oder Ausgabe erfolgen soll. <offset> ent-
- spricht dem Abstand zu <origin>. Zulässige Werte für
- <origin> sind:
-
- 0 Dateianfang
- 1 Aktuelle Position
- 2 Dateiende
-
- Der Cursor kann an jede beliebige Stelle der Datei posi-
- tioniert werden und sogar hinter das Dateiende (wordurch
- die Datei erweitert wird). Nicht zulässig ist der Ver-
- such, den Cursor vor den Dateianfang zu setzen.
-
- Ausgabewert Wenn die Funktion erfolgreich ausgeführt wurde, wird
- eine 0 ausgegeben, anderenfalls ein Wert ungleich 0.
-
- Siehe auch ftell
-
- Beispiel int f;
- f = fopen("test.dat", "r");
- fseek(f, 0, 0); // Auf Abstand 0 gehen
- fseek(f, 1000, 0); // Auf Abstand 1000 gehen
- fseek(f, -5, 1) // 5 Stellen zurückgehen
- fseek(f, 0, 2); // Zum Dateiende gehen
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 68 -
-
-
-
- ftell
-
- Aufbau ftell(int <fh>);
-
- Beschreibung Die Funktion ftell gibt die aktuelle Position in der
- Datei <fh> aus.
-
- Ausgabewert Ausgabewert ist ein Integer-Wert wie oben beschrieben.
- Wenn ein Fehler auftritt, wird -1 ausgegeben.
-
- Siehe auch fseek
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 69 -
-
-
-
- fwrite
-
- Aufbau fwrite(str <buf>, int <count>, int <fh>);
-
- Beschreibung Mit der Funktion fwrite werden Bytes in die Datei <fh>
- geschrieben. Aus <buf> werden soviele Bytes, wie unter
- <count> vorgegeben, eingelesen.
-
- Ausgabewert Es wird die Anzahl der tatsächlich geschriebenen Bytes
- ausgegeben, die kleiner sein kann als <count>, wenn ein
- Fehler auftrat.
-
- Siehe auch fread
-
- Beispiel int f;
- str buffer[] = "1234567890123456789012345";
- f = fopen("test.dat", "w");
- fwrite(buffer, 25, f);
- // Zeichenkette in Datei schreiben
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 70 -
-
-
-
- get_baud
-
- Aufbau get_baud();
-
- Beschreibung Durch die Funktion get_baud wird ein Integer-Wert ausge-
- geben, der der aktuellen Baudrate am derzeitigen Kommu-
- nikations-Port entspricht (300 bis 115200).
-
- Ausgabewert Wie oben beschrieben.
-
- Siehe auch get_parity, get_datab, get_stopb, get_port
-
- Beispiel prints("Die aktuelle Baudrate ist ");
- printn(get_baud));
- prints("");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 71 -
-
-
-
- get_datab
-
- Aufbau get_datab();
-
- Beschreibung Die Funktion get_datab gibt die am aktuellen Kommunika-
- tions-Port gesetzten Datenbits aus (7 oder 8).
-
- Ausgabewert Wie oben beschrieben.
-
- Siehe auch get_baud, get_parity, get_stopb, get_port
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 72 -
-
-
-
- getenv
-
- Aufbau getenv(str <varname>, str <target>);
-
- Beschreibung Mit der Funktion getenv kann das DOS-Environment abge-
- sucht werden. <varname> ist der Name der DOS-Variablen
- nach der gesucht werden soll, <target> ist die Zeichen-
- kette, die unter dem Namen abgespeichert werden soll.
-
- Ausgabewert Wenn die Funktion erfolgreich ausgeführt worden ist,
- wird ein Wert ungleich 0 (TRUE) ausgegeben, ansonsten
- wird eine 0 ausgegeben.
-
- Beispiel str value[64];
- if(getenv("TELIX", value))
- // wenn die Umgebungsvariable
- prints(value)
- // existiert, wird value ausgegeben
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 73 -
-
-
-
- get_parity
-
- Aufbau get_parity();
-
- Beschreibung Die Funktion get_parity gibt einen Integer-Wert aus, der
- für die aktuelle Paritätseinstellung am Kommunikations--
- Port steht.
-
- Ausgabewert Es gibt folgende mögliche Ausgabewerte:
-
- 0 Keine Parität
- 1 Gerade Parität
- 2 Ungerade Parität
-
- Siehe auch get_baud, get_datab, get_stopb, get_port
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 74 -
-
-
-
- get_port
-
- Aufbau get_port();
-
- Beschreibung Die Funktion get_port gibt die Nummer (1 bis 8) des ak-
- tuell benutzten Kommunikations- Ports aus.
-
- Ausgabewert Wie oben beschrieben.
-
- Siehe auch get_baud, get_datab, get_parity, get_stopb
-
- Beispiel prints("Ausgewählte Schnittstelle: COM");
- printn(get_port());
- prints("");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 75 -
-
-
-
- get_stopb
-
- Aufbau get_stopb();
-
- Beschreibung Die Funktion get_stopb gibt die Anzahl der am Kommunika-
- tions-Port gesetzten Stopbits aus (1 oder 2).
-
- Ausgabewert Wie oben beschrieben.
-
- Siehe auch get_baud, get_datab, get_parity, get_port
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 76 -
-
-
-
- gets
-
- Aufbau gets(str <buffer>, int <max>);
-
- Beschreibung Die Funktion gets ermöglicht dem Benutzer die Eingabe
- einer vollständigen Zeichenkette, wobei er die Pfeilta-
- sten zum Editieren benutzen kann. <buffer> steht für die
- Zeichenkettenvariable, in die die Zeichenkette geschrie-
- ben werden soll. <max> ist die maximale Zeichenanzahl,
- die der Benutzer eingeben darf (0 bis 80). Während er
- die Zeichenkette eingibt, kann der Benutzer sie mit Hil-
- fe der Cursortasten Pfeil-nach-links, Pfeil-nach-rechts,
- Strg- Pfeil-nach-links und Strg-Pfeil-nach- rechts edi-
- tieren und den Einfügemodus durch Drücken der Einfg-
- Taste ein- und ausschalten, Die Eingabe der Zeichenkette
- wird durch Drücken von Enter (Carriage Return bei man-
- chen Rechnern) abgeschlossen. Mit Escape kann der Benut-
- zer die Eingabe abbrechen. In diesem Fall wird die Zei-
- chenkette die Länge 0 haben.
-
- Ausgabewert Es wird die Anzahl der vom Benutzer eingegebenen Zeichen
- ausgegeben. Drückt der Benutzer Escape, um die Eingabe
- abzubrechen, wird -1 ausgegeben.
-
- Siehe auch getsxy
-
- Beispiel int n
- str password[8];
- printsc("Geben Sie ein Passwort ein: ");
- n = gets(password, 8);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 77 -
-
-
-
- getsxy
-
- Aufbau getsxy(str <targets>, int <max>, int <y>, int <y>, int
- <color>);
-
- Beschreibung Die Funktion getsxy ähnelt der Funktion gets, die Posi-
- tion der Zeichenkette kann jedoch mit x,y spezifiziert
- werden, sowie auch eine Farbeigenschaft. <buffer> steht
- für die Zeichenkettenvariable, in die die Zeichenkette
- eingelesen werden soll. <max> ist die Zeichenanzahl, die
- der Benutzer maximal verwenden darf (0 bis 80). Der Cur-
- sor wird sich auf die Position <x>, <y> stellen und der
- Text wird in der unter <color> spezifizierten Farbe ein-
- gefügt.
-
- Während er die Zeichenkette eingibt, kann der Benutzer
- sie mit Hilfe der Tasten Pfeil-nach-links, Pfeil-nach--
- rechts, Strg- Pfeil-nach-links und Strg-Pfeil-nach--
- rechts editieren und den Einfügemodus durch Drücken der
- Einfg-Taste ein- und ausschalten, Die Eingabe der Zei-
- chenkette wird durch Drücken von Enter (Carriage Return
- bei manchen Rechnern) abgeschlossen. Mit Escape kann der
- Benutzer die Eingabe abbrechen. In diesem Fall wird die
- Zeichenkette die Länge 0 haben.
-
- Ausgabewert Es wird die Anzahl der vom Benutzer eingegebenen Zeichen
- ausgegeben. Drückt der Benutzer Escape, um die Eingabe
- abzubrechen, so wird -1 ausgegeben.
-
- Siehe auch gets
-
- Beispiel int n;
- str filename[64] = "C:\TELIX\TELIX.EXE";
- // Benutzer kann den Dateinamen in
- // schwarz auf weiß an der
- // aktuellen Position eingeben
- n = getsxy(filename, 64, getx(), gety(), 112);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 78 -
-
-
-
- getx, gety
-
- Aufbau getx();
-
- gety();
-
- Beschreibung Die Funktion getx gibt die aktuelle Position des Cursors
- auf der x-Achse aus.
-
- Die Funktion gety gibt die aktuelle Position des Cursors
- auf der y-Achse aus.
-
- Ausgabewert Bei der Funktion getx wird ein Wert zwischen 0 (erste
- Position ganz links) und 79 (letzte Position ganz
- rechts) ausgegeben.
-
- Bei der Funktion gety wird ein Wert zwischen 0 (oberste
- Zeile) und 24 (unterste Zeile) ausgegeben.
-
- Siehe auch gotoxy
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 79 -
-
-
-
- gotoxy
-
- Aufbau gotoxy(int <xpos>, int <ypos>);
-
- Beschreibung Die Funktion gotoxy positioniert den Cursor auf die
- Bildschirmkoordinaten, die mit <xpos> und <ypos> vorge-
- geben werden. Beachten Sie bitte, daß 0,0 die obere lin-
- ke Ecke des Bildschirms ist. Auf einem Bildschirm für 80
- x 25 Zeichen ist 79,24 die untere rechte Ecke.
-
- Ausgabewert keiner
-
- Siehe auch getx, gety
-
- Beispiel gotoxy(0, 0);
- // Cursor in obere linke Ecke
-
- gotoxy(79, 24);
- // Cursor in untere rechte Ecke
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 80 -
-
-
-
- hangup
-
- Aufbau hangup();
-
- Beschreibung Die Funktion hangup versucht, eine bestehende Modemver-
- bindung abzubrechen, genau wie bei Drücken von Alt-H im
- Terminalmodus. Hierzu wird zunächst das Signal DTR abge-
- schaltet. Hilft dies nicht, wird die im Konfigurierungs-
- menü definierte Zeichenkette zum Auflegen an das Modem
- gesandt.
-
- Ausgabewert Wenn erfolgreich aufgelegt wurde, erfolgt die Ausgabe
- eines Wertes ungleich 0 (TRUE), ansonsten wird 0 (FALSE)
- ausgegeben.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 81 -
-
-
-
- helpscreen
-
- Aufbau helpscreen();
-
- Beschreibung Die Funktion helpscreen bewirkt die Anzeige des Hilfe-
- Bildschirms, wie nach Drücken der entsprechenden Taste
- im Terminalmodus.
-
- Ausgabewert keiner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 82 -
-
-
-
- inkey, inkeyw
-
- Aufbau inkey();
-
- inkeyw();
-
- Beschreibung Die Funktion inkey gibt ein Zeichen der Tastatur aus,
- wartet jedoch nicht auf einen Tastendruck.
-
- Die Funktion inkeyw gibt ein Zeichen der Tastatur aus
- und wartet auf einen Tastendruck, wenn der Tastaturspei-
- cher leer ist.
-
- Beachten Sie bitte, daß Telix während der Auführung ei-
- ner Befehlsdatei nach jedem Befehl die Tastatur über-
- prüft, um zu erkennen, ob der Benutzer die Befehlsdatei
- abbrechen will. Um mit den Funktionen inkey und inkeyw
- arbeiten zu können, muß diese Tastaturprüfung unterbun-
- den werden. Das geschieht durch Setzen der Systemvaria-
- ble _scr_chk_key auf den Wert 0 (FALSE). (Diese Variable
- wird unter "Systemvariablen" näher beschrieben).
-
- Ausgabewert inkey gibt das erste Zeichen im Tastaturspeicher aus,
- bzw. 0, wenn dieser leer ist.
-
- inkeyw wartet bis eine Taste gedrückt wird, wenn im Ta-
- staturspeicher kein Zeichen ansteht und gibt den ent-
- sprechenden Wert aus.
-
- Beide Funktionen geben auch Werte aus, die nicht zum AS-
- CII-Zeichensatz gehören (z. B. den Kode für Alt-D). Die-
- se Werte sind im Anhang beschrieben.
-
- Beispiel chr = inkey();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 83 -
-
-
-
- inschrs
-
- Aufbau inschrs(str <source>, str <target>, int <pos>, int
- <num>;
-
- Beschreibung Die Funktion inschrs wird verwendet, um Zeichen einer
- Zeichenkette an einer bestimmten Position in eine andere
- Zeichenkette einzufügen, wobei vorhandene Zeichen nach
- rechts verschoben werden. Es werden die Zeichen aus
- <source> nach <target> übertragen, und zwar mit dem un-
- ter <pos> definierten Abstand. Beachten Sie bitte, daß
- die Abstände von Zeichenketten mit 0 beginnen, so daß
- das erste Zeichen den Abstand 0 hat, das zweite 1 usw.
- Es werden nur <num> Zeichen eingefügt und vorhandene
- Zeichen nach rechts verschoben (sie gehen verloren, wenn
- sie außerhalb des für die Zeichenkette verfügbaren Rau-
- mes gelangen).
-
- Ausgabewert keiner
-
- Siehe auch copystr, copychrs
-
- Beispiel str test[24] = "Goodbye";
- // "Hallo" am Anfang der existierenden
- // Zeichenkette einfügen
- inschrs("Hallo ", test, 0, 6);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 84 -
-
-
-
- isalnum - isupper
-
- Aufbau isalnum (int <c>);
- Auf Alphanumerik überprüfen (,A'-,Z', ,a'-,z' oder
- ,0'-,9')
-
- isalpha (int <c>);
- Auf Buchstaben überprüfen (,A'-,Z' oder ,a'-,z')
-
- isascii (int <c>);
- Auf ASCII-Wert überprüfen (0-255)
-
- iscntrl (int <c>);
- Auf Steuerzeichen überprüfen (0-31 oder 127)
-
- isdigit (int <c>);
- Auf Ziffern überprüfen (,0'-,9')
-
- islower (int <c>);
- ; Auf Kleinschreibung überprüfen (,a'- ,z')
-
- isupper (int <c>)
- Auf Großschreibung überprüfen(,A'-,Z')
-
- Beschreibung Die oben aufgeführten Funktionen überprüfen einen Inte-
- ger-Wert und geben einen Wert ungleich 0 (>TRUE) aus,
- wenn die zu prüfende Bedingung erfüllt ist, bzw. 0 (FAL-
- SE), wenn sie nicht erfüllt ist.
-
- Mit Ausnahme von isascii haben diese Funktionen nur gül-
- tige Ergebnisse bei Anwendung auf Integer-Werte des AS-
- CII-Zeichensatzes, d. h. für die isascii erfüllt. ist.
-
- Ausgabewert Es wird ein Wert ungleich 0 (TRUE) ausgegeben, wenn die
- Testbedingung erfüllt ist, anderenfalls 0 (FALSE).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 85 -
-
-
-
- is_loaded
-
- Aufbau is_loaded(str <filename>);
-
- Beschreibung Die Funktion is_loaded wird verwendet, um festzustellen,
- ob eine mit <filename> bezeichnete SALT-Scriptdatei zur
- Zeit geladen ist. Die Befehlsdatei kann im Speicher ste-
- hen, weil sie mit der Funktion load_script ausdrücklich
- geladen wurde oder nach einem abgebrochenen Ablauf noch
- im Speicher stehen. Wenn filename keine Erweiterung ent-
- hält, wird automatisch ,.SLC' hinzugefügt.
-
- Ausgabewert Wenn die angegebenen Befehlsdatei im Speicher steht,
- wird ein Wert ungleich 0 (TRUE) ausgegeben, anderenfalls
- 0 (FALSE).
-
- Siehe auch load_scr, unload_scr
-
- Beispiel if (!is_loaded("TESTSCR"))
- // Überprüfen, ob die Datei
- // im Speicher steht.
- load_scr("TESTSCR");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 86 -
-
-
-
- itos
-
- Aufbau itos(int <value>, str<s>);
-
- Beschreibung Die Funktion itos überträgt die Ziffern des eingegebenen
- Integer-Wertes auf <s>.
-
- Ausgabewert keiner
-
- Siehe auch stoi
-
- Beispiel int chr;
- str s[16];
- chr = keyinw();
- // Tastendruck vom Benutzer abwarten und
- // ASCII-Wert dieses Zeichens ausgeben
- itos(chr, s);
- prints(s);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 87 -
-
-
-
- keyget
-
- Aufbau keyget(int <key>, int<table>, str <buffer>;
-
- Beschreibung Die Funktion keyget wird verwendet, um nachzusehen, wel-
- cher Text einer Taste zugeordnet ist. <key> steht für
- einen Integer-Wert, der einer bestimmten Taste ent-
- spricht (wie im Anhang beschrieben). Der dieser Taste
- zugewiesenen Makrotext wird in die Variable <buffer>
- geschrieben. Telix führt ständig zwei Tabellen für Ta-
- stenmakrodifinierungen, nämlich eine Benutzertabelle und
- eine Terminaltabelle, die immer dann geladen wird, wenn
- das aktuelle Terminal gewechselt werden soll. Ist <ta-
- ble> 0, wird angenommen, daß es sich um eine Taste aus
- der Benutzertabelle handelt, wenn <table> 1 ist, wird
- sie der Terminaltabelle zugeordnet.
-
- Ausgabewert keiner
-
- Siehe auch keyset, keyload, keysave
-
-
- Beispiel str s[100];
- prints("Text, der Taste F1 zugewiesen ist:)";
- keyget(0x3a00, 0, s);
- prints(s);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 88 -
-
-
-
- keyload
-
- Aufbau keyload(str <fname>, int <table>);
-
- Beschreibung Die Funktion keyload wird verwendet, um eine Datei mit
- Tastatur-Makrodefinierungen nach Telix zu laden. <fname>
- ist der Name der Zuweisungsdatei (wenn keine Erweiterung
- angegeben wird, wird ,.KEY' angenommen). Telix behält
- immer zwei Zuweisungstabellen im Speicher: eine ziemlich
- konstante Benutzertabelle und eine Terminaltabelle, die
- sich je nach Terminaltyp ändert und die für das jewei-
- lige Terminal spezifischen Tastenzuweisungen enthält.
- Ist <table> gleich 0, werden die Zuweisungen in die Be-
- nutzertabelle geladen. Wenn <table> 1 ist, werden die
- Zuweisungen in die Terminaltabelle geladen.
-
- Ausgabewert Bei Problemen mit dem Laden der Zuweisungsdatei wird -1
- ausgegeben, ansonsten ein anderer Wert ungleich 0
- (TRUE).
-
- Siehe auch keysave, keyget, keyset
-
- Beispiel keyload("SPECIAL", 0);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 89 -
-
-
-
- keysave
-
- Aufbau keysave(str <fname>, int <table>);
-
- Beschreibung Die Funktion keysave wird verwendet, um akutelle
- Tasten-Makrodefinierungen auf Diskette/Platte zu
- sichern. <fname> steht für den Dateinamen, unter dem die
- Definitionen abgelegt werden. Wenn keine Erweiterung
- angegeben wird, wird ,.KEY' hinzugefügt. Telix behält
- ständig zwei Tastenzuweisungstabellen im Speicher, eine
- ziemlich konstante Benutzertabelle und eine Terminalta-
- belle, die je nach Terminaltyp variiert und die für das
- jeweilige Terminal spezifischen Tastenzuweisungen ent-
- hält. Wenn <table> gleich 0 ist, werden die Zuweisungen
- der Benutzertabelle gesichert. Wenn <table> gleich 1
- ist, werden die Zuweisungen der Terminaltabelle ge-
- sichert.
-
- Ausgabewert Treten aus irgendeinem Grund Schwierigkeiten beim Si-
- chern auf, wird -1 ausgegeben, ansonsten ein anderer
- Wert ungleich 0.
-
- Siehe auch keyload, keyget, keyset
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 90 -
-
-
-
- keyset
-
-
- Aufbau keyset(int <key>, int <table>, str <text>;
-
- Beschreibung Die Funktion keyset wird benutzt, um einer Taste Text
- zuzuweisen. <key> steht für einen Integer-Wert, der ei-
- ner bestimmten Taste entspricht (siehe Anhang). <text>
- wird der Taste zugewiesen. Telix behält ständig zwei
- Tastenzuweisungstabellen im Speicher, eine ziemlich kon-
- stante Benutzertabelle und eine Terminaltabelle, die je
- nach Terminaltyp variiert und die für das jeweilige
- Terminal spezifischen Tastenzuweisungen enthält. Bei
- <table> gleich 0 wird die Tastenzuweisung in der Benut-
- zertabelle bearbeitet, bei <table> gleich 1 die der Ter-
- minaltabelle.
-
- Ausgabewert keiner
-
- Siehe auch keyget, keyload, keysave
-
- Beispiel // Zuweisung für die Taste F1 der Benutzertabelle.
- // Beachten Sie bitte, daß eine etwa existierende
- // Belegung dieser Taste in der Terminaltabelle
- // bevorzugt behandelt würde.
- keyset(0x3a00, 0, "Joe Smith");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 91 -
-
-
-
- loadfon
-
- Aufbau loadfon(str <filename>);
-
- Beschreibung Die Funktion loadfon lädt das angegebene Anwahlverzeich-
- nis. Es muß der vollständige Name angegeben werden, et-
- waige Erweiterungen oder Laufwerks-/Verzeichnisangaben
- dürfen nicht fehlen, wenn die Datei nicht im aktuellen
- Verzeichnis steht.
-
- Ausgabewert Wenn das Anwahlverzeichnis erfolgreich geladen werden
- kann, wird ein Wert ungleich 0 (TRUE) ausgegeben. Treten
- irgendwelche Fehler auf (Datei existiert nicht, Lesefeh-
- ler, etc.), erfolgt die Ausgabe von 0 (FALSE).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 92 -
-
-
-
- load_scr
-
- Aufbau load_scr(str <filename>);
-
- Beschreibung Wenn eine Scriptdatei ausgeführt wird (entweder, weil
- der Benutzer sie im Terminalmodus ausführen läßt oder
- weil sie von einer anderen Scriptdatei aufgerufen wird),
- wird sie gewöhnlich von Diskette/Platte geladen. Die
- Funktion load_scr wird verwendet, um eine Scriptdatei
- bereits im voraus zu laden, damit bei wiederholten Aus-
- führungen Zeit gespart wird. <filename> steht für den
- Namen der zu ladenden Scriptdatei. Fehlt eine Erweite-
- rung, wird ,.SLC' angenommen.
-
- Ausgabewert Wenn beim Laden aus irgendeinem Grunde Schwierigkeiten
- aufgetreten sind, wird -1 ausgegeben (Datei nicht gefun-
- den; nicht genügend Speicherplatz). Sonst wird ein ande-
- rer Wert ungleich 0 (TRUE) ausgeben.
-
- Siehe auch unload_scr, is_loaded
-
- Beispiel int stat;
- stat=load_scr("TEST");
- // Laden von TEST.SLC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 93 -
-
-
-
- newdir
-
- Aufbau newdir(<directory>);
-
- Beschreibung Die Funktion newdir wird verwendet, um das aktuelle
- Laufwerk und/oder Verzeichnis zu wechseln. <directory>
- steht für das neue Laufwerk/Verzeichnis.
-
- Ausgabewert Bei erfolgreicher Ausführung der Funktion wird ein Wert
- ungleich 0 (TRUE) ausgegeben. Anderenfalls (bei illega-
- ler Laufwerks-/Verzeichnisangabe) erfolgt die Augabe des
- Wertes 0 (FALSE).
-
- Siehe auch dos, run
-
- Beispiel newdir("C:\TELIX");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 94 -
-
-
-
- printc
-
- Aufbau printc(int <chr>);
-
- Beschreibung Die Funktion printc gibt das Zeichen auf dem Bildschirm
- aus, das dem ASCII-Wert <chr> entspricht.
-
- Ausgabewert Es wird immer <chr> ausgegeben.
-
- Siehe auch prints, printsc, printn
-
- Beispiel printc(,A');
- printc(7);
- // Ausgabe des ASCII-Wertes 7 (Klingelzeichen)
-
- printc(keyinw());
- // Ausgabe einer gedrückten Taste
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 95 -
-
-
-
- printer
-
- Aufbau printer(int <state>);
-
- Beschreibung Die Funktion printer wird benutzt, um innerhalb einer
- Scriptdatei den Drucker an- bzw. auszuschalten, so als
- ob der Anwender den Alt-0-Befehl im Terminalmodus einge-
- geben hätte. Wenn <state> ein Wert ungleich 0 ist
- (TRUE), werden alle Bildschirmausgaben auf dem ange-
- schlossenen Drucker mitprotokolliert, sonst wird der
- Drucker ausgeschaltet.
-
- Ausgabewert keiner
-
- Siehe auch capture
-
- Beispiel printer(1); // Drucker mitlaufen lassen
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 96 -
-
-
-
- printn
-
- Aufbau printn(int <num>);
-
- Beschreibung Die Funktion printn gibt die ihr übergebene Integer-Zahl
- auf dem Bildschirm aus. Der Cursor wird NICHT auf den
- Anfang der nächsten Zeile gesetzt.
-
- Ausgabewert Es wird der Wert der übergebenen Integer-Zahl ausgege-
- ben.
-
- Siehe auch prints, printsc, printc
-
- Beispiel printsc("Aktuelle Baudrate ist ");
- printn(get_baud);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 97 -
-
-
-
- prints, printsc, printsc_trm
-
- Aufbau prints(str <outstr>);
-
- printsc(str <outstr>);
-
- printsc_trm(str <outstr>);
-
- Beschreibung Die Funktion prints gibt die ihr übergebene Zeichenkette
- an der aktuellen Cursor-Position auf dem Bildschirm aus,
- gefolgt von Carriage Return und Line Feed (woduch der
- Cursor auf den Anfang der nächsten Zeile gesetzt wird).
-
- Die Funktion printsc gibt die ihr übergebene Zeichenket-
- te an der aktuellen Cursor-Position auf dem Bildschirm
- aus. Der Cursor wird jedoch nicht in die nächste Zeile
- gesetzt; ,c' steht für continuous (fortgesetzt).
-
- Die Funktion printsc_trm ist der Funktion printsc ver-
- wandt. Allerdings werden die ausgegeben Zeichen vom ak-
- tuellen Terminalemulator verarbeitet, so daß Terminal--
- Escape-Sequenzen in die ausgegebenen Zeichenketten ein-
- gefügt sein können.
-
- Ausgabewert keiner
-
- Siehe auch printn, printc
-
- Beispiel prints("Hallo");
-
- printsc("Hallo^M^J");
- // gleicher Effekt wie erstes Beispiel
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 98 -
-
-
-
- pstra, pstraxy
-
- Aufbau pstra(str <s>, int <color>);
-
- pstraxy(str <s>, int <x>, int <y>, int <color>);
-
- Beschreibung Die Funktion pstra (Print STRing with color Attribute -
- Ausgabe einer Zeichenkette mit Farbeigenschaft) wird
- verwendet, um eine Zeichenkette auf den Bildschirm aus-
- zugeben, ähnlich wie mit prints/printsc. pstra ist je-
- doch viel schneller und sollte verwendet werden, wenn es
- auf Geschwindigkeit ankommt. Auch erlaubt die Funktion
- die Spezifikation einer Farbe für den Text. <s> wird an
- der aktuellen Cursor-Postion in der Farbe <color> ausge-
- geben.
-
- pstraxy arbeitet ähnlich, erlaubt jedoch zusätzlich die
- Positionierung der auszugebenden Zeichenkette. Die Zei-
- chenkette wird an der Position <x>,<y> ausgeben, wobei
- 0,0 die obere linke Ecke des Bildschirms ist.
-
- Beachten Sie, daß prints vom eingestellten Terminalemu-
- lator verarbeitet wird, so daß z.B. entsprechende Esca-
- pe-Steuersequenzen benutzt werden können. pstra schreibt
- dagegen direkt auf den Bildschirm und ignoriert solche
- Sequenzen.
-
- Ausgabewert keiner
-
- Siehe auch prints, printsc
-
- Beispiel pstraxy("Ihr Name:",10, 10, 112);
- // inverse Ausgabe
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 99 -
-
-
-
- receive
-
- Aufbau receive(int <protocol>, str <name>);
-
- Beschreibung Die Funktion receive wird verwendet, um eine oder mehre-
- re Dateien von einem anderen System zu empfangen (Down-
- load). <protocol> steht für das Zeichen, mit dem das
- geeignete Protokoll aus dem Telix-Empfangsmenü ausge-
- wählt wird (z. B. ,X' für Xmodem), wie folgt:
-
- ,A' ASCII
- ,K' Kermit
- ,M' Modem7
- ,S' SEAlink
- ,T' Telink
- ,X' Xmodem
- ,1' Xmodem-1k
- ,G' Xmodem-1k-g
- ,Y' Ymodem
- ,E' YmodEm-g
- ,Z' Zmodem
-
- Wenn ein externes Protokoll definiert wurde, kann <pro-
- tocol> auch für die Taste stehen, die zur Auswahl dieses
- Protokolls bestimmt ist. <name> ist der zu verwendende
- Dateiname. Bei Verwendung von Protokollen, die selbst
- einen Dateinamen vergeben, sollte dieses Feld frei blei-
- ben (""). Wenn im Konfigurierungsmenü ein Empfangsver-
- zeichnis definiert wurde, werden empfangene Dateien dort
- abgelegt, es sei denn, die Zeichenkette <name> enthält
- ausdrücklich den Pfad zu einem anderen Laufwerk/Ver-
- zeichnis.
-
- Ausgabewert Bei abgebrochener Übertragung oder Verbindung wird -1
- ausgegeben, andernfalls wird eine 1 ausgegeben.
-
- Siehe auch send, _down_dir
-
-
- Beispiel int result;
- result = receive(,X', "TEST.EXE");
- if (result < 0)
- prints("Dateitransfer misslungen!");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 100 -
-
-
-
- redial
-
- Aufbau redial(str <dialstr>, int <maxtries>, int <no_link>);
-
- Beschreibung Die Funktion redial wählt die in <dialstr> definierten
- Eintragungen. Die Eintragungen sollten in demselben For-
- mat eingegeben werden wie im Anwahlverzeichnis. Ist <di-
- alstr> leer, wird dem Benutzer die Wahlwieder-
- holungskette angezeigt, wie nach Drücken von Alt-Q im
- Terminalmodus. <maxtries> steht für die maximale Anzahl
- der Wahlwiederholungen. Enthält die Zeichenkette z.B.
- einen Entrag und <maxtries> ist gleich 5, wird Telix
- fünfmal versuchen, den entprechenden Anschluß zu errei-
- chen. Sind 5 Eintragungen angegeben und <maxtries> ist
- gleich 5, wird jede Nummer nur einmal angewählt. Wenn
- <maxtries> gleich 0 ist, erfolgt Wahlwiederholung, bis
- eine Verbindung zustandekommt. Wenn ein Eintrag mit ei-
- ner Befehlsdatei gekoppelt ist, wird diese ausgeführt,
- es sei denn, <no_link> ist ungleich 0 (TRUE).
-
- Ausgabewert Wenn eine Verbindung hergestellt wurde, gibt die Funk-
- tion redial die Nummer des entsprechenden Eintrags aus
- (oder 1, wenn eine Nummer manuell gewählt wurde). Kam
- keine Verbindung zustande, wird 0 ausgegeben. Hat <di-
- alstr> ein ungültiges Format, erfolgt die Ausgabe von
- -1. Ferner wird bei erfolgreichem Verbindungsaufbau die
- Systemvariable _entry_enum mit der Nummer des betreffen-
- den Eintrags belegt und die Systemvariable _entry_name
- mit dessen Namen.
-
- Siehe auch dial, _entry_enum, _entry_name
-
- Beispiel int stat;
- str number_list[] = "1 4 27";
- dial("10 15", 0);
- dial("m 0241 48221", 5);
- stat = dial(number_list, 0);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 101 -
-
-
-
- run
-
- Aufbau run(str <filemane>, str <comline>, int <mode>);
-
- Beschreibung Die Funktion run bewirkt die Ausführung der angegebenen
- Datei. Die Datei muß entweder im aktuellen Verzeichnis
- stehen, auf einem DOS-Pfad sein oder den vollständigen
- Pfad enthalten (d. h. Angabe von Laufwerk und/oder Ver-
- zeichnis). Stellen Sie bitte sicher, daß ein Programm,
- das die Eingabe eines Benutzers erwartet, diese auch be-
- kommt. Der Parameter <comline> steht für die Befehlszei-
- le, die dem aufgerufenen Programm übergeben wird. Fol-
- gende Modi können durch <mode> eingerichtet werden:
-
- 0 Ursprünglicher Bildschirminhalt wir nach Programmen-
- de wieder geladen.
- 1 Nach Programmende wird vom Benutzer ein Tastendruck
- abgefragt, nach welchem der ursprüngliche Bild-
- schirminhalt wieder geladen wird.
- 2 Nach Programmende wird der ursprüngliche Bildschirm-
- inhalt nicht wieder geladen.
-
- Diese Funktion ist der DOS-Funktion run sehr ähnlich. Da
- sie weniger Speicherplatz einnimmt und schneller arbei-
- tet, ist sie jener jedoch vorzuziehen, sofern nicht eine
- DOS-Batchdatei ausgeführt oder ein interner DOS-Befehl
- spezifiziert werden soll; dann muß nämlich die
- DOS-Funktion benutzt werden.
-
- Ausgabewert Die Funktion run gibt -1 aus, wenn die Datei nicht aus-
- geführt werden kann (weil sie nicht gefunden wird oder
- nicht genügend Speicherplatz verfügbar ist). Ansonsten
- erfolgt die Ausgabe des Wertes, der von dem aufgerufenen
- Programm ausgegeben wird (gewöhnlich 0), jedoch kann
- auch ein positiver Wert ausgegeben werden, wenn das auf-
- gerufene Programm abgebrochen wurde.
-
- Siehe auch dos, dosfunction
-
- Beispiel run("CS test", 1);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 102 -
-
-
-
- scroll
-
- Aufbau scroll(int <x>, int <y>, int <x2>, int <y2>, int <li-
- nes>, int <color>);
-
- Beschreibung Die Funktion scroll wird verwendet, um den Bildschrim-
- inhalt zu verschieben oder einen Bildschirmbereich zu
- löschen. Der zu bearbeitende Bereich wird mit <x>,<y>
- für die obere linke Ecke und <x2>,<y2> für die untere
- rechte Ecke definiert. (Die obere linke Ecke des Bild-
- schirms ist 0,0). Entspricht der Parameter <lines> einem
- positiven Wert, wird der Textblock um genau diese Anzahl
- von Zeilen hochgeschoben. Enthält <lines> einen negati-
- ven Wert, wird der Block um genau diese Anzahl von Zei-
- len heruntergeschoben. Ist <lines> gleich 0, wird der
- Block gelöscht. Mit <color> kann die Farbe der so ent-
- stehenden Leerzeilen festgelegt werden.
-
- Ausgabewert keiner
-
- Siehe auch box
-
- Beispiel scroll(0, 0, 79, 24, 10, 7);
- // 10 Zeilen nach oben verschieben
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 103 -
-
-
-
- send
-
- Aufbau send(int <protocol>, str <name>);
-
- Beschreibung Die Funktion send wird verwendet, um eine oder mehrere
- Dateien über den Kommunikations-Port zu versenden. <pro-
- tocol> ist das Zeichen, mit dem das geeignete Protokoll
- ausgewählt wird:
-
- ,A' ASCII
- ,K' Kermit
- ,M' Modem7
- ,S' SEAlink
- ,T' Telink
- ,X' Xmodem
- ,1' Xmodem-1k
- ,G' Xmodem-1k-g
- ,Y' Ymodem
- ,E' YmodEm-g
- ,Z' Zmodem
-
- Wurde ein externes Protokoll definiert, kann <protocol>
- auch die Taste enthalten, mit der dieses ausgewählt
- wird. <name> steht für die zu sendende(n) Datei(en).
- <name> darf die DOS- Wildcard-Zeichen * und ? enthalten,
- was das Senden aller passenden Dateien zur Folge hat.
- (Das Protokoll muß allerdings in der Lage sein, mehr als
- eine Datei gleichzeitig zu übertragen, z. B. SEAlink,
- Zmodem, Ymodem (batch), etc.) Wenn im Konfigurierungs-
- menü ein Sende-(Ausgabe)Verzeichnis definiert wurde,
- wird Telix dort nach zu versendenden Dateien suchen, es
- sei denn, die Zeichenkette <name> enthält einen explizi-
- ten Pfad zu einem anderen Laufwerk/Verzeichnis.
-
- Ausgabewert Bei abgebrochener Übertragung oder Verbindung wird -1
- ausgegeben, andernfalls wird eine 1 ausgegeben.
-
- Siehe auch receive, _up_dir
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 104 -
-
-
-
- send_brk
-
- Aufbau send_brk(<duration>);
-
- Beschreibung Die Funktion send_brk sendet für die Dauer von <dura-
- tion> Zehntelsekunden ein Break-Signal über den Kommuni-
- kations-Port.
-
- Ausgabewert keiner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 105 -
-
-
-
- set_cparams
-
- Aufbau set_cparams(int <baud>, int <parity>, int <data>, int
- <stop>;
-
- Beschreibung Die Funktion set_cparams wird zum Setzen der Übertra-
- gungsparameter, die am aktuelle Kommunikations-Port be-
- nutzt werden, verwendet. Erlaubte <baud>-Werte sind 300,
- 1200, 2400, 4800, 9600, 19200, 38400, 57600 und 115200.
- <parity> ist eine Integer-Zahl die für die zu verwenden-
- de Parität steht. Zulässige Werte sind 0, 1 und 2: Sie
- stehen für keine, gerade bzw. ungerade Parität. <data>
- steht für die zu verwenden Datenbits (7 oder 8). <stop>
- ist die Einstellung der Stopbits (1 oder 2).
-
- Ausgabewert Wenn die Werte für alle Einstellungen zulässig sind,
- wird ein Wert ungleich 0 und -1 (TRUE) ausgeben, ande-
- renfalls -1.
-
- Siehe auch set_port
-
- Beispiel set_cparams(2400, 0, 8, 1);
-
- set_cparams(9600, get_parity(), get_datab(),
- get_stopb());
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 106 -
-
-
-
- set_defprot
-
- Aufbau set_defprot(int <protocol>);
-
- Beschreibung Die Funktion set_defprot wird verwendet, um das stan-
- dardmäßige (default) Dateiübertragungsprotokoll einzu-
- richten, das dem Benutzer angeboten wird wenn er eine
- Dateiübertragung verlangt. <protocol> steht für das Zei-
- chen, mit dem das geeignete Protokoll ausgewählt wird
- (Optionen wie unter receive beschrieben).
-
- Ausgabewert keiner
-
- Siehe auch receive, send
-
- Beispiel set_defprot(,Z');
- // Zmodem als Standardprotokoll auswählen
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 107 -
-
-
-
- setchr
-
- Aufbau setchr(str <buf>, int <pos>, int <c>);
-
- Beschreibung Die Funktion setchr setzt das Zeichen <c> an Position
- <pos> in der unter <buf> genannten Zeichenkette.
-
- Ausgabewert Es wird das Zeichen <c> ausgegeben.
-
- Siehe auch setchrs, subchr
-
- Beispiel int i;
- str s[100];
- for(i=0;i<10;++i)
- // die ersten 10 Buchstaben auf A setzen.
- setchr(s, i, ,A');
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 108 -
-
-
-
- setchrs
-
- Aufbau setchrs(str <buf>, int <pos>, int <c>, int <count>;
-
- Beschreibung Die Funktion setchrs wird verwendet, um eine gewisse
- Anzahl Zeichen mit gleichem Wert in eine Zeichenkette
- einzusetzen. <buf> ist die Zeichenkette, in die die Zei-
- chen eingesetzt werden. Es wird begonnen an Stelle <pos>
- dieser Zeichenkette. (Beachten Sie bitte, daß das erste
- Zeichen einer SALT-Zeichenkette die Position 0 hat, das
- zweite 1 usw.) Die Zahl von <count> Zeichen wird mit dem
- Wert <c> eingesetzt.
-
- Ausgabewert keiner
-
- Siehe auch setchr, subchrs
-
- Beispiel str s[100];
- // Eine ganze Zeichenkette mit Nullen besetzen
- setchrs(s, 0, 0, strmaxlen(s));
- // Die ersten 10 Zeichen auf ,A' setzen
- setchrs(s, 0, ,A', 10);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 109 -
-
-
-
- set_port
-
- Aufbau set_port(int <port>);
-
- Beschreibung Mit der Funktion set_port wird der zu benutzende Kommu-
- nikations-Port ausgewählt. Zulässige Werte für <port>
- sind 1 bis 8.
-
- Ausgabewert Bei erfolgreicher Initialisierung wird ein Wert ungleich
- 0 und -1 (TRUE) ausgegeben, anderenfalls -1.
-
- Siehe auch set_cparams
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 110 -
-
-
-
- set_terminal
-
- Aufbau set_terminal(str <terminal>_name>);
-
- Beschreibung Die Funktion set_terminal wird verwendet, um das aktuell
- emulierte Terminal zu wechseln. <terminal_name> ist der
- Name des neuen Terminals, wie folgt:
-
- "TTY"
- "ANSI-BBS"
- "VT102"
- "VT52"
- "AVATAR"
-
- Ausgabewert Bei problemloser Umschaltung auf das gewünschte Terminal
- wird ein Wert ungleich 0 und -1 (TRUE) ausgegeben, ande-
- renfalls -1.
-
- Beispiel set_terminal("VT102");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 111 -
-
-
-
- show_directory
-
- Aufbau show_directory(str <filespec>, int <cecho>, int <car-
- rier>);
-
- Beschreibung Die Funktion show_directory bewirkt die Anzeige einer
- Dateiliste, die optional auch an den Kommunikations-Port
- gesendet werden kann. <filespec> ist die zu verwendende
- Dateimaske (z. B. "*.*") und darf ferner Laufwerks- und
- Verzeichnisangaben beinhalten, genau wie der DOS-Befehl
- ,dir'. Wenn <cecho> ungleich 0 (TRUE) ist, wird die Li-
- ste auch zum Kommunikations- Port geechot. Ist <carrier>
- ungleich 0 (TRUE) und die Liste wird zum Kommunika-
- tions-Port gesendet, wird für den Fall, daß eine Verbin-
- dung verloren geht (und damit die Anzeige abgebrochen
- wird), das DCD-Signal überwacht. Nach jedem vollen Bild-
- schirminhalt wird vom Benutzer ein Tastendruck verlangt.
-
- Ausgabewert keiner
-
- Siehe auch dos, dosfunction
-
- Beispiel show_directory("*.DOC", 0, 0);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 112 -
-
-
-
- status_wind
-
- Aufbau status_wind(str <message>, int <duration>);
-
- Beschreibung Die status_wind Funktion zeigt den Text <message> in
- einem pop-up-Fenster auf dem Bildschirm an. Nach <dura-
- tion> Zehntelsekunden verschwindet die Meldung wieder
- und der alte Bildschirminhalt wird wieder dargestellt.
-
- Ausgabewert keiner
-
- Siehe auch box, pstra, pstraxy
-
- Beispiel status_wind("Datei nicht gefunden!", 10);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 113 -
-
-
-
- stoi
-
- Aufbau stoi(str <s>);
-
- Beschreibung Die Funktion stoi nimmt an, daß es sich bei <s> um eine
- Zeichenkette handelt, die eine ausgeschriebene Integer-
- Zahl enthält. Sie bearbeitet die Zeichenkette nach Stel-
- len und gibt den entsprechenden Wert aus. Z. B. gibt
- stoi("123") den Integer-Wert 123 aus. Die Bearbeitung
- hört mit dem ersten nicht digitalen Zeichen auf. Wird
- eine leere oder ungültige Zeichenkette übergeben, er-
- folgt die Ausgabe des Wertes 0.
-
- Ausgabewert Ein Integer-Wert wie oben beschrieben.
-
- Siehe auch itos
-
- Beispiel str s[] = "123";
- if (stoi(s) == 123)
- prints("Dieser Text erscheint immer!");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 114 -
-
-
-
- strcat
-
- Aufbau strcat(str <string1>, str <string2>);
-
- Beschreibung Die Funktion strcat verkettet eine Zeichenkette mit ei-
- ner anderen. <string2> wird an das Ende von <string1>
- angehängt. Bietet <string1> nicht genügend Platz, so
- werden nur so viele Zeichen angehängt, wie hineinpassen.
-
- Ausgabewert keiner
-
- Beispiel str s[80] = "hallo";
- strcat(s, "goodbye");
- if (s == "hallogoodbye")
- prints("Dieser Text erscheint immer");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 115 -
-
-
-
- strchr
-
- Aufbau strchr(str <s>, int <pos>, int<c>);
-
- Beschreibung Diese Funktion wird benutzt, um Zeichen in einer
- Zeichenkette zu suchen. <s> ist die zu untersuchende
- Zeichenkette, <pos> die Position, bei der die Suche be-
- ginnen soll und <c> ist der ASCII-Wert des Zeichens,
- nach dem gesucht wird. Ist das Zeichen vorhanden, wird
- seine Position zurückgeliefert, ansonsten wird eine -1
- zurückgegeben. Beachten Sie, daß das erste Zeichen einer
- Zeichenkette den Offset 0 hat, nicht eine 1 wie in man-
- chen Programmiersprachen.
-
- Ausgabewert Ein Integer-Wert wie oben beschrieben.
-
- Beispiel // Wie oft erscheint ein bestimmtes Zeichen in einer -
- Zeichenkette
-
- int i, count = 0;
- str[s] = "abcabcabcabcabc";
-
- i = 0;
- do
- {
- i = strchr(s, i, ,a');
- if (i != -1)
- count = count + 1;
- }
-
- while (i != -1);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 116 -
-
-
-
- strcmpi
-
- Aufbau strcmpi(str <string1>, str <string2>);
-
- Beschreibung Die Funktion strcmpi wird verwendet, um zwei Zeichenket-
- ten miteinander zu vergleichen (in einer ähnlichen Weise
- wie mit den Operatoren ==, > und <, jedoch ohne die
- Groß- oder Kleinschreibung zu berücksichtigen). Die Zei-
- chenketten werden Zeichen für Zeichen miteinander ver-
- glichen, bis ein Unterschied entdeckt oder das Ende der
- Zeichenkette ereicht wird. Dann wird ein Interger-Wert
- ausgegeben:
-
- 0 <string1> ist gleich <string2>
- < 0 <string1> ist kleiner als <string2>
- > 0 <string1> ist größer als <string2>
-
- Ausgabewert Es wird ein Integer-Wert ausgegeben, wie oben beschrie-
- ben.
-
- Beispiel if (strcmpi("HeLLo", "hEllO");
- prints("Dieser Text erscheint immer");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 117 -
-
-
-
- strlen
-
- Aufbau strlen(str <s>);
-
- Beschreibung Diese Funktion gibt die Anzahl der in der Zeichenkette
- <s> verwendeten Zeichen aus. Da Zeichenketten mit dem
- Zeichen 0 (NUL) beendet werden, zählt diese Funktion
- tatsächlich die Anzahl der Zeichen vor dem Antreffen
- einer 0.
-
- Ausgabewert Es wird ein Integer-Wert ausgegeben, der der Länge der
- Zeichenkette entspricht.
-
- Siehe auch strmaxlen
-
- Beispiel str teststr[] = "Dies ist eine Test-Zeichenkette";
- printsc("Die Länge von ,teststr' ist ");
- printn(strlen(teststr));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 118 -
-
-
-
- strlower
-
- Aufbau strlower(str <s>);
-
- Beschreibung Die Funktion strlower bearbeitet die Zeichenkette <s>
- und verwandelt jeden Großbuchstaben in seine kleinge-
- schriebene Form. Andere Zeichen bleiben unverändert.
-
- Ausgabewert keiner
-
- Siehe auch strupper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 119 -
-
-
-
- strmaxlen
-
- Aufbau strmaxlen(str <s>);
-
- Beschreibung Die Funktion strmaxlen gibt die maximale Zeichenanzahl
- aus, die die Zeichenkette <s> enthalten darf. Hierbei
- handelt es sich um den Wert, der bei der Definierung der
- Zeichenkette an einer anderen Stelle des Programms fest-
- gelegt wurde (z. B. wenn eine Zeichenkette als ,str hal-
- lo[16];' definiert wurde, wird hier der Wert 16 ausgege-
- ben). Die Zeichenketten sind tatsächlich noch eine Stel-
- le länger als festgelegt, da das letzte Zeichen immer
- die abschließende 0 (NUL) ist. Da dieser Wert niemals
- geändert werden kann, zählt er jedoch nicht bei der Be-
- stimmung der Länge einer Zeichenkette.
-
- Ausgabewert Es wird ein Integer-Wert ausgegeben, wie vorstehend
- beschrieben.
-
- Siehe auch strlen
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 120 -
-
-
-
- strpos, strposi
-
- Aufbau strpos(str <string1>, str <substr>, int <start>);
-
- strposi(str <string1>, str <substr>, int <start>);
-
- Beschreibung Die Funktion strpos wird verwendet, um innerhalb einer
- Zeichenkette nach einer anderen zu suchen. <string1>
- wird ab der Stelle <start> auf <substr> untersucht. Wird
- <substr> gefunden, erfolgt die Ausgabe ihres Abstands
- zum Zeichenkettenanfang, wenn nicht, wird -1 ausgegeben.
- Beachten Sie bitte, daß das erste Zeichen den Abstand 0
- hat und nicht 1, wie in manchen Sprachen.
-
- strposi ist eine Abwandlung von strpos, bei der Groß-
- und Kleinschreibung nicht berücksichtigt werden.
-
- Ausgabewert Es wird ein Integer-Wert ausgegeben, wie vorstehend be-
- schrieben.
-
- Beispiel str teststr[] = "cat dog cat dog";
- int i = 0, num = 0;
-
- while (1)
- // Wiederholung, solange erforderlich
- {
- i = strpos(teststr, "cat", i);
- if (i == -1)
- break;
- i = i + 1;
- // um nicht den selben zu finden
- num = num + 1;
- // Zähler erhöhen
- }
- prints(",cat' wurde ");
- printn(num);
- prints(" mal gefunden.");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 121 -
-
-
-
- strupper
-
- Aufbau strupper(str <s>);
-
- Beschreibung Die Funktion strupper bearbeitet die Zeichenkette <s>
- und verwandelt jeden Kleinbuchstaben in seine großge-
- schriebene Form. Andere Zeichen bleiben unverändert.
-
- Ausgabewert keiner
-
- Siehe auch strlower
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 122 -
-
-
-
- subchr
-
- Aufbau subchr(str <s>, int <pos>);
-
- Beschreibung Die Funktion subchr gibt das Zeichen aus, das an Stelle
- <pos> der Zeichenkette <s> steht. Beachten Sie bitte,
- daß ein Integer-Wert ausgegeben wird (ASCII-Wert des
- Zeichens), nicht eine Zeichenkette. Bei <pos> kann es
- sich um jede beliebige Stelle handeln. Beachten Sie bit-
- te, daß die Stellen mit 0 beginnen. Das erste Zeichen
- einer Zeichenkette hat so die Position 0, das vierzigste
- die Position 39 usw. Eine Zeichenkette, deren Länge mit
- 10 Stellen definiert ist, hat die gültigen Positionen 0
- bis 9, wobei Position 10 den Wert 0 enthält, der alle
- Zeichenketten beendet.
-
- Ausgabewert Es wird ein Integer-Wert ausgegeben, wie vorstehend be-
- schrieben.
-
- Siehe auch setchr, subschrs
-
- Beispiel // Es sollen die einzelnen Werte aller
- // Zeichen einer Test-Zeichenkette ausgege-
- // ben werden, bis eine erreicht wird, die // jede
- Zeichenkette beenden sollte.
-
- int i;
- str s[] = "Dies ist eine Test-Zeichenkette";
- for (i = 0; subchr(s, i) != 0; ++i)
- printc(subchr(s, i));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 123 -
-
-
-
- subchrs
-
- Aufbau subchrs(str <source>, int <pos>, int <count>, int <tar-
- get>);
-
- Beschreibung Die Funktion subchrs kopiert eine bestimmte Zeichenan-
- zahl aus einer Zeichenkette in eine andere, und zwar
- werden <count> Zeichen aus <source> in die Zeichenkette
- <target> ab Position <pos> hineinkopiert. (Beachten Sie
- hierbei bitte, daß die Positionen der SALT-Zeichenketten
- ab 0 gezählt werden, nicht ab 1, wie in einigen
- Sprachen.) Es werde nur soviele Zeichen übernommen, wie
- noch in <target> hineinpassen.
-
- Diese Funktion gleicht sehr der Funktion substr, sie be-
- handelt jedoch einzelne Zeichen und beendet den Kopier-
- vorgang nicht beim Antreffen einer 0.
-
- Ausgabewert keiner
-
- Siehe auch substr, subchr, copystr, copychrs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 124 -
-
-
-
- substr
-
- Aufbau substr(str <source>, int <pos>, int <max>, str <tar-
- get>);
-
- Beschreibung Die Funktion substr kopiert einen Teil einer Zeichenket-
- te in eine andere hinein. Die Zeichen der Zeichenkette
- <source> werden ab Position <pos> an den Anfang der Zei-
- chenkette <target> kopiert. (Beachten Sie bitte, daß
- SALT-Zeichenketten mit der Position 0 beginnen, nicht
- mit 1, wie in einigen Sprachen). Zeichen werden kopiert,
- bis eine 0 angetroffen wird (gewöhnlich am Ende einer
- jeden Zeichenkette) oder die Anzahl <max> erreicht wird.
- Eine 0 (NUL) wird immer an das Ende der Zielzeichenkette
- kopiert. Die 0 wird nicht als Teil von <max> berücksich-
- tigt. Es werden nur so viele Zeichen kopiert, wie noch
- in <target> passen.
-
- Ausgabewert keiner
-
- Siehe auch subchrs
-
- Beispiel str s[] = "horse cat dog", s2;
- substr(s, 6, 3, s2);
- if (s2 == "cat")
- prints("Dieser Text erscheint immer");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 125 -
-
-
-
- tday - tyear
-
- Aufbau tday (int <timeval>);
-
- thour (int <timeval>);
-
- tmin (int <timeval>);
-
- tmonth (int <timeval>);
-
- tsec (int <timeval>);
-
- tyear (int <timeval>);
-
- Beschreibung Alle oben aufgeführten Funktionen beziehen ihre Zeitin-
- formationen aus <timeval>, das für ein bestimmtes Tages-
- datum bzw. eine Uhrzeit steht. Enthält <timeval> ein Da-
- tum, so wird es als Anzahl der Sekunden behandelt, die
- seit dem 01.01.1970 bis zu diesem Datum vergangen sind.
- Handelt es sich um eine Uhrzeit, so ist es die Anzahl
- der Sekunden, die seit Mitternacht bis zu diesem Zeit-
- punkt vergangen sind. Ist beides vorhanden, so werden
- die beiden Werte einfach addiert. U. a. geben die Funk-
- tionen curtime und filetime ihre Zeit- und Datumsinfor-
- mationen in diesem Format aus.
-
- tday gibt einen Integer-Wert zwischen 1 und 31 aus, der
- der Tagesangabe in <timeval> entspricht.
-
- thour gibt einen Integer-Wert zwischen 0 und 23 aus, der
- der Stundenangabe in <timeval> entspricht.
-
- tmin gibt einen Integer-Wert zwischen 0 und 59 aus, der
- der Minutenangabe in <timeval> entspricht.
-
- tmonth gibt einen Integer-Wert zwischen 1 und 12 aus,
- der der Monatsangabe in <timeval> entspricht.
-
- tyear gibt einen Integer-Wert zwischen 1980 und 2019
- aus, der der Jahresangabe in <timeval> entspricht.
-
- Ausgabewert Es wird ein Integer-Wert ausgegeben, wie vorstehend be-
- schrieben.
-
- Siehe auch curtime, filetime
-
- Beispiel int t;
- t = curtime();
- printsc("Dies ist Monat Nummer ");
- printn(tmonth(t));
- printsc(" im Jahre ");
- printn(tyear(t));
- prints(".");
-
-
-
-
-
-
-
-
-
- - 126 -
-
-
-
- terminal
-
- Aufbau terminal();
-
- Beschreibung Mit dem Aufrufen der Funktion terminal werden die von
- der seriellen Schnittstelle eingehenden Zeichen bearbei-
- tet und auf dem Bildschirm dargestellt sowie
- Tastendrücke des Benutzers bearbeitet. Wenn eine Funk-
- tion gerade ruht (z. B. während der Funktion track),
- kann sie die Funktion terminal aufrufen, um
- sicherzustellen, daß Zeichen und Tastendrücke verarbei-
- tet werden. Beachten Sie bitte, daß diese Funktion ter-
- minal auf keinen Fall aufgerufen werden sollte, wenn
- eine Scriptdatei des Benutzers jedes eingehende Zeichen
- verarbeiten würde (z.B. mit der Funktion cgetc).
-
- Ausgabewert keiner
-
- Siehe auch track
-
- Beispiel // Es soll solange gewartet werden, bis eine
- // von zwei Zeichenketten am Kommunikations-
- // Port eingeht. Dann soll die
- // Funktion abgebrochen werden.
-
- int t1, t2, stat;
-
- t1 = track("hallo", 0);
- t2 = track("goodbye", 0);
-
- while (1) // Endlosschleife
- {
- terminal();
-
- // Der Aufruf von terminal() bewirkt, daß
- // alle am Kommunikations-Port eingehenden
- // Zeichen von internen Telix-Routinen auf
- // eine Übereinstimmung überprüft werden.
- // Auch werden die eingehenden Zeichen auf
- // dem Bildschirm ausgegeben und Tasten-
- // drücke des Benutzers verarbeitet.
-
- stat = track_hit(0);
- if(stat==t1||stat==t2)
- // Abbruch, wenn eine der Zeichenketten
- // eingetroffen ist
- break;
- }
-
- track_free(t1);
- // Stoppt Telix' Suche nach
- // weiteren Übereinstimmmungen.
- track_free(t2);
-
-
-
-
-
-
-
-
-
- - 127 -
-
-
-
- time
-
- Aufbau time(int <timeval>, str <buffer>);
-
- Beschreibung Die time Funktion schreibt eine Zeitangabe in der Form
- hh:mm:ss in die Zeichenkette <buffer>, entweder im 12-
- oder 24-Stunden-Format (festgelegt durch die Systemva-
- riable _date_format). In <timeval> steht die Zeit in
- Form von Anzahl der vergangenen Sekunden seit
- Mitternacht. Zeitangaben in dieser Form werden z.B. von
- den Funktionen curtime und filetime geliefert.
-
- Ausgabewert keiner
-
- Siehe auch date, curtime, filetime
-
- Beispiel str s[16];
- printsc("Die aktuelle Zeit ist ");
- time(curtime(), s);
- prints(s);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 128 -
-
-
-
- time_up - timer_total
-
- Aufbau time_up (int <thandle>);
-
- timer_free (int <thandle>);
-
- timer_restart (int <thandle>, int <time>);
-
- timer_start (int <time>);
-
- timer_total (int <thandle>);
-
- Beschreibung Die timer-Funktionen werden verwendet, um Zeitmeßvaria-
- blen einzurichten und gemessene Zeiten zu speichern.
-
- Mit der Funktion timer_start wird eine Zeitmessung be-
- gonnen. Diese kann später benutzt werden, um festzustel-
- len, ob eine bestimmte Zeit seit Beginn der Zeitmessung
- verstrichen ist. Diese Funktion gibt einen Integer-Wert
- aus, der ,timer handle' <thandle> genannt wird und für
- spätere Zugriffe auf die Zeitmessung benutzt wird. Der
- Parameter <time> steht für die Zeitspanne (in Zehntelse-
- kunden), nach der die Zeitmessung enden soll (zum
- Gebrauch mit der Funktion time_up). Wenn die Funktion
- time_up nicht benutzt werden soll, kann dieser Parameter
- jeden beliebigen Wert haben.
-
- Die Funktion time_up gibt einen Wert ungleich 0 (TRUE)
- aus, wenn die von <thandle> vertretene Zeitmessung zu
- Ende geführt wurde, sonst wird 0 (FALSE) ausgegeben. Die
- Zeitspanne, nach der die Zeitmessung endet, wird inner-
- halb der Funktion timer_start festgelegt.
-
- Die Funktion timer_total gibt die Zeitspanne (in Zehn-
- telsekunden) aus, die vergangen ist, seit die durch
- <thandle> vertretene Zeitmessung gestartet oder wieder
- aufgenommen wurde.
-
- Die Funktion timer_restart bewirkt das gleiche wie
- timer_start. Nur wird eine bereits vorhandene Zeitmes-
- sung wieder aufgenommen, die durch <thandle> vertreten
- wird.
-
- Die Funktion timer-free löscht eine Zeitmeß-Variable,
- die nicht mehr benötigt wird. <thandle> steht für den
- Wert, der für die entsprechende Zeitmessung von der
- Funktion timer_start als timer handle ausgegeben wurde.
- Sobald eine Zeitmeß-Variable gelöscht wurde, sollte
- nicht mehr auf sie Bezug genommen werden.
-
- Ausgabewert timer_start gibt einen Integer-Wert aus, der für die
- ,handle' steht, mit dem auf einen Timer zugegriffen
- wird.
-
- time_up gibt einen Wert ungleich 0 (TRUE) aus, bzw. 0
- (FALSE), abhängig davon, ob die Zeitmessung zuende ge-
- führt wurde oder nicht.
-
- timer_total gibt einen Integer-Wert aus, der die vergan-
- gene Zeit seit dem Beginn einer Zeitmessung wiedergibt.
-
-
- - 129 -
-
-
-
- timer_restart gibt immer einen Wert ungleich 0 (TRUE)
- aus.
-
- timer_frei gibt immer einen Wert ungleich 0 (TRUE) aus.
-
- Siehe auch delay
-
- Beispiel int t;
-
- t = timer_start(100)
- // 10 Sekunden Verzögerung
- while (!time_up(t))
- ;
- timer_free(t);
-
- // Beginn einer Zeitmessung mit einer End// losschlei-
- fe, die die vergangene Zeit in // Zehntelsekunden aus-
- gibt.
-
- t = timer_start(0);
- while (1)
- {
- printn(timer_total(t));
- prints("");
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 130 -
-
-
-
- tolower
-
- Aufbau tolower(int <chr>);
-
- Beschreibung Wenn es sich bei <chr> um einen Großbuchstaben handelt,
- gibt die Funktion tolower den Wert des entsprechenden
- Kleinbuchstabens aus. Ansonsten wird <chr> unverändert
- ausgegeben. Beachten Sie bitte, daß <chr> ein ASCII-Wert
- ist, nicht eine Zeichenkette.
-
- Ausgabewert Es wird ein Integer-Wert ausgegeben, wie vorstehend be-
- schrieben.
-
- Siehe auch toupper
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 131 -
-
-
-
- tone
-
- Aufbau tone(int <frequency>, int <length>);
-
- Beschreibung Die Funktion tone läßt Telix ein Geräusch mit der Fre-
- quenz <frequency> ausgeben, und zwar für so viele Hun-
- dertstelsekunden, wie unter <length> festgelegt.
-
- Ausgabewert keiner
-
- Siehe auch alarm
-
- Beispiel tone(659, 14);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 132 -
-
-
-
- toupper
-
- Aufbau toupper(int <chr>);
-
- Beschreibung Wenn es sich bei <chr> um einen Kleinbuchstaben handelt,
- gibt die Funktion toupper den Wert des entsprechenden
- Großbuchstabens aus. Ansonsten wird <chr> unverändert
- ausgegeben. Beachten Sie bitte, daß <chr> ein ASCII-Wert
- ist, nicht eine Zeichenkette.
-
- Ausgabewert Es wird ein Integer-Wert ausgegeben, wie vorstehend
- beschrieben.
-
- Siehe auch tolower
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 133 -
-
-
-
- track - track_hit
-
- Aufbau track(str <trackstr>, int <mode>);
-
- track_hit(int <handle>);
-
- track_addchr(int <chr>);
-
- track_free(int <handle>);
-
- Beschreibung track und die damit verwandten Funktionen werden verwen-
- det, um bestimmte Zeichenketten, die am Kommunikations--
- Port eingehen, abzupassen (ähnlich wie mit waitfor) und
- sie aufzuzeichnen. waitfor kann jedoch nur eine Zeichen-
- kette behandeln, während die Funktion track mit (z. Zt.)
- bis zu 16 Zeichenketten gleichzeitig arbeiten kann, die
- in jeglicher Reihenfolge (oder überhaupt nicht) auftre-
- ten können.
-
- Die Funktion track weist Telix an, eine in <trackstr>
- hinterlegte Zeichenkette am Kommunikations-Port abzupas-
- sen. Wenn <mode> gleich 0 ist, wird Groß-/Kleinschrei-
- bung hierbei berücksichtigt, bei <mode> gleich 1 nicht.
- Ersterer Modus ist schneller und sollte besonders dann
- benutzt werden, wenn viele Zeichenketten erwartet wer-
- den. track gibt einen Integer-Wert aus, der ,track
- handle' genannt wird und später verwendet wird, wenn mit
- track_hit festgestellt werden soll ob die Zeichenkette
- eingegangen ist.
-
- Wenn track aufgerufen wird, dreht Telix nicht endlose
- Schleifen, um die eingehenden Zeichen abzupassen, son-
- dern geht wieder zu der Scriptdatei über. Wenn Zeichen
- eingehen, überprüft Telix, ob erwartete Zeichenketten
- darunter sind und markiert die Übereinstimmungen. Eine
- Scriptdatei kann jederzeit die Funktion track_hit aufru-
- fen und so feststellen, ob die mit <handle> bezeichnete
- Zeichenkette empfangen wurde. Wenn track_hit einen Wert
- ungleich 0 (TRUE) ausgibt, ist die Zeichenkette einge-
- gangen, bzw. 0 (FALSE), wenn nicht. Die Markierung einer
- Handle verschwindet, sobald durch track_hit angezeigt
- wurde, daß die entsprechende Zeichenkette eingegangen
- ist.
-
- Während des Ablaufs einer Scriptdatei befindet Telix
- sich nicht im Terminal-Modus und hat keinen Zugriff auf
- eingehende Zeichen, um sie auf Übereinstimmungen mit er-
- warteten zu überprüfen. Aus diesem Grund muß die
- Funktion terminal periodisch aufgerufen werden, damit
- Telix die empfangenen Zeichen untersuchen kann. Die
- Funktion terminal wird an anderer Stelle beschrieben.
- Wenn eine Befehlsdatei jedoch selbst diese Zeichen be-
- arbeiten muß (mit einer Funktion wie cgetc) und deshalb
- die Funktion terminal nicht aufrufen kann, werden die
- Zeichen einer Routine zur Prüfung auf Übereinstimmungen
- unterworfen. Hierfür wird die Funktion track_addchr be-
- nutzt. Wenn sie aufgerufen wird, behandelt Telix das
- Zeichen <chr> wie ein vom Terminalemulator empfangenes
- und benutzt es zur Prüfung auf Übereinstimmung.
-
- Die Funktion track_free wird benutzt, um Telix vom War-
-
- - 134 -
-
-
-
- ten auf eine bestimmte Zeichenkette zu entbinden. <hand-
- le> ist der Wert, der dieser Zeichenkette bei einem vor-
- ausgegangenen Aufruf der Funktion track zugewiesen wur-
- de. Es ist sehr wichtig, track_free aufzurufen, sobald
- es nicht mehr nötig ist, eine Zeichenkette abzupassen,
- da Telix langsamer werden kann, wenn auf viele Zeichen-
- ketten gewartet wird. Wenn <handle> gleich 0 ist, been-
- det Telix den Wartevorgang.
-
- Ausgabewert Alle Funktionen geben Integer-Werte aus, wie vorstehend
- beschrieben.
-
- Siehe auch waitfor
-
- Beispiel // Einloggen bei einem BBS-System mit Beant// wortung
- zweier Abfragen in beliebiger
- // Reihenfolge. Es soll endlos lange gewar-
- // tet werden, so daß es für den aktuellen // Gebrauch
- ein wenig abgeändert werden
- // müßte.
- // Beispiele entnehmen Sie bitte den Muster-// Befehls-
- dateien.
-
- int stat, t1, t2;
- t1 = track("Name? "), 0);
- t2 = track("Password? ", 0);
-
- while (1)
- // Endlosschleife, solange nötig
- {
- terminal();
- // Aufruf der Funktion terminal, damit
- // Telix eingehende Zeichen auf Überein-
- // stimmungen untersuchen und Telix
- // Tastendrücke des Benutzers verarbei-
- // ten kann.
-
- stat=track_hit(0);
- // Übereinstimmungen überprüfen
-
- if(stat==t1)
- // Abfrage des Namens
- cputs("Joe Smith^M");
- // Namen senden, Schleife fortführen
-
- if(stat==t2)
- // Abfrage des Paßworts
- {
- cputs("mypass^M");
- // Paßwort senden
- break;
- // und Schleife abbrechen
- }
- }
- track_free(t1);
- // track handles verwerfen
- track_free(t2);
-
-
-
-
-
- - 135 -
-
-
-
- transtab
-
- Aufbau transtab(str <filename>);
- // oder
-
- transtab(str <filename>, 0);
- // für eingehende Zeichen
-
- transtab(str <filename>, 1);
- // für ausgehende Zeichen
-
- Beschreibung Die Funktion transtab wird verwendet, um Übersetzungs-
- tabellen zu laden oder außer Kraft zu setzen.
-
- Wenn <filename> leer ist (""), fragt Telix nach dem Na-
- men der zu ladenden Übersetzungstabelle.
-
- Wenn <filename> den gültigen Namen einer Te-
- lix-übersetzungstabelle enthält (aus dem Telix-Übersetz-
- ungstabellenmenü gesichert), wird diese geladen.
-
- Ist <filename> "*CLEAR*", wird die aktuelle geladene
- Übersetzungstabelle außer Kraft gesetzt und Telix wird
- eingehende Zeichen nicht mehr übersetzen.
-
- Ausgabewert Treten beim Laden einer Übersetzungstabelle Schwierig-
- keiten auf, wird -1 ausgegeben, ansonsten ein anderer
- Wert ungleich 0 (TRUE).
-
- Beispiel transtab("TELIX.XLT");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 136 -
-
-
-
- unload_scr
-
- Aufbau unload_scr(str <filename>);
-
- Beschreibung Die Funktion load_scr kann in einer Scriptdatei dazu be-
- nutzt werden, eine andere Scriptdatei in den Speicher zu
- laden, bevor sie ausgeführt wird. Die Funktion
- unload_scr sollte dann benutzt werden, wenn eine
- Scriptdatei im folgenden nicht länger gebraucht wird.
- <filename> ist der Name der Scriptdatei, die aus dem
- Speicher entfernt werden soll. Fehlt eine Erweiterung,
- so wird .SLC angenommen. Beachten Sie, daß die aktuell
- ablaufende bzw. geladene Scriptdatei NICHT entfernt wer-
- den darf!
-
- Ausgabewert Wenn die Scriptdatei aus irgendeinem Grunde nicht ent-
- fernt werden konnte, wird der Wert -1 ausgegeben, anson-
- sten wird ein Wert ungleich -1 ausgegeben.
-
- Siehe auch load_scr, is_loaded
-
- Beispiel int stat;
- stat = load_scr("TEST");
- // lade TEST.SLC
- ...// bearbeite andere Dinge
- unload_scr("TEST");
- // speichere TEST.SLC ab
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 137 -
-
-
-
- update_term
-
- Aufbau update_term();
-
- Beschreibung Die Funktion update_term wird aufgerufen, um zu gewähr-
- leisten, daß Telix bestimmte Bildschirm- und Terminal--
- Einstellungen aktualisiert. Z. B. treten Änderungen der
- Systemvariablen _back_color und _fore_color erst dann in
- Kraft, nachdem update_term aufgerufen wurde. Auch wird
- Telix manchmal bis zu 15 Sekunden benötigen, um die Sta-
- tuszeile zu aktualisieren (und sie zu anderen Zeiten,
- wenn Befehlsdateien ablaufen, unverändert lassen). Der
- Aufruf von update_term gewährleistet die Aktualisierung
- der Statuszeile.
-
- Ausgabewert keiner
-
- Beispiel int temp;
- // aktuelle Bildschirmfarben umkehren
- temp = back_color;
- back_color = fore_color;
- fore_color = temp;
- update_term();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 138 -
-
-
-
- usagelog
-
- Aufbau usagelog(str <filename>);
-
- Beschreibung Die Funktion usagelog wird verwendet, um Telix' Möglich-
- keiten zur Protokollierung zu aufzurufen.
-
- Wenn <filename> leer ist, fragt Telix den Namen der Da-
- tei ab, unter der das Protokoll geführt werden soll,
- genau wie nach Drücken von Alt-U im Terminalmodus.
-
- Enthält <filename> einen Dateinamen, wird das Protokoll
- unter diesem Namen geführt. Gewöhnlich nennt man die
- Standardprotokolldatei "TELIX.USE".
-
- Ist <filename> gleich "*CLOSE*", und die Protokolldatei
- gerade geöffnet, wird sie geschlossen.
-
- Ausgabewert Wenn beim Ausführen der gewünschten Operation Schwierig-
- keiten auftreten, wird -1 ausgegeben, ansonsten ein an-
- derer Wert ungleich 0 (TRUE).
-
- Siehe auch ustamp
-
- Beispiel usagelog("TELIX.USE");
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 139 -
-
-
-
- usage_stat
-
- Aufbau usage_stat();
-
- Beschreibung Die usage_stat-Funktion liefert einen Integer-Wert, der
- den aktuellen Status der Benutzungs-Logdatei repräsen-
- tiert. Wenn die Benutzungsdatei gerade geöffnet ist,
- wird ein Wert ungleich 0 (TRUE) ausgegeben, ansonsten
- wird 0 ausgegeben.
-
- Ausgabewert Ein Integer-Wert, wie oben beschrieben.
-
- Siehe auch capture_stat
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 140 -
-
-
-
- ustamp
-
- Aufbau ustamp(str <text>, int <new_entry>, int <add_nl>);
-
- Beschreibung Die Funktion ustamp wird verwendet, um einen Text inner-
- halb des Telix-Benutzungsprotokolls einzutragen. Wenn
- die Protokolldatei gerade nicht geöffnet ist, wird die-
- ser Funktionsaufruf einfach ignoriert. <text> ist der
- Eintrag, der im Protokoll gemacht werden soll. Wenn
- <new_entry> einen Wert ungleich 0 (TRUE) enthält, wird
- das aktuelle Datum sowie die Uhrzeit vor den Text ge-
- setzt, ansonsten wird angenommen, daß es sich um eine
- Fortsetzung des vorausgehenden Eintrags handelt und Da-
- tum/Uhrzeit wird nicht eingesetzt. Wenn <add_nl> einem
- Wert ungleich 0 (TRUE) entspricht, wird dem Eintrag Car-
- riage Return und Line Feed hinterhergeschoben. Dies ist
- gewöhnlich der Fall, es sei denn, auf diese Zeile soll
- noch etwas geschrieben werden.
-
- Ausgabewert Wenn beim Eintragen in die Protokolldatei Probleme auf-
- treten, wird -1 ausgegeben, ansonsten ein anderer Wert
- ungleich 0 (TRUE).
-
- Siehe auch usagelog
-
- Beispiel ustamp("Aufruf des Benutzer-Unterprogramms... ", 1, 0);
- if (user_sub == -1)
- ustamp("erfolglos!, 0, 1);
- else
- ustamp("erfolreich", 0, 1);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 141 -
-
-
-
- vgetchr
-
- Aufbau vgetchr();
-
- Beschreibung Die Funktion vgetchr wird benutzt, um das Zeichen (in-
- klusive Farbinformation) an der aktuellen Cursorposition
- am Bildschirm einzulesen. Der Ausgabewert enthält das
- Zeichen im ersten (low) Byte und die Farbe des Zeichen
- im zweiten (higher) Byte. Jede Komponente kann mittels
- der & und / Operatoren abgerufen werden, wie im nachfol-
- genden Beispiel beschrieben. Wenn ,c' der ausgegebene
- Zeichen-/Farbwert ist, kann grundsätzlich der Zeichen-
- wert für sich durch den Ausdruck
-
- (c & 255)
-
- abgerufen werden, während der Farbwert
-
- (c / 256)
-
- ist.
-
- Ausgabewert Ein Integerwert wie oben beschrieben.
-
- Siehe auch vgetchrs, vgetchrsa, vputchr
-
- Beispiel int chr;
- chr = vgetchr();
- // Zeichen/Farbe an der aktuellen
- // Cursorposition einlesen
-
- printsc("Das Zeichen heißt ");
- printc(chr & 255);
- // Ausgabe des Zeichens ohne Farbinfor// mation
-
- printsc(" mit einem Farbwert von ");
- printn(chr / 256);
- // Hinzufügen des Farbbytes.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 142 -
-
-
-
- vgetchrs, vgetchrsa
-
- Aufbau vgetchrs(int <x>, int <y>, str <buf>, int <pos>, int
- <num>);
-
- vgetchrsa(int <x>, int <y>, str <buf>, int <pos>, int
- <num>);
-
- Beschreibung Die Funktionen vgetchrs und vgetchrsa dienem dem Lesen
- mehrerer Zeichen aus dem Bildschirmspeicher. Die erste
- Funktion liest nur Buchstaben (eine Sequenz von Bytes)
- in den Puffer, während die zweite auch die Farbwerte
- (Serie von Doppel-Bytes) liest. <x> und <y> sind die
- Bildschirmkoordinaten, aus denen eingelesen werden soll.
- <buf> ist der Puffer, in dem die Zeichen gespeichert
- werden. <pos> ist der Offset im Puffer für den ersten
- Buchstaben. Beachten Sie, daß jedes Zeichen, das mit
- vgetchrsa eingelesen wird, zwei Bytes im Puffer ein-
- nimmt, da auch der Farbwert gespeichert wird. Beachten
- Sie außerdem, daß diese Funktion keine 0 (NULL als Zei-
- chen für Stringende) setzt. Wenn die ausgegebenen Zei-
- chen als Zeichenfolge behandelt werden sollen, muß mit
- der Funktion setchr eine 0 am Ende angefügt werden.
-
- Ausgabewert keiner
-
- Beispiel // kopiere 20 Zeichen beginnend bei (10,10)
- // auf dem Bildschirm nach (20,20)
- // kopiere keine Farbwerte
- str buffer[20];
- vgetchrs(10, 10, buffer, 0, 20);
- vputchrs(20, 20, buffer, 0, 20);
-
- // kopiere ein 20 x 10 Raster von Zeichen,
- // inklusive Farbwerte, mit oberer linker
- // Ecke (10,5) nach (40,7)
- str buffer[400];
- // 20 breit x 10 hoch x 2 Bytes pro
- // Zeichen
- int y;
- for (y = 5; y < 15; y = y+1)
- // lese Zeichen in einer Schleife
- vgetchrsa(10, y, buffer, 2 * 20 * (y - 5),
- 20);
- for (y = 7; y < 17; y = y+1)
- // schreibe sie in einer Schleife
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 143 -
-
-
-
- vputchr
-
- Aufbau vputchr(int <chr>);
-
- Beschreibung Die Funktion vputchr wird verwendet, um ein Zeichen auf
- dem Bildschirm an die aktuelle Cursorposition zu setzen.
- Gleichzeitig wird die Farbinformation spezifiziert.
- <chr> ist das betreffende Zeichen. Das erste (low) Byte
- enthält den ASCII- Wert des Zeichens, und das zweite
- Byte den Farbwert. Wenn ,c' das Zeichen ist und ,color'
- die zu verwendende Farbe, wird der richtige Wert durch
- den Ausdruck
-
- (c + color * 256)
-
- erreicht.
-
- Ausgabewert keiner
-
- Siehe auch vgetchr
-
- Beispiel // Ein inverses ,X' soll in die linke obere
- // Ecke des Bildschirms gesetzt werden.
-
- gotoxy(0, 0);
- vputchr(,X' + 112 * 256);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 144 -
-
-
-
- vputchrs, vputchrsa
-
- Aufbau vputchrs(int <x>, int <y>, str <buf>, int <pos>, int
- <num>, int <attr>);
-
- vputchrsa(int <x>, int <y>, str <buf>, int <pos>, int
- <num>);
-
- Beschreibung Die Funktionen vputchrs und vputchrsa schreiben mehrere
- Zeichen in den Bildschirmspeicher. Bei der ersten Funk-
- tion wird angenommen, daß die Zeichenfolge keine Farb-
- werte enthält. Die in den Bildschirm geschriebenen Zei-
- chen haben den in <attr> gewählten Farbwert. Bei der
- zweiten Funktion wird angenommen, daß jedem Zeichen der
- Zeichenfolge sofort ein Farbwert folgt (Sequenzen von
- Doppel-Bytes). <x> und <y> sind die Bildschirmkoordina-
- ten, an denen das Schreiben begonnen wird. <buf> ist der
- Puffer, aus dem die Zeichen gelesen werden. <pos> ist
- der Offset an dem begonnen wird. Bei der Wahl des Off-
- sets, sollten Sie beachten, daß jedes Zeichen, das mit
- vputchrsa geschrieben wird, zwei Bytes in der Zeichen-
- folge ein-nimmt, da auch ein Farbwert definiert wird.
-
- Ausgabewert keiner
-
- Beispiel // kopiere 20 Zeichen beginnend bei (10,10)
- // auf dem Bildschirm nach (20,20)
- // kopiere keine Farbwerte
- str buffer[20];
- vgetchrs(10, 10, buffer, 0, 20);
- vputchrs(20, 20, buffer, 0, 20);
-
- // kopiere ein 20 x 10 Raster von Zeichen, // inklusive
- Farbwerte, mit oberer linker
- // Ecke (10,5) nach (40,7)
- str buffer[400];
- // 20 breit x 10 hoch x 2 Bytes pro
- // Zeichen
- int y;
- for (y = 5; y < 15; y = y+1)
- // lese Zeichen in einer Schleife
- vgetchrsa(10, y, buffer, 2 * 20 * (y - 5),
- 20);
- for (y = 7; y < 17; y = y+1)
- // schreibe sie in einer Schleife
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 145 -
-
-
-
- vrstrarea
-
- Aufbau vrstrarea(int <vhandle>);
-
- Beschreibung Die Funktion vrstrarea wird benutzt, um einen zuvor ge-
- sicherten Bildschirmbereich neu zu laden. <vhandle> ist
- das Bildinformationsbezeichner, der beim letzten Aufruf
- von vsavearea zum Sichern des Bildschirmbereichs ausge-
- geben wurde.
-
- Beachten Sie bitte, daß es sich bei <vhandle> um einen
- gültigen Bezeichner handeln muß, der zuvor von vsavearea
- ausgegeben wurde, da sonst unverhersehbare Folgen ein-
- treten.
-
- Ausgabewert keiner
-
- Siehe auch vsavearea
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 146 -
-
-
-
- vsavearea
-
- Aufbau vsavearea(int <x1>, int <y1>, int <x2>, int <y2>);
-
- Beschreibung Die Funktion vsavearea wird verwendet, um einen recht-
- eckigen Teil des Bildschirms (der später wieder geladen
- werden soll) zu sichern. <x1>, <y1> ist die obere linke
- Ecke des zu sichernden Bereichs und <<x2>, <y2> die un-
- tere rechte Ecke. Die Zeichen (und deren Farben), die
- sich gerade in diesem Rechteck befinden, werden in einen
- Puffer gesichert und ein ,handle' ausgegeben, welches
- gespeichert und beim nachfolgenden Aufruf von vrstrarea
- zum erneuten Laden des gesicherten Bereichs verwendet
- werden muß. Wenn nicht genügend Speicherplatz zum
- Sichern der Videobytes vorhanden ist, wird statt des
- Handles der Wert -1 ausgegeben.
-
- Beachten Sie, daß Telix nur einen begrenzten Speicher-
- raum zur Verfügung hat, um diese Funktion auszuführen.
- Mit diesem Befehl sollten immer nur so viele Bildschir-
- mausschnitte gespeichert werden, daß sie zusammen einen
- gesamten Bildschirm ergäben.
-
- Es ist ebenfalls sehr wichtig, daß jedem Aufruf dieser
- Funktion der Befehl vrstrarea folgt. Ansonsten wird der
- verfügbare Speicherplatz vollkommen aufgebraucht.
-
- Ausgabewert Ein Integerwert, der für das Handle des gesicherten Be-
- reichs steht.
-
- Siehe auch vstrarea
-
- Beispiel int vhandle;
-
- vhandle = vsavearea(0, 0, 79, 24);
- // Sichern des aktuellen
- // Bildschirminhalts
- myfunc();
- // Aufruf einer Funktion,
- // die den Bildschirm ändert
- vrstrarea(vhandle)
- // erneutes Laden des
- // alten Bildschirminhalts
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 147 -
-
-
-
- waitfor
-
- Aufbau waitfor(str <waitstr>, int <timeout>);
-
- Beschreibung Die Funktion waitfor wird benutzt, um auf das Eintreffen
- einer bestimmten Zeichenkette am Kommunikations-Port zu
- warten. Bei <timeout> handelt es sich um die Zeitpanne
- (in Sekunden), die maximal auf die Zeichenkette gewartet
- werden soll. Auf Groß- oder Kleinschreibung kommt es
- nicht an. Die Zeichenkette darf nicht mehr als 40 Zei-
- chen enthalten.
-
- Ausgabewert Es wird ein Wert ungleich 0 (TRUE) ausgegeben, wenn die
- Zeichenkette innerhalb der vorgegebenen Zeit von der se-
- riellen Schnittstelle eingeht, sonst wird 0 (FALSE) aus-
- gegeben.
-
- Siehe auch track
-
- Beispiel if (waitfor("name?", 1800)
- prints("Zeichenkette ,name?' vom Modem
- empfangen.");
- else
- {
- prints("Zeichenkette ,name?' wurde während 3 Minu-
- ten");
- prints("nicht vom Modem empfangen!");
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 148 -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 149 -
-
-
-
- 5. Systemvariablen
-
- Telix besitzt eine Vielzahl vordefinierter Variablen. Sie werden Sy-
- stemvariablen genannt und dienen der Speicherung interner Telix-Ein-
- stellungen. Es gibt Systemvariablen, die Zeichenketten enthalten und
- solche numerischer Art. Man kann auf sie zugreifen, wie auf jede ande-
- re Variable. Zur Unterscheidung von normalen Variablen beginnen sie
- alle mit dem Unterstrich (_).
-
- Auf den folgenden Seiten werden alle Systemvariablen beschrieben. Zu
- jeder Variable werden Aufbau und Beschreibung geliefert. Häufig wird
- auch ein Anwendungsbeispiel für die Variable aufgeführt.
-
- Die Variablen erscheinen in alphabetischer Reihenfolge. Um Ihnen das
- Auffinden verwandter Variablen (und eingebauter Funktionen) zu erlei-
- chern, enthalten fast alle Variablen Querverweise unter "Siehe auch".
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 150 -
-
-
-
- _add_lf
-
- Aufbau int _add_lf;
-
- Beschreibung Wenn die Variable _add_lf auf ungleich 0 (TRUE) gesetzt
- ist, wird jedem eingehenden Carriage Return-Zeichen ein
- Line Feed hinzugefügt.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 151 -
-
-
-
- _alarm_on
-
- Aufbau int _alarm_on;
-
- Beschreibung Wenn die Variable _alarm_on auf ungleich 0 (TRUE) ge-
- setzt ist, sind die Telix-Alarme in Kraft gesetzt. Be-
- achten Sie bitte, daß hierfür die Variable _sound_on
- nicht auf 0 (FALSE) gesetzt sein darf, sonst werden kei-
- nerlei Alarme gehört.
-
- Siehe auch _sound_on
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 152 -
-
-
-
- _answerback_str
-
- Aufbau str _answerback_str[19];
-
- Beschreibung Die Systemvariable _answerback_str enthält die Zeichen-
- kette, die Telix senden wird, wenn im Terminalmodus ein
- Ctrl-E (ENQ) Zeichen empfangen wird. Wenn diese Zeichen-
- kette leer ist, wird nichts gesendet. Beachten Sie bit-
- te, daß diese Antwortzeichenkette nicht gesendet wird,
- wenn Compuserve-B-Übertragungen erlaubt sind, da Compu-
- serve das Ctrl-E innerhalb des Übertragungsvorgangs be-
- nutzt. Die maximale Länge beträgt 19 Zeichen.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 153 -
-
-
-
- _asc_rcrtrans - _asc_striph
-
- Aufbau int _asc_rcrtrans;
-
- int _asc_remabort;
-
- int _asc_rlftrans;
-
- int _asc_scpacing;
-
- int _asc_scrtrans;
-
- int _asc_secho;
-
- int _asc_sexpand;
-
- int _asc_slftrans;
-
- int _asc_slpacing;
-
- int _asc_spacechr;
-
- int _asc_striph;
-
- Beschreibung _asc_rcrtrans bestimmt darüber, was Telix beim ASCII--
- Empfang mit Carriage Return-Zeichen macht. 0 = nichts, 1
- = weglassen, 2 = Line Feeds hinzufügen.
-
- _asc_remabort ist das Zeichen, welches - wenn im Rahmen
- einer ASCII-Übertragung von der entfernten Seite empfan-
- gen - das Signal für den Abbruch der Übertragung dar-
- stellt.
-
- _asc_rlftrans bestimmt darüber, was Telix
- beim ASCII-Empfang mit Line Feed-Zeichen macht. 0 =
- nichts;1 = weglassen; 2 = Carriage Returns voranstellen.
-
- _asc_scpasing ist die Zeitspanne (in Millisekunden), die
- Telix während ASCII-Sendungen zwischen der Übertragung
- der einzelnen Zeichen warten soll.
-
- _asc_scrtrans bestimmt darüber, was Telix bei ASCII-Sen-
- dungen mit Carriage Return-Zeichen macht. 0 = nichts; 1
- = weglassen; 2 = Line Feeds hinzufügen.
-
- Wenn _asc_secho auf ungleich 0 (TRUE) gesetzt ist, wird
- Telix während ASCII-Sendungen jedes Zeichen echoen.
-
- Wenn _asc_sexpand auf ungleich 0 (TRUE) gesetzt ist,
- wird Telix während ASCII-Sendungen Leerzeilen zu einem
- Leerzeichen verarbeiten.
-
- _asc_slftran bestimmt darüber, was Telix während ASCII--
- Sendungen mit Line Feed-Zeichen macht. 0 = nichts; 1 =
- weglassen; 2 = Carriage Returns voranstellen.
-
- _asc_slpacing ist die Zeitspanne (in Zehntelsekunden),
- die Telix bei ASCII-Sendungen zwischen der Übertragung
- der einzelnen Zeilen warten soll.
-
- _asc_spacechr ist das Zeichen, auf das Telix bei ASCII--
-
- - 154 -
-
-
-
- Sendungen vor der Übertragung der einzelnen Zeilen war-
- ten soll (0 bedeutet, daß Telix nicht warten soll).
-
- Wenn _asc_striph auf ungleich 0 (TRUE) gesetzt ist, wird
- Telix bei ASCII-Übertragungen das höchste (most signifi-
- cant) Bit jedes Zeichens weglassen.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 155 -
-
-
-
- _auto_ans_str
-
- Aufbau str _auto_ans_str[48];
-
- Beschreibung Die Variable _auto_ans_str enthält die Zeichenkette, die
- dem Modem gesandt wird, damit es Anrufe automatisch ent-
- gegennimmt. Diese Zeichenkette wird u. a. von der Be-
- fehlsdatei für den Host-Modus verwendet. Diese Zeichen-
- kette kann Übersetzungszeichen enthalten, wie im ent-
- sprechenden Abschnitt des Telix-Bedienerhandbuches be-
- schrieben und sollte dem Modem mittels der Funktion
- cputs_tr übersandt werden. Die maximale Länge beträgt 49
- Zeichen.
-
- Siehe auch _mdm_init_string
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 156 -
-
-
-
- _back_color
-
- Aufbau int _back_color;
-
- Beschreibung Die Variable _back_color enthält die Hintergrundfarbe,
- die im Terminal-Modus für Texte verwendet werden soll.
- Zulässige Werte sind 0 bis 15. Beachten Sie bitte, daß
- Änderungen dieser Variable erst in Kraft treten, wenn
- der Bildschirminhalt gelöscht wurde.
-
- Siehe auch _fore_color
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 157 -
-
-
-
- _capture_fname
-
- Aufbau str _capture_fname[64];
-
- Beschreibung Die Systemvariable _capture_fname enthält den Standard-
- namen der Protokolldatei. Die maximale Länge beträgt 64
- Zeichen.
-
- Siehe auch _usage_fname
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 158 -
-
-
-
- _cisb_auto
-
- Aufbau int _cisb_auto;
-
- Beschreibung Die Variable _cisb_auto kontrolliert, ob automatische
- Übertragungen mit Compuserve Quick B gestattet sind.
- Wenn diese Variable auf 0 (FALSE) gesetzt ist, werden
- Übertragungswünsche des entfernten Rechners (Compuserve)
- mit dem Quick B-Protokoll ignoriert.
-
- Siehe auch _zmod_auto
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 159 -
-
-
-
- _connect_str
-
- Aufbau str _connect_str[19];
-
- Beschreibung Die Variable _connect_str enthält die Zeichenkette, auf
- die Telix wartet, wenn es wählt und die es dann annehmen
- läßt, daß eine Verbindung zustande gekommen ist. Bei
- Hayes-kompatiblen Modems ist dies meist "CONNECT". Die
- maximale Länge beträgt 19 Zeichen.
-
- Siehe auch _no_connect1 - _no_connect4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 160 -
-
-
-
- _date_format
-
- Aufbau int _date_format;
-
- Beschreibung Der Inhalt der Systemvariable _date_format bestimmt über
- das Format, das Telix für Datumsangaben verwenden soll:
-
- 0mm/tt/jj
- 1tt/mm/jj
- 2jj/mm/tt
-
- Siehe auch _time_format
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 161 -
-
-
-
- _dial_pause
-
- Aufbau int _dial_pause;
-
- Beschreibung Die Systemvariable _dial_pause enthält die Zeitspanne
- (in Sekunden), die nach dem Ende eines Anwahlversuches
- vor dem Beginn des nächsten gewartet werden soll. Für
- die meisten Modems reicht eine Pause von 1 Sekunde.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 162 -
-
-
-
- _dial_time
-
- Aufbau int _dial_time;
-
- Beschreibung Die Systemvariable _dial_time enthält die Zeitspanne (in
- Sekunden), die Telix beim Anwahlvorgang auf eine Verbin-
- dung warten soll (z. B. 60).
-
- Siehe auch _dial_pause
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 163 -
-
-
-
- _dialpost
-
- Aufbau str _dialpost[19];
-
- Beschreibung Die Systemvariable _dialpost enthält die Zeichenkette,
- die dem Modem beim Wählen nach der Nummer gesandt werden
- soll (Anwahlsuffix). Bei Hayes-kompatiblen Modems ist
- dies meist nur das Carriage-Return-Zeichen. Die maximale
- Länge beträgt 19 Zeichen. Diese Zeichenkette kann Über-
- setzungszeichen enthalten, wie im Telix-Bedienerhandbuch
- beschrieben und sollte dem Modem mittels der Funktion
- cputs_tr übersandt werden.
-
- Siehe auch _dialpref, _dialpref2, _dialpref3, _redial_stop
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 164 -
-
-
-
- _dialpref
-
- Aufbau str _dialpref[19];
-
- str _dialpref2[19];
-
- str _dialpref3[19];
-
- Beschreibung Die Systemvariable _dialpref enthält die Zeichenkette,
- die dem Modem beim Wählen vor der Nummer gesandt wird.
- Bei Hayes-kompatiblen Modems it dies meist ,ATDP'. Die
- maximale Länge beträgt 19 Zeichen. Diese Zeichenkette
- kann Übersetzungszeichen enthalten, wie im Telix-Bedie-
- nerhandbuch beschrieben und sollte dem Modem mittels der
- Funktion cputs_tr übersandt werden.
-
- _dialpref2 und _dialpref3 sind die beiden weiteren An-
- wahlpräfixe, die unter Telix definiert werden können.
-
- Siehe auch _dialpost, _rdl_stop
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 165 -
-
-
-
- _dir_prog
-
- Aufbau str _dir_prog[64];
-
- Beschreibung Die Systemvariable _dir_prog enthält den Namen des Dis-
- ketten-/ Plattenverzeichnisprogramms, das aufgerufen
- werden soll, wenn der Benutzer die Option ,Inhaltsver-
- zeichnis' aus dem DOS-Funktionsmenü auswählt. Bleibt die
- Variable leer (""), wird der DOS-Befehl ,dir' benutzt.
- Die maximale Länge beträgt 15 Zeichen.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 166 -
-
-
-
- _disp_free
-
- Aufbau int _disp_free;
-
- Beschreibung Wenn die Systemvariable _disp_free auf einen Wert un-
- gleich 0 (TRUE) gesetzt ist, wird Telix den verfügbaren
- freien Speicherplatz eines Laufwerks anzeigen, wenn der
- Benutzer PgDn drückt, um eine Datei herbeizuholen
- (Download).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 167 -
-
-
-
- _down_dir
-
- Aufbau str _down_dir [64];
-
- Beschreibung Die Systemvariable _down_dir enthält den Namen des Stan-
- dard-Empfangsverzeichnisses. Wird eine Datei empfangen
- und der Benutzer gibt mit dem Dateinamen auch Laufwerk
- und/oder Verzeichnis an, so wird die Datei nach diesen
- Angaben abgelegt. Wenn jedoch nur der Dateiname angege-
- ben wird, kommt die Datei in das mit _down_dir bezeich-
- nete Verzeichnis. Die maximale Länge beträgt 64 Zeichen,
- und diese Zeichenkette sollte mit dem Backslash-Zeichen
- (,\') enden.
-
- Siehe auch _up_dir, receive
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 168 -
-
-
-
- _editor
-
- Aufbau str _editor[64];
-
- Beschreibung Die Systemvariable _editor enthält den Namen des Edi-
- tors, der nach Drücken von Alt-A verwendet werden soll.
- Wenn der Editor auf dem DOS-Pfad steht, muß nur der Name
- angegeben werden, ansonsten der komplette Pfadname
- (Laufwerk, Verzeichnis, Name). Die maximale Länge be-
- trägt 64 Zeichen. Soll eine Batchdatei ablaufen, muß die
- Erweiterung .BAT angegeben werden.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 169 -
-
-
-
- _entry_enum
-
- Aufbau int _entry_enum;
-
- Beschreibung Die Variable _entry_enum wird von den Anwahlroutinen
- gesetzt. Wenn beim Anwählen eine Verbindung zustande
- kommt, wird die Eintragsnummer des erreichten Anschlus-
- ses hier abgelegt. Handelt es sich um eine manuell ge-
- wählte Nummer, so wird der Wert 0 abgelegt.
-
- Siehe auch _entry_name, dial, redial
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 170 -
-
-
-
- _entry_name - _entry_pass
-
- Aufbau str _entry_name[29];
-
- str _entry_num[17];
-
- str _entry_pass[14];
-
- Beschreibung Die Variable _entry_name wird von den Anwahlroutinen
- gesetzt. Wenn eine Verbindung zustande kommt, wird der
- Namensteil des erreichten Eintrags hier hinein kopiert,
- um von Scriptdateien verwendet zu werden. Die maximale
- Länge beträgt 29 Zeichen.
-
- Die Variable _entry_num wird auf gleiche Weise belegt
- und enthält die Telefonnummer des erreichten Eintrags.
- Die maximale Länge beträgt 17 Zeichen.
-
- Auch die Variable _entry_pass wird so belegt, sie ent-
- hält das Paßwort für den erreichten Eintrag. Hiermit
- kann das Einloggen in einem Mailboxsystem durchgeführt
- werden. Die maximale Länge beträgt 14 Zeichen.
-
- Siehe auch _entry_enum, dial, redial
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 171 -
-
-
-
- _ext_filespec
-
- Aufbau str _ext_filespec [64];
-
- Beschreibung Diese Variable ist zum Gebrauch innerhalb von Scriptda-
- teien gedacht, die externe Protokolle benutzen. Wenn ein
- externes Protokoll als von einer Scriptdatei aufgerufen
- definiert ist, wird diese Variable zunächst mit der Da-
- teispezifikation belegt, die vom Benutzer im Über-
- tragungsmenü eingegeben wurde. Dann wird die zugehörige
- Scriptdatei ausgeführt. Die Scriptdatei kann den Namen
- dann z. B. einem Programm übergeben, das ein externes
- Protokoll eingerichtet. Beachten Sie bitte, daß einige
- Datenübertragungsprotokolle keine Namenseingabe für
- Downloads erwarten. In dem Fall bleibt diese Variable
- leer.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 172 -
-
-
-
- _fore_color
-
- Aufbau int _fore_color;
-
- Beschreibung Die Systemvariable _fore_color enthält die Vordergrund-
- farbe, die im Terminal-Modus für Texte verwendet werden
- soll. Zulässige Werte sind 0 bis 15. Beachten Sie bitte,
- daß Änderungen dieser Variable erst in Kraft treten,
- nachdem der Bildschirminhalt geräumt wurde.
-
- Siehe auch _back_color
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 173 -
-
-
-
- _image_file
-
- Aufbau str _image_file [64];
-
- Beschreibung Die Systemvariable _image_file enthält den vollständigen
- Namen der Datei, in der Bildschirminhalte gesichert wer-
- den sollen, wenn der Benutzer im Terminal-Modus Alt-T
- drückt. Wenn diese Datei bereits existiert, werden die
- Daten an ihr Ende angehängt.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 174 -
-
-
-
- _local_echo
-
- Aufbau int _local_echo;
-
- Beschreibung Die Variable _local_echo kontrolliert, ob die im Termi-
- nal-Modus über Tastatur eingegebenen Zeichen auf den
- Bildschirm geechot werden sollen. Wenn _local_echo auf
- ungleich 0 (TRUE) gesetzt ist, erscheint ein Echo der
- Zeichen auf dem Bildschirm, sonst nicht.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 175 -
-
-
-
- _mdm_hang
-
- Aufbau str _mdm_hang [19];
-
- Beschreibung Die Systemvariable _mdm_hang enthält die Zeichenkette,
- die dem Modem gesandt wird, wenn der Benutzer Alt-H
- drückt. Beachten Sie bitte, daß diese Zeichenkette nur
- dann gesandt wird, wenn es Telix nicht gelingt, das Mo-
- dem durch Abschalten des DTR-Signals an der seriellen
- Schnittstelle aufzulegen. Diese Zeichenkette kann Über-
- setzungszeichen enthalten, wie im Bedienerhandbuch be-
- schrieben und sollte dem Modem mit der Funktion cputs_tr
- gesandt werden. Die maximale Länge beträgt 19 Zeichen.
-
- Siehe auch str _mdm_init, _auto_ans_str
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 176 -
-
-
-
- _mdm_init_str
-
- Aufbau str_mdm_init_str [49];
-
- Beschreibung Die Systemvariable _mdm_init_str enthält die Zeichenket-
- te, die dem Modem gesandt werden soll, wenn Telix auf-
- gerufen wird. Hierdurch wird gewährleistet, daß das Mo-
- dem korrekt eingestellt ist. Diese Zeichenkette kann
- Übersetzungszeichen enthalten, wie im Bedienerhandbuch
- beschrieben und sollte dem Modem mit der Funktion
- cputs_tr gesandt werden. Die maximale Zeichenlänge be-
- trägt 49 Zeichen.
-
- Siehe auch _auto_ans_str, _mdm_hang
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 177 -
-
-
-
- _no_connect1 - _no_connect4
-
- Aufbau str _no_connect1 [19];
-
- str _no_connect2 [19];
-
- str _no_connect3 [19];
-
- str _no_connect4 [19];
-
- Beschreibung Diese Systemvariablen enthalten die Zeichenketten, die
- Telix beim Anwählen als Information erkennt, daß keine
- Verbindung zustande kam (z. B. Anschluß besetzt oder
- Anruf wurde nicht entgegenkommen). Die maximale Länge
- beträgt 19 Zeichen.
-
- Siehe auch _connect_str
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 178 -
-
-
-
- _qdbar_on
-
- Aufbau int _qdbar_on;
-
- Beschreibung Wenn die Systemvariable _qdbar_on auf ungleich 0 (TRUE)
- gesetzt ist, wird nach Drücken von Alt-D zunächst das
- Fenster für schnelle Wahl angezeigt; anderenfalls wird
- dem Benutzer gleich das Anwahlverzeichnis präsentiert.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 179 -
-
-
-
- _redial_stop
-
- Aufbau str _redial_stop [19];
-
- Beschreibung Die Systemvariable _redial_stop enthält die Zeichenket-
- te, die dem Modem gesandt werden soll, um einen Wahlwie-
- derholungsvorgang abzubrechen. Gewöhnlich enthält sie
- nur ein Carriage-Return-Zeichen. Diese Zeichenkette kann
- Übersetzungszeichen enthalten, wie im Bedienerhandbuch
- beschrieben und sollte dem Modem mit der Funktion
- cputs_tr gesandt werden. Die maximale Länge beträgt 19
- Zeichen.
-
- Siehe auch _dialpref, _dialpref2, _dialpref3, dialpost
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 180 -
-
-
-
- _scr_chk_key
-
- Aufbau int _scr_chk_key;
-
- Beschreibung Bei der Ausführung einer Scriptdatei prüft Telix nach
- jedem Kommando im Tastaturpuffer nach, ob der Benutzer
- einen Abbruch gefordert hat. Dies stört jedoch u. a. die
- Funktion inkey. Auch ist es manchmal notwendig, einen
- Abbruch der Scriptdatei durch den Benutzer zu unterbin-
- den. Wenn _scr_chk_key auf 0 (FALSE) gesetzt ist, wird
- Telix keine Prüfungen auf Abbruchwünsche durchführen.
- Das Zurücksetzen auf ungleich 0 (TRUE) wird die Prüfun-
- gen wieder in Kraft setzen. Wenn diese Variable inner-
- halb einer Scriptdatei verändert wird, sollte der alte
- Status in einer scratch-Variablen abgelegt und später
- wieder geladen werden.
-
- Siehe auch inkey
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 181 -
-
-
-
- _script_dir
-
- Aufbau str _script_dir[64];
-
- Beschreibung Die Systemvariable _script_dir enthält den vollständigen
- Pfad des Verzeichnisses, in dem Telix nach kompilierten
- Scriptdateien suchen soll, wenn eine Scriptdatei ausge-
- führt werden soll. Telix verwendet dann folgende Proze-
- dur: Enthält der Name Laufwerks- und/oder Verzeichnis-
- angabe, wird nur dieser Pfad abgesucht. Wird lediglich
- der Dateiname angegeben, sucht Telix zunächst im aktu-
- ellen Verzeichnis, dann in dem von _script_dir angezeig-
- ten. Diese Zeichenkette endet mit dem Zeichen ,\'. Die
- maximale Länge beträgt 64 Zeichen.
-
- Siehe auch _telix_dir, _up_dir, _down_dir
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 182 -
-
-
-
- _sound_on
-
- Aufbau int _sound_on;
-
- Beschreibung Wenn die Systemvariable _sound_on auf ungleich 0 (TRUE)
- gesetzt ist, werden die unter Telix verfügbaren Geräu-
- sche in Kraft gesetzt, sonst werden sämtliche Geräusche
- unterbunden.
-
- Siehe auch _alarm_on
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 183 -
-
-
-
- _strip_high
-
- Aufbau int _strip_high;
-
- Beschreibung Mit der Systemvariable _strip_high wird festgelegt, was
- Telix mit dem höchstwertigsten Bit eingehender Zeichen
- im Terminalmodus macht. Wenn diese Variable auf ungleich
- 0 (TRUE) gesetzt ist, wird Telix das höchstwertigste Bit
- eingehender Zeichen zurücksetzen.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 184 -
-
-
-
- _swap_bs
-
- Aufbau int _swap_bs;
-
- Beschreibung Mit der Systemvariable _swap_bs wird festgelegt, was
- Telix sendet, wenn die Rückschrittaste gedrückt wird.
- Wenn die Variable gleich 0 ist, sendet Telix einen Rück-
- schritt, bzw. DELETE bei Ctrl-Backspace. Ist die Varia-
- ble auf 1 gesetzt, kehrt Telix diese Funktionen um.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 185 -
-
-
-
- _telix_dir
-
- Aufbau str _telix_dir[64];
-
- Beschreibung Die Systemvariable _telix_dir enthält den vollständigen
- Pfad zum Basis-Inhaltsverzeichnis für Telix (z. B.
- ,C:\TELIX\'). Von einer Änderung dieser Variable wird
- abgeraten, da die Verwendung eines falschen Wertes dazu
- führt, daß Telix wahrscheinlich viele benötigte Dateien
- nicht findet. Die maximale Länge beträgt 64 Zeichen.
-
- Wenn die Variable geändert werden sollte, ist es zwin-
- gend notwendig, an ihr Ende ein Backslash-Zeichen (,\')
- zu setzen. Telix baut Pfade zu vielen Dateien, indem es
- dieser Zeichenkette einen Namen anhängt. Wenn der Backs-
- lash fehlt, wird dies zu Problemen führen.
-
- Siehe auch _script_dir, _up_dir, _down_dir
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 186 -
-
-
-
- _time_format
-
- Aufbau int _time_format;
-
- Beschreibung Die Systemvariable _time_format bestimmt darüber, wel-
- ches Format Telix für auszugebende Zeit-Zeichenketten
- benutzt. Wenn _time_format 0 ist, benutzt Telix ein 12--
- Stundenformat, ansonsten ein 24-Stundenformat.
-
- Siehe auch _date_format
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 187 -
-
-
-
- _up_dir
-
- Aufbau str _up_dir[64];
-
- Beschreibung Die Systemvariable _up_dir enthält den Standardnamen für
- das Sendeverzeichnis (Uploadverzeichnis). Soll eine Da-
- tei versandt werden und der Benutzer gibt Laufwerk und/-
- oder Verzeichnis mit an, wird auf das so angegebene Ver-
- zeichnis zugegriffen. Wird jedoch nur der Dateiname spe-
- zifiziert, so wird im durch _up_dir bezeichneten Ver-
- zeichnis gesucht. Diese Variable sollte mit dem Zeichen
- ,\' enden. Die maximale Länge beträgt 64 Zeichen.
-
- Siehe auch _down_dir
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 188 -
-
-
-
- _usage_fname
-
- Aufbau str _usage_fname[64];
-
- Beschreibung Die Systemvariable _usage_fname enthält den Standardna-
- men für die Benutzungs-Logdatei. Die maximale Länge be-
- trägt 64 Zeichen.
-
- Siehe auch _capture_fname
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 189 -
-
-
-
- _zmod_auto
-
- Aufbau int _zmod_auto;
-
- Beschreibung Die Systemvariable _zmod_auto kontrolliert, ob automati-
- sche Empfangs- (Download-) Vorgänge mit dem ZmodemProto-
- koll zulässig sind. Wenn Telix im Terminal-Modus zum au-
- tomatischen Empfang aufgefordert wird und diese Variable
- auf 0 (FALSE) gesetzt ist, wird Telix die Aufforderung
- ignorieren. (Der Benutzer kann die Datei jedoch immer
- noch empfangen, indem er das Zmodem-Protokoll manuell
- aus dem Alt-R Menü auswählt.
-
- Siehe auch _cisb_auto
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 190 -
-
-
-
- _zmod_rcrash
-
- Aufbau int _zmod_rcrash;
-
- Beschreibung Mit der Systemvariable _zmod_rcrash wird festgelegt, ob
- die Zmodem-Option Crash Recovery (resume) für den Daten-
- empfang eingeschaltet ist. Wenn diese Variable auf un-
- gleich 0 (TRUE) gesetzt ist, wird Telix versuchen, wäh-
- rend eines Zmodem-Downloads abgebrochene Übertragungen
- wieder aufzunehmen.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 191 -
-
-
-
- _zmod_scrash
-
- Aufbau int _zmod_scrash;
-
- Beschreibung Mit der Systemvariable _zmod_scrash wird festgelegt, ob
- die Zmodem-Option ,Crash Recovery' beim Senden von Da-
- teien (Upload) eingeschaltet ist. Wenn diese Variable
- auf ungleich 0 (TRUE) gesetzt ist, wird Telix versuchen,
- die andere Seite zur Wiederaufnahme einer während eines
- Zmodem-Uploads abgebrochenen Übertragung zu bewegen.
-
- Siehe auch _zmod_rcrash
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 192 -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 193 -
-
-
-
- 6. Anhang A ASCII-Zeichensatz
-
- Der ASCII-Zeichensatz besteht aus 128 Zeichen, die einem Wert von 0
- bis 127 zugeordnet werden. Der IBM PC benutzt den IBM- erweiterten
- Zeichensatz mit weiteren 128 Werten, um Sonderzeichen darzustellen.
- Die folgende Tabelle führt den normalen ASCII-Zeichensatz auf. Die
- erste Spalte enthält die ASCII-Steuerzeichen. Sie können normalerweise
- nicht dargestellt werden und sind, ebenso wie Zeichen 127, mit ihrem
- Namen bezeichnet.
-
-
- Dez Hex Strg Name Dez Hex Chr Dez Hex Chr Dez Hex Chr
-
- 0 00 ^@ NUL 32 20 64 40 @ 96 60 `
- 1 01 ^A SOH 33 21 ! 65 41 A 97 61 a
- 2 02 ^B STX 34 22 " 66 42 B 98 62 b
- 3 03 ^C ETX 35 23 # 67 43 C 99 63 c
- 4 04 ^D EOT 36 24 $ 68 44 D 100 64 d
- 5 05 ^E ENQ 37 25 % 69 45 E 101 65 e
- 6 06 ^F ACK 38 26 & 70 46 F 102 66 f
- 7 07 ^G BEL 39 27 ' 71 47 G 103 67 g
- 8 08 ^H BS 40 28 ( 72 48 H 104 68 h
- 9 09 ^I HT 41 29 ) 73 49 I 105 69 i
- 10 0a ^J LF 42 2a * 74 4a J 106 6a j
- 11 0b ^K VT 43 2b + 75 4b K 107 6b k
- 12 0c ^L FF 44 2c , 76 4c L 108 6c l
- 13 0d ^M CR 45 2d - 77 4d M 109 6d m
- 14 0e ^N SO 46 2e . 78 4e N 110 6e n
- 15 0f ^O SI 47 2f / 79 4f O 111 6f o
- 16 10 ^P DLE 48 30 0 80 50 P 112 70 p
- 17 11 ^Q DC1 49 31 1 81 51 Q 113 71 q
- 18 12 ^R DC2 50 32 2 82 52 R 114 72 r
- 19 13 ^S DC3 51 33 3 83 53 S 115 73 s
- 20 14 ^T DC4 52 34 4 84 54 T 116 74 t
- 21 15 ^U NAK 53 35 5 85 55 U 117 75 u
- 22 16 ^V SYN 54 36 6 86 56 V 118 76 v
- 23 17 ^W ETB 55 37 7 87 57 W 119 77 w
- 24 18 ^X CAN 56 38 8 88 58 X 120 78 x
- 25 19 ^Y EM 57 39 9 89 59 Y 121 79 y
- 26 1a ^Z SUB 58 3a : 90 5a Z 122 7a z
- 27 1b ^[ ESC 59 3b ; 91 5b [ 123 7b {
- 28 1c ^\ FS 60 3c < 92 5c \ 124 7c |
- 29 1d ^] GS 61 3d = 93 5d ] 125 7d }
- 30 1e ^^ RS 62 3e > 94 5e ^ 126 7e ~
- 31 1f ^_ US 63 3f ? 95 5f _ 127 7f DEL
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 194 -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 195 -
-
-
-
- 7. Anhang B Erweiterte Tastenscancodes
-
- Die folgende Tabelle führt die Tastenscancodes für besondere nicht--
- ASCIITasten auf, so wie sie von inkey und inkeyw geliefert werden bzw.
- von den keyget, key-set, keyload, und keysave SALT Funktionen benutzt
- werden.
-
-
- Taste Normal Strg Alt Shift
- Dec Hex Dec Hex Dec Hex Dec Hex
-
- F1 15104 3b00 24064 5e00 26624 6800 21504 5400
- F2 15360 3c00 24320 5f00 26880 6900 21760 5500
- F3 15616 3d00 24576 6000 27136 6a00 22016 5600
- F4 15872 3e00 24832 6100 27392 6b00 22272 5700
- F5 16128 3f00 25088 6200 27648 6c00 22528 5800
- F6 16384 4000 25344 6300 27904 6d00 22784 5900
- F7 16640 4100 25600 6400 28160 6e00 23040 5a00
- F8 16896 4200 25856 6500 28416 6f00 23296 5b00
- F9 17152 4300 26112 6600 28672 7000 23552 5c00
- F10 17408 4400 26368 6700 28928 7100 23808 5d00
-
-
- 1 30720 7800
- 2 30976 7900
- 3 31232 7a00
- 4 31488 7b00
- 5 31744 7c00
- 6 32000 7d00
- 7 32256 7e00
- 8 32512 7f00
- 9 32768 8000
- 10 33024 8100
-
-
-
- Hoch 18432 4800
- Tief 20480 5000
- Links 19200 4b00 29440 7300
- Rechts 19712 4d00 29696 7400
- Pos1 18176 4700 30464 7700
- Ende 20224 4f00 29952 7500
- Bild^ 18688 4900 33792 8400
- Bildv 20736 5100 30208 7600
- Einfg 20992 5200
- Entf 21248 5300
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 196 -
-
-
-
- 8. Anhang C - Farbattribute
-
- Einige SALT Funktionen wie pstra benutzen Farbattributwerte. Ein Bild-
- schirmzeichen besitzt eine Vordergrundfarbe und eine Hintergrundfarbe.
- Erlaubte Farben werden wie folgt numeriert:
-
- Schwarz 00
- Blau 01
- Grün 02
- Türkis 03
- Rot 04
- Violett 05
- Braun 06
- Hellgrau 07
- Dunkelgrau 08
- Hellblau 09
- Hellgrün 10
- Helltürkis 11
- Hellrot 12
- Hellviolett 13
- Gelb 14
- Weiß 15
-
- Ein Farbattributwert für eine Farbkombination berechnet sich wie
- folgt:
-
- Farbattributwert = Vordergrundfarbwert + (16 * Hintergrundfarbwert)
-
- Beispiel:
-
- Ein gelbes Zeichen auf blauem Untergrund hat den Farbattributwert 30
- (14 + (16 * 1)).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 197 -
-
-
-
- 9. Anhang D - Index
-
- _add_lf 151
- _alarm_on 152, 183
- _answerback_str 153
- _asc_rcrtrans 154
- _asc_striph 154
- _auto_ans_str 156, 176
- _back_color 157, 173
- _capture_fname 158, 189
- _cisb_auto 159, 190
- _connect_str 160, 178
- _date_format 161, 187
- _dial_pause 162, 163
- _dial_time 163
- _dialpost 164
- _dialpref 165
- _dir_prog 166
- _disp_free 167
- _down_dir 100, 168, 182, 186, 188
- _editor 169
- _entry_enum 170
- _entry_name 43, 101, 171
- _entry_pass 171
- _ext_filespec 172
- _fore_color 157, 173
- _image_file 174
- _local_echo 175
- _mdm_hang 176, 177
- _mdm_init_str 177
- _qdbar_on 179
- _redial_stop 164, 180
- _scr_chk_key 181
- _script_dir 182
- _sound_on 152, 183
- _strip_high 184
- _swap_bs 185
- _telix_dir 186
- _time_format 161, 187
- _up_dir 104, 168, 182, 186, 188
- _usage_fname 158, 189
- _zmod_auto 159, 190
- _zmod_rcrash 191, 192
- _zmod_scrash 192
- Alarm 13, 22, 23, 132, 152, 183
- Box 21, 24, 103, 113
- Break 12, 13, 17, 105, 121, 127, 135
- Call 22, 25
- Calld 22, 25
- Capture 22, 26, 27, 96, 140, 158, 189
- Capture_stat 27, 140
- Carrier 21, 28, 112
- Cgetc 21, 30, 31, 127, 134
- Cgetct 21, 31
- Chatmode 29
- Cinp_cnt 30, 31
- Clear_scr 32
- Continue 17
- Copychrs 33, 84, 124
- Copystr 21, 33, 34, 84, 124
- Cputc 21, 35
-
- - 198 -
-
-
-
- Cputs 21, 35-37, 135, 156, 164, 165, 176, 177, 180
- Cputs_tr 36, 37
- Cursor_onoff 38
- Curtime 22, 39, 40, 126, 128
- Date 22, 39, 40, 60, 128, 161, 187
- Delay 22, 41, 130
- Delay_scr 41
- Delchrs 21, 42
- Dial 22, 43, 101, 162, 163, 170, 171
- Do...while 15
- Dos 3, 22, 44-46, 54, 55, 57, 59, 60, 62, 73, 94, 102, 104, 112, 166,
- 169
- Dosfunction 44, 45, 102, 112
- Exittelix 46
- Expression 12
- Fclearerr 47
- Fclose 21, 48, 52, 63
- Fdelete 21, 49
- Feof 21, 47, 50, 51, 54, 66
- Ferror 21, 47, 50, 51, 66
- Fflush 21, 52
- Fgetc 21, 50, 53, 64
- Fgets 21, 54, 65
- Fileattr 55, 57, 59, 60
- Filefind 57, 62
- Filesize 59
- Filetime 40, 55, 60, 126, 128
- Flushbuf 61
- Fnstrip 21, 62
- Fopen 21, 47, 48, 50-54, 63-66, 68, 70
- For 2, 12, 13, 15-18, 64, 65, 108, 123, 143, 145
- Fputc 21, 53, 64, 65
- Fputs 21, 51, 54, 64, 65
- Fread 21, 66, 70
- Frename 21, 49, 67
- Fseek 21, 63, 66, 68, 69
- Ftell 21, 68, 69
- Fwrite 21, 66, 70
- Get_baud 71
- Get_datab 72
- Get_parity 74
- Get_port 71, 72, 74-76
- Get_stopb 75, 76
- Getenv 73
- Gets 21, 55, 62, 77, 78
- Getsxy 21, 77, 78
- Getx 21, 78-80
- Gety 21, 78-80
- Goto 12, 18, 19
- Gotoxy 21, 79, 80, 144
- Hangup 21, 46, 81
- Helpscreen 82
- If 4, 12-15, 17-19, 25, 26, 28, 30, 31, 47, 50, 51, 55, 60, 63, 73, 86,
- 100, 114-117, 121, 125, 127, 135, 141, 148
- Inkey 21, 23, 83, 181, 196
- Inkeyw 21, 35, 83, 196
- Inschrs 21, 42, 84
- Is_loaded 25, 86, 93, 137
- Isalnum 21, 85
- Isalpha 21, 85
- Isascii 21, 85
-
- - 199 -
-
-
-
- Iscntrl 21, 85
- Isdigit 21, 85
- Islower 21, 85
- Isupper 21, 85
- Itos 21, 87, 114
- Keyget 21, 88-91, 196
- Keyload 21, 88-91, 196
- Keysave 21, 88-91, 196
- Keyset 21, 88-91
- Load_scr 93
- Loadfon 22, 92
- Newdir 22, 94
- Printc 21, 50, 53, 95, 97, 98, 123, 142
- Printer 22, 26, 96
- Printn 15, 16, 21, 71, 75, 95, 97, 98, 118, 121, 126, 130, 142
- Prints 4, 5, 7, 9, 13-18, 21, 25, 26, 28, 31, 39, 40, 50, 51, 56, 58,
- 60, 63, 71, 73, 75, 87, 88, 95, 97-100, 114, 115, 117, 121,
- 125, 126, 128, 130, 148
- Printsc 21, 40, 54, 60, 77, 95, 97-99, 118, 126, 128, 142
- Printsc_trm 98
- Pstra 21, 99, 113, 197
- Pstraxy 21, 99, 113
- Receive 22, 100, 104, 107, 168
- Redial 22, 43, 101, 164, 170, 171, 180
- Return 3, 4, 12, 13, 15-17, 35, 36, 54, 77, 78, 98, 141, 151, 154, 164,
- 180
- Run 22, 44, 45, 94, 102
- Scroll 21, 24, 32, 103
- Send 22, 100, 104, 105, 107
- Send_brk 105
- Set_cparams 106, 110
- Set_defprot 107
- Set_port 21, 106, 110
- Set_terminal 111
- Setchr 21, 108, 109, 123, 143
- Setchrs 21, 108, 109
- Show_directory 112
- Status_wind 113
- Strcat 21, 115
- Strchr 21, 116
- Strcmpi 21, 117
- Strlen 21, 42, 118, 120
- Strlower 119, 122
- Strmaxlen 118, 120
- Strpos 21, 121
- Strposi 21, 121
- Strupper 119, 122
- Subchr 21, 64, 108, 123, 124
- Subchrs 33, 34, 109, 124, 125
- Substr 21, 33, 34, 121, 124, 125
- Tday 22, 39, 60, 126
- Terminal 111, 127
- Thour 22, 39, 60, 126
- Time 22, 39, 40, 60, 128-130, 161, 163, 187
- Time_up 22, 129, 130
- Timer_free 129
- Timer_restart 129
- Timer_start 129
- Timer_total 129
- Tmin 22, 39, 60, 126
- Tmonth 22, 39, 60, 126
-
- - 200 -
-
-
-
- Tolower 21, 131, 133
- Tone 22, 23, 132
- Toupper 21, 131, 133
- Track 22, 127, 134, 135, 148
- Track_hit 134
- Transtab 136
- Tsec 22, 39, 60, 126
- Tyear 22, 39, 60, 126
- Unload_scr 22, 86, 137
- Update_term 21, 138
- Usage_stat 27, 140
- Usagelog 139, 141
- Ustamp 22, 139, 141
- Vgetchr 142, 144
- Vgetchrsa 143
- Vputchr 142, 144
- Vputchrsa 145
- Vrstrarea 146
- Vsavearea 146, 147
- Waitfor 22, 134, 135, 148
- While 4, 12-15, 17, 19, 23, 30, 50, 53, 54, 58, 59, 116, 121, 127, 130,
- 135
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 201 -
-