================================== term ===================================
===========================================================================
              Ein  Gift-Ware  Telekommunikationsprogramm von
         Olaf Barthel, © Copyright 1990,91 by Olaf Barthel & MXM,
                         alle Rechte vorbehalten.

   Es   wird   keinerlei   Gewährleistungspflicht   für   die  vollständige
Funktionsfähigkeit  des  (der)  in diesem Dokument beschriebenen Programmes
(Programme) übernommen.  Sie nutzen diese Software auf eigenes Risiko.


============================= term und ARexx ==============================
===========================================================================
In   dieser   Datei  sollen  die  von  `term'  unterstützten  ARexx-Befehle
beschrieben  werden.   Dies ist keine Einführung in die Sprache selbst, die
von  Mike  F.   Cowlishaw auf dem IBM VM/SP® entwickelt (eine Bewertung des
VMS/CMS®  will ich mir hier sparen) und von William S.  Hawes auf dem Amiga
implementiert wurde.
   ARexx  (oder  auch  Amiga  Rexx)  ist ein kommerzielles Produkt, das dem
AmigaDOS 2.0 Enhancer Package beiliegt. Wer nach einer guten Einführung und
Beschreibung   der   Sprache   sucht,   dem  empfehle  ich  das  Buch  `Die
Programmiersprache  REXX'  von  M.   F.  Cowlishaw, erschienen 1988 im Carl
Hanser Verlag München/Wien, ISBN 3-446-15195-8.

   `term'  richtet einen Rexx-Host unter dem Namen "TERM" ein (anzusprechen
mittels `address term').  Startet man mehrere `term'-Programme, so wird der
Name  des  Hosts  der  Nummer des Programmes angepaßt (das erste gestartete
Programm meldet den Host unter dem Namen `TERM' an, das zweite bedient sich
`TERM1',  das dritte nimmt `TERM2', etc.).  Der Name wird auch im Titel des
Hauptbildschirmes des jeweiligen Programmes angezeigt.
   Insgesamt  werden genau 44 Befehle unterstützt, die sich in zwei Klassen
einteilen lassen:

- Asynchrone  Befehle,  die  `augenblicklich'  ausgeführt  werden  und  ein
  ARexx-Programm nicht zum Warten zwingen.

- Synchrone  Befehle,  die  das Hauptprogramm `term' selbst ausführt.  Dies
  kann  es  notwendig machen, daß das ARexx-Programm wartet, bis der Befehl
  ausgeführt wurde.


========================= Die Asynchronen Befehle =========================
===========================================================================
CLEARDISPLAY........... Löscht den Inhalt des `Logbuches'.

CLOSEDISPLAY........... Schließt   den  Bildschirm  des  `Logbuches',  läßt
                        dessen Inhalt aber unverändert.

DEFAULT2FRONT.......... Schiebt  den  Standardbildschirm (`Default Screen')
                        nach    vorne.     Dies   ist   üblicherweise   der
                        Workbench-Bildschirm.

REXX2FRONT............. Schiebt  den  Bildschirm  nach  vorne,  auf dem das
                        Ausgabefenster des ARexx-Interfaces liegt.

DISPLAY2FRONT.......... Schiebt den Bildschirm des `Logbuches' nach vorne.

TERM2FRONT............. Schiebt  den  Hauptbildschirm des `term' Programmes
                        nach vorne.

WB2FRONT............... Schiebt  ausdrücklich den Workbench-Bildschirm nach
                        vorne.

CLEARDOWNLOADLIST...... Die  Liste  aller  bisher  empfangenen Dateien wird
                        gelöscht.

QUERY.................. Mit   diesem   Befehl   lassen   sich  verschiedene
                        Systemparameter abfragen.  Aufgrund der Komplexität
                        dieses  Befehles  soll  er  nachfolgend beschrieben
                        werden.

QUIETEXIT.............. Wird   dieser   Befehl   aufgerufen,  so  wird  das
                        Ausgabefenster   des   Programmes  nach  Beendigung
                        sofort geschlossen.  Üblicherweise bleibt es bis zu
                        einer Bestätigung durch den Anwender geöffnet.


=========================== Der `QUERY' Befehl ============================
===========================================================================
Die  folgenden Parameter lassen sich über den `QUERY' Befehl abfragen (z.B.
über `query baudrate'):

ADOWNLOADPATH.......... Der   Name  des  Verzeichnisses  in  dem  die  beim
                        Empfangen   von  ASCII-Daten  entstehenden  Dateien
                        abgelegt werden.

AUPLOADPATH............ Der  Name  des Verzeichnisses, das beim Verschicken
                        von ASCII-Dateien durchsucht wird.

AUDBELL................ ON   wenn   ein   akustisches   Signal   bei  jedem
                        `Bell'-Zeichen ausgegeben wird, sonst OFF.

AUTOCAPTURE............ ON    falls   beim   erfolgreichen   Aufbau   einer
                        Telefonverbindung  eine  Mittschnitt-Datei angelegt
                        wird, sonst OFF.

BAUDRATE............... Die     aktuell     eingestellte    Übertragungsge-
                        schwindigkeit in Bits/Sekunde.

BEEPSOUND.............. Der  Name  der  IFF-Sound-Datei,  die  anstelle des
                        normalen  Piepsens  beim Eingang eines BEL-Signales
                        gespielt wird.

BITSPERCHAR............ Die Anzahl der übertragenen Bits pro Zeichen.

BLINKING............... ON   falls   die   Blinkfunktionen   des  Terminals
                        eingeschaltet sind, sonst OFF.

BREAKLENGTH............ Die    Dauer    eines   Unterbrechungssignales   in
                        Mikrosekunden   (1   Million   Mikrosekunden   =  1
                        Sekunde).

BDOWNLOADPATH.......... Der   Name  des  Verzeichnisses  in  dem  die  beim
                        Empfangen   von  Binär-Daten  entstehenden  Dateien
                        abgelegt werden.

BUPLOADPATH............ Der  Name  des Verzeichnisses, das beim Verschicken
                        von Binär-Dateien durchsucht wird.

BUSY................... Die  Zeichenkette,  an  Hand derer die Wählfunktion
                        erkannt, daß eine Telefonleitung besetzt ist.

CAPTUREFILTER.......... ON  wenn  Steuersequenzen  aus der Mittschnittdatei
                        ausgefiltert werden sollen, sonst OFF.

CAPTUREPATH............ Das  Verzeichnis,  in  dem die Mittschnitt-Dateien,
                        die bei aktivierter `Connect Auto-Capture'-Funktion
                        entstehen, abgelegt werden.

CAPTURESTATE........... Gibt den aktuellen Mitschnitt-Modus aus:  `PRINTER'
                        wenn  auf den Drucker mitprotokolliert wird, `FILE'
                        wenn  in eine Datei mitgeschnitten wird.  Es können
                        auch  beide  Wörter  zurückgeliefert  werden,  oder
                        `OFF' falls der Mitschnitt nicht aktiviert wurde.

CHARACTERWRAP.......... ON falls am rechten Bilschirmrand ein Zeilenumbruch
                        durchgeführt wird, sonst OFF.

COLOUR................. Dieser   Befehl  liest  die  aktuell  eingestellten
                        Farbinformationen  des `term' Hauptbildschirmes aus
                        (`query  colour  12')  und  liefert  den jeweiligen
                        Farbwert als Hexadezimalzahl zurück (`FFF').

COLOURMODE............. Der  aktuell  eingestellte Farbmodus (AMIGA, EIGHT,
                        SIXTEEN, MONO).

COLUMNS................ Die Anzahl Zeichen pro Zeile.

CONNECT................ Die  Zeichenkette,  an  Hand derer die Wählfunktion
                        erkannt, daß ein Telefonverbindung aufgebaut werden
                        konnte.

CONNECTAUTOBAUD........ ON  wenn  beim  Aufbau  einer Telefonverbindung die
                        Übertragungsgeschwindigkeit     automatisch     neu
                        ermittelt wird, sonst OFF.

CURSOR................. Liefert  die  aktuelle  Position  der  Schreibmarke
                        zurück.    X-   und   Y-Position   sind  durch  ein
                        Leerzeichen getrennt (`12 23').

CURSORMODE............. Arbeitsmodus   der  Cursortasten  (`STANDARD'  oder
                        `APPLICATION').

CURSORWRAP............. ON  falls  der  Cursor  in  seinen Bewegungen nicht
                        eingeschränkt ist, sonst OFF.

DEFAULTSTORE........... Der   Name   des   Verzeichnisses,   in   dem  alle
                        Konfigurationsdateien   des   Programmes   abgelegt
                        werden.

DIALPREFIX............. Die   Befehlssequenz,   die   jeder   zu  wählenden
                        Telefonnummer vorangestellt wird.

DIALRETRIES............ Die   maximale  Anzahl  von  Durchläufen,  die  die
                        Wählfunktion  unternimmt,  um eine Telefonverbidung
                        aufzubauen.

DIALTIMEOUT............ Die Zeit in Sekunden, die die Wählfunktion nach der
                        Anwahl  einer  Telefonnummer  bis zum erfolgreichen
                        Aufbau einer Verbindung wartet.

DISPLAYMODE............ Der   Anzeigemodus   des  `term'  Hauptbildschirmes
                        (HIRES,   HIRESLACE,   SUPERHIRES,  SUPERHIRESLACE,
                        PRODUCT,   PRODUCTLACE,   PALHIRES,   PALHIRESLACE,
                        PALSUPERHIRES,     PALSUPERHIRESLACE,    NTSCHIRES,
                        NTSCHIRESLACE,  NTSCSUPERHIRES, NTSCSUPERHIRESLACE,
                        A2024TENHZ, A2024FIFTEENHZ).

DOWNLOADS.............. Die   Anzahl  der  Dateien,  die  bisher  empfangen
                        wurden.

DSBACKSPACE............ ON  wenn  das  `Backspace'-Zeichen auch das Zeichen
                        links der Schreibmarke löscht, sonst OFF.

DUPLEX................. Datenübertragungsart (FULL, HALF).

EDITOR................. Name  des  Text-Editors, der von der Funktion `Edit
                        File' aufgerufen wird.

EIGHTYCOLUMNS.......... ON  falls  der  Bildschirm  auf  80  ×  24  Zeichen
                        beschränkt wurde, sonst OFF.

EMULATION.............. Die   gerade   aktive   Terminalemulation  (ANSIVT,
                        ATOMIC,TTY).

ERROR.................. Die  Zeichenkette,  die  das  Modem  beim Auftreten
                        eines Fehlers sendet.

FONT................... Der eingestellte Zeichensatz (TOPAZ, IBM).

FONTSCALE.............. Größe   des   Zeichensatzes  (`NORMAL',  `HIGHTOP',
                        `HIGHBOTTOM', `WIDE', `HALF').

HANDSHAKING............ Der    eingestellte   Handshaking-Modus   (XONXOFF,
                        RTSCTS, NONE).

HIGHSPEED.............. ON   falls   der   `Hochgeschwindigkeitsmodus'  des
                        seriellen Treibers aktiviert wurde, sonst OFF.

INSERTMODE............. ON  falls  das  Terminal  im Einfügemodus arbeitet,
                        sonst OFF (Überschreibemodus).

LINE................... ON falls eine Telefonverbindung besteht, sonst OFF.

LINES.................. Die   Anzahl   Zeilen,   die   auf  dem  Bildschirm
                        darstellbar sind.

LOGACTIONS............. ON  falls  alle  Aktionen  des  Programmes in einer
                        Datei mitprotokolliert werden, sonst OFF.

LOGFILE................ Der  Name  der  Datei,  in der bei aktivierter `Log
                        Actions'-Funktion alle Aktionen gespeichert werden.

MACRO.................. Von    diesem   Befehl   werden   als   zusätzliche
                        Aufrufparameter  Qualifier (None, Shift, Alternate,
                        Control)   und   die   Funktionstastennummer  (0-9)
                        erwartet  (`query  macro none 0').  Es wird die mit
                        der    entsprechenden   Funktionstaste   verknüpfte
                        Befehlssequenz zurückgeliefert.

MACROFILE.............. Der      Name     der     aktuell     eingestellten
                        Funktionstastendefinitionsdatei.

MODEMEXIT.............. Die   Befehlssequenz,   die   beim   Verlassen  des
                        Programmes an das Modem geschickt wird.

MODEMHANGUP............ Die   Befehlssequenz,   die   zum  Abbrechen  einer
                        Verbindung an das Modem geschickt wird.

MODEMINIT.............. Die  Befehlssequenz,  die  beim  Programmstart  zur
                        Initialisierung des Modems verschickt wird.

NOCARRIER.............. Die  Zeichenfolge, die das Modem beim Abbruch einer
                        Telefonverbindung verschickt.

NEWLINEMODE............ ON falls das Terminal im `New Line'-Modus arbeitet,
                        sonst OFF.

NUMERICMODE............ Der  Arbeitsmodus  des  Zehnerblockes  (`STANDARD',
                        `APPLICATIONS').

OKAY................... Die  Zeichenkette,  die  das  Modem zur Bestätigung
                        eines Befehles abschickt.

PARITY................. Der aktuell eingestellte Paritätsmodus (NONE, EVEN,
                        ODD, MARK, SPACE).

PROTOCOL............... Das    aktuell    eingestellte    Transferprotokoll
                        (xprzmodem.library, xprxmodem.library, etc.).

PROTOCOLOPTIONS........ Die  verwendeten  Optionen des gerade eingestellten
                        Transferprotokolles.   Die  Bedeutung  der Optionen
                        ist der Dokumentation des jeweiligen Protokolles zu
                        entnehmen.

PUBLICSCREEN........... ON  wenn  der `term' Hauptbildschirm als öffentlich
                        zugänglicher Bereich geöffnet wurde, sonst OFF.

REDIALDELAY............ Die  Zeit  in Minuten, die die Wählfunktion vor dem
                        nächsten Durchlauf der Wählliste wartet.

REQUESTERS............. ON   wenn   Sicherheitsabfragen   angezeigt  werden
                        sollen, sonst OFF.

RING................... Die Zeichenfolge, die das Modem beim Erkennen eines
                        Anrufes sendet, der von einem anderen Modem stammt.

SCREENADDRESS.......... Liefert  die  Adresse  des `term'-Hauptbildschirmes
                        als Dezimalzahl zurück.

SENDCR................. Der   Modus,   in   dem   ein   `Carriage   Return'
                        (Zeilenrücklauf)   versandt   wird  (IGNORE,  ASCR,
                        ASCRLF).

SENDLF................. Der  Modus, in dem ein `Line Feed' (Zeilenvorschub)
                        versandt wird (IGNORE, ASLF, ASLFCR).

SERIAL................. ON  wenn  der  serielle  Treiber noch zur Verfügung
                        steht, wenn er bereits freigegeben wurde OFF.

SERIALDEVICE........... Der Name des eingestellten seriellen Treibers.

SHANGHAI............... ON  wenn  Fenster  der  Workbench  auf  dem  `term'
                        Hauptbildschirm geöffnet werden sollen, sonst OFF.

SMOOTHSCROLL........... ON    falls   der   Bildschirm   viertelzeilenweise
                        gescrollt wird, sonst OFF.

SPEECHFILE............. Der Name der aktuellen Sprach-Konfigurationsdatei.

SPEECH................. ON  falls der Sprachsynthesizer in `term' aktiviert
                        wurde, sonst OFF.

SPEECHRATE............. Die  Sprechgeschwindigkeit,  des Sprachsynthesizers
                        in Worten pro Minute.

SPEECHPITCH............ Die Stimmververzerrung des Sprachsynthesizers.

SPEECHFREQUENCY........ Die Stimmhöhe des Sprachsynthesizers in Hertz.

SPEECHVOLUME........... Die Sprechlautstärke des Sprachsynthesizers.

SPEECHSEX.............. Das  Geschlecht  der  Stimme des Sprachsynthesizers
                        (MALE = männlich, FEMALE = weiblich).

STARTUP................ Die   Befehlssequenz  die  beim  Start  des  `term'
                        Programmes  ausgeführt  wird  (oder  was die letzte
                        Telefonverbindung in diesem Feld gelassen hat).

STATUS................. Der  übergeordnete  Zustand  des  `term' Programmes
                        (READY,   HOLDING,   DIALING,   UPLOAD,   DOWNLOAD,
                        BREAKING, HANGUP).

STOPBITS............... Die  Anzahl  der  bei  der  Übertragung verwendeten
                        Stopbits.

TIMEOUT................ Die Länge in Mikrosekunden, die beim `INPUT' Befehl
                        vor dem Abbruch gewartet wird.

TDOWNLOADPATH.......... Der   Name  des  Verzeichnisses  in  dem  die  beim
                        Empfangen   von   Text-Daten  entstehenden  Dateien
                        abgelegt werden.

TUPLOADPATH............ Der  Name  des Verzeichnisses, das beim Verschicken
                        von Text-Dateien durchsucht wird.

UNITNUMBER............. Die  Nummer  des  seriellen Treibers der eigestellt
                        wurde.

VISBELL................ ON    wenn   ein   optisches   Signal   bei   jedem
                        `Bell'-Zeichen ausgegeben wird, sonst OFF.

VOICE.................. Die Zeichenfolge, die das Modem überträgt, wenn ein
                        Anruf  erkannt  wird,  der  nicht von einem anderen
                        Modem stammt.


========================= Die Synchronen Befehle ==========================
===========================================================================
BDOWNLOAD.............. Führt   einen  Datentransfer  zum  `term'  Programm
                        durch.    Ein  Dateiname  wird  erwartet,  muß  bei
                        Protokollen wie ZModem aber nicht vorhanden sein.

BEEP................... Läßt  den  Bildschirm  blitzen/piepen, etc.  in der
                        Manier des `Bell'-Zeichens.

BREAK.................. Schickt    ein    Unterbrechungssignal   über   die
                        Telefonleitung.

BUFFER................. Befaßt   sich   mit  dem  Inhalt  des  `Logbuches'.
                        Mittels  `buffer  new  file'  wird  der  Inhalt des
                        `Logbuches'   mit   dem  Inhalt  der  Datei  `file'
                        überschrieben,  `set  buffer  append file' fügt den
                        Inhalt  der  Datei  an das bestehende `Logbuch' an.
                        Wird  `buffer  display'  aufgerufen,  so  wird  der
                        Bildschirm des `Logbuches' geöffnet.

BUPLOAD................ Schickt eine Datei an den Empfänger auf der anderen
                        Seite  der  Telefonleitung.  Hier muß ein Dateiname
                        angegeben    werden,    oder    das    eingestellte
                        Transferprotokoll  wird  sich  beklagen.   Nur  ein
                        Dateiname  wird  akzeptiert,  wer  mehrere  Dateien
                        wünscht, sollte sich mit Wildcardmustern befassen.

CAPTURE................ Ändert  den  Zustand des Mitschnittes auf Diskette.
                        Mitels   `capture   close'  wird  das  Mitschneiden
                        abgebrochen,  `capture  new file' überschreibt eine
                        Zieldatei  mit  dem  Mittschnitt,  `capture  append
                        file' fügt den Mitschnitt an eine Datei an.

CLEARSCREEN............ Löscht schlicht und einfach den Bildschirm.

COMMAND................ Schickt  eine  Befehlssequenz  in der Art und Weise
                        des   `term'   Hauptprogrammes  über  die  serielle
                        Leitung.

CONFIG................. Speichert  die  aktuelle  Konfiguration ab (`config
                        save  file')  oder  lädt und setzt sie neu (`config
                        load file').

DELAY.................. Wartet  eine  anzugebende Zeitperiode.  Dieser Wert
                        sollte   nicht   zu  groß  bemessen  sein,  da  die
                        Wartezeit  nicht  abgekürzt  werden  kann.  Es kann
                        jeweils    in   Mikrosekunden-,   Sekunden-,   oder
                        Minutenintervallen gewartet werden:

                           delay 10 mic -> Wartet zehn Mikrosekunden.
                           delay 10 sec -> Wartet zehn Sekunden.
                           delay 10 min -> Wartet zehn Minuten.

DIAL................... Wählt  eine  Telefonnummer, wer Spaß daran hat, der
                        kann  auch den Namen eines Eintrages im Telefonbuch
                        angeben.   Wird  der  Eintrag gefunden, so wird die
                        damit verknüpfte Telefonnummer verwendet.  Ein Wort
                        der Warnung:  der Wählbefehl wird abgeschickt, eine
                        Verarbeitung  des Ergebnisses muß anders gehandhabt
                        werden.

FILEREQUEST............ Zeigt ein Datei-Auswahlfeld an, der übergebene Text
                        wird   im   Titelbalken   des  jeweiligen  Fensters
                        angezeigt.   Diese  Funktion  liefert den Namen von
                        Datei  und  Verzeichnisses zurück, die der Benutzer
                        ausgewählt hat.

FIRSTDOWNLOAD.......... Die Namen aller empfangenen Dateien werden in einer
                        Liste gespeichert, die sich vom ARexx-Interface aus
                        auslesen  läßt.   Dieser  Befehl liefert den ersten
                        Namen in dieser Liste zurück.

GETCLIP................ Entnimmt  den  Inhalt  des `Clipboards' und liefert
                        ihn als Zeichenkette zurück.

GETSTRING.............. Fordert  eine  Zeichenkette vom Anwender des `term'
                        Programmes an.

HANGUP................. Bricht  die Telefonverbindung, die gerade aktiv ist
                        (sofern  überhaupt  vorhanden)  kurz und schmerzlos
                        ab, indem das Modem zum Auflegen gebracht wird.

INPUT.................. Liest  eine  anzugebende Anzahl von Zeichen von der
                        seriellen  Leitung.   Wurde  ein  `TIMEOUT' mit dem
                        entsprechenden  Kommando  gesetzt,  wird  nach  dem
                        Eintreffen  von  genügend  Zeichen  oder  nach  dem
                        Verstreichen der Wartezeit zurückgekehrt.

LASTDOWNLOAD........... Die Namen aller empfangenen Dateien werden in einer
                        Liste gespeichert, die sich vom ARexx-Interface aus
                        auslesen  läßt.   Dieser Befehl liefert den letzten
                        Namen in dieser Liste zurück.

MACROS................. Speichert  die  aktuelle Funktionstastenbelegung ab
                        (`macros  save  file')  oder lädt und setzt sie neu
                        (`macros load file').

MESSAGE................ Gibt  einen  Text  auf dem Bildschirm aus (der Text
                        wird nicht über die serielle Leitung verschickt).

NEXTDOWNLOAD........... Die Namen aller empfangenen Dateien werden in einer
                        Liste gespeichert, die sich vom ARexx-Interface aus
                        auslesen  läßt.  Dieser Befehl liefert den nächsten
                        Namen   in  dieser  Liste  zurück,  es  muß  vorher
                        entweder    `firstdownload'   oder   `lastdownload'
                        aufgerufen  worden  sein, um einen Ausgangspunkt in
                        der Liste bestimmen zu können.

PHONE.................. Speichert  das aktuelle Telefonbuch ab (`phone save
                        file')  oder  lädt  und  setzt  es neu (`phone load
                        file').

PRINTER................ Schaltet  die Protokollierung der eingehenden Daten
                        auf  dem Druck ab (`printer off') oder zu (`printer
                        on').

PUTCLIP................ Legt eine Zeichenkette im `Clipboard' ab.

RESETSTYLES............ Führt die Terminalemulation wieder auf den Pfad der
                        Tugend   zurück   (alle   Zeichenattribute   werden
                        zurückgesetzt).

SAVEILBM............... Speichert   den   Inhalt   des   Bildschirmes   als
                        IFF-ILBM-Datei  unter einem anzugebenden Dateinamen
                        ab.

SET.................... Setzt    Systemparameter    neu,    eine   genauere
                        Beschreibung folgt diesem Text.

SIMPLEREQUEST.......... Stellt  einen Text in einem Hinweisfeld (wie `term'
                        es  z.B.  beim Verlassen des Programmes zeigt) dar.
                        Der  Bildschirm  von `term' wird automatisch in den
                        Vordergrund gebracht.

SPEAK.................. Spricht  -  sofern  möglich  -  einen Text über den
                        Sprachsynthesizer des Amiga aus.

SPEECH................. Speichert    die    aktuellen   Einstellungen   des
                        Sprachsynthesizers  ab  (`speech  save  file') oder
                        lädt und setzt sie neu (`speech load file').

TDOWNLOAD.............. Fordert eine Datei (à la BDOWNLOAD) von der anderen
                        Seite   der  Leitung  an,  versucht  dies  aber  im
                        Textmodus.

TUPLOAD................ Schickt  eine Datei (à la BUPLOAD) zum anderen Ende
                        der  Leitung,  unternimmt  diesen  wackeren Versuch
                        allerdings im Textmodus.

TONEDIAL............... Spielt eine Telefonnummer in Ton-Codierung über die
                        Audio  Hardware  des Amiga ab.  Die Töne können zur
                        Anwahl   einer   Telefonnummer   verwendet  werden,
                        vorausgesetzt  das  jeweilige  Telefon  ist an eine
                        digitale   Vermittlungsstelle  der   Telekom  ange-
                        schlossen   und   die  Sprechmuschel  wird  an  den
                        Ausgabelautsprecher gehalten.

TWOGADREQUEST.......... Stellt  einen Text in einem Hinweisfeld (wie `term'
                        es  z.B.  beim Verlassen des Programmes zeigt) dar.
                        Der  Bildschirm  von `term' wird automatisch in den
                        Vordergrund gebracht.  Unter dem Hinweisfeld werden
                        zwei   Knöpfe   `Yes'  und  `No'  angezeigt,  diese
                        Funktion   liefert   anschließend  zurück,  welchen
                        dieser beiden Knöpfe der Benutzer angeklickt hat.

WAITSTRING............. Wartet  darauf, daß eine bestimmte Zeichenkette vom
                        das  Modem  übertragen  wird.   Es können praktisch
                        unbegrenzt  viele  Zeichenketten  übergeben werden,
                        auf   die  gewartet  werden  soll.   Ist  eine  der
                        Zeichenketten eingegangen, so wird sie als Ergebnis
                        zurückgeliefert.   Groß- und Kleinschreibung werden
                        beim  Überprüfen  ignoriert.   Auch  hier  ist  der
                        globale  Timeout  aktiv  (läßt  sich z.B.  mit `set
                        timeout  10  sec' setzen), verstreicht entsprechend
                        viel Zeit, so kehrt die Routine automatisch zurück.
                        Ich  empfehle  _jedermann_ einen Timeout zu setzen,
                        da  sonst anderenfalls die Möglichkeit besteht, daß
                        die Routine _niemals_ zurückkehrt.

                               Beispielaufruf: waitstring "logon: "

WRITE.................. Schickt  eine  Zeichenkette über die Leitung, zeigt
                        dies  aber  nicht  notwendigerweise  auf dem `term'
                        Hauptbildschirm an.


============================ Der `SET'-Befehl =============================
===========================================================================
Grundsätzlich  stellt  der  `SET'-Befehl die Umkehrung des `QUERY'-Befehles
dar.   Zu  jedem  Parameter  existiert  ein  analoger Befehl, der dieselben
Eingaben  verarbeitet,  wie  sie  der  `QUERY' Befehl zurückliefert (`query
baudrate'  liefert  z.B.   2400, also läßt sich mit `set baudrate 2400' die
Baudrate entsprechend setzen).
   Da  den  Autor  dieser  Zeilen momentan Rückschmerzen planen und er sich
nach   einem   Non-Stop-Tour-De-Force-Programmierungsmarathon  nicht  allzu
phantastisch  fühlt,  sei  ihm (also mir) erlaubt, an dieser Stelle nur die
Unterschiede zwischen den Befehlen anzugeben:

BELL................... Setzt  die Parameter des Bildschirmblitzes neu (die
                        Reaktion  auf das `Bell'-Zeichen).  Hier werden die
                        Aufrufparameter `AUDIBLE' und `VISIBLE' erkannt.

COLOUR................. Setzt eine der Bildschirmfarben neu.  Hier wird die
                        Nummer  der  Farbe erwartet (0-15) und der Wert der
                        Farbe als Hexadezimalzahl.

MACRO.................. Setzt  eine  der über Funktionstasten aufzurufenden
                        Befehlssequenzen  neu.   Hier  wird  der  Name  des
                        Qualifiers  (None,  Shift,  Alternate, Control) die
                        Nummer  der  Funktionstaste  (0-9)  und die Sequenz
                        erwartet.
                        
                           Beispiel: set macro none 0 hello!

SCREEN................. Dies  ist  eine  Kombination  der durch die Befehle
                        `QUERY    PUBLICSCREEN'    und   `QUERY   SHANGHAI'
                        abzufragenden  Optionen.   Als Parameter können der
                        Funktion SHANGHAI und PUBLIC übergeben werden.

TIMEOUT................ Setzt  den globalen Timeout, d.h.  die Zeitperiode,
                        die   alle   Lesefunktionen   warten,   bevor   sie
                        automatisch  abgebrochen  werden.   Diese Zeit kann
                        wie  beim  DELAY-Befehl  in Mikrosekunden, Sekunden
                        und Minuten angegeben werden.

                                Beispielaufruf: set timeout 10 sec


   Hinweis:   zu  den Befehlen `query line', `query lines' `query columns',
`query  status',  `query  cursor',  `query downloads' und `query beepsound'
gibt  es  jeweils kein Gegenstück.  Der Zustand der Telefonverbindung sowie
auch  die  physikalische  Bildschirmgröße kann nicht erzwungen werden.  Zur
Positionierung  der  Schreibmarke  sollte  besser  eine  Steuersequenz  zum
Terminal  geschickt  werden,  als  an  den  internen  Programmvariablen  zu
manipulieren.


================================ Probleme =================================
===========================================================================
Bei  der  Arbeit  mit  dem ARexx-Interface können Probleme auftreten, deren
Klärungen  sich  sich  dem  `normalen' Anwender entziehen.  Ich möchte hier
eine Handvoll potentieller Fragen beanworten:

Frage:   Was sind synchrone und was sind asynchrone Befehle und warum mußte
         der Befehlssatz in diese zwei Gruppen getrennt werden?

Antwort: Synchrone   Befehle   und   asynchrone  Befehle  werden  von  zwei
         verschiedenen  Instanzen  des  `term'-Programmsystems  ausgeführt.
         Asynchrone  Befehle werden direkt vom selben Prozess abgearbeitet,
         der  die  ARexx-Nachrichten  empfängt.  Synchrone Befehle hingegen
         werden   an   das   `term'-Hauptprogramm  weitergeleitet,  da  die
         entsprechenden Befehle Resourcen benötigen oder verändern, auf die
         nur das Hauptprogramm Zugriff hat.


Frage:   Mein  ARexx-Programm  scheint plötzlich nicht mehr weiterzulaufen,
         nachdem es eine  der  `term'-Funktionen  angewählt  hat.  Was  ist
         passiert?

Antwort: Wahrscheinlich  wurde  ein  synchroner Befehl des ARexx-Interfaces
         aufgerufen  und  das  `term'-Hauptprogramm  ist nicht in der Lage,
         diesen  sofort  zu bearbeiten (ein Datei-Auswahlfeld ist offen, es
         wird  ein  Dateitransfer  über den seriellen Treiber durchgeführt,
         die Funktion `Iconify' wurde aufgerufen).


Frage:   Warum   kann   man   das   Hauptprogramm  `term'  nicht  über  das
         ARexx-Interface  beenden  oder  über  die  `Iconify'-Funktion  `in
         Schlaf versetzen'?

Antwort: Beide   Funktionen  haben  zur  Folge,  daß  die  Abarbeitung  der
         eingehenden  ARexx-Befehle  abgebrochen,  bzw.  unterbrochen wird.
         Nachfolgende  Befehle  würden  nicht  mehr  abgearbeitet  und  das
         ARexx-Programm   nicht   mehr   weiterlaufen:    es   würde  keine
         Unterbrechung  des ARexx-Programmes erfolgen, es würde schlichtweg
         stehenbleiben und sich nicht mehr verlassen lassen.


================== Bitte des Autors & Gift-Ware-Gebühr ====================
===========================================================================
Die  Entwicklung von `term' war mit hohem Aufwand verbunden.  Schon alleine
die     Anstrengungen,     die     zu     unternehmen    waren,    um    im
Trial-And-Error-Verfahren und unter Zuhilfenahme der DevCon-Disketten sowie
Includes  &  Autodocs  die Funktionsweise bestimmter Routinen zu ermitteln,
wäre  es  Wert,  dem  Autor  eine  Entschädigung für seine Mühe zukommen zu
lassen  (es  ist  eben  Pech,  wenn  die Atlanta-DevCon-Unterlagen erst mit
reichlicher Verspätung eintrudeln).
   Der  Autor ist sehr empfänglich für alle Arten von materiellen Gaben und
Geschenken,  solange  gesichert  ist, daß er sie auch verwenden kann (diese
niedlichen  Säcke  mit  Elefantenfutter  schickt  man  doch  besser  an den
hannoverschen  Zoo).   Deshalb  möchte  ich  jedermann  bitten,  dem `term'
gefällt    oder   der   den   Quellcode   bearbeitet,   mich   für   meinen
Programmieraufwand  so  zu  entschädigen,  wie  er/sie denkt, daß es meinen
Anstrengungen  entspricht (wer noch keine Idee hat:  ich suche nach dem GNU
C++  objective `C' compiler in einer auf dem Amiga lauffähigen Version, dem
Quellcode  für  einen Modula-2 Compiler oder LhArc.  Wer mir eine besondere
Freude  machen  möchte, der kann mir ein älteres Infofom-Adventure schenken
--  ausgenommen  `Zork  Zero',  `Journey',  `Hollywood Hijinx' und `Lurking
Horror', die ich selber besitze) - vielen Dank!

                             Meine Anschrift:

                        Olaf Barthel, MXM (ETG030)
                             Brabeckstrasse 35
                            D-3000 Hannover 71

                        Bundesrepublik Deutschland

                    Z-Net: O.BARTHEL@A-Link-H
                   Usenet: o.barthel@a-link-h.zer.sub.org
                           cbmvax.commodore.com!cbmehq!sourcery!olsen

   Wer  sich  den  Quellcode  ansieht,  um  hier  und  da  Änderungen  oder
Erweiterungen  zu  machen,  der nehme doch vor einer Veröffentlichung bitte
Kontakt   mit   mir   auf,   sodaß  ich  unsere  gemeinsamen  Anstrengungen
koordinieren kann.
   Sollte  jemandem  eine  brilliante  Idee  kommen, den Aufbau oder Inhalt
dieser  Anleitung  zu  verbessern  oder zu erweitern, so möge sie/er es mit
meinem  hiermit  erteilten  Segen tun.
