================================ term 2.2 ================================= =========================================================================== Ein Gift-Ware Telekommunikationsprogramm von Olaf Barthel, © Copyright 1990-92 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. ================== Eine Handvoll wichtiger Informationen ================== =========================================================================== Ich habe diese Zeilen an den Anfang des Dokuments gestellt, damit niemand behaupten kann, er habe sie nicht gefunden. Neue Namen für Konfigurationsdateien ------------------------------------ Um von Commodore verordneten Standards zu gehorchen, wurden die Namen der von `term' verwendeten Konfigurationsdateien und deren bevorzugter Aufenthaltsort geändert. Anstatt die Dateien standardmäßig in `ENVARC:term' unterzubringen, werden sie jetzt im Verzeichnis `TERM:config' abgespeichert und gesucht (Hinweis: der Konfigurationspfad läßt sich natürlich immer noch auf einen anderen Wert setzen). Wird kein Verzeichnis `TERM:' gefunden, wird es auf das aktuelle Verzeichnis gelegt. Ist kein Verzeichnis `TERM:config' vorhanden, so wird es ebenfalls angelegt. Die (alten) neuen Namen sehen wie folgt aus: Preferences.term -> term_preferences.iff Phonebook.term -> term_phonebook.iff Hotkeys.term -> term_hotkeys.iff Speech.term -> term_speech.iff Macros.term -> term_macros.iff Fast!Macros.term -> term_fastmacros.iff Die in Version 2.0 eingeführten Namen haben sich wie folgt geändert: term_preferences.iff -> term.prefs term_phonebook.iff -> phonebook.prefs term_hotkeys.iff -> hotkeys.prefs term_speech.iff -> speech.prefs term_macros.iff -> macros.prefs term_fastmacros.iff -> fastmacros.prefs Die alten Namen werden aber weiterhin akzeptiert. ================== Programmfehler und wie man sie meldet ================== =========================================================================== `term' ist ein erschreckend komplexes und umfangreiches Programm (etwa 950 KBytes Quellcode sprechen Bände), das garantiert nicht fehlerfrei ist. Bei der Erstellung jeder einzelnen neuen Programmversion war ich immer wieder erstaunt, wieviele kleinere und größere Fehler sich im Programm versteckten, nur um mich zu ärgern. Wer einen oder mehrere Fehler findet, der sollte mich schnellstmöglichst darüber informieren, wo und unter welchen Umständen es zu Problemen kam. Zu einer solchen Fehlermeldung gehören folgende Informationen über die Rechnerumgebung: - Verwendetes Rechnermodell (A500, A500+, A1000, A2000, A2000+, A2500, A3000, A3000T, etc.) - Speicherausbaustufe - Prozessorhardware (68000, 68010, 68020, 68030, 68040, etc.) - Graphikhardware (ECS, GVP ImpactVision, etc.) - Verwendete Betriebssystemversion und Art (A3000 ROM, A3000 Kickfile, A500+/A2000+ ROM, Kickfile, etc.) - Verwendete Workbench-Version - Festplattencontroller (sofern vorhanden) - Modemtyp und zur Ansteuerung des Modems verwendete Hardware (Multi-IO-Karten, etc.) - Eingestellte `term'-Konfiguration (Bildschirmmodus, serielle Parameter, Übertragungsprotokoll und dessen Versionsnummer, etc.). Wenn der auftretende Fehler beschrieben wird, bitte soviel wie möglich über den Arbeitsvorgang, der dem Fehler vorausging, mitaufschreiben! Zuletzt bitte ich darum, den Text so sorgfältig zu schreiben, daß ich auch wirklich etwas damit anfangen kann; vage Beschreibungen (`manchmal wird term so komisch langsam') helfen mir nicht besonders und wenn ich aus einer Fehlermeldung nicht schlau werden kann, bleibt ein möglicher Fehler vielleicht so lange im Programm, bis ich ihn zufällig selbst entdecke. Fehlermeldungen können mir auf jedem sinnvoll erscheinende Wege zugeleitet werden, es hilft allerdings manchmal, dies über Z-Netz oder Internet zu bewerkstelligen, was mir die Möglichkeit gibt, bei Bedarf noch einmal nachzufragen. =================== Hintergrund & Entstehungsgeschichte =================== =========================================================================== Dieses Programm ist das Resultat meiner aufgestauten Wut und Enttäuschung über die derzeitige Softwaresituation auf dem Amiga: keinerlei Telekommunikationsprogramm - sowohl kommerziell, oder als Share-Ware, bzw. Public-Domain vertrieben - war bisher in der Lage, meine Ansprüche zufriedenzustellen. Gewiß, viele Eigenschaften waren gut durchdacht, doch dann fehlte eine deutsche Tastaturbelegung, das eine oder andere Transferprotokoll war nicht absturzsicher implementiert oder die Terminalemulationen deckten nicht den gesamten geforderten Befehlssatz ab. Ich habe mich lange gescheut, Hand anzulegen und meine eigene `Problemlösung' vorzulegen. Jetzt, da Kickstart 2.0 für den Amiga verfügbar ist, scheint sich eine kleine Chance zu bieten, ein Terminalprogramm einfach, schnell und komfortabel zu erstellen. In wieweit mir diese Aufgabe geglückt ist, muß jedermann selbst herausfinden. Ich habe versucht mein bestes zu geben - vielleicht war es noch nicht gut genug. Dieses Programm wurde am 24. Dezember 1990 begonnen und weitestgehend bis zum 25. Januar 1991 fertiggestellt. Bei der Entwicklung kamen der SAS/C `C' Compiler 5.10b, WShell, CygnusEd Professional 2 & ARexx zum Einsatz. Mein Dank gilt Holger Lubitz, Peter Fischer, Christoph Teuber, Garry Glendown, Oliver Wagner, Jürgen Otte, Germar Morgenthaler, Matthias Zepf, Markus Stoll, Ralf Thanner, Martin Berndt, Ueli Kaufmann, Andreas Kirchwitz, Veith Schörgenhummer, Michael Vaeth, Roby Leemann & AUGS, Thorsten Seidel, Till `Dill-Prince' Prinzler, Volker Ulle & dem Aquila Sysop Team, Marc-Christian Schröer, Udo Wolt, Michael Hohmann, Henning Hucke, Stefan Becker, Christopher Wichura und all denen, die mir Libraries und Steuercodetabellen zugeschickt haben. Besonderer Dank gilt John Burton aus Papua Neuguinea, der Teile der Programmes, insbesondere die Terminalemulation, überarbeitete. Die xpr-Libraries stammen von Willy Langeveld (ascii), Kenneth Osterberg & Markus Pietz (jmodem), Stephen Walton (kermit), Jack Rouse (quickb), Marc Boucher (xmodem), Ueli Kaufmann (ymodem & vms) und Rick Huebner & William M. Perkins (zmodem). Der xpr-Standard wurde von Willy Langeveld entwickelt, eine Routine (ahtoi) habe ich mir von Matthew Dillon ausgeborgt, von David Jones stammt die verbesserte QuickSort-Routine (QuickSort.asm), die Routinen zur Tonwahl bauen auf dem Artikel `DTMF - A Program for Generating Touch-Tone Signals' von Adam Levin auf. Die jetzige Implementierung der externen Terminalemulationen wurde von Ueli Kaufmann entwickelt, von ihm stammen auch die externen Terminalemulationslibraries, die `term' beiliegen. Mit der Hilfe von Martin Berndt gelang es dann schließlich auch, sie korrekt mit `term' zum Laufen zu bringen. Besonderer Dank gilt Leo Schwab, der tatsächlich eine Methode fand, wie man `verzahnte' Bitplanes betriebssystemintegriert nutzen kann. ============================== Der Quellcode ============================== =========================================================================== Ich habe mich dazu entschlossen, das Programm mitsamt vollständigem Quellcode öffentlich zugänglich zu machen. Man möge mir die englischsprachige Kommentierung verzeihen, aber ich bin nicht umsonst für meine Faulheit bekannt, wenn es an das Übertragen von Dokumentationen und Kommentaren geht. Eine kommerzielle Nutzung des Quellcodes ist nicht geplant und bedarf eine schriftlichen Genehmigung durch den Autor. Dennoch ist die Verwendung einzelner Routinen und Verfahren in nicht-kommerziellen Public-Domain Programmen gestattet. Der Name des Originalautors muß nicht notwendigerweise erwähnt werden. Ich hoffe, daß durch die Veröffentlichung des Quellcodes die Erstellung von Programmen unter dem neuen Betriebssystem schneller in Gang kommen (ich habe viele Probleme überwunden und hoffe so einiges an `Eis' gebrochen zu haben) und leistungsfähigere Telekommunikationssoftware für den Amiga entstehen wird. ============================== Der Vertrieb =============================== =========================================================================== Der Verkauf von `term' zusammen mit anderen kommerziellen Programmen ist gestattet, wenn `term' quasi als `Zugabe' gedacht ist und kein Preisaufschlag inbegriffen ist. Es darf keinerlei Geld am Vertrieb des Programmes `term' verdient werden. Es ist gestattet, eine Kopiergebühr zur Deckung der Unkosten (Diskette, Laufwerk, etc.) zu erheben, solange diese den Betrag von DM 5,- nicht übersteigt! Eine Veröffentlichung des Programmes im Rahmen von Zeitschriften muß mit mir abgestimmt werden und bedarf meiner ausdrücklichen Erlaubnis, andernfalls sähe ich mich gezwungen eine einstweilige Verfügung zu Einstellung und Rückruf der betreffenden Magazinausgabe zu erwirken. WER MEHR ALS DM 5,- FÜR EINE KOPIE DIESES PROGRAMMES BEZAHLT, DER IST BETROGEN WORDEN UND SOLLTE SICH MIT IHRER/SEINER ÖRTLICHEN VERBRAUCHERZENTRALE IN VERBINDUNG SETZEN! ========================== Nutzungsberechtigung =========================== =========================================================================== Das Programm `term' und die mit ihm empfangenen/versandten Daten dürfen weder mittelbar, noch unmittelbar eingesetzt werden: 1) Zur Konstruktion, Entwicklung, Herstellung und Erprobung von Waffen und Waffensystemen aller Art. 2) Zur Konstruktion, Errichtung, Herstellung oder Betreiben folgender Anlagen, deren Teilbereiche die chemische Verarbeitung von radioaktivem Material oder Spaltmaterial, die Herstellung von schwerem Wasser, die Spaltung von Isotopen bei spaltbarem und radioaktivem Material, oder die Herstellung von Atomreaktorbetriebsstoff einschließen. 3) Zur Ausbildung von Personen für die vorstehenden Zwecke. ==================== Updates & neue Programmversionen ===================== =========================================================================== Nachdem sich `term' bereits weit verbreitet und auch etabliert hat, sind mehrere Personen mit der Frage nach Updates an mich herangetreten. Wird eine neue `term'-Version von mir angefordert, so sollte angegeben werden, ob weitere Updates gewünscht sind, wie lange und wieviele neue Versionen verschickt werden sollen. Die entsprechende Gebühr für eine einzige Updateversion beträgt im Gebiet der Bundesrepublik Deutschland DM 2,40 (Porto) plus DM 2,60 (zwei Disketten -- wenn ich preiswertere Qualität entdecke, schicke ich die Differenzsumme mit). Sobald eine neue Programmversion verfügbar ist, werde ich es im Z-Netz (Rechner/Amiga/Allgemein) bekanntmachen. Üblicherweise tauchen neue Versionen dieses Programmes in regelmäßigen Abständen im FRAS-Netz (einem Verteilungsnetz für Public-Domain-Software, das im Z-Netz integriert ist) auf. Wer FTP-Zugang hat, der sollte die jeweils aktuellste Version unter der Adresse ftp.informatik.uni-oldenburg.de (134.106.1.9) von der Uni Oldenburg beziehen können (Verzeichnis /pub/amiga/term). ======================== Bedienung des Programmes ========================= =========================================================================== Das gesamte Bedienungkonzept beruht auf Maussteuerung - die Tastatur wird nur zum Eingeben von Nummern und Namen benötigt. Dennoch lassen sich mit wenigen Ausnahmen alle Funktionen des Programmes auch über Tastatur steuern. Das Programm läßt sich sowohl von der Shell, als auch von der Workbench starten. Kickstart 2.0 oder höher ist unverzichtbar - das Programm wird sich weigern, unter Vorgängerversionen zu funktionieren. Im Interesse eines reibungslosen Funktionierens wird empfohlen, Kickstart 2.04 (Version 37.175) und Workbench 2.04 (Version 37.67) oder deren Nachfolger zu verwenden. Sollte sich `term' beklagen, daß die eine oder andere Library nicht zu öffnen sei, obwohl man ganz genau weiß, daß man sie installiert hat, so wird dies daran liegen, daß man eine bereits veraltete Betriebssystemversion verwendet (ältere Developer-Kickstarts und auch die auf den ersten A3000-Modellen installierten Betriebssystemversionen meldeten die für `term' unverzichtbaren Libraries `iffparse.library' und `asl.library' mit Versionsnummern < 37 an). Wird das Programm von der Shell gestartet, so koppelt es sich sofort von dieser ab, sodaß das Shell-Fenster nach dem Programmstart geschlossen werden kann. Dieser Effekt kann verhindert werden, indem das Programm mit dem Parameter `KEEPIO' aufgerufen wird (z.B. "term KEEPIO"). Das Shell-Fenster kann nachfolgend erst nach Programmende geschlossen werden. Üblicherweise laufen keine zwei `term'-Programme gleichzeitig, beim Starten des zweiten Programmes wird automatisch der Bildschirm des zuerst gestarteten Programmes nach vorne gebracht. Gibt man den Aufrufparameter `DONTPOP' in der Shell ein (z.B. "term DONTPOP"), so wird der oben geschilderte Effekt vermieden und ein zweites `term' gestartet. ============================ Tastatursteuerung ============================ =========================================================================== Ab Version 2.2 lassen sich (fast) alle Funktionen des Programmes allein per Tastatur steuern. Jedes Element der Benutzeroberfläche, dessen Titel einen unterstrichenen Buchstaben enthält, läßt sich durch Drücken der zum Buchstaben gehörenden Taste steuern oder aktivieren. Handelt es sich um Listen oder Rollbalken, so läßt sich die Liste oder der Rollbalken durch Drücken einer der Umschalttasten für Groß-/Kleinschreibung und der Buchstabentaste vor- und zurückbewegen. Wird die Tab-Taste gedrückt, so wird das erste Zeicheneingabefeld auf dem Bildschirm aktiviert. ============================= Der Bildschirm ============================== =========================================================================== Der Bildschirm öffnet sich immer zur vollen Text-Overscan-Größe, die mit dem Preferences-Programm `Overscan' eingestellt werden kann. So werden zusätzliche Textzeilen in der Vertikalen zugänglich, mit denen das Programm arbeiten kann. Am unteren Rand des Bildschirms befindet sich eine Anzeige der wichtigsten Programmparameter. Dies sind: Status ........ Der Arbeitsmodus, in dem sich `term' derzeit befindet. Dies sind `Ready' (das Programm ist arbeitsbereit), `Holding' (die Taste Control-S wurde gedrückt, um die Anzeige des Textes auf dem Bildschirm anzuhalten), `Dialing' (es werden gerade Telefonnummern gewählt), `Upload' (Daten werden gerade verschickt), `Download' (Daten werden gerade empfangen), `Breaking' (es wird ein Unterbrechungssignal verschickt) und `Hanging Up' (die Verbindung wird abgebrochen). Font .......... Der aktuell eingestellte Zeichensatz zur Darstellung des Textes am Bildschirm. Protocol ...... Das aktuell eingestellte Datenübertragungsprotokoll (dazu später mehr). Emulation ..... Die zur Darstellung der empfangenen Zeichen eingestellte Steuersequenzanalyse. Baud Rate ..... Die aktuell eingestellte Datenübertragungsgeschwindigkeit in Bits/Sekunde. Parameters .... Die Parameter der Datenübertragung (Anzahl der übertragenen Datenbits, Parität und Anzahl der Stopbits). Time .......... Die aktuelle Tageszeit. Online ........ Die seit dem Aufbau einer Telefonverbindung verstrichene Zeit. Dieser Zähler wird bei Unterbrechung der Verbindung angehalten (z.B. durch Auflegen) und beim Aufbau einer neuen Verbindung auf 00:00:00 zurückgesetzt. In regelmäßigen Abständen (jeweils fünf Sekunden) wechselt diese Zeitanzeige mit einer Anzeige der für den Anruf bisher fälligen Gebühren. Der Bildschirm selbst wird als öffentlich zugänglicher Bereich (Public Screen) unter dem Namen `TERM' eingebunden und kann von Programmen, die dazu in der Lage sind, für ihre Zwecke benutzt werden. Startet man mehrere `term'-Programme, so wird der Name des Bildschirms der Nummer des Programmes angepaßt (das erste gestartete Programm meldet den Bildschirm unter dem Namen `TERM' an, das zweite bedient sich `TERM.1', das dritte nimmt `TERM.2', etc.). Der Name des Bildschirms wird auch im Bildschirmtitel angezeigt. ================================ Die Menüs ================================ =========================================================================== Hier sollen kurz alle Pull-Down-Menüs und damit verbundene Funktionen des Programmes vorgestellt werden. 1. Project ---------- Dieses Menü enthält Funktionen zum Laden und Speichern der Programmeinstellungen und zum Verlassen des Programmes. Open Settings.................. Lädt die Voreinstellungen aus einer anzugebenden Datei. Save Settings.................. Speichert die Voreinstellungen unter dem zuletzt eingegebenen Namen. Save Settings As............... Speichert die Voreinstellungen unter einem anzugebenden Namen. Print Screen................... Gibt den Bildschirminhalt zeichenweise auf dem Drucker aus (keinesfalls als Graphik). Steuersequenzen werden nicht erzeugt. Iconify........................ Schließt alle vom Programm geöffneten Fenster und Bildschirme, setzt den seriellen Treiber zurück und gibt ihn frei und legt ein Symbol (`Icon') auf das Fenster der Workbench. Wird dieses Symbol angeklickt, so öffnet `term' wieder alle Fenster und den seriellen Treiber. Vorsicht: wird `term' auf diese Weise `in Schlaf versetzt', so nimmt auch das zum Programm gehörende ARexx-Interface keine Befehle mehr an. Ein ARexx-Programm, das sich mit synchronen Befehlen an das ARexx-Interface wendet, wird warten müssen, bis das Hauptprogramm wieder `aufgeweckt' wird. About.......................... Gibt eine kurze Information über das Programm aus. Quit........................... Beendet das Programm, wird eine der Umschalttasten (Shift) gedrückt gehalten, wenn dieser Menüpunkt angewählt wird, wird das Programm sofort verlassen, ansonsten erfolgt zuerst eine Sicherheitsabfrage. Nachdem der Menüpunkt zum Beenden des Programmes angewählt wurde, kann es einen Augenblick dauern, bis `term' wirklich verlassen wird. Dies hat seinen Grund darin, daß vor Programmende alle angeforderten Puffer freigegeben werden müssen, somit auch das `Logbuch'. Da zeilenweise abgespeichert, kann das Freigeben der Logbuchinhaltes entsprechend lange dauern. 2. Utilities ------------ In diesem Menü sind Funktionen zusammengefaßt, die dem Anwender das Leben ein wenig erleichtern sollen. So lassen sich AmigaDOS-Befehle, aber auch ARexx-Kommandodateien starten. Zusätzlich läßt sich der Inhalt des Clipboards (`Klemmbrett') in den Eingabestrom einspeisen (gedacht für Texteditoren oder auch das Programm `Snap'). Set Console Window............. Werden AmigaDOS/ARexx Befehle ausgeführt, so wird ein Ausgabefenster geöffnet, in das das betreffende Programm seine Informationen ausgibt. Position und Größe des Fensters lassen sich hier einstellen. Das Format der Fensterdeklaration entspricht der des NewShell-Befehles. Sollen während der Abarbeitung von AmigaDOS/ARexx Befehlen keine Ausgaben erfolgen, so sollte man hier `NIL:' eingeben. Execute AmigaDOS Command....... Hier läßt sich ein AmigaDOS-Befehl (z.B. Shell-Befehl) aufrufen. Befehlsname und Aufrufargumente müssen hier eingetippt werden. Execute ARexx Command.......... Dieser Menüpunkt dient dem Aufruf von ARexx Befehlsdateien. Name und Aufrufargumente müssen hier eingegeben werden. Wird die Eingabe in Anführungszeichen (" oder ') eingeschlossen, so wird sie als Mini-Programm in einer Zeile interpretiert und ausgeführt. Die von `term' unterstützten ARexx-Befehle werden in der Datei `termRexx.dok' beschrieben. Paste Clipboard Contents....... Der aktuelle Inhalt des `Clipboards', einer Ablage für temporäre Daten, die von mehreren Programmen aus genutzt werden kann, wird mit dieser Funktion in den Eingabestrom eingespeist. Dies ist im Zusammenhang mit dem `Logbuch' sinnvoll, in dem Zeilen markiert werden können, die anschließend im `Clipboard' abgelegt werden. Packet Window.................. Hier wird im unteren Bereich des Bildschirmes ein kleines Fenster geöffnet, in dem eine zu übertragene Zeile eingegeben, editiert und abgeschickt werden kann. Der Inhalt der Eingabezeile ist unabhängig davon, ob die am anderen Ende der Leitung aktive Mailbox sich um das Bearbeiten der eingetippten Zeichen kümmert. Eine genauere Beschreibung der Funktionen dieses Fensters wird später gegeben. Toggle Fast! Macro Panel....... Schaltet das Auswahlfenster für Fast! Makros an, bzw. aus. Auf die Funktion der Fast! Makros wird später noch eingegangen. Bei den Funktionen dieses Menüs, die zum Aufrufen eines Programmes dienen, wird ein Fenster geöffnet, in dem der Name des jeweiligen Programmes eingegeben werden kann. Zusätzlich befindet sich am unteren Rand dieses Fensters ein weiterer Knopf (`Load File'), der es erlaubt, das jeweilige Programm mit Hilfe eines Datei-Requesters auszuwählen. 3. Capture & Buffer ------------------- Die in diesem Menü zusammengefaßten Funktionen haben die Aufgabe, auf dem Bildschirm bereits gezeigte Daten zwischenzuspeichern, bzw. auf Diskette abzulegen oder zum Drucker zu schicken. Clear Buffer................... Dieser Menüpunkt führt dazu, daß der aktuelle Inhalt des `Logbuches' gelöscht wird. Sämtlicher angeforderter Speicher wird freigegeben. Display Buffer................. Das `Logbuch' wird mit diesem Befehl geöffnet und angezeigt. Wird eine der Umschalttasten für Groß-/Kleinschreibung gedrückt gehalten, wenn dieser Menüpunkt ausgewähl wird, so wird statt des Logbuchbildschirms ein kleines Fenster auf dem Hauptbildschirm geöffnet, dessen Inhalt mit Hilfe der Cursortasten bewegt und aus dem Texte ausgeschnitten werden können. Close Buffer................... Schließt den Bildschirm des `Logbuches', läßt dessen Inhalt aber unverändert (den Inhalt des `Logbuches', nicht des Bildschirmes - für die Spitzfindigen unter uns). Wurde eine der Umschalttasten für Groß-/Kleinschreibung gedrücktgehalten, während dieser Menüpunkt angewählt wurde, so wird das kleine Logbuchfenster (s.o.) geschlossen. Freeze Buffer.................. Ist dieser Menüpunkt tatsächlich aktiv, wird der Inhalt des Logbuches allen Ernstes auf dem aktuellen Stand belassen und kein weiterer Text hinzugefügt. Load Buffer.................... Lädt den Inhalt des `Logbuches' aus einer anzugebenden Datei. Falls das `Logbuch' noch Textzeilen enthält, so lassen sich die zu ladenden Zeilen auf Wunsch an den bestehenden Inhalt anhängen. Save Buffer.................... Sofern das `Logbuch' nicht bereits geleert wurde, läßt sich unter diesem Menüpunkt der komplette Logbuchinhalt auf Diskette ablegen. Capture To Disk................ Sollen alle eingehenden Daten `mitgeschnitten' und auf Diskette gespeichert werden, so sollte man diesen Menüpunkt aufrufen. Einmal aktiviert werden alle eingehenden Daten zwischengespeichert und in regelmäßigen Abständen auf Diskette abgelegt. Wird dieser Menüpunkt ein zweites mal angewählt, wird die betreffende Datei wieder geschlossen und das Mitschneiden beendet. Capture To Printer............. Ähnlich wie unter dem Menüpunkt `Capture To Disk' wird hier die Protokollierung der eingehenden Daten auf dem Drucker zu-, bzw. wieder abgeschaltet. Zur Funktion des `Logbuches' und dessen Bedienung werden später noch detailiertere Informationen gegeben. 4. Transfer ----------- Da Datenaustausch nicht allein über Tastatur und Konsole abgewickelt werden kann, unterstützt `term' externe Datentransferprotokolle über XPR-Bibliotheken. Dem Hauptprogramm beigefügt sind xprascii.library, xprjmodem.library, xprkermit.library, xprquickb.library, xprvms.library, xprxmodem.library, xprymodem.library und xprzmodem.library. Upload Text.................... Schickt Textdateien mit Hilfe des derzeit eingestellten Transferprotokolles zum Empfänger. Hinweis: es wird nicht selbständig erkannt, ob es sich bei den zu übertragenden Dateien um reinen ASCII-Text handelt. Dem Transferprotokoll wird bei Aufruf dieses Menüpunktes `empfohlen', die zu übertragenden Dateien im `Textmodus' zu verschicken. Ob ein solcher Modus implementiert ist, hängt vom Protokoll ab, näheres ist in dessen Dokumentation nachzulesen. Im `schlechtesten' Falle ist diese Funktion mit der Standard-Upload-Funktion identisch. Download Text.................. Fordert Textdateien mit Hilfe des derzeit eingestellten Transferprotokolles an. Hinweis: es wird nicht selbständig erkannt, ob es sich bei den zu empfangenden Dateien um reinen ASCII-Text handelt. Dem Transferprotokoll wird bei Aufruf dieses Menüpunktes `empfohlen', die zu übertragenden Dateien im `Textmodus' zu empfangen. Ob ein solcher Modus implementiert ist, hängt vom Protokoll ab, näheres ist in dessen Dokumentation nachzulesen. Im `schlechtesten' Falle ist diese Funktion mit der Standard-Download-Funktion identisch. Upload ASCII................... Ruft die `xprascii.library' auf, um eine/mehrere ASCII-Datei(en) zu versenden. Diese Funktion wurde implementiert, um `term' das Zusammenleben mit Paragon BBS-Systemen zu erleichtern. Download ASCII................. Ruft die `xprascii.library' auf, um eine ASCII-Datei zu empfangen. Upload File(s)................. Schickt Dateien mit Hilfe des derzeit eingestellten Transferprotokolles an den Empfänger. Hier können auch mehrere Dateien ausgewählt werden (ein `Wildcardmuster' statt eines vollständigen Dateinamens eingeben wie z.B. "#?.txt", womit alle Dateien, deren Namen mit dem Kürzel ".txt" enden, übertragen werden). Ob das jeweilige Transferprotokoll die Übertragung von mehreren Dateien unterstützt, ist in dessen Dokumentation nachzulesen. Wurden mehrere Dateien ausgewählt und das jeweilige Transferprotokolle unterstützt nur einen einzelnen Dateinamen, so wird jeweils die zuerst ausgewählte Datei übertragen. Download File(s)............... Fordert mit Hilfe des derzeit eingestellten Transferprotokolles Dateien an. Wenn überhaupt, so kann hier nur der Name einer einzigen Datei angegeben werden, die zu empfangen ist. Dateien, die nach dem Transfervorgang leer bleiben, werden automatisch gelöscht. Edit & Transfer File........... Ruft den voreinstellten Text-Editor auf, um eine Datei zu bearbeiten. Wurde bisher kein Text-Editor ausgewählt, so wird automatisch ein Fenster geöffnet, in dem der Name des Editors eingegeben werden kann. Es muß darauf hingewiesen werden, daß `term' solange wartet, bis der aufgerufene Editor seine Arbeit beendet hat. Nachdem die Arbeit abgeschlossen ist, erhält der Anwender die Möglichkeit, die bearbeitete Datei per ASCII-Transfer oder Text-Upload zu verschicken. Transfer Options............... Hier lassen sich alle Parameter des Transferprotokolle einstellen, oder auch Unterfunktionen aufrufen. Die Bedeutung der jeweiligen Parameter ist der Dokumentation des jeweiligen Protokolles zu entnehmen. Alle eingestellten Optionen werden auf Diskette gespeichert und können mit den Befehlen GetEnv & SetEnv ausgelesen, bzw. verändert werden. Transfer Protocol.............. Hier kann das für Up-/Downloads zu verwendende Transferprotokoll ausgewählt werden. Diese Protokolle sind als System- bibliotheken (xpr.library) implementiert, als Konsequenz wird nur der Inhalt des LIBS: Verzeichnisses angezeigt. Das hier verwendete Auswahlfeld wird von allen Funktionen dieses Menüs aufgerufen, wenn noch kein Transferprotokoll ausgewählt wurde, um die mit dem jeweiligen Menüpunkt verknüpfte Funktion auszuführen. Von den Transferfunktionen wird ein Fenster geöffnet, in dem verschiedene Transferparameter angezeigt werden. Zusätzlich läßt sich die Übertragung unter-, bzw. abbrechen (mit den Tasten `Abort Entire Transfer' = Abbruch des Transfervorganges und `Skip Current File' = aktuelle Datei überspringen). Hinweis: für die meisten Transferprotokolle haben die Tasten zum Abbrechen des Transfervorganges und zum Überspringen der aktuellen Datei dieselbe Funktion, ob eine getrennte Behandlung möglich ist (die dem Sinn der Tastenfunktionen entspricht) ist der jeweiligen Dokumentation zu entnehmen. Im folgenden sollen die im Transferfenster ausgegebenen Informationen kurz beschrieben werden: Protocol............... Der Name des Transferprotokolles. File................... Der Name der Datei, die gerade übertragen wird. File size.............. Sofern bekannt, die Größe der jeweiligen Datei. Space left............. Der auf dem Zielgerät noch verfügbare Speicherplatz. `term' versucht den effektiven Platzbedarf empfangener Dateien zu berechnen und gegen den freien Speicherplatz auf dem Zielgerät ins Verhältnis zu setzen. Paßt die Datei diesen Berechnungen nach nicht auf das Zielgerät, so zeigt `term' zusätzlich die Meldung `FILE MAY NOT FIT' an. VORSICHT: die Annahme von `term' muß nicht notwendigerweise eintreffen. Während der Übertragung ist meist noch genügend Zeit, um genügend Platz für die empfangene Datei zu schaffen. Gerade bei Zielgeräten wie z.B. der Ram-Disk, die nicht wie die Diskettenlaufwerke blockorientiert arbeiten, ist die Annahme von `term' generell zu vernachlässigen, da die Ram-Disk aufgrund ihrer Implementierung immer zu 100% voll ist. Bytes transferred...... Der bisher übertragene Dateiumfang. Blocks transferred..... Die Anzahl der bisher übertragenen Datenblöcke. Block check type....... Das Verfahren, das zur Überprüfung der übertragenen Daten verwendet wird (dies ist zumeist eine Form der CRC-Prüfsummenfunktion). Block size............. Größe eines Datenblockes in Bytes. Estimated time......... Hier wird die Zeit ausgegeben, die das jeweilige Transferprotokoll als die gesamte Übertragungs- dauer berechnet. Elapsed time........... Die während der Übertragung verstrichene Zeit. Message................ Eine Nachricht des Protokolles an den Benutzer (z.B. den gegenwärtigen Zustand der Datenübertragung betreffend). Information............ In dieser Liste werden Informationen wie z.B. der letzte aufgetrene Fehler oder auch die zuletzt übertragene Datei ausgegeben. Number of errors....... Die Anzahl der bei der Übertragung aufgetretenen Fehler. Number of timeouts..... Die Anzahl der bei der Übertragung aufgetretenen Synchronisierungsfehler. Packet type............ Eine Beschreibung des zur Übertragung verwendeten Datenblocktypes. Packet delay........... Die zeitliche Verzögerung zwischen der Übertragung zwei aufeinanderfolgender Datenblöcke. Characters/second...... Die effektive Transfergeschwindigkeit des Protokolles in Zeichen pro Sekunde. Character delay........ Die zeitliche Verzögerung zwischen der Übertragung zwei aufeinanderfolgender Zeichen. Sofern das Protokoll diese Informationen verfügbar macht, werden am unteren Rand des Anzeigefensters zwei Balken gezeigt, in denen die übertragene Datenmenge und die verbleibende Übertragungszeit angezeigt werden. Ist das ZModem-Protokoll aktiv und geht von der Empfängerseite die Aufforderung ein, eine Datei zu übertragen, so erscheint ein Auswahlfeld, das es einem ermöglicht, sofort einen Text-/Binär-Upload zu starten, man könnte diese Funktion quasi als `Auto-Upload' bezeichnen. Anstatt den Transfer zu beginnen, kann man sich auch dazu entscheiden, die eingegangene Sequenz zu ignorieren (`Ignore') oder der Gegenstelle die ZModem-Abbruch-Sequenz zu übermitteln, anstatt einen Transfer zu starten (`Abort'). Die Abbruch-Sequenz wird auch dann übertragen, wenn man einen Upload gestartet hat, bei der Auswahl der zu verschickenden Dateien jedoch die Auswahl abgebrochen hat. Jede empfangene Datei wird untersucht, um ihren Typ zu ermitteln. Wird dieser eindeutig bestimmt, so wird in den Datei-Kommentar ein kleiner Text geschrieben, der den Dateityp erklärt. Gegenwärtig werden 72 Dateitypen erkannt. Die Dateitypen im Einzelnen sind: Workbench Icon Windows Bitmap Bild ASCII Text JFIF Bild `C' Quellcode IFF-ILBM Bild `C' Headerdatei IFF-ANIM Animation Assembler Quellcode IFF-8SVX Sound Assembler Include-Datei IFF-SMUS Musik Modula-2/Oberon Quellcode IFF-FTXT Text ARexx Programm IFF-PREF Preferences Basic Quellcode IFF-TERM `term' Konfiguration AmigaGuide Dokument IFF (generell) TeX Dokument AmigaVision flow Metafont Zeichensatz Imploder-Daten Generic font PowerPacker-Daten Gepackter TeX-Zeichensatz LhPak Archiv** TeX device-independent Daten Arc Archiv PasTeX Zeichensatzbibliothek ARJ Archiv Manx 3.x Objektcode LhArc Archiv Manx 5.x Objektcode LHA Archiv Manx 3.x Bibliothek Zoo Archiv Manx 5.x Bibliothek PKZip Archiv AmigaDOS Objektcode Stuff It! Archiv² Objektcode-Bibliothek Pack It! Archiv² AmigaDOS Programm Compress Archiv* System-Library Freeze Archiv* System-Device MacCompress Archiv² AmigaDOS Dateisystem-Handler Compact Archiv² AmigaDOS Handler Diamond Archiv² GIF Bild CPIO Archiv* Degas Bild¹ DMS Disk-Archiv MacPaint Bild² Warp Disk-Archiv SuperPaint Bild² Zoom Disk-Archiv PostScript SPARC Objektcode Macintosh PICT Bild² SPARC Programm Sun-Rasterformat Bild³ MS-DOS Programm PCX Bild Atari-ST/TT Programm TIFF Bild Macintosh Programm ¹ Atari-ST/TT-spezifisch (Degas Elite) ² Macintosh-spezifisch ³ Sun-spezifisch * Unix-spezifisch ** Noch nicht veröffentlichungsfähig 5. Phone -------- In diesem Menü finden sich alle Funktionen, die sich mit der Ansteuerung des Modems und der seriellen Schnittstelle befassen. Phonebook...................... Dieser Menüpunkt birgt eine der komplexesten Funktionen des gesamten Programmes und soll im Anschluß an die Beschreibung der Menüs erklärt werden. Dial........................... Zum Wählen einer einzelnen Telefonnummer ist dieser Menüpunkt anzuwählen. Die jeweilige Nummer wird angefordert und anschließend an die Wählfunktion weitergeleitet. Redial......................... Alle Telefonbucheinträge, deren Nummern in der Wählliste vermerkt sind und zu denen beim letzten Wählvorgang keine Verbindung hergestellt werden konnte, werden an die Wählfunktion übergeben. Play Number.................... Spielt eine Telefonnummer in Ton-Codierung über die Amiga Audio-Hardware ab. Dies ist allerdings nur dann sinnvoll, wenn das zu verwendende Telefon an eine digitale Vermittlungsstelle der Telekom ange- schlossen ist. Zum Wählen ist die Sprechmuschel an den Lautsprecher des Monitors oder des `was-auch-immer- zur-Tonausgabe-verwendet-wird' zu halten. Send Break..................... Schickt ein Unterbrechungssignal über die serielle Leitung, was üblicherweise zu einer Resynchronisierung mit dem Empfänger oder zum Abbruch einer Funktion des Empfängers führt. Flush Receive Buffer........... Löscht den Inhalt des Empfangs- und Sendepuffers, möglicherweise nützlich, um Terminalemulation und Modem wieder zur Raison zu bringen. Hang Up........................ Schickt dem Modem den Befehl zum Auflegen, d.h. zum Abbruch der Verbindung zu. Release Serial Device.......... Gibt den derzeit eingestellten seriellen Treiber kurzfristig frei, sodaß andere Anwendungsprogramme ihn für ihre Zwecke nutzen können. Wieder in `term' kehrt man zurück, indem man das Feld `Continue' anklickt. Zum Verlassen des Programmes ist `Quit' anzuklicken. Wurde über das ARexx-Interface der serielle Treiber freigegeben, aber nicht wieder eingebunden, oder ließ sich der Treiber nicht korrekt initialisieren (man hat sich bei der Eingabe des Namens vertippt) so läßt sich dies über den Menüpunkt `Release Serial Device' nachholen. 6. Display ---------- Die Unterpunkte dieses Menüs befassen sich mit der Handhabung des Bildschirmes. Clear Screen................... Hiermit wird der Bildschirm gelöscht und die Schreibmarke (Cursor) in die linke obere Ecke des Bildschirmes gesetzt. Reset Styles................... Sollte es einmal vorkommen, daß die Schrift auf dem Bildschirm unleserlich wird, weil Textattribute wie Blinken, Fettdruck, Invers oder Unterstreichen eingeschaltet, aber nicht wieder entfernt wurden, kann hiermit der Urzustand der Anzeige wiederhergestellt werden. Reset Font..................... Analog zur Funktion `Reset Styles' wird mit Hilfe dieses Menüpunktes der aktuell verwendete Zeichensatz zurückgesetzt. Reset Terminal................. Bewegt die gerade aktive Terminalemulation dazu, zu ihrem Ursprungszustand zurückzukehren (d.h. Farben, Zeichenmodus und Zeichensatz werden auf die Standardeinstellungen zurückgebracht und der Bildschirm wird gelöscht). Save Screen (IFF-ILBM)......... Speichert den aktuellen Bildschirminhalt als IFF-ILBM-Bild ab. Die erzeugte Datei kann von jedem Zeichenprogramm eingelesen und bearbeitet werden. Save Screen (ASCII)............ Speichert den Bildschirminhalt in Zeichenform ab (keinesfalls als Graphik). 7. Settings ----------- Sämtliche Voreinstellungen des Programmes werden in diesem Menüs getroffen. Es existiert eine Trennung zwischen lokalen und globalen Einstellungen. Lokale Einstellungen können z.B. durch Anwählen einer Mailbox gesetzt werden, globale Einstellungen bleiben auch noch nach der Anwahl eine Mailbox erhalten und müssen explizit geändert werden. Im folgenden sollen alle Menüpunkte und deren Funktionen kurz beleuchtet werden: a) Serial Settings ------------------ Hier sind alle Parameter der seriellen Datenübertragung einzustellen: Baud Rate.............. Übertragungsgeschwindigkeit in Bits pro Sekunde. Bits/Char.............. Anzahl der Bits pro übertragenem Zeichen (7 / 8). Parity................. Übertragungsparität (keine, gerade, ungerade, Mark = Paritätsbit ist immer 1, Space = Paritätsbit ist immer 0). Stop Bits.............. Zur Übertragung verwendete Stop-Bits (1 / 2). Handshaking............ Zur Datenübermittlung verwendete Start/Stop-Kennug (xON/xOFF, RTS/CTS, keine). Duplex................. Datenübertragungsart (vollständig, halb bzw. Darstellung der eingegebenen Zeichen auch auf dem Hauptbildschirm). Buffer Size............ Hiermit läßt sich die Größe des Datenpuffers festlegen, den der serielle Treiber für die Datenübertragung nutzen soll. Dieser Wert muß effektiv mit zwei multipliziert werden, da er einerseits vom Treiber selbst und auch von `term' intern benutzt wird. Ein Wert von 32768 Bytes führt also dazu, daß 65536 Bytes Speicher für die Puffer angefordert werden. High-Speed Mode........ Aktiviert einen speziellen Modus des seriellen Treibers, der die Überprüfung der durchgehenden Daten überspringt und schneller arbeitet (nur sinnvoll bei der Verwendung des Programmes zum Verbinden zweier Rechner über Nullmodem-Kabel). Shared Access.......... Auf Wunsch kann der serielle Treiber in einem Modus betrieben werden, der mehr als einem Programm den Zugriff auf die serielle Schnittstelle erlaubt. Ist dieser Schalter nicht aktiviert, versucht `term' den seriellen Treiber exklusiv für sich zu belegen, ist der Schalter aktiviert, wird auch anderen Programmen der Zugriff auf den Treiber erlaubt. Break Length........... Die Dauer des Unterbrechungssignales (über den Menüpunkt `Send Break' auszulösen) in Mikrosekunden. Serial Device.......... Name des seriellen Treibers; üblicherweise ist dies das `serial.device', Besitzer des internen Supra-Modems sollten hier `modem?.device' (wobei ? für die Nummer der Steckkarte steht), Anwender der ASDG-IO-Karte `sxbios.device' eingeben. Select New Device...... Wird dieses Feld angeklickt, so läßt sich der zu verwendende serielle Treiber mit einem Dateiauswahlfeld auswählen. Device Unit Number..... Nummer der seriellen Treibereinheit, üblicherweise sollte dies 0 sein, zum Ansprechen getrennter serieller Anschlüsse ist hier die Nummer des Anschlusses einzusetzen. Use.................... Verwende die aktuellen Einstellugen. Cancel................. Erhalte die ursprünglichen Einstellungen. Wird die serielle Übertragungsgeschwindigkeit modifiziert, so muß dies den meisten Modems ausdrücklich bekanntgemacht werden (z.B. indem man die Zeichenfolge `AT' eintippt). Der Handshaking-Modus `RTS/CTS (DSR)' erfordert es, daß das angeschlossene Modem die `Data-Set-Ready'-Leitung aufgeschaltet hat, ist dies nicht der Fall wird aus Sicherheitsgründen in den `xON/xOFF' Handshaking-Modus zurückgeschaltet. Der Handshaking-Modus `RTS/CTS' achtet nicht auf das Vorhandensein eines `DSR' Signales. Ist Christopher Wichura's OwnDevUnit.library im System installiert, wird sie zur Absicherung gegenüber Zugriffen von anderen Programmen verwendet. Wer eine modifizierte Version von Matt Dillon's uucp/getty Programm verwendet, hat so die Möglichkeit, getty mit `term' korrekt zusammenarbeiten zu lassen. b) Modem Settings ----------------- Hier finden sich verschiedene Einstellungen zur Ansteuerung des Modems, aber auch für das Anwählen von Telefonbucheinträgen notwendige Parameter: Modem Init String...... Eine Zeichenkette, die dem Modem beim Programmstart zugeschickt werden soll. Dieser Befehl dient der Initialisierung und muß nicht notwendigerweise vorhanden sein. Auch die Wählfunktion nutzt diesen Eintrag: kurz bevor eine Telefonnummer angewählt wird, wird das Modem mit der hier zu findenden Zeichenkette initialisiert. Modem Exit String...... Eine Zeichenkette, die dem Modem beim Programmende zugeschickt werden soll. Dieser Befehl muß nicht notwendigerweise vorhanden sein. Auch die Wählfunktion nutzt diesen Eintrag: kurz bevor die zu einem Telefonbucheintrag gehörende Nummer gewählt wird, wird das Modem mit dem Exit-String der Vorgängernummer bearbeitet. Modem Hangup String.... Eine Zeichenkette, die dem Modem Abbrechen der Verbindung zugesandt wird (`Hang up'). Dieser Befehl ist zwingend erforderlich! Dial Prefix............ Eine Zeichenkombination, die einer zu wählenden Telefonnummer vorangestellt werden soll. Üblicherweise ist dies `ATDP' oder `ATX3DP' für automatische Erkennung einer besetzten Telefonleitung. Redial Delay........... Die zeitliche Verzögerung nach einem fehlgeschlagenen Versuch, beim Wählen von Telefonnumern eine Verbindung herzustellen. Die Wählfunktion wartet die hier angegebene Zeit in Minuten, bevor die Liste der zu wählenden Telefonnummern ein weiteres mal durchlaufen wird. Number Of Dial Retries. Die Anzahl der Versuche, die die Wählfunktion unternimmt, eine Verbindung zu den in der Liste der zu wählenden Telefonnummern herzustellen, bevor sie abbricht. Dial Timeout........... Die Anzahl Sekunden, die die Wählfunktion nach der Anwahl einer Telefonnummer wartet, bis sie auflegt und die nächste Nummer wählt. Connect Auto-Capture... Beim erfolgreichen Aufbau einer Telefonverbindung kann optional eine Mitschnitt-Datei geöffnet werden, in der alle Ein-/Ausgaben der angeschlossenen Mailbox abgespeichert werden. Ist diese Funktion aktiviert, so wird eine vorher geöffnete Mitschnitt-Datei geschlossen und eine neue geöffnet, die den Namen der angeschlossenen Mailbox und des Verbindungsdatums trägt. Connect Auto-Baud...... Viele Modems geben beim erfolgreichen Aufbau einer Verbindung die Übertragungsgeschwindigkeit aus, deren Trägersignal erkannt wurde. Ist die hier implementierte Funktion aktiviert, so wird diese Zahl ausgewertet und die Übertragungs- geschwindigkeit des seriellen Treibers entsprechend angepaßt. Log Actions............ Auf Wunsch werden alle vom Programm ausgeführten Aktionen (Up-/Downloads, Anwahl von Mailboxen, etc.) protokolliert und in einer Datei gespeichert. Jede Aktion wird mit Datum und Uhrzeit versehen. Check Carrier.......... `term' untersucht den eingehenden Zeichenstrom u.A. auf eine Zeichensequenz, die angibt daß das Modem das für die Datenübertragung notwendige Trägersignal verloren hat. In diesem Fall wird die Verbindung üblicherweise als abgebrochen angesehen, was unter Umständen ein verhängnisvoller Fehler sein kann. Möchte man sichergehen, daß eine solche Zeichensequenz nicht zufällig eingegangen ist, kann man mit Aktivierung dieses Schalters `term' dazu anweisen noch einmal nachzuprüfen ob das Modem selbst davon überzeugt ist, daß das Trägersignal verlorengegangen ist. Diese Funktion muß nicht notwendigerweise bei allen Modems funktionieren, da manche die `Carrier-Detect'-Leitung immer aktiviert haben. Drop DTR On Hangup..... Manche Modems brechen eine Verbindung zügiger und korrekter ab, wenn man die `Data-Terminal-Ready'- Leitung beim Auflegen auf niedriges Potential legt. Wird dieser Schalter aktiviert, wird bei jedem Auflegen die DTR-Leitung kurzfristig auf niedriges Potential gelegt. Pass xON/xOFF through.. Ist dieser Schalter aktiviert, so werden die xON/xOFF Codes anstatt vom Terminalprogramm interpretiert und ausgefiltert zu werden, zum Modem durchgereicht. No Carrier String...... Die Zeichenkette, die das Modem beim Verlust des Trägersignales an das Terminal sendet. Dies wird benötigt, wenn ermittelt werden soll, die lange die letzte Telefonverbindung bestand und berechnet wird, wieviel für die Verbindung an Gebühren zu bezahlen ist. Connect String......... Die Zeichenkette, die das Modem beim erfolgreichen Aufbau einer Verbindung an das Terminal zurückschickt. Sie wird benötigt, nachdem die Wählfunktion eine Telefonnummer angewählt hat und auf eine Antwort des Modems wartet (Connect/No Carrier). No Dialtone String..... Die Zeichenkette, die das Modem zurückliefert, wenn es bei einem Anwahlversuch keinen Wählton empfängt, einige Modems liefertn diese Zeichenkette auch zurück, wenn die jeweilige Leitung besetzt ist. Voice String........... Die Zeichenkette, die das Modem beim Erkennen eines Anrufes an das Terminal zurückliefert, wenn es erkennt, daß sich am anderen Ende der Leitung kein anderes Modem meldet. Ring String............ Die Zeichenkette, die das Modem beim Empfang eines eingehenden Anrufes an das Terminal zurückliefert. Busy String............ Die Zeichenkette, die das Modem zurückliefert, wenn es erkennt, daß die angewählte Telefonnummer gegenwärtig besetzt ist. Use.................... Verwende die aktuellen Einstellungen. Cancel................. Erhalte die ursprünglichen Einstellungen. c) Screen Settings ------------------ Unter diesem Menüpunkt ist ein Einstellfeld zu finden, in dem alle Parameter des Hauptbildschirmes gesetzt werden können. Display Modes.......... Hier werden alle verfügbaren Graphikmodi angezeigt, in denen der Hauptbildschirm geöffnet werden kann. Zur Verwendung der Modi `Productivity' und der A2024-Modi ist anzumerken, daß sie zwei Einschränkungen mit sich bringen: es können nur noch Bildschirme der Tiefe zwei (Amiga-Farbenmodus) geöffnet werden und in den A2024-Modi können verschiedene Bildschirmauflösungen nicht mehr miteinander gemischt werden. Hinweis: die A2024-Modi sollten wirklich nur dann aufgerufen werden, wenn auch tatsächlich ein A2024/Hedley-Monitor angeschlossen ist, da sonst u.U. der Bildschirm regelrecht `zusammenbricht' und das Arbeiten mit `term' unmöglich gemacht wird. Edit Screen Palette.... Hier kann eine zu verändernde Farbe der Bildschirmpalette angewählt werden. Red/Green/Blue......... Mit diesen Schiebereglern werden die Anteile der zu verändernden Bildschirmfarbe modifiziert. Make Screen Public..... Wie schon oben angesprochen, wird der `term' Hauptbildschirm als öffentlich zugänglich geöffnet. Da der Bildschirm selbst nicht automatisch öffentlich zugänglich geöffnet wird, kann mit diesem Punkt bestimmt werden, ob auf dem Bildschirm Fenster fremder Programme geöffnet werden sollen können. Es ist besonders in Hinsicht auf die von den Befehlen `Execute AmigaDOS Command' und `Execute ARexx Command' geöffneten Konsolenfenster sinnvoll, den Bildschirm als öffentlich zugänglich öffnen zu lassen. In diesem Fall werden die jeweiligen Fenster auf dem `term'-Hauptbildschirm geöffnet. `Shanghai' Windows..... Eng mit dem vorher genannten Punkt hängt diese Funktion zusammen, die nur dann zugänglich wird, wenn `Make Screen Public' aktiviert wurde. Ist der Schalter `Shanghai Windows' aktiv, so wird versucht, das Öffnen aller sonst auf dem Workbench-Bildschirm erscheinenden Fenster auf den Hauptbildschirm von `term' zu verlegen. Use.................... Verwende die aktuellen Einstellungen. Cancel................. Erhalte die ursprünglichen Einstellungen. Es muß darauf hingewiesen werden, daß die `neuen' Display-Modi (Super-Hires, Productivity, etc.) die Farbenvielfalt eines Bildschirmes stark einschränken. Statt 16-Bit Farbanteilen für Rot, Grün und Blau werden nur noch 2 Bit unterstützt, was den Umfang der Palette, aus denen Farben gewählt werden können, auf 64 Farben begrenzt (4 × 4 × 4). Dies ist kein `Feature' von `term' sondern eine hardwarebedingte Einschränkung. d) Terminal Settings -------------------- Alle hier versammelten Einstellungen bestimmen das Verhalten des Terminals selbst, d.h. wie welche Steuerbefehle interpretiert und in Bildschirminformationen umgesetzt werden. Capture Filter......... Bestimmt ob Steuersequenzen aus dem Datenstrom herausgefiltert werden sollen, der an den `Mitschnitt' der `Capture To Disk'-Funktion gesandt wird. Destructive BS......... Legt fest, ob das `Backspace'-Zeichen (dient zum Löschen des Zeichens links neben der Schreibmarke) lediglich die Schreibmarke bewegen, oder auch Zeichen aus dem Bildschirm entfernen soll. Swap DEL <-> BS........ Für die hard-core VT100-User unter uns: wird dieser Schalter aktiviert, so wird die Belegung der Del- und Backspace-Tasten vertauscht. Vorsicht: wird Control+H gedrückt, so wird ein Delete statt einem Backspace erzeugt! Strip Bit 8............ Für die Leute, die es brauchen: wird dieser Schalter aktiviert, so wird das oberste Bit jedes eingehenden Zeichens gelöscht. Stop Blinking.......... Für den Fall, daß eine Mailbox zu großzügig mit blinkenden Zeichen umgeht, kann mit dieser Option das Blinken generell abgeschaltet werden. Im 8-Farbenmodus bewirkt dieser Schalter, daß das Programm einen nur noch drei Bitplanes tiefen Bildschirm öffnet, was einen Geschwindigkeitsgewinn bei der Bildschirmausgabe zur Folge hat. Screen Title........... Ist dieser Schalter aktiviert, wird die Bildschirmtitelzeile angezeigt, anderenfalls nicht. Status Line............ Mit diesem Schalter läßt sich die Anzeige der Statuszeile (na gut, der Statuszeilen) bestimmen. - Disabled Die Statuszeile ist komplett abgeschaltet. - Standard Die Statuszeile (na gut, die Statuszeilen) wird in ihrer ganzen Pracht auf zwei Zeilen verteilt angezeigt. Mehr geht nicht. - Compact Nur die grundlegenden Informationen werden angezeigt, ohne jegliche Erklärung, worum es sich handelt. Wer lieber raten möchte, der sollte die folgenden Zeilen nicht lesen. Status Terminaltyp Übertragungsprotokoll Übertragungsgeschwindigkeit Übertragunsparameter Tageszeit Online-Zeit Answerback message..... Die Sequenz, die beim Eingehen des `ENQ' Zeichens über die serielle Schnittstelle verschickt werden soll. Es handelt sich hierbei wiederum um eine Befehlssequenz. Faster Layout.......... Wird dieser Schalter aktiviert, wird der Graphik- und Fensteraufbau von `term' langsamer. Nein, natürlich nicht immer, es gibt einige Ausnahmen, bei denen der Bildschirmaufbau schneller werden kann (die Betonung liegt auf *kann*), z.B. wenn eine externe Emulation verwendet wird, oder mit mehr als vier Farben am Bildschirm gearbeitet wird. Diese Beschleunigung bezieht sich evtl. nur auf den Fensteraufbau, nicht auf die jeweilige Terminalemulation. Generell ist zu sagen, daß mit dem Effekt dieses Schalters etwas experimentiert werden sollte, bevor man ihn aktiviert läßt. Send CR................ Dieser Schalter bestimmt, als welche Zeichenfolge ein Carriage-Return (Zeilenrücklauf) an den Empfänger übertragen werden soll. Ein Zeilenrücklauf wird üblicherweise dann gesendet, wenn die RETURN-Taste gedrückt wird (As CR = ohne Veränderung, As CR+LF = gefolgt von einem Zeilenvorschub, Ignore = Unterdrückung). Send LF................ Dieser Schalter bestimmt, als welche Zeichenfolge ein Line-Feed (Zeilenvorschub) an den Empfänger übertragen werden soll. Ein Zeilenvorschub wird üblicherweise dann gesendet, wenn die RETURN-Taste zusammen mit der Control-Taste gedrückt wird (As LF = ohne Veränderung, As LF+CR = gefolgt von einem Zeilenrücklauf, Ignore = Unterdrückung). Receive CR............. Diese Funktion arbeitet analog zu `Send CR', außer daß in diesem Fall die von `term' empfangenen Zeichen betroffen sind. Receive LF............. Diese Funktion arbeitet analog zu `Send LF', außer daß in diesem Fall die von `term' empfangenen Zeichen betroffen sind. Bell................... Hier ist die Aktion des Programmes einzustellen, die beim Eingehen eines `Bell'-Zeichens ausgeführt werden soll: - Visual Der Bildschirm blitzt kurz auf. - Audible Es wird ein akustisches Signal erzeugt - Visual & Audible Eine Kombination aus beiden oberen Aktionen. - Ignore Es passiert nichts. - System default Es werden die Systemroutinen zum Anzeigen von Signalen benutzt. Display Size........... Wie groß der Bildschirm auf dem Monitor erscheint, bestimmt auch, wieviele Zeichen auf ihm darstellbar sind. Da einige bemitleidenswerte Mailboxprogramme auf eine bestimme Bildschirmgröße angewiesen sind, läßt sie sich hier explizit festlegen: - Screen Size Es werden soviele Zeichen auf den Bildschirm gebracht, wie es seine physikalischen Dimensionen gestatten. - 80 × 24 (VT100) Exakt 80 × 24 Zeichen, wie im VT100-Standard verlangt. - 80 × 25 (ANSI) ANSI hat gegenüber VT100 u.A. den großen Vorteil, daß eine Zeile Text mehr auf den Bildschirm paßt. In jedem Fall bleibt die Größe des Hauptbildschirm von den Größeneinstellungen an dieser Stelle unberührt; die hier getroffenen Einstellungen beeinflussen lediglich, ab welcher Bildschirmspalte der Text umgebrochen und ab welcher Bildschirmzeile der Text nach oben verschoben wird. Colour................. Hier wird der Farbmodus bestimmt, in dem die Terminalemulation arbeiten soll. Bisher sind drei Modi implementiert: - Amiga Vier Farben, inklusive Blinkfunktionen. - 8 Colours (Blink) Acht Farben, inklusive Blinkfunktionen. - 16 Colours Sechtzehn Farben, entsprechend der EGA Farbpalette. - Mono Monochrom, nur zwei Farben. Emulation.............. Dies ist schließlich und endlich der Punkt, an dem man sich entscheiden kann, mit welcher Terminalemulation man arbeiten möchte. Einerseits existiert eine solide VT102/VT220/ANSI Emulation, die alle bekannten Steuersequenzen unterstützt, andererseits gibt es die sogenannte `Atomic'- `Emulation', die lediglich die unverzichtbaren Steuerfunktionen (in TTY-Manier CR, LF, Backspace, etc.) unterstützt, alle VT102- und ANSI- Steuersequenzen überspringt, dafür aber sehr schnell arbeitet und eine `TTY'-Emulation, die nicht wie `Atomic' alle Steuersequenzen unterschlägt, sondern auf dem Bildschirm ausgibt. Hinzu kommt noch die Möglichkeit, eine externe Terminalemulation auszuwählen. Hierzu ist der Modus `External' zu wählen und eine Emulationsdatei auszuwählen (siehe Zeicheneingabefeld oder der Knopf `Select New Emulation'). Kann die Emulationsdatei aus welchen Gründen auch immer, nicht geladen werden, so schaltet das Programm auf die eingebaute Emulation `ANSI/VT' zurück. Emu. Name.............. Der Name einer Terminalemulationsbibliothek, die von `term' für den Bildschirmaufbau verwendet werden soll. Select New Emulation... Wird dieser Knopf gedrückt, so kann man über einen Dateirequester die zu verwendende Terminal- emulationsbibliothek auswählen. Font................... `term' verwendet zwei Zeichensätze zur Darstellung von Text und Graphik. `Topaz' ist der im Betriebssystem integrierte Standardzeichensatz, `IBM' ist ein dem Standard-IBM-PC® ähnlicher Zeichensatz, der auch Graphikzeichen enthält. Ist der `IBM'-Zeichensatz gewählt, so werden alle über die Tastatur eingegebenen Zeichen automatisch in die entsprechenden `IBM'-Zeichen umgewandelt. Ist eine externe Terminalemulation aktiv, so werden die hier getroffenen Einstellungen übergangen, da die jeweilige Emulation üblicherweise ihren Zeichensatz selbst einstellen möchte. KeyMap Name............ Falls die Installation es erfordert, daß eine spezielle Tastenbelegung verwendet wird, kann der Name der Tastenbelegungsdatei hier angegeben werden. Zum gegenwärtigen Zeitpunkt gelten die hier gesetzten Einstellungen nicht für das `Packet Window', da das Betriebssystem eine solche Implementierung nicht erlaubt. Use.................... Verwende die aktuellen Einstellungen. Cancel................. Erhalte die ursprünglichen Einstellungen. e) Commands ----------- Hier befinden sich Einträge für drei Befehlssequenzen, die verschiedene Funktionen haben: Startup/Login Macro.... Das hier angegebene Makro wird ausgeführt, wenn eine erfolgreiche Telefonverbindung über die Wählfunktion zu einer Mailbox aufgebaut werden konnte (Login Macro) oder das Programm `term' zum ersten Mal gestartet wurde (Startup Macro). Da für jeden Telefonbucheintrag ein solches Makro existiert, können auf diese Weise automatische Login-Prozeduren ausgeführt werden. Upload Macro........... Dieses Makro wird nach dem erfolgreichen Verschicken von Dateien aufgerufen. Download Macro......... Nach dem erfolgreichen Empfangen von Dateien wird dieses Makro ausgeführt, man kann es z.B. dazu benutzen, um die empfangenen Dateien auf Korrektheit zu überprüfen. f) Miscellaneous ---------------- In diesem Einstellfeld finden sich Funktionen, die sich an anderen Stellen des Programmes nur schlecht unterbringen ließen. Program Priority....... Hier läßt sich die Priorität festlegen, unter der `term' im Multitasking des Amiga laufen soll. Den Wert auf etwas anderes als 0 zu setzen, ist nur dann zu empfehlen, wenn man `term' Priorität gegenüber anderen, sehr rechenintensiven Programmen verschaffen möchte. Dem Programm eine höhere Priorität als 20 zuzuweisen, halte ich für nicht sinnvoll. Man verspreche sich bitte keine Wunder davon, die Priorität von `term' auf 127 zu setzen oder ähnlichen Unfug zu treiben. Aufgrund der Implementierung der Serviceroutinen des Programmes können derartig hohe Werte die Performance des Gesamtprogrammes sogar drastisch verschlechtern. Override Transfer Path. Transferprotokolle wie YModem, ZModem, QuickB und Kermit sind in der Lage, mehrere Dateien nacheinander zu empfangen. Diese Dateien werden in einem Empfangsverzeichnis angelegt, das jeweils lokal für das jeweilige Protokoll einzustellen ist. Möchte man allerdings die Übersicht über die empfangenen Dateien behalten und nicht andauernd nach dem Ort suchen, an dem sie schließlich gelandet sind, empfiehlt es sich manchmal, dieses lokal einzustellende Verzeichnis von `term' auf die im Menü `Paths' gemachten Einstellungen zu verlegen. Wird dieser Schalter aktiviert, werden statt des lokalen Empfangsverzeichnisses die Einstellungen im `Paths'-Einstellfeld verwendet. Backup Configuration... Üblicherweise ersetzt die Konfiguration eines Telefonbucheintrages die Hauptprogrammkonfiguration von `term', sobald eine Verbindung zu einer Mailbox hergestellt wurde. Wird dieser Schalter aktiviert, merkt sich `term' vor dem Übernehmen einer neuen Konfiguration aus einem Telefonbucheintrag die vorherige Konfiguration und stellt sie wieder her, sobald die Verbindung abgebrochen wird. Use Auto Upload Panel.. Wird das ZModem-Protokoll zum Datentransfer verwendet, so achtet `term' auf eingehende Zeichenfolgen, mit denen der Empfänger seine Empfangsbereitschaft ankündigt. Ist dieser Schalter aktiviert, öffnet `term' beim Eingehen einer solchen Zeichenfolge ein Fenster, in dem der Typ des Transfers (Text oder Binärdaten) ausgewählt werden kann, andernfalls wird die Zeichenfolge ignoriert. Set `archived' bit..... Wird dieser Schalter aktiviert, wird bei allen Dateien, die per XPR-Transfer verschickt werden, das `archiviert'-Bit gesetzt. Maximum Buffer Size.... Hier läßt sich eine Obergrenze für den Umfang des Logbuches festlegen, um Speicher zu sparen. Das Logbuch hält sich nicht exakt an die hier gemachten Vorgaben, es werden üblicherweise ±1KByte mehr oder weniger angefordert. Wird hier der Wert 0 eingetragen, wird der Umfang des Logbuches nicht beschränkt. Buffer Enabled......... Ist dieser Schalter nicht aktiviert, wird der Inhalt des Logbuches eingefroren und keine weiteren Daten hineingeschickt. Hinweis: `term' hält sich in erster Line an den `Freeze Buffer' Menüeintrag und kümmert sich erst in zweiter Linie um die hier gemachten Einstellungen. Show Fast! Macros...... Ist dieser Schalter aktiviert, so wird beim Aufrufen einer neuen Konfiguration oder gleich beim Programmstart das Fast! Makro-Auswahlfeld ge- öffnet. g) Paths -------- In diesem Einstellfeld können alle Pfade, die das Programm `term' zum Lesen und Abspeichern von Daten verwendet, angegeben werden. Config. Storage Dir.... Das Verzeichnis, in dem alle Konfigurationsdateien abgelegt werden (Telefonbuchdateien, Tastatur- makros, etc.). Die Hauptkonfigurationsdatei `Preferences.term' wird an Hand der Systemvariable `TERMPATH' gefunden, die am Ende dieses Dokumentes unter `Systemvariablen' erklärt ist. ××× Up/Downloadpath.... Die Pfade, unter denen die im Menü `Transfer' zusammengefaßten Funktionen Dateien zur Übertragung suchen und anlegen. Capture Path........... Der Pfad unter dem Mitschnitt-Dateien angelegt werden, wenn die Funktion `Connect Auto-Capture' im Menü Settings/Modem aktiviert wurde. Log File............... Der Name der Datei, in die Informationen zu den vom Programm ausgeführten Aktionen gespeichert werden sollen, falls die Funktion `Log Actions' im Menü Settings/Modem aktiviert wurde. Text Editor............ Der Name des Text-Editors, der von der Funktion `Edit File' im Menü Utilities benutzt werden soll. Terminal `Beep' Sound.. Der Name einer IFF-Sound-Datei, die gespielt werden soll, wenn am Terminal ein BEL-Signal eingeht. Lautstärke und Abspieldauer werden der jeweiligen Datei entnommen. Wichtig: aus technischen Gründen kann die Sound-Datei nicht länger als 102400 Bytes sein! Use.................... Verwende die aktuellen Einstellungen. Cancel................. Erhalte die ursprünglichen Einstellungen. Wird einer der Schalter mit der Aufschrift `Select' gedrückt, so kann der nebenstehende Pfad, bzw. die nebenstehende zu konfigurierende Datei mit Hilfe eines Datei-Requesters ausgewählt werden. h) Emulation ------------ Hier befinden sich Schalter, mit denen sich interne Parameter der eingestellten Emulation verändern lassen. Da die jeweiligen Veränderungen quasi `in vivo' gemacht werden, lassen sie sich nicht abspeichern und beeinflussen lediglich die gerade aktive Terminal-Emulation. Der folgende Text beschreibt nur die Parameter, die sich bei der internen Terminalemulationen verändern lassen; ist eine externe Terminalemulation aktiv, so wird die Parameterroutine des Emulationsmoduls aufgerufen. Für die an dieser Stelle einzustellenden Parameter sollte man auf die Dokumentation des jeweiligen Emulationsmoduls zurückgreifen. Smooth Scrolling....... Falls aktiviert, schaltet diese Funktion das Bildschirm-Scrolling (vertikale Verschiebung) von zeilenweiser Verschiebung in viertelzeilige Verschiebung. Wrap Characters........ Diese Funktion aktiviert den automatischen Zeilenumbruch am rechten Bildschirmrand. Um unangenehme Nebeneffekte zu vermeiden (ist der Zeilenumbruch deaktiviert, kann es vorkommen, daß Zeichen am rechten Rand hängenbleiben), sollte dieser Schalter immer aktiviert sein. Wrap Cursor............ Nach der VT-100-Spezifikation haben Cursor-Bewegungen an den Bildschirmgrenzen zu stoppen. Dennoch gibt es speziell im Bereich der ANSI-Emulationen die Möglichkeit, diese Grenzen quasi zu verlassen: verläßt der Cursor die eine Bildschirmhälfte, so taucht er auf der anderen Bildschirmseite wieder auf. Dieser Schalter aktiviert den etwas `toleranteren' Cursor-Modus. Insert Mode............ Üblicherweise befindet sich `term' im Überschreibe-Modus (eingegebene Zeichen überschreiben den bisherigen Bildschirminhalt). Ist dieser Schalter aktiviert, so wird für Zeichen beim Eintippen in der Zeile Platz gemacht und der Zeileninhalt nach rechts aus dem Bildschirm geschoben. Wichtig: der Einfügemodus arbeitet nur zeilenweise, aus dem Bildschirm herausgeschobene Zeichen können nicht wiedergeholt werden! New Line Mode.......... Dieser Schalter aktiviert einen speziellen Modus des VT-100-Treibers, in dem auf eine Handvoll Steuerzeichen mit einem Zeilensprung reagiert wird, anstatt z.B. den Bildschirm zu löschen oder andere drastische Veränderungen des Bildschirminhaltes vorzunehmen. Ich nehme an, daß dieser Modus zur Unterstützung eines angeschlossenen Druckers gedacht war, in dieser Implementierung hat er jedoch nur beschränkten Nutzen. Numeric Keypad......... Die Tasten des Zehnerblockes, als auch die Cursor Keys............ Cursortasten können in einen speziellen Modus geschaltet werden, in dem jede Taste statt einer Ziffer eine Steuersequenz überträgt. Sollte der Rechner am anderen Ende der Leitung dies benötigen, so läßt sich dieser Modus, `applications mode' genannt, hier zuschalten. Font Scale............. VT-100 verfügt über vier verschiedene Schriftgrößen, die hier individuell eingeschaltet werden können: - Normal Die übliche Schriftgröße. - Half Width Halbe Schriftbreite. Use.................... Verwende die aktuellen Einstellungen. Cancel................. Erhalte die ursprünglichen Einstellungen. Nun zu den globalen Voreinstellungen: a) Macro Settings ----------------- Dieses Menü dient zum Belegen der zehn Funktionstasten mit benutzerdefinierten Sequenzen, die auf Tastendruck ausgeführt werden. Es handelt sich hierbei um Befehlssequenzen, die später genauer beschrieben werden sollen. Modifier............... Es können insgesamt 40 Tasten mit Funktionen belegt werden. Da die Amiga-Tastatur aber nur über 10 Funktionstasten verfügt, läßt sich mit diesem Schalter bestimmen, in Zusammenhang mit welcher Umschalt-Taste die entsprechende Befehlssequenz abgeschickt werden soll. Hier gibt es 4 Einstellungen: - None Nur die Funktionstaste muß gedrückt werden. - Shift Zusätzlich zur Funktionstaste muß eine der Umschalttasten für Groß-/Kleinschrift (`Shift') gedrückt gehalten werden. - Alternate Zusätzlich zur Funktionstaste muß eine der Umschalttasten für den alternativen Zeichensatz (`Alt') gedrückt gehalten werden. - Control Zusätzlich zur Funktionstaste muß eine der Umschalttasten für normale/Steuerzeichen (`Ctrl') gedrückt gehalten werden. Load................... Lade die Funktionstastenbelegung aus einer Datei. Save................... Speichere die Funktionstastenbelegung in einer Datei. Use.................... Verwende die aktuellen Einstellungen. Cancel................. Erhalte die ursprünglichen Einstellungen. Da die Belegung der Funktionstasten mit Befehlssequenzen der standardmäßigen Belegung der 4 Funktionstasten der VT-100-Konsole widerspricht, werden beim Anlegen der Makrotabellen die Befehlssequenzen der Tasten F1-F4, die mit der Shift-Taste zu erreichen sind, mit den vier Standardsequenzen für Funktionstasten belegt. Diese Belegung kann vom Benutzer selbstverständlich geändert werden. Ist eine externe Emulationsbibliothek aktiv, so werden die Tasten, die die Emulation für sich beansprucht, gesperrt und können weder betätigt, noch bearbeitet werden. b) Fast! Macro Settings ----------------------- Sinn und Zweck dieses Einstellfeldes decken sich mit denen der Funktionstasten, die im vorhergehenden Menüpunkt zu konfigurieren sind. Hier jedoch können Anklickfelder mit Befehlssequenzen belegt werden. Macro List............... Die Liste der bisher eingegebenen Makros, um ein Makro zu bearbeiten, muß es angeklickt werden. Macro.................... Der Name eines Makros, unter dem es in der Liste aufgeführt ist. Macro Code............... Die mit dem jeweiligen Makro assoziierte Befehlssequenz. Zu Befehlssequenzen gilt das für Funktionstasten gesagte, eine genauere Beschreibung folgt später im Dokument. New...................... Hängt ein neues Makro an die Liste an, der Benutzer kann es bearbeiten und für seine Zwecke verändern. Delete................... Löscht das gerade ausgewählte Makro aus der Liste. Load..................... Lädt die Makro-Liste aus einer Datei. Save..................... Speichert die Makro-Liste in einer Datei. Top...................... Bewegt den gerade ausgewählten Listeneintrag an den Anfang der Liste. Up....................... Schiebt den gerade ausgewählten Listeneintrag einen Eintrag zurück. Down..................... Schiebt den gerade ausgewählten Listeneintrag einen Eintrag nach vorne. End...................... Bewegt den gerade ausgewählten Listeneintrag an das Ende der Liste. c) Hotkeys ---------- Hier lassen sich die vom Programm zum Arrangieren der Bildschirme und Sonderfunktionen verwendeten Tastatursequenzen konfigurieren. term Screen To Front..... Die Tastenkombination, die durch Drücken den Bildschirm des Hauptprogrammes nach vorne bringt und aktiviert. Buffer Screen To Front... Die Tastenkombination, die durch Drücken den Bildschirm des Logbuches nach vorne bringt und aktiviert. Skip Dial Entry.......... Alternativ kann in der Wählfunktion eine Tastenkombination gedrückt werden, die dieselbe Funktion wie der `Skip'-Knopf hat (Überspringen einer Telefonnummer, Abbrechen eines Anwahlversuches, etc.). Die jeweilige Tastensequenz wird hier eingegeben. Commodity Priority....... Die Priorität, die term als Commodity-Programm einnimmt. Mit diesem Wert kann das `Zusammenleben' einzelner Commodity-Programme gesteuert werden, die dieselben Tasten mit verschiedenen Funktionen belegen wollen. Das Programm mit der höheren Priorität bekommt den Zuschlag. Hotkeys enabled.......... Die Hotkeys können sowohl extern mit dem Programm `Exchange' aus- und wieder eingeschaltet werden, als auch mit diesem Knopf. Load..................... Lädt die Hotkey-Einstellungen aus einer Datei. Save..................... Speichert die Hotkey-Einstellungen in einer Datei. Use...................... Verwende die aktuellen Einstellungen. Cancel................... Erhalte die ursprünglichen Einstellungen. Sollten in diesem Einstellfeld gemachte Veränderungen nicht sofort aktiv werden, hat man sich wahrscheinlich bei der Eingabe einer der Tastensequenzen vertippt (woraus folgt, daß die komplette Hotkey-Initialisierung fehlschlägt). Ich habe im Moment keinerlei Möglichkeiten, derartige Fehler einfach abzufangen, da die Initialisierung asynchron erfolgt und von einem Task erledigt wird, der das Ergebnis der Initialisierung nicht zurückmeldet. d) Speech --------- Auf Wunsch läßt sich in diesem Menü der Sprachsynthesizer des Amiga aktivieren. Bei besonderen Aktionen und Vorkommnissen wird vom Rechner kurz eine Nachricht gesprochen, die über den jeweiligen Vorgang informiert. Dies kann sinnvoll sein, wenn man `term' in den Hintergrund gelegt hat und auf einem anderen virtuellen Bildschirm arbeitet, trotzdem aber über das Geschehen am `term'-Bildschirm informiert sein möchte. Rate..................... Die Sprechgeschwindigkeit des Sprachsynthesizers in Worten pro Minute. Pitch.................... Dieser Parameter wird am besten mit `Ausdruck' umschrieben. Je größer, desto höher wirkt die Stimme, mit der gesprochen wird und dies unabhängig davon, wie hoch die Stimmfrequenz ist. Frequency................ Die Höhe der Stimmfrequenz in Hertz. Volume................... Die Lautstärke der Stimme. Sex...................... Bestimmt ob die Stimme männlich oder weiblich ist. Speech enabled........... Schaltet den Sprachsynthesizer ein oder aus. Speak!................... Spricht zur Probe einen kurzen Text (der Sprachsynthesizer muß hierzu allerdings erst eingeschaltet werden). Load..................... Lädt die Sprach-Einstellungen aus einer Datei. Save..................... Speichert die Sprach-Einstellungen in einer Datei. Use...................... Verwendet die aktuellen Einstellungen. Cancel................... Erhält die ursprünglichen Einstellungen. Ich kann mir nicht vorstellen, daß sehr viele Leute diese Funktion nutzen werden, dennoch erschien es mir sinnvoll sie einzubauen. Es erwarte aber bitte niemand, daß über kurz oder lang eine Funktion zum Aussprechen der über das Terminal eingehenden Texte hinzukommen wird. Ich halte dies für nicht mehr als Spielerei und ansonsten nicht sonderlich sinnvoll. ======================= Telefonbuch & Wählfunktion ======================== =========================================================================== Die nachfolgend beschriebenen Funktionen sind im Menü `Modem' zu finden und hängen mit den Menüpunkten `Phonebook', `Dial' und `Redial' zusammen. `term' verfügt über eine komfortable Verwaltung von Telefonnummern, das `Telefonbuch', dessen Bedienung über ein Kontrollfeld geschieht, welches im folgenden beschrieben werden soll. a) Bedienungselemente --------------------- Name List.............. Die Liste aller namentlich (Name der jeweiligen Mailbox) eingetragenen Telefonnummern. Wird ein Doppelklick auf einen dieser Einträge ausgeführt, so wird dieser an das Ende der Wählliste gehängt (dazu später mehr). Drücken der Leerschrittaste hat denselben Effekt wie doppeltes Klicken auf einen Listeneintrag. BBS Name............... Name des zuletzt ausgewählten Telefonbucheintrages. Phone Number........... Telefonnummer des zuletzt ausgewählten Telefon- bucheintrages. Verfügt eine Mailbox über mehrere Anschlüsse, so können die anzuwählenden Nummern an dieser Stelle durch einen vertikalen Strich (`|') getrennt angegeben werden (Beispiel: "123456|654321" würde nacheinander die Nummern `123456' und `654321' anzuwählen versuchen). Die Wählfunktion wird die einzelnen Telefonnummern nacheinander versuchen anzuwählen und erst nachdem alle Nummern abgearbeitet sind zum nächsten zu wählenden Telefonbucheintrag übergehen. Der senkrechte Strich kann auch für die Modem-Init-, Modem-Exit- und Wählprefix-Sequenzen benutzt werden. Wird eine Telefonnummern angewählt, so werden auch die dazugehörigen Sequenzen ausgewählt und benutzt. Sind mehr Telefonnummern vorhanden, als Sequenzen angegeben wurden, so werden die jeweils letzten Sequenzen benutzt (Beispiel: als Telefonnummer sei "123456|654321|12345" angegeben und als Wählprefix "ATDP|ATDT"; die erste Nummer wird mit Hilfe von `ATDP123456' angewählt, die zweite mit `ATDT654321' und die dritte, da keine weiteres Anwahlpräfix auffindbar ist, wiederum mit `ATDT12345'). New Entry.............. Erzeugt einen neuen Telefonbucheintrag, der mit Standardwerten initialisiert wird und hängt ihn am Ende der Liste an. Clone Entry............ Erzeugt eine Kopie des gerade angewählten Telefonbucheintrages und hängt ihn am Ende der Liste an. Remove Entry........... Löscht den gerade angewählten Telefonbucheintrag aus der Liste. Dial List.............. Übergibt die Liste der ausgewählten Telefonbucheinträge an die Wählfunktion, die die angewählten Einträge in ihrer Reihenfolge durchgeht und zu jedem eine Verbindung herzustellen versucht. Clear List............. Löscht die Markierungen der anzuwählenden Telefonbucheinträge. Play Number............ Spielt die Nummer des ausgewählten Eintrages in Ton-Codierung über die Amiga Audio-Hardware ab. Man kann sich also ein komplettes Telefonregister anlegen und anzurufende Nummern von `term' wählen lassen. Dies ist allerdings nur dann sinnvoll, wenn das zu verwendende Telefon an eine digitale Vermittlungsstelle der Telekom angeschlossen ist. Zum Wählen ist die Sprechmuschel an den Lautsprecher des Monitors oder des `was-auch- immer-zur-Tonausgabe-verwendet-wird' zu halten. Load List.............. Lädt den Inhalt eines Telefonbuches aus einer Datei. Sort List.............. Sortiert den Inhalt des Telefonbuches. Sind bereits Telefonbucheinträge ausgewählt worden, so werden die Einträge in der Reihenfolge, in der sie ausgewählt wurden, sortiert. Der verbleibende Rest des Telefonbuchs wird alphabetisch in aufsteigender Reihenfolge sortiert. Save List.............. Speichert den Inhalt eines Telefonbuches in einer Datei. Set Password........... Der Zugriff auf eine Telefonbuchdatei läßt sich durch ein Zugangskennwort reglementieren, das sich nach der Anwahl dieses Knopfs eingeben läßt (Vorsicht: man sieht am Bildschirm, was als Kennwort eingegeben wird!). Es werden jeweils nur die ersten 20 Zeichen der Eingabe verwendet. Beim Abspeichern der Datei wird das Kennwort verschlüsselt mitgespeichert und mit ihm alle abgespeicherten Daten verschlüsselt. Das Kennwort wird wieder angefordert, sobald die Datei neu geladen werden soll und es nicht einem möglicherweise bereits aktiven Kennwort entspricht. Die getippten Zeichen erscheinen nicht am Bildschirm, die -Taste kann zum Löschen einzelner Zeichen verwendet werden, die Eingabe wird durch Drücken der -Taste oder nach der Eingabe von genau 20 Zeichen abgeschlossen. Die Eingabe läßt sich durch Drücken der -Taste oder durch Schließen des Eingabefensters abbrechen. Hinweis: wird eine verschlüsselte Datei geladen, so braucht dies mehr Zeit, als das Laden einer nicht verschlüsselten Datei, gleiches gilt für das Speichern von Dateien. Am rechten Fensterrand befindet sich eine weitere Liste, in der verschiedene Funktionen aufgelistet sind, die sich auf den gerade ausgewählten Telefonbucheintrag beziehen. Serial, Modem, ........ Diese Einträge entsprechen den gleichnamigen Transfer, Screen, Menüpunkten auf dem Hauptbildschirm und dienen zum Terminal, Commands, Konfigurieren der für einen jeden Miscellaneous, Telefonbucheintrag notwendigen Parameter. Paths Keyboard Macros,....... Hiermit kann eine Makro-Datei ausgewählt werden, Fast! Macros die bei der erfolgreichen Anwahl einer Mailbox an Stelle der im Hauptmenü eingestellten Datei übernommen wird. Password/User.......... Hier lassen sich sowohl ein Zugangskennwort für eine Mailbox als auch der zu verwendende Username eintragen, die einem beim Login möglicherweise ausgeführten ARexx-Programm für den Login-Vorgang in eine Mailbox zur Verfügung stehen. Copy Config............ Oftmals kann man sich beim Erstellen eines Telefonbucheintrages eine Menge Zeit sparen, indem man einfach Teile der gerade aktiven Programmkonfiguration in einen Telefonbucheintrag kopiert. Wird dieses Element angewählt, öffnet sich ein Einstellfenster, in dem ausgewählt werden kann, welchen Teil der gerade aktiven Programmkonfiguration man in den gerade ausgewählten Telefonbucheintrage übernehmen möchte. Der Knopf `All' markiert alle Teile, der Knopf `Clear' löscht alle Markierungen. Wir der Knopf `Use' gedrückt, werden alle markierten Konfigurationsteile in den gerade ausgewählten Telefonbucheintrag übernommen. Wird der Knopf `Copy To All' aktiviert, so werden die gewählten Einstellungen in alle Telefonbucheinträge übernommen. Zwischen den einzelnen Aufrufen merkt sich das Einstellfeld, welche Teile der Konfiguration kopiert wurden. b) Rates - Einheiten für Telefongebühren ---------------------------------------- `term' verfügt über sehr präzise Funktionen zur Berechnung von Telefongebühren, die während eines Anrufes anfallen. Um die zur Berechnung notwendigen Parameter einstellen zu können, muß das Feld `Rates' in der Liste am rechten Rand des Telefonbuchfensters angewählt werden. Für jeden einzelnen Telefonbucheintrag lassen sich die anfallenden Gebühren individuell konfigurieren. Es öffnet sich zuerst ein Fenster mit den folgenden Bedienungselementen: Pay/Unit............... Hier wird angegeben, wieviel Geld für eine Gebühreneinheit bezahlt werden muß. Diese Gebühr ist immer in der kleinsten Währungseinheit anzugeben (Pfennige, Rappen, Groschen, etc.). Seconds/Unit........... Hier ist die Anzahl von Sekunden einzustellen, die eine einzelne Gebühreneinheit dauert. Start Time............. Hier ist der Zeitpunkt einzustellen, ab dem eine Gebührenberechnung nach den dazugehörenden Parameter beginnt. Von den oberen drei Einstellungen existieren zwei verschiedene; es gibt eine Startzeit (Starting Time) und eine Endzeit (Ending Time). Die Einstellungen der Startzeit sind bis ausschließlich zur Endzeit aktiv. Die Einstellunden der Endzeit sind den übrigen Tag aktiv. Days And Dates......... Dies ist eine Liste der für spezielle Termine und Wochentage getroffenen Gebühreneinstellungen. Neben einem kurzen erklärenden Kommentar findet sich hier auch die Art des Eintrages (links neben dem Symbol `»'): - Day(s) Einstellungen für spezielle Wochentage - 12. Jan (Beispiel) Einstellungen für einen bestimmten Termin. Steht keine solche Bezeichnung neben einem Eintrag, hat man es wahrscheinlich mit den Standardeinstellungen zu tun, die gelten, falls keine anderen Einstellungen, die zum heutigen Tag passen, in der Liste gefunden werden können. Add Date............... Fügt einen bestimmten Termin zur Gebührenliste hinzu. Im sich öffnenden Einstellfeld können Monat, Tag und Kommentar zu den jeweiligen Gebühreneinstellungen eingestellt werden. Vorsicht: das Programm registriert nur das Datum, kann aber nicht ermitteln, ob ein Datum auch wirklich sinnvoll ist (der 31. Februar wird ebenso akzeptiert wie der 31. April). Add Day(s)............. Fügt einen Eintrag, dessen Gebühren nur für bestimmte Wochentage oder nur für einen einzigen bestimmten Wochentag gelten, zur Gebührenliste hinzu. Im sich öffnenden Einstellfeld können die jeweils gültigen Wochentage ausgewählt und zusätzlich ein Kommentar zu den Einstellungen eingegeben werden. Import................. Um Arbeit zu sparen, können die Gebühren- einstellungen aus einem anderen Telefonbucheintrag herauskopiert und in den aktuellen Telefonbucheintrag übernommen werden. Im sich öffnenden Fenster kann der Telefonbucheintrag ausgewählt werden, dessen Einstellungen übernommen werden sollen. Drei Schalter am unteren Fensterrand bestimmen, was anschließend geschehen soll: - Replace Units Die Gebühreneinstellungen des aktuellen Telefonbucheintrages werden durch die des ausgewählten Telefonbucheintrages ersetzt. - Append Units Die Gebühreneinstellungsliste des ausgewählten Telefonbucheintrages wird an die Liste des aktuellen Telefonbucheintrages angehängt. - Cancel Die Auswahl wird abgebrochen. Wurde ein Gebühreneintrag ausgewählt, so lassen sich die einzelnen zu ihm gehörenden Parameter (Pay/Unit, Seconds/Unit, Start Time) verändern. Handelt es sich zusätzlich noch um einen Eintrag für ein spezielles Datum oder einen Wochentag, werden drei weitere Schalter zugänglich: Edit................... Erlaubt es nachträglich, die Einstellungen für das zu einem Eintrag gehörende Datum oder die eingestellten Wochentage zu verändern. Clone.................. Hängt eine Kopie des aktuellen Eintrages an die Liste der Gebühreneinträge an. Remove................. Entfernt einen Gebühreneintrag aus der Liste. c) Anwählen eines Telefonbucheintrages -------------------------------------- Um einen Telefonbucheintrag anzuwählen, ist er mit einem Doppelklick (kurzes zweimaliges Anklicken eines Eintrages mit der Maus) zu markieren. Neben dem Namen des Eintrages erscheint eine Zahl, die laufende Nummer des Eintrages in der Wählliste markiert und die Reihenfolge der Einträge in der Wählliste angibt. Mit einem weiteren Doppelklick läßt sich diese Markierung wieder löschen. Wird schließlich die Wählfunktion durch Drücken des `Dial List' Knopfes angesprochen, so wird ein neues Eingabefeld geöffnet. Hier wird der Anwahlvorgang durchgeführt. Da ich mehrfach danach gefragt wurde: zur Anwahl einer Telefonnummer wird jeweils das für die Telefonnummer eingestellte Dial-Prefix verwendet. Muß man MNP-Fehlerkorrektur erst ausdrücklich über den Anwahl-String für eine bestimmte Mailbox zuschalten, so hat dies in den Modem-Einstellungen der anzuwählenden Mailbox zu geschehen und nicht in den globalen Einstellungen von `term'! Als zusätzliche Initialisierungsmöglichkeit können die `Modem Init-String'- und `Modem Exit-String'-Einträge des Telefonbucheintrages verwendet werden. Die folgenden Informationen über den Vorgang werden ausgegeben: Calling................ Der Name des Telefonbucheintrages, dessen Telefonnummer gerade angewählt wird. Handelt es sich im eine einfache Telefonnummer, so steht an dieser Stelle `-- Unknown --', was bezeichnet, daß der Name der angewählten Mailbox nicht bekannt ist. Number................. Die Telefonnummer, die gerade gewählt wird, bzw. wurde. Next................... Der Name des Telefonbucheintrages, der als nächstes angewählt werden soll, falls keine Verbindung zustandekommt. Existiert kein Nachfolger, so steht an dieser Stelle `-- None --'. Timeout................ Ein Zähler, der jede Sekunde erniedrigt wird und angibt, wie lange noch bis zum Aufbau einer Telefonverbindung, bzw. nächsten Durchlauf der Wählliste gewartet wird. Attempt................ Hier wird angezeigt, wie oft die Wählliste bereits erfolglos durchlaufen wurde, um eine Verbindung herzustellen. Message................ Eine Nachricht an den Benutzer. Dies kann sein: - Dialing... Es wird gerade ein Anwahlversuch unternommen. - Line Is Busy. Die angewählte Nummer ist besetzt. - Incoming Call! Das Modem wurde von einem anderen Modem an- gerufen. - Incoming Voice Call! Das Modem hat einen Anruf empfangen, der nicht von einem anderen Modem stammt. - No dialtone detected! Das Modem hat keinen Wählton in der Leitung entdeckt und die Anwahl abgebrochen. - Connection Established. Eine Verbindung wurde aufgebaut. - Maximum Number Of Dial Retries Reached! Die maximale Anzahl von Anwahlversuchen wurde erreicht. - Dial Attempt Timeout. Die zum Aufbau einer Verbindung zur Verfügung stehende Zeit ist verstrichen. - Redial Delay... Bis zum nächsten Durchlauf der Wählliste wird gewartet. Zusätzlich befinden sich im Eingabefeld drei Knöpfe, mit denen die folgenden Funktionen ausgelöst werden können. Skip................... Hiermit wird der aktuelle Anwahlversuch abgebrochen und zum nächsten übergeleitet. Existiert keine nachfolgende Telefonnummer, so wird in eine Zeitschleife verzweigt, die bis zum nächsten Durchlauf der Wählliste oder dem Anklicken des `Skip'-Knopfes wartet. Diese Funktion läßt sich auch durch Drücken der unter `Hotkeys...' einzustellenden Tasten auslösen, näheres ist dort nachzuschlagen. Remove................. Diese Funktion ist in ihrer Wirkung mit `Skip' identisch, entfernt den aktuellen Telefonbucheintrag allerdings komplett aus der Wählliste. Go To Online........... Sollte eine Leitung extrem verrauscht sein, die Verbindung zu einer Mailbox hergestellt, aber das `CONNECT' Signal verlorengegangen sein, so kann man durch Anwahl dieses Knopfes direkt in den `Online'-Modus gehen, in dem der Gebührenzähler gestartet und die Wählliste verlassen wird. Abort.................. Durch Betätigen dieses Knopfes wird die Wählliste verlassen (ihr Inhalt bleibt allerdings erhalten) und der Wählvorgang abgebrochen. Wird eine Verbindung erfolgreich hergestellt, so wird der dazugehörige Eintrag aus der Wählliste entfernt. Wird das Fenster der Wählfunktion durch Anklicken des Schließsymbols oder des `Quit'-Menüpunkts geschlossen, so kehrt das Programm ins Telefonbuch zurück. =============================== Das Logbuch =============================== =========================================================================== Das `Logbuch' ist eine Programmfunktion, die ständig alle über den Hauptbildschirm ausgegebenen Texte zwischenspeichert, sodaß sich der Benutzer jederzeit über den eingegangenen Text informieren kann. 1. Generelle Eigenschaften -------------------------- Der Umfang des `Logbuches' wird dynamisch verwaltet, sodaß für jede neue Zeile, die gelesen wird, neuer Speicher beschafft werden muß. Die Größe des `Logbuches' ist demnach nur durch den verfügbaren Speicher eingeschränkt. Es wird empfohlen, das `Logbuch' periodisch zu entleeren, um nicht den gesamten verfügbaren Speicher verlorengehen zu lassen. Reicht einmal der Speicher nicht aus, um eine neue Zeile in das `Logbuch' zu schreiben, so wird die erste Zeile entfernt, um Platz für die neu hinzukommende zu machen. 2. Bedienung ------------ Mit den Tasten zur Bewegung der Schreibmarke (`Cursortasten') läßt sich der Logbuchinhalt vor- und zurückblättern (Cursortasten + Shift-Taste blättert seitenweise, Cursortasten + Control-Taste springt zu Anfang oder Ende des Logbuches). Zusätzlich sind die Tasten des Ziffernblockes mit Sprung- und Blätterbefehlen belegt (entsprechend der Beschriftung auf der Vorderseite der Tasten). Zusätzlich existiert noch ein Menü, dessen Funktionen kurz erklärt werden sollen: Search................. Eine Suchfunktion wird aufgerufen, die von der aktuellen ersten Bildschirmzeile abwärts nach einer einzugebenden Buchstabenkombination sucht. Groß- und Kleinschreibung werden beim Suchvorgang ignoriert. Ist die gesuchte Buchstabenkombination gefunden, so wird sie auf den Bildschirm gebracht und markiert. Repeat Search.......... Fährt mit dem Suchvorgang fort, der mit `Search' eingeleitet wurde. Die zuvor eingegebene Buchstabenkombination wird übernommen. Go To Main Screen...... Schaltet auf den `term' Hauptbildschirm um. Clear Buffer........... Löscht den Inhalt des `Logbuches'. Close Buffer, Quit..... Schließt den Bildschirm des `Logbuches', läßt den Inhalt des `Logbuches' aber unverändert. ================= Das Klemmbrett (Clipboard) und die Maus ================= =========================================================================== Am Hauptbildschirm lassen sich mit der Maus Zeichen markieren, die in das `Klemmbrett' (Clipboard) gelegt werden sollen, um später abrufbereit in den Eingabestrom eingespielt werden zu können. Hierzu sind die zu markierenden Zeichen mit der Maus anzuklicken und ist der zu übernehmende Text mit dem Mauszeiger zu überstreichen. Wird zusätzlich noch eine der Umschalttasten für Groß-/Kleinschreibung gedrückt gehalten, so wird der Inhalt des markierten Bereiches nach dem Markieren automatisch in den Eingabestrom eingespielt und mit einem Zeilenrücklaufcode abgeschickt. Auch einzelne Zeichen lassen sich einfach anklicken und abschicken: hierzu ist die Control-Umschalttaste zu drücken und das zu verschickende Zeichen mit dem Mauszeiger anzuklicken. Wird zusätzlich zur Control-Umschalttaste auch noch einer der Umschalttasten für Groß-/Kleinschreibung gedrückt gehalten, so das Zeichen mit einem Zeilenrücklaufcode verschickt. Die mittlere Maustaste hat -- sofern vorhanden -- dieselbe Funktion wie die mit einer Shift-Taste zusammen gedrückt gehaltene linke Maustaste. Mit Hilfe der Maus können in der Anzeige des `Logbuches' Zeichen markiert werden, die in das `Clipboard' übernommen werden sollen und später mit der Funktion `Paste Clipboard Contents' in den Eingabestrom eingespeist werden können. Wird eine der Shift-Tasten gedrückt gehalten, so wird der markierte Bereich wie am Hauptbildschirm in den Eingabestrom eingespielt. Wird eine der Alt-Tasten gedrückt und die linke Maustaste im Hauptbildschirm betätigt, so erzeugt `term' eine Reihe von Cursortastensequenzen, die den Cursor an die Position bewegen sollen, an der sich der Mauszeiger befand, als die Maustaste gedrückt wurde. Gedacht ist diese Funktion zur Unterstützung von Full-Screen-Editoren. In Standard-Zeicheneingabefeldern mußte ein Weg gefunden werden, um sowohl Menüpunkte, als auch die Standardeditierfunktionen (Rechte Amiga-Taste + X löscht die Eingabezeile, rechte Amiga-Taste + Q stellt den ursprünglichen Inhalt der Eingabezeile wieder her) unterstützen zu können. Wird keine Umschalttaste (`Shift') gedrückt, um eine der Tastenfunktionen auszulösen, so wird die jeweilige Editierfunktion des Eingabefeldes genutzt. Wird die Umschalttaste jedoch gedrückt, so wird der dazugehörige Menüpunkt -- sofern vorhanden -- aufgerufen. Innerhalb der Eingabefelder läßt sich wortweise springen, wenn zusammen mit den Tasten zur Bewegung der Schreibmarke (`Cursortasten') die Control-Taste gedrückt gehalten wird. Auch hier ist das `Klemmbrett' nutzbar: mit Amiga-Taste + C wird der Inhalt des Zeicheneingabefeldes zum `Klemmbrett' kopiert, mit Amiga-Taste + V wird der Inhalt des `Klemmbrettes' an die aktuelle Schreibmarkenposition des Zeicheneingabefeldes kopiert. ============================ Befehlssequenzen ============================= =========================================================================== Jede Zeichenfolge, die direkt an das Modem gesendet wird, ist eine Befehlssequenz. Darunter fallen Telefonnummern, Modeminitialisierung, Funktionstastenbelegungen, etc. Zusätzlich zu den normalen Zeichenfolgen des ASCII-Zeichensatzes werden verschiedene Zusatzbefehle unterstützt, die im folgenden beschrieben werden sollen. a) Der `Backslash' (gespiegelter Schrägstrich) \ ------------------------------------------------ Die folgenden Sequenzen werden durch das Zeichen '\' eingeleitet: \\..... Erzeugt den `Backslash'. \a..... Führt einen ARexx-Befehl (alles was diesem Zeichen folgt) aus. \b..... Erzeugt ein `Backspace' (lösche das Zeichen links neben der Schreibmarke). \c..... Ruft die Funktion eines Hauptmenüpunktes auf. Folgt diesem Zeichen eine Zahl, so wird diese als Nummer der Menüpunktes aufgefaßt (Beispiel: "\c 010203" -> Untermenü = 1, Menüpunkt = 2, Hauptmenü = 3), die Nummern der Menüpunkte beginnen jeweils mit 0. Folgt dem Zeichen ein in Apostrophe eingeschlossener Name eines Menüpunktes, so wird dieser aufgerufen (Beispiel: "\c 'about'" ruft den Menüpunkt `About...' auf), es wird jeweils nur der Teil des Namens verglichen, der angegeben wurde. \d..... Führt einen AmigaDOS-Befehl (alles was diesem Zeichen folgt) aus. \e..... Erzeugt das Escape-Zeichen (ASCII Code 27). \f..... Erzeugt ein `Form-Feed' (Seitenvorschub oder Bildschirmlöschen). \g..... Legt eine Zeichenkette (alles, was diesem Zeichen folgt) im `Clipboard' ab. \i..... Speist den Inhalt des `Clipboards' in den Eingabestrom ein. \n..... Erzeugt ein `Line-Feed' (Zeilenvorschub). \p..... Speist das Password des Telefonbucheintrages in den Eingabestrom ein, zu dem zuletzt eine Verbindung hergestellt wurde. Hinweis: das Password wird aus Sicherheitsgründen beim Abbruch der Verbindung automatisch gelöscht. \r..... Erzeugt ein `Carriage-Return' (Zeilenrücklauf). \t..... Erzeugt einen Tabulatorsprung. \u..... Speist den Benutzernamen des Telefonbucheintrages in den Eingabestrom ein, zu dem zuletzt eine Verbindung hergestellt wurde. Hinweis: der Name wird aus Sicherheitsgründen beim Abbruch der Verbindung automatisch gelöscht. \x..... Erzeugt ein Break-Signal (wie der `Send Break' Menüpunkt). \^..... Erzeugt das `Caret' (auch Dach genannt). Wird keines dieser Zeichen erkannt, so wird der dem `\' folgende Buchstabe ohne Veränderung in den Eingabestrom eingespeist. b) Das `Caret' (auch Dach genannt) ^ ------------------------------------ Dieses Zeichen dient dazu, aus dem nachfolgenden Zeichen ein `Kontrollzeichen' zu machen. So wird aus der Sequenz `^J' ein Zeilenvorschub, aus `^H' ein Tabulatorsprung. Das dem `^' folgende Zeichen muß zwischen den Zeichen `@' und `[' liegen, ansonsten wird es ohne Veränderung in den Eingabestrom eingespeist. c) Die Tilde ~ -------------- Dieses Zeichen läßt das Programm genau eine halbe Sekunde warten, bevor es mit der Abarbeitung der nachfolgenden Befehle fortfährt. ============================== Fast! Macros =============================== =========================================================================== Wird diese Funktion über das Menü oder die Programmkonfiguration aktiviert, so öffnet sich am rechten Bildschirmrand ein Fenster, in dem eine Liste von Befehlssequenzen angezeigt wird. Durch Anklicken einer Sequenz wird diese ausgeführt. Die Funktionsweise deckt sich in etwa mit der der Funktionstasten, einmal abgesehen davon, daß man die Befehlssequenzen, mit denen die Funktionstasten belegt sind, nicht mit der Maus auslösen kann. Mit Hilfe der `Fast! Macros' kann eine Mailbox theoretisch alleine nur mit der Maus gesteuert werden, vorausgesetzt, man hat alle dafür notwendigen Befehle als Befehlssequenzen zur Verfügung. Da auch ARexx-Befehle über Befehlssequenzen aufgerufen werden können, hat man hiermit ein sehr mächtiges Werkzeug zur Programmsteuerung zur Verfügung. Das Fenster kann in der Größe verändert werden und verfügt über annähernd dieselben Eigenschaften wie das Hauptfenster auf dem `term'-Bildschirm, d.h. es können Menüpunkte aufgerufen oder Eingaben über die Tastatur erfolgen. =========================== Das `Packet Window' =========================== =========================================================================== In diesem Fenster kann eine zu verschickende Eingabezeile bearbeitet werden. Alle üblichen Editiermöglichkeiten in Standard-Eingabefeldern stehen zur Verfügung (Umschalttaste + Links/Rechts springt zu Anfang/Ende der Zeile). Zusätzlich existieren folgende Erweiterungsfunktionen, die durch Drücken der Tasten zur Bewegung der Schreibmarke (`Cursortasten') zusammen mit einer Umschalttaste (`Shift' = Umschaltung für Groß-/Kleinschrift, `Control' = Umschaltung für normale/Steuerzeichen): Links + Control........ Springt zum nächsten Wort. Rechts + Control....... Springt zum vorhergehenden Wort. Oben................... Zeigt den zuletzt eingegebenen Befehl in der Eingabezeile an. Oben + Shift........... Springt zum ersten Befehl, der bisher eingegeben wurde. Unten.................. Springt zum nächsten eingegebenen Befehl. Unten + Shift.......... Springt zum letzten bisher eingegebenen Befehl. Die Eingabezeile verwaltet einen Puffer, in dem alle bisher eingegebenen Befehle zwischengespeichert werden (`Command History'). Dieser Puffer läßt sich durchblättern, laden, abspeichern und einzelne Zeilen lassen sich wieder aufrufen. Wie beim `Logbuch', so wird dieser Puffer dynamisch verwaltet. Es gelten dieselben Speicherrestriktionen wie bereits für das `Logbuch' gesagt wurde. Der Eingabezeile ist auch ein Menü zugeordnet, das die folgenden Funktionen bietet: Load History........... Lädt den Inhalt des Eingabezeilenpuffers aus einer Datei. Jede hier gespeicherte Zeile kann aufgerufen und verschickt werden. Save History........... Speichert den Inhalt des Eingabezeilenpuffers in einer Datei. Clear History.......... Gibt den Inhalt des Eingabenpuffers wieder frei. Other Window........... Wechselt zum Hauptbildschirm von `term'. Quit................... Schließt das Fenster (entspricht dem Anklicken des Fenster-Schließsymboles). Es muß darauf hingewiesen werden, daß in diesem Fenster eingegebenen Zeichen sofort angezeigt werden, sodaß Dinge, die besser nicht auf dem Bildschirm erscheinen sollten, wie z.B. das persönliche Zugangskennwort einer Mailbox, besser nicht in diesem Fenster eingegeben werden. Der Inhalt jeder Eingabezeile wird als Befehlssequenz angesehen und kann also auch Steuerzeichen (à la `\p', `\i', etc.) enthalten. Wird eine aus dem Eingabepuffer entnommene Zeile ohne Veränderungen abgeschickt, so wird diese nicht noch einmal in den Eingabepuffer übernommen (`true history' wie man sie z.B. von `ConMan' kennt). Der Inhalt des Eingabepuffers wird nach dem Schließen des Fensters automatisch gelöscht. Der Inhalt bleibt _keinesfalls_ bis zum nächsten Aufruf erhalten! Wird das Fenster groß genug gezogen, so wird die Liste der bisher getätigten Eingaben angezeigt. ============================= Systemvariablen ============================= =========================================================================== `term' legt Informationen, die beim nächsten Aufruf des Programmes zur Verfügung stehen sollen, als AmigaDOS-Variablen in den Verzeichnissen `ENV:' und `ENVARC:'ab. Die von `term' verwendeten Variablen können transparent von dritten Programmen verwendet und verändert werden. Im Einzelnen sind dies: TERMPATH............... Der Name des Verzeichnisses, unter dem alle von `term' verwendeten Systemdaten (Standard- konfiguration, Telefonbuch, etc.) abgelegt werden sollen. Standardmäßig wird hier `ENVARC:term' eingetragen. TERMWINDOW............. Die Fensterdefinition, die auch im Programm durch den Menüpunkt `Set Console Window' einzustellen ist. xpr... ................ Die für das jeweilige Transferprotokoll (xprzmodem, xprkermit, etc.) zu verwendenden Standardoptionen. ========================= Leistung des Programmes ========================= =========================================================================== Im folgenden Text möchte ich kurz ein paar Ausreden für die sich hier und da manifestierende `Tatsache', daß `term' so unglaublich langsam arbeitet, und Maßnahmen, man diese Eigenschaften umgehen kann, aufzählen. Gerade in letzter Zeit habe sich viele Leute bei mir gemeldet und sich darüber beklagt, daß `term' auf ihrem Rechner nicht dieselbe Leistung bringt, wie sie z.B. `JR-Comm' an den Tag legt. Es gibt eine ganze Menge Gründe, weshalb `term' nicht soooo schnell ist, wie man es von anderen Programm erwarten würde: - Hardwaremäßige Beschränkungen; wer seinen nicht erweiterten A2000 gerade mit Kickstart 2.0 ausgerüstet hat oder seinen A500+ zum ersten Mal benutzt, der darf sich nicht darüber wundern, wenn sein brandneues, phantastisch leistungsfähiges Modem trotz MNP 4+Epsilon oder V32-bis-hier-und-nicht-weiter nicht mehr mit dem Nachliefern von Daten nachkommt, wenn er `term' im 16 Farbenmodus betreibt. Die besagten 16 Farben belasten die System-DMA sehr und verlangsamen den Zugriff des Prozessors auf das Chip-Memory. Unglücklicherweise befinden sich die `Ankerstellen' der Systemfunktionen, die das serial.device betreiben, im Chip-Memory, sodaß das Bedienen der seriellen Schnittstelle durch den seriellen Treiber durch erhöhte DMA-Aktivität gebremst wird. Hieraus resultiert fast zwangsläufig, daß man im 16 Farbenmodus manchmal kaum mit mehr als 4800 Baud arbeiten kann. - Softwaremäßige Beschränkungen; im Gegensatz zu den meisten anderen Terminalprogrammen puffert `term' die eingehenden Daten auf dem Hauptbildschirm, sodaß man sie mit der Maus ausschneiden und in den Eingabestrom einspielen kann. Das Verschieben und Aktualisieren des Bildschirminhalts kann sehr viel Zeit einnehmen, besonders bei großem Bildschirmumfang und einem `langsamen' Prozessor. Als problematisch erweist sich auch, daß `term' den Bildschirm nie ganz für sich allein benutzen darf. Gleichzeitig können noch weitere Fenster aktiv sein (auch von anderen Programmen, die den Bildschirm von `term' mitbenutzen, deren Inhalt `term' nicht zerstören darf). Andere Terminalprogramme können den Aufwand vernachlässigen, der notwendig ist um auf andere, überlappende Fenster am Bildschirm Rücksicht zu nehmen, `term' hat diese Möglichkeit nicht. - Gewünschte Beschränkungen; um eine Schnittstelle zu den externen Terminalemulationsmodulen zu bieten, müssen ein paar Schutzmechanismen aktiv sein. Aus diesen Gründen resultieren auch Einschränkungen die unter die obenen genannten softwaremäßigen Beschränkungen fallen. Ein paar dieser Probleme ließen sich mit viel Zeit und Aufwand natürlich beheben, allerdings würde der Aufwand meiner Meinung nach nicht immer das Ergebnis rechtfertigen. Wer anderer Meinung ist, den lade ich dazu ein, durch seine persönliche Arbeit die oben genannten Einschränkungen wettzumachen. Andererseits gibt es Mittel und Wege, die oben genannten Einschränkungen zu überwinden, allerdings stellen sie ein paar Ansprüche: - Mindestens ein 68010-Prozessor und echtes Fast-Ram sollten vorhanden sein, um das `Interrupt-Vektorbasisregister' aus dem langsamen Chip-Ram ins Fast-Ram zu verlegen. Auf diese Weise wird die Leistung des serial.device unabhängiger von der Belastung der System-DMA. - Ein schneller Prozessor (14, 25, 33, 50 MHz) verbessert auch die Leistung des serial.device. Das serial.device kann nur so schnell sein, wie der Prozessor, der die eingehenden Daten abholen und speichern muß. - Fast-Ram sollte vorhanden sein, damit die Hardware am seriellen Ausgang und der Prozessor am besten zusammenarbeiten können. Beeinflußt die System-DMA die Zugriffszeiten auf das Chip-Ram, kann der Prozessor die eingehenden Daten nicht mit höchster Geschwindigkeit im Chip-Ram unterbringen. Ist jedoch Fast-Ram vorhanden, werden die eingehenden Daten von `term' bevorzugt hier untergebracht. - Wer wirklich das Maximum an Leistung aus `term' herausholen möchte, der sollte das Programm nur im Monochrommodus fahren. Bei all diesen Beschränkungen wurde mir schließlich auch noch die Frage gestellt, warum ein PC denn mit 16-farbiger Textdarstellung arbeiten und dabei trotzdem Übertragungsgeschwindigkeiten bis über 19200 Baud verarbeiten kann. Einer der Gründe hierfür ist darin zu sehen, daß ein PC den Text am Bildschirm üblicherweise (Windows und ähnliche Oberflächen einmal ausgenommen) nicht als Bitmap-Graphik, sondern nur in Textform (wie ein C64) darstellt. Der beim Amiga notwendige Verwaltungsaufwand für die Bitmap entfällt somit. Es gibt natürlich noch andere Unterschiede, aber dieser fällt in diesem speziellen Fall am meisten ins Gewicht. Die Auswirkungen, die sich ergeben, wenn das Interrupt- Vektorbasisregister (VBR) ins Fast-Ram verlegt wird, sind nicht zu unterschätzen. Bei einem Test (`term' lief im 16-Farbenmodus) war `term' bei verlegtem VBR in der Lage bei 19200 Baud (etwa ±10 Zeichen) 2000 cps (Zeichen pro Sekunde) zu übertragen, lag das VBR an seiner Ursprungsadresse im Chip-Ram, sank die Übertragungsrate um bis zu 400 cps. Oft genug wird auch darüber diskutiert, ob es nicht sinnvoll wäre, auf dem Amiga das Multitasking soweit einzuschränken, daß nur noch ein einzelnes Programm (z.B. `term') auf dem Rechner läuft, um die Übertragungsgeschwindigkeit effektiv zu erhöhen. Mein persönliches Urteil dazu ist, daß es nur dann Sinn macht, zu derartigen Maßnahmen zu greifen, wenn man nicht über genügend Speicherplatz verfügt, um andere Programme zusammen mit `term' laufen zu lassen. Jetzt ist es effektiv möglich, die Priorität des laufenden `term'-Programmes zu verändern und den aktuellen Bedürfnissen anzupassen. Ein rechenintensives Programm, das im Hintergrund läuft, kann man leicht weiterlaufen lassen, indem man die Priorität des `term'-Programmes anhebt. In der Zeit, in der `term' auf Eingaben wartet, können andere Programme weiterlaufen und `term' fordert nur dann mehr Rechenkapazität an, wenn es wirklich notwendig wird. Wer den Rechner herunterfährt und schließlich nur noch `term' als einziges Programm betreibt, gewinnt dadurch vielleicht eine Steigerung des Datendurchsatzes von einem bis maximal drei Zeichen pro Sekunde. Ob es dieses bißchen wert ist, sollte jedermann selbst überlassen bleiben. ================== 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 Quellcode für einen Modula-2 Compiler oder `ARJ'. Wer mir eine besondere Freude machen möchte, der kann mir ein altes Infocom-Adventure (ausgenommen `Zork Zero, I, II & III' , `Journey', `A mind forever voyaging', `Hollywood Hijinx', `Wishbringer', `Shogun', `The hitchhiker's guide to the galaxy', `Spellbreaker' und `The Lurking Horror', die ich selber besitze; auch MS-DOS oder Atari ST-Versionen der nur auf Text basierenden Spiele auf 3½" Diskette sind willkommen, da sich das Datenformat auf den Amiga übertragen läßt) oder ein altes CinemaWare-Spiel (ausgenommen `Defender of the Crown' und `Sinbad') schenken - vielen Dank! Meine Anschrift: Olaf Barthel Brabeckstraße 35 D-3000 Hannover 71 Bundesrepublik Deutschland Z-Net: O.BARTHEL@A-LINK-H Usenet: o.barthel@a-link-h.comlink.de 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. * "...you can't get what you want till you know what you want..." -Joe Jackson