================================== term =================================== =========================================================================== Ein Gift-Ware Telekommunikationsprogramm von Olaf Barthel, © Copyright 1990,91 by Olaf Barthel & MXM, alle Rechte vorbehalten. Es wird keinerlei Gewährleistungspflicht für die vollständige Funktionsfähigkeit des (der) in diesem Dokument beschriebenen Programmes (Programme) übernommen. Sie nutzen diese Software auf eigenes Risiko. ================== Eine Handvoll wichtiger Informationen ================== =========================================================================== Ich habe diese Zeilen an den Anfang des Dokuments gestellt, damit niemand behaupten kann, er habe sie nicht gefunden. xprzmodem.library 2.0e ---------------------- Nach mehrstündiger Suche (und über 50 Telefoneinheiten später) nach einem Fehler in den Pufferrungsroutinen des XPR-Transferinterfaces mußten Martin Berndt und ich feststellen, daß der Fehler (ein Absturz des Hauptprogrammes nach einem Upload mit der xprzmodem.library) nicht vom Hauptprogramm, sondern von der Bibliothek ausging. Deshalb: wer zum Datentransfer die xprzmodem.library 2.0e benutzt, der sollte stattdessen lieber die Version 2.10 (auf der `term'-Diskette in der `Libs'-Schublade zu finden) verwenden. Warnung vor `term' 1.8b ----------------------- Im Verlauf des Beta-Testens von `term' 1.8b (aus dieser Version wurde schließlich Version 1.9) kam eine nicht autorisierte Kopie in Umlauf, deren Herkunft ich nicht ermitteln konnte und für deren Integrität ich nicht garantieren kann (d.h. niemand weiß, ob das Programm nicht eventuell einen Link-Virus beherbergt). Wer über eine Kopie von `term' 1.8b verfügt, der sollte es löschen. Taucht eine Kopie von `term' 1.8b in einer Mailbox auf, so sollte der Sysop gebeten werden, die entsprechende Datei zu löschen! Wichtig für Umsteiger auf die neue `term'-Version 1.9c ------------------------------------------------------ Die folgenden Anweisungen sind nur für diejenigen interessant, die von einer älteren `term'-Version auf die aktuelle umsteigen, alle anderen Personen können diesen Absatz überspringen. Telefonbuch- und Konfigurationsdateien, die von `term'-Versionen älter als 1.1 erzeugt worden sind, werden nicht gelesen und MÜSSEN gelöscht werden! Leider habe ich die Beschreibung der Dateiformate mittlerweile schon überschrieben, deshalb müssen die Informationen manuell übertragen werden. Aufgrund eines Fehlers in den `term' 1.4 vorausgehenden Versionen wurden die Farbeinstellungen zur Konfiguration und den Telefonbucheinträgen _nicht_ mitgespeichert. Aus diesem Grund mögen die Bildschirmfarben `etwas' seltsam aussehen, wenn die neue `term'-Version gestartet wird. Um dem abzuhelfen habe ich ein kleines Programm geschrieben, das im `C'-Verzeichnis der Hauptdiskette zu finden ist. Es heißt `ColourPatch' und modifiziert alle Telefonbucheinträge dahingehend, daß bei den Einträgen, deren Farbmodi als 8/16 Farben eingestellt sind, die Standardfarben eingesetzt werden. Abschließend wird die Telefonbuchdatei wieder gespeichert. Aufruf des Programmes mit: `ColourPatch ' Beispiel: colourpatch envarc:term/Phonebook.term Die Programmkonfiguration kann bisher nicht über ein Zusatzprogramm verändert werden, was in meinen Augen nicht notwendig ist; Verfahrensweise: 1. Konfiguration laden (`Open Preferences...'), 2. Farbmodus ändern in z.B. `Amiga' statt `Sixteen' (`Terminal'), 3. Konfiguration abspeichern (`Save Preferences...'), 4. Programm verlassen (`Quit') und anschließend wieder starten, 5. Konfiguration laden (s.o.), 6. Farbmodus auf den ursprünglichen Wert zurücksetzen, 7. Konfiguration abspeichern -- fertig! Aufgrund ausgiebiger Veränderungen im Format der Konfigurationsdateien müssen Telefonbuch- und Konfigurationsdateien, die mit `term'-Versionen älter 1.6 erzeugt wurden, mit Hilfe der Programme `UpdateConfig' und `UpdatePhone' konvertiert werden. EINE KONVERTIERUNG IST NUR NOTWENDIG, WENN SIE TELEFONBUCHDATEIEN ÜBERTRAGEN WOLLEN, DIE MIT term 1.6 UND VORVERSIONEN ERZEUGT WURDEN! Aufruf der Programme mit: `UpdateConfig ' `UpdatePhone ' Beispiel: updateconfig envarc:term/Preferences.term updatephone envarc:term/Phonebook.term `term' 1.9c konvertiert Tastaturmakrodateien automatisch und weigert sich, Konfigurations- und Telefonbuchdateien von älteren Programmversionen zu lesen. Dieser eingebaute Schutz existiert bei den Konvertierungsprogrammen `ColourPatch', `UpdateConfig' und `UpdatePhone' nicht! =================== 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.10a, WShell, CygnusEd Professional 2, KeyMacro & 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, 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 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, der Res.asm Quellcode stammt von Edward Carrol, 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 Terminalemulationsmodule, die `term' beiliegen. Udo Wolt war so freundlich, die Dokumentation dieses Programmes in TeX zu setzen (sowohl dieser Text, als auch die Dokumentation zur ARexx-Schnittstelle liegen jetzt in Form von TeX-Quellcode als auch als TeX-DVI-Dateien vor). Wer Interesse an der wesentlich ansprechender als dieser reinen ASCII-Dokumentation aufbereiteten Anleitung hegt, der kann mir eine zweite 3.5" Diskette zusammen mit einem frankierten Rückumschlag zusenden (auf die term-Hauptdiskette passen die Dateien beim besten Willen nicht mehr!). ============================== 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 1,70 (Porto) plus DM 2,50 (Diskette -- 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. Ich habe über das Usenet-Gateway wieder Zugang zum Fido-Net und werde auch dort (Amiga.Ger) bekanntgeben, wenn eine neue Version des Programmes vor der Veröffentlichung steht. Ü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. ======================== 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 nur drei 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. ============================= 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 `TERM1', das dritte nimmt `TERM2', 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 Preferences............... Lädt die Voreinstellungen aus einer anzugebenden Datei. Save Preferences............... Speichert die Voreinstellungen unter dem zuletzt eingegebenen Namen. Save Preferences 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 nach einer 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. Edit 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. 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. 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. 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). 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. 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. Size................... Sofern bekannt, die Größe der jeweiligen Datei. 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). Last Error............. Eine kurze Beschreibung des zuletzt während der Übertragung aufgetretenen Fehlers. 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. WICHTIG: der in den Transferoptionen vielleicht einzustellende Pfad, unter dem empfangene Dateien angelegt werden sollen, wird nicht beachtet! Es gelten immer die Einstellungen, die unter dem Menüpunkt Preferences/Paths gesetzt wurde. 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 71 Dateitypen erkannt. Die Dateitypen im Einzelnen sind: Workbench Icon TIFF Bild ASCII Text Windows Bitmap Bild `C' Quellcode JFIF Bild `C' Headerdatei IFF-ILBM Bild Assembler Quellcode IFF-ANIM Animation Assembler Include-Datei IFF-8SVX Sound Modula-2/Oberon Quellcode IFF-SMUS Musik ARexx Programm IFF-FTXT Text Basic Quellcode IFF-PREF Preferences AmigaGuide Dokument IFF-TERM `term' Konfiguration TeX Dokument IFF (generell) Metafont Zeichensatz AmigaVision flow Generic font Imploder-Daten Gepackter TeX-Zeichensatz PowerPacker-Daten TeX device-independent Daten LhPak Archiv** PasTeX Zeichensatzbibliothek Arc Archiv Manx 3.x Objektcode ARJ Archiv Manx 5.x Objektcode LhArc Archiv Manx 3.x Bibliothek LHA Archiv Manx 5.x Bibliothek Zoo Archiv AmigaDOS Objektcode PKZip Archiv Objektcode-Bibliothek Stuff It! Archiv² AmigaDOS Programm Pack It! Archiv² System-Library Compress 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 Macintosh Programm ¹ Atari-ST/TT-spezifisch (Degas Elite) ² Macintosh-spezifisch ³ Sun-spezifisch * Unix-spezifisch ** Noch nicht veröffentlichungsfähig 5. Modem -------- 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. 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. 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. Clear Screen................... Hiermit wird der Bildschirm gelöscht und die Schreibmarke (Cursor) in die linke obere Ecke des Bildschirmes gesetzt. 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. Preferences -------------- 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 Preferences --------------------- 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). 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). Break Length........... Die Dauer des Unterbrechungssignales (über den Menüpunkte `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). b) Modem Preferences -------------------- 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. 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). 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 Preferences --------------------- 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 Preferences ----------------------- 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. Raster Enabled......... Um das Ausschneiden und Einfügen von bereits auf dem Hauptbildschirm erschienenem Text zu ermöglichen, wird von `term' vermerkt, an welcher Stelle des Bildschirms sich welcher Buchstabe befindet. Da dies mitunter eine sehr zeitraubende Angelegenheit ist, kann man diese Funktion mit diesem Schalter deaktivieren und bei der Textausgabe Zeit sparen. Dieser Schalter ist auch dann deaktiviert (das Raster ist abgeschaltet), wenn eine externe Terminalemulation aktiv ist. 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). 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. 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 VT100/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 VT100- 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. 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. Use.................... Verwende die aktuellen Einstellungen. Cancel................. Erhalte die ursprünglichen Einstellungen. Die eingebaut VT100-Emulation unterstützt alle Befehle, die für die Anwendung von `term' von Nutzen sind. Nicht übernommen wurden Steuersequenzen, die sich mit der Kontrolle des Druckers befassen (dies sollte besser dem Anwender selbst überlassen bleiben), interne Terminaltests durchführen sollen, die LED's umschalten oder nur mit großem Aufwand zu implementieren gewesen wären. Die VT100-Emulation unterstützt alle Befehlssequenzen des VT220-Terminals (herzlichen Dank an Germar Morgenthaler, der in der Lage war, die Originaldokumentation zur DEC VT220 Konsole aufzutreiben!), wenn es auch herzlich wenige waren, die ich neu zu implementieren hatte -- in der Tat hatte ich einen Großteil bereits eingebaut ohne zu wissen, daß sie erst unter VT200 unterstützt wurden. Nicht berücksichtigt werden die Befehle zum Umschalten der nationalen Zeichensätze (es wird _immer_ auf das DEC Multinational Character Set zurückgegriffen) und zur Ansteuerung des Druckers. Alle hiermit verbundenen Steuersequenzen werden ausgefiltert. e) Startup Macro ---------------- Bei jedem Start des Programmes `term' und auch beim Aufbau einer Telefonverbindung durch die Wählfunktion wird eine Befehlssequenz ausgeführt, die z.B. Befehlsdateien aufrufen oder ein vollautomatisches `Login' durchführen kann. Unter diesem Menüpunkt ist die beim Programmstart auszuführende Befehlssequenz einzugeben. f) 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ü Preferences/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ü Preferences/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. g) 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 Preferences -------------------- 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. b) Fast! Macro Preferences -------------------------- 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. 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. 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). Name................... Name des zuletzt ausgewählten Telefonbucheintrages. Phone Number........... Telefonnummer des zuletzt ausgewählten Telefonbucheintrages. Password............... Zugangskennwort der mit dem zuletzt ausgewählten Telefonbucheintrag zusammenhängenden Mailbox. Macro File............. Name der Datei, die die für den zuletzt eingetragenen Telefonbucheintrag zu verwendenden Funktionstastenbelegungen enthält. Pay/Unit 1/2........... Kosten einer Gebühreneinheit. Minutes/Unit 1/2....... Länge einer Gebühreneinheit in Minuten. Zusammen mit dem Feld `Pay/Unit' werden aus diesen Werten die Kosten für einen Telefonanruf berechnet. Start Time 1/2......... Über diese beiden Schieberegler wird festgelegt, welche der beiden einzustellenden Gebührenzähler- einstellungen bei welcher Tageszeit aktiv ist. In der Bundesrepublik Deutschland beginnt der 6-Minuten-Takt um 8:00 Uhr (DM 0,23 pro Einheit) und endet um 18:00 Uhr. Der 12-Minuten-Takt beginnt um 18:00 und endet am darauffolgenden Morgen um 8:00. Serial,Modem,Screen, Diese Funktionen korrespondieren mit den Terminal,Startup, entsprechenden Funktionen des `Preferences'-Menüs Paths,Transfer und legen die Einstellungen fest, die übernommen werden, sobald zu einer der im Telefonbuch eingetragenen Telefonnummern erfolgreich eine Verbindung aufgebaut wurde. 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. Dial................... Trägt den zuletzt ausgewählten Telefonbucheintrag in die Wählliste ein und springt sofort in die Wählfunktion. Get Settings........... Überträgt die aktuellen Terminaleinstellungen in den gerade ausgewählten Telefonbucheintrag. New Entry.............. Erzeugt einen neuen Telefonbucheintrag mit Standardwerten und hängt ihn am Ende des Telefonbuches an. Remove Entry........... Entfernt den zuletzt ausgewählten Telefonbucheintrag aus dem Telefonbuch und gibt den angeforderten Speicher frei. Load................... Lädt den Inhalt eines Telefonbuches aus einer Datei. Sort................... Sortiert den Inhalt des Telefonbuches alphabetisch in aufsteigender Reihenfolge. Save................... Speichert den Inhalt eines Telefonbuches in einer Datei. 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. Ein weiteres Eingabefeld wird geöffnet, sobald Telefonbucheinträge in die Wählliste eingetragen werden. Hier wird jeweils der Name des Telefonbucheintrages angezeigt, oder - wenn es sich um eine einzelne Telefonnummer handelt, die über die `Dial'-Funktion eingegeben wurde - nur die Telefonnummer. Die folgenden Eingabeelemente finden sich im Eingabefeld der Wählliste: Dial................... Springt in die Wählfunktion und versucht nacheinander alle Einträg der Wählliste anzuwählen. Delete Call............ Entfernt einen Eintrag aus der Wählliste. Wurden alle Einträge entfernt, so wird das Eingabefeld geschlossen. Cancel................. Löscht alle Einträge aus der Wählliste und schließt das Eingabefeld. Wird schließlich die Wählfunktion angesprochen, so werden alle bisher aktiven Eingabefelder geschlossen und ein neues Eingabefeld geöffnet. Hier wird der Anwahlvorgang durchgeführt. 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. - 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. 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 Dialing.......... 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. =============================== 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) ======================== =========================================================================== 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. 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. 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'. \b..... Erzeugt ein `Backspace' (lösche das Zeichen links neben der Schreibmarke). \e..... Erzeugt das Escape-Zeichen (ASCII Code 27). \f..... Erzeugt ein `Form-Feed' (Seitenvorschub oder Bildschirmlöschen). \g..... Legt eine Zeichenkette im `Clipboard' ab. \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. \x..... Erzeugt ein Break-Signal (wie der `Send Break' Menüpunkt). \d..... Führt einen AmigaDOS-Befehl aus. \a..... Führt einen ARexx-Befehl aus. \i..... Speist den Inhalt des `Clipboards' in den Eingabestrom ein. \^..... 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 =============================== =========================================================================== Für diese Funktion existiert kein Menüpunkt, man muß die Help-Taste drücken, um sie zu aktivieren oder abzuschalten. Wird diese Funktion 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! ============================= 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. ================== Bitte des Autors & Gift-Ware-Gebühr ==================== =========================================================================== Die Entwicklung von `term' war mit hohem Aufwand verbunden. Schon alleine die Anstrengungen, die zu unternehmen waren, um im Trial-And-Error-Verfahren und unter Zuhilfenahme der DevCon-Disketten sowie Includes & Autodocs die Funktionsweise bestimmter Routinen zu ermitteln, wäre es Wert, dem Autor eine Entschädigung für seine Mühe zukommen zu lassen (es ist eben Pech, wenn die Atlanta-DevCon-Unterlagen erst mit reichlicher Verspätung eintrudeln). Der Autor ist sehr empfänglich für alle Arten von materiellen Gaben und Geschenken, solange gesichert ist, daß er sie auch verwenden kann (diese niedlichen Säcke mit Elefantenfutter schickt man doch besser an den hannoverschen Zoo). Deshalb möchte ich jedermann bitten, dem `term' gefällt oder der den Quellcode bearbeitet, mich für meinen Programmieraufwand so zu entschädigen, wie er/sie denkt, daß es meinen Anstrengungen entspricht (wer noch keine Idee hat: ich suche nach dem GNU C++ objective `C' compiler in einer auf dem Amiga lauffähigen Version, dem Quellcode für einen Modula-2 Compiler oder `ARJ'. Wer mir eine besondere Freude machen möchte, der kann mir ein älteres Infofom-Adventure schenken -- ausgenommen Zork 0-3, `Journey', `Hollywood Hijinx' und `Lurking Horror', die ich selber besitze) - vielen Dank! Meine Anschrift: Olaf Barthel, MXM (ETG030) Brabeckstrasse 35 D-3000 Hannover 71 Bundesrepublik Deutschland Z-Net: O.BARTHEL@A-Link-H Usenet: o.barthel@a-link-h.zer.sub.org cbmvax.commodore.com!cbmehq!sourcery!olsen Wer sich den Quellcode ansieht, um hier und da Änderungen oder Erweiterungen zu machen, der nehme doch vor einer Veröffentlichung bitte Kontakt mit mir auf, sodaß ich unsere gemeinsamen Anstrengungen koordinieren kann. Sollte jemandem eine brilliante Idee kommen, den Aufbau oder Inhalt dieser Anleitung zu verbessern oder zu erweitern, so möge sie/er es mit meinem hiermit erteilten Segen tun. ========================= Entwicklungsgeschichte ========================== =========================================================================== V1.9c Wie schon aus der Versionsnummer ersichtlich ist, habe ich mich nicht getraut, der aktuellen Version die Nummer 2.0 zu verpassen. Leider konnte ich nicht all die Funktionen einbauen, die seit Veröffentlichung der letzten Version vorgeschlagen wurden, mir fehlte leider die Zeit (keine Sorge, ich werde mich darum kümmern, sobald ich wieder mehr Zeit habe). Eine Handvoll versteckter und auch potentieller Fehler wurde entfernt, besonders in Bezug auf die Erzeugung von Gadgets über die gadtools.library hat sich eine Menge getan (die Routinen sollten jetzt endlich komplett wasserdicht sein und gehorchen den Programmierrichtlinien). Ein paar wirklich störrische Fehler in der eingebauten Terminalemulation sind endlich behoben (der prominenteste war das bei den unpassendsten Gelegenheiten nicht funktionieren wollende Textscrolling). Jetzt funktionieren auch endlich die Kommandos für das Löschen und Einfügen von einzelnen Zeilen. Ich habe die optische Präsentation des Programmes an einigen Stellen etwas verbessert, was z.B. beim Einstellen der Transfer- optionen bitter nötig war. Sollte das Öffnen einer xpr.library fehlschlagen, kommt es jetzt nicht mehr zu unkontrollierten und mysteriösen Programmabstürzen. Die Wählfunktion führt jetzt schließlich und endlich nur noch soviele Anwahlversuche durch, wie eigentlich gewünscht waren. Die Funktionen des Klemmbretts (Clipboard) funktionieren jetzt auch in Zeicheneingabefeldern (Amiga+C kopiert den Inhalt zum Klemmbrett, Amiga+V fügt den aktuellen Klemmbrettinhalt an der Position der Schreibmarke ein). Mit viel Mühe ist es mir jetzt endlich geglückt, das Problem der empfangenen Dateien zu lösen; ursprünglich wurde der Ort, an dem diese Dateien angelegt wurden, von den Transferoptionen bestimmt (siehe dazugehöriges Menü), jetzt gelten einzig und allein nur noch die Einstellungen, die unter dem Menüpunkt `Preferences/Paths' gemacht werden können. In der vorherigen Version war der Capture-Filter immer aktiv, was u.A. verhinderte, daß Mitschnittsdateien 1:1 den Inhalt der eingegangenen Daten wiederspiegelten. Kleinere Veränderungen in den XPR-Routinen sollten dazu führen, daß der Datendurchsatz beim Übertragen von Dateien gegenüber Vorgängerversionen leicht gestiegen ist. Wer auf das Ausschneiden von Texten am Hauptbildschirm verzichten kann, der kann das Aktualisieren des für diesen Zweck nötigen Bildschirmpuffers jetzt abschalten. Es gibt neben den zwölf bisher vorhandenen Baudraten, die das Programm unterstützt, drei neue, die allerdings die Zeichen/Sekunde-Berechnung der Übertragungsprotokolle leicht verwirren können. Die größte Neuerung stellt die Unterstützung für externe Terminalemulationsmodule dar, die mit der Hilfe von Ueli Kaufmann realisiert werden konnte. `term' ist in der Lage, dieselben Emulationsmodule zu verwenden, wie Ueli's Terminalprogramm `LR-Comm'. V1.9b Ich hatte gehofft, daß es nicht dazu kommen würde, aber nun gibt es doch noch eine Korrekturversion zu `term' 1.9a. Diese Version behebt eine Reihe von Enforcer-Hits und anderer unangenehmer Fehler in der Wählfunktion und der Terminalemulation. Für die hard-core VT100-User unter uns lassen sich jetzt die Del- und die Backspace-Taste in ihrer Belegung vertauschen und auch läßt sich jetzt optional das oberste Bit der ein- und ausgehenden Zeichen entfernen. Dank John Burton sollte die Terminalemulation endlich DEC-konform arbeiten. V1.9a Gegenüber der Vorgängerversion 1.9 enthält diese Programmversion keine neuen Features, ich habe `lediglich' eine Menge Fehler beseitigt, ein paar kosmetische Veränderungen gemacht und hier und da Inkonsistenzen beseitigt. Repariert wurden insbesondere die Wählfunktion und das Double-Buffering, das beim XPR-Datentransfer benutzt wurde. Eine sehr große Veränderung wird den meisten Leuten nicht auffallen: Zeicheneingabefelder werden jetzt nicht mehr über die gadtools.library erzeugt, sondern von eigenen Routinen generiert. Dies war unverzichtbar, da die alte Methode, mit der zusätzliche Editierfunktionen in den Eingabefeldern verfügbar gemacht wurden, den Programmierrichtlinien für die gadtools.library widersprach. Zusätzlich dürfte sich das Programm in Speichermangelsituationen wesentlich stabiler verhalten. Mittschnittdateien werden jetzt ebenfalls über die doppelt gepufferten I/O-Routinen gespeichert, die auch beim XPR-Transfer benutzt werden (was für ein Glück, daß die Routinen reentrant sind!). Nebenbei bin ich über einen fast schon historisch zu nennenden Fehler gestolpert, der seit `term' 1.0 im Programm gewesen sein muß: bei eingeschalteter Mitprotokollierung der auf dem Bildschirm eingehenden Daten wurden die Daten nicht nicht auf dem Drucker, sondern in der Mittschnittsdatei ausgegeben! In letzter Minute wurde mir noch berichtet, daß sich die Gebühreneinstellungen im Telefonbuch nicht mehr verändern ließen (kein Wunder, die entsprechenden Abfragen standen an der falschen Stelle), das Problem ist natürlich beseitigt. V1.9 Ab dieser Version ist System 2.04 (Kickstart 37.175, Workbench 37.67) ein muß (sorry, war notwendig geworden). Jetzt lassen sich Bildschirmmodi endlich korrekt einstellen (für Rechner mit Super-Agnus aber ohne ECS-Denise). Der Lesepuffer des seriellen Treibers ist jetzt sechzehnmal so groß wie in den vorherigen Versionen. Lese- und Schreibzugriffe bei Up- und Downloads sind jetzt doppelt gepuffert (die Puffergröße liegt derzeit bei zweimal 32768 Bytes), was komplett verzögerungsfreien Datentransfer ermöglichen sollte. Ich habe ein `paar' mehr Dateitypen in die Download-Dateityp- Erkennung eingebaut (Bildformate, Programme, Archive). Die Auto-Upload-Funktion funktioniert jetzt wieder (...einmal). Im Telefonbuch können Gebührenbeträge wieder als Zahlen eingetippt werden. Die Tonwahlfunktion spielt die Tonsequenzen jetzt halb so schnell ab wie vorher. Das Logbuch öffnet den Bildschirm wieder im selben Modus wie der Hauptbildschirm (bitte nicht beklagen, wenn der Bildschirm in SuperHires-Interlaced ziemlich schmal aussieht!). Die Auto-Upload-Funktion erlaubt es jetzt auch, einen bevorstehenden Transfer abzubrechen oder eine eingegangene ZModem-Inquire-Sequenz zu ignorieren und keinen Upload zu starten. Zusätzlich wird beim Abbrechen der Auswahl zu verschickender Dateien eine ZModem-Abbruch-Sequenz verschickt. Im Einstellfeld für den seriellen Treiber läßt sich der Treiber jetzt auch mit einem Dateiauswahlfeld auswählen, gleiches gilt auch für die zu verwendende Protokolltransferbibliothek. Die Erkennung von RING & VOICE funktionierte seltsamerweise immer nur dann, wenn eine Verbindung aufgebaut war, obwohl eigentlich das Gegenteil hätte der Fall sein sollen. Das Einstellfeld für Pfade enthielt einen drolligen Bug: Verzeichnisse konnten nur dann angewählt werden, wenn auch eine darin vorhandene Datei ausgewählt wurde. Ich habe das Up-/Download-Fenster etwas aufpoliert, jetzt werden u.A. am unteren Bildschirmrand zwei Balkengraphiken gezeigt, die Informationen über die Anzahl der übertragenen Bytes und der Übertragungsdauer anzeigen. Wer sich bisher immer gewundert hat, daß sich Up- und Download nicht per Menü abbrechen ließen, dem sei gesagt, daß der Fehler jetzt beseitigt ist. Auch die VT100-Scroll-Regions sollten jetzt endlich funktionieren. Die Wählfunktion reagiert jetzt zusätzlich zu `BUSY' auch auf `NO CARRIER' (für die gammligen HSTs mit noch gammligeren ROMs ;-). Da die Wählfunktion bei einer Reparaturaktion meinerseits offenbar irreparablen Schaden genommen hatte, mußte ich sie von Grund auf neu schreiben. Das Blinken einer Bildschirmfarbe wird jetzt auch dann temporär abgeschaltet, wenn der `term'-Bildschirm in den Hintergrund gelegt wird, oder das Packet-Fenster aktiv ist. Statt der Online-Zeit wird jetzt in fünfsekundigem Wechsel die Verbindungsgebühr angezeigt. Es gibt jetzt eine Iconify-Funktion, mit der das Hauptprogramm `in Schlaf' versetzt werden kann, bis es über erneutes Anklicken des Icons wieder aufgeweckt wird. Ich habe dem Programm außerdem noch ein paar mehr ARexx-Befehle spendiert, die seit einiger Zeit fehlten. Neu dazugekommen sind auch die Fast! Makros, von denen ich hoffe, daß sie viele Leute nützlich finden werden. V1.8a Neben einem bißchen Kosmetik ist eine Funktion zur Umsetzung von Telefonnummern in Ton-Codes zur Verwendung mit Telefon- vermittlungsstellen, die das Tonwahlverfahren beherrschen, hinzugekommen; es gibt auch einen zu dieser Funktion korre- spondierenden ARexx-Befehl. Das Telefonbuch wird jetzt in einem Format abgespeichert, das die zukünftige Erweiterung der Konfigurationseinträge erleichtert. Dieses Format ist (leider?) 100% inkompatibel zum Vorgängerformat, aber keine Panik: `term' lädt gegebenenfalls das ältere Format und speichert das Telefonbuch im neuen Format. Es hat einigen Ärger mit überlangen und überbreiten Menüs gegeben, die nur noch bei mit einer ganzen Portion Overscan versehenen Auflösungen sichtbar waren. Ich hoffe, daß mit dieser Programmversion alle derartigen Probleme beseitigt sind. Wie gut, daß ich noch einmal nachgeschaut habe: zwei Paritäts- einstellungen (Mark/Space) des seriellen Treibers funktionierten überhaupt nicht (da hierzulande Paritätsüberprüfung bei privat genutzten Mailboxsystemen total aus der Mode gekommen zu sein scheint, hat diesen Fehler bisher wohl niemand bemerkt). Ich habe einen Teil der Logbuchfunktionen umgeschrieben. Nach meinen Spekulationen dürfte die Textanzeige jetzt schneller arbeiten. Auch ein neuer Such-Algorithmus ist implementiert, der angeblich schneller sein soll, als der bisherige (vielleicht ist er es auch nicht und ich habe es wegen meines A3000 nur noch nicht gemerkt). Wer genaueres herausbekommt, der teile es mir bitte mit. Mit allen guten Dingen ist es einmal vorbei; hierunter fällt daß das blinkende Cursor-Sprite entfernt wurde. In der aktuellen Version wird ein `echter' Cursor in die BitMap des Bildschirmes gezeichnet (jetzt gibt es auch in den Modi Productivity und den A2024-Modi einen sichtbaren Cursor). Die Arbeit daran hat mich mehrere Stunden gekostet, sollten Probleme in der Benutzung des Cursors auftauchen, so teile man sie mir bitte mit! In allen Routinen, die sich mit der Bearbeitung des Bildschirmes (Cursorpositionierung, Zeichenausgabe, etc.) beschäftigten, wurde auf Breite und Höhe des Bildschirmes auf vorzeichenbehaftete 8-Bit-Variablen zugegriffen. Besonders bei hohen Bildschirm- auflösungen (A2024, SuperHires-Interlaced) kam es wegen Überläufen zu Rechenfehlern und Abstürzen. Die auf dem A3000 bei aktiviertem ZModem-Auto-Download auftretenden `Hänger' und Abstürze gehören jetzt der Vergangenheit an. Leider dauert es immer noch ein Weilchen, bis auf der Maschine der Downloadvorgang beginnt, der gesamte Downloadprozeß wird davon allerdings nicht berührt. `term' sollte damit komplett Enforcer- Hit-frei sein. Ich glaube einen besonders mysteriösen Fehler gefunden und beseitigt zu haben: klickte man den Bildschirm von `term' in den Hintergrund, so konnte es vorkommen, daß der Rechner abstürzte (weshalb???). Mittlerweile ist der Interrupt-Server entfernt und seine Funktionen in den Status-Task integriert. Jetzt scheint der Fehler beseitigt zu sein, ich bin gespannt zu hören, ob dies wirklich der Fall ist. XPR-Transfers konnten durch bloßes Öffnen des Pull-Down-Menüs abgebrochen werden, in der neuen Version wird jetzt wirklich nachgeprüft, ob abgebrochen werden soll. Die Position des Packet-Fensters wird jetzt gespeichert und das Fenster beim nächsten Öffnen - soweit möglich - an der vorherigen Stelle geöffnet. Unterstützung für mehrere gleichzeitig laufende `term'-Prozesse hat bisher gefehlt, es bestand sogar die Möglichkeit, daß sich zwei Prozesse gegenseitig zum Absturz bringen konnten. Derartige Inkonsistenzen sollten jetzt beseitigt sein. Allerdings hat die notwendig gewordene Erweiterung zwei wichtige Änderungen mit sich gebracht, die sich auf den Namen des von `term' geöffneten Bildschirms und des ARexx-Host-Ports beziehen. In einer der 1.8a-Versionen, die ich leichtsinnigerweise immer als die `endgültige' Version verteile, war die Routine, die den globalen Ursprungspunkt der Koordination mehrerer laufender `term'-Prozesse verrutscht, so daß es zu Abstürzen kam, wenn vom Programm aus der Bildschirm mehr als zweimal neu geöffnet und wieder geschlossen wurde. Eine nicht abgeschlossene Schleife wurde auch dem Abbruch-Code der XPR-Transfer-Routinen zum Verhängnis. Dieses Problem ist jetzt behoben. Nachdem ich Mike Sinz' Artikel über Kompatibilitätsprobleme mit dem MC68040 gelesen hatte, habe ich noch -- nur für den Fall, daß es notwendig werden sollte -- im Startup-Code eine für den MC68040 wichtige Veränderung vorgenommen. Wer über eine 040'er Karte in seinem Rechner verfügt und `term' darauf laufen läßt, der möge mich darüber informieren, ob die Veränderung ihren Sinn erfüllt hat. V1.8 Die beharrliche und widerstandsfähige Wählfunktion springt nach dem letzten Anwahlversuch jetzt endlich (do you hear me???) ins Hauptprogramm zurück. Die Routinen zum Aufrufen von AmigaDOS-Programmen und des Editors funktionieren wieder (`never trust a bug-free amiga.lib!'). Auf Anregung von Garry Glendown existieren zu den ARexx-Befehlen in britischer Schreibweise (`colour') jetzt auch Synonyme in amerikanischer Schreibweise (`color'). Der Rollbalken des Logbuches wird bei neuen eingehenden Zeilen korrekt auf den neuesten Stand (Höhe/Position) gebracht. Der `Auto-Upload' funktionierte in der vorhergehenden Version plötzlich nicht mehr, jetzt ist der Fehler behoben. Zusätzlich wird der Benutzer beim Eintreffen der Modem-Meldungen `RING' und `VOICE' noch einmal besonders rabiat aufgeschreckt. Auf Wunsch gibt `term' jetzt bei wichtigen Vorgängen und Aktionen auch sprachlich eine Hinweismeldung aus. Die meisten Leute werden diese Funktion nicht benötigen, deshalb ist sie standardmäßig abgeschaltet. Ich habe das Menü `Preferences' in zwei Menüs aufgeteilt. Menü 1 befaßt sich mit der lokalen Programmkonfiguration (all die Dinge, die auch in einem Telefonbucheintrag mitgespeichert werden), Menü 2 enthält alle Konfigurationsmöglichkeiten, die nur einmal global vorgenommen werden können (Makros, Hotkeys, Sprache). Wurde term von der Shell mit dem Parameter `KeepIO' gestartet, so wurde beim Beenden des Programmes die dos.library geschlossen, bevor die letzten Aufrufe zum Freigeben des von der dos.library angeforderten Speichers getätigt waren. Auf Wunsch eines einzelnen Herrn werden die Positionen einzelner Fenster gespeichert, sodaß sie beim nächsten Öffnen an der vorher gesetzten Position erscheinen. Zusätzlich werden jetzt in der Tastaturbelegungsdatei (DEVS:keymaps/#?) als Strings abgelegte Belegungen korrekt erkannt und ausgegeben (Beispiel: ein Benutzer hatte die Tasten ä, ö, ü und ß mit den Sequenzen ae, oe, ue und ss belegt und wunderte sich, daß term beim Tippen immer nur den jeweils ersten Buchstaben der Sequenz annahm. In dieser Version werden jetzt alle Buchstaben ausgegeben, bis zu 256 Zeichen werden korrekt behandelt). Leider unterstützen die `normalen' Zeicheneingabefelder keine mit Sequenzen belegten Tasten, also bitte nicht wundern, wenn im Packet-Fenster die Tasten nicht ansprechen, die sich mit dem Hauptfenster wunderbar vertragen. Ich habe einige Funktionen, die sich mit in Arrays abgelegten Zeichenketten oder Strukturen beschäftigten, auf Exec-Listen umgestellt. Diese Implementierung ist wesentlich robuster, weniger aufwendig und hoffentlich Enforcer-Hit-frei (vielleicht läuft der Kram aber auch überhaupt nicht und ich hab's nur noch nicht gemerkt!). Das Packet-Window habe ich etwas aufpoliert, jetzt sollte die Command-History endlich vernünftig funktionieren. Auch das Fenster selbst wird im Monochrom-Modus wieder korrekt geöffnet (dieser Fehler muß schon eine ganze Weile im Programm gewesen sein -- warum hat ihn niemand gemeldet?). An dieser Stelle verbarg sich noch ein wirklich fataler Fehler (die History-Liste wurde nicht initialisiert), der jetzt glücklicherweise auch behoben ist. Werden über das AmigaDOS Konsolenfenster geöffnet, so wird der Bildschirm, auf dem sie geöffnet werden, automatisch in den Vordergrund gebracht (dies ist der Fall bei `Execute AmigaDOS command' und `Execute ARexx Command'). Im Interesse eines reibungslosen Zusammenarbeiten empfehle ich, den `term'-Bildschirm öffentlich zugänglich zu machen und die drei Wörter `/AUTO/CLOSE/SCREENterm' an den Namen des zu öffnenden Konsolen-Fensters anzuhängen (natürlich nur, wenn dies noch nicht geschehen ist). Die Routine zum Laden von Sound-Dateien hatte einen subtilen Fehler: das audio.device konnte zweimal geschlossen werden. Das Bell-Signal wird jetzt asynchron abgespielt; bei drei `Pieps'-Signalen werden jetzt nur dann auch wirklich drei Signale gegeben, wenn das audio.device nicht schon mit dem Abspielen eines vorhergehenden Signales beschäftigt ist. Als besondere Neuigkeit können die Hotkeys des Programmes jetzt komplett konfiguriert werden. Über die commodities.library lassen sich die jeweils für die einzelnen Funktionen Tastensequenzen vereinbaren, die genauen Komponenten der Sequenzen sind in der Dokumentation der Commodities-Programme nachzulesen. Der Dateipfad, unter dem die term-Konfigurationsdateien gesucht werden, liegt jetzt nicht mehr bei ENVARC:sys, sondern bei ENVARC:term (genaueres Studium der DevCon-Unterlagen hat bei mir diese späte Einsicht bewirkt). Diese Änderung hat keine Auswirkungen auf schon erstellte Konfigurationen, nur wer mit term komplett neu beginnt, der wird den entsprechenden `neuen' Pfad verwenden. Ich habe es dummerweise verschwitzt, die Systemroutinen zum Setzen von globalen Systemvariablen für meine Zwecke einzuspannen. Deshalb greife ich immer noch auf die Routinen SetEnvDOS/GetEnvDOS zurück. Als kleine Neuerung werden die Variablen beim Speichern jetzt neben ENV: auch im Verzeichnis ENVARC: abgelegt. V1.7 Ich habe das Programm an die Annehmlichkeiten von Kickstart 2.04 angepaßt. Für ein komplettes Funktionieren des Programmes unter vorausgehenden Kickstartversionen kann ich nicht mehr garantieren, da ich mich insbesondere bei der Aktivierung der Zeicheneingabefelder auf Intuition 37.220 verlasse. Als Nebeneffekt läßt sich mit der Tab-Taste durch die einzelnen Eingabefelder wandern. Wo es möglich war, wird zu jedem Anklickfeld auch die Taste angegeben, die zusammen mit der linken Amiga-Taste zu drücken ist, um die damit verbundene Funktion per Tastatur auszulösen. Zusätzlich habe ich David Jones' QuickSort-Routine eingebaut, um eventuellen Problemen aus dem Wege zu gehen. In einem Einstellfeld hatte ich einen Tastaturbefehl vergessen. Ein paar kapitale Fehler sind entfernt worden, vornehmlich die String-Gadgets betreffend. In Version 1.6[a,b] ließ sich das Programm nicht von der Workbench starten (behoben). Auch kam es zu Abstürzen, wenn das Programm `aus Versehen' unter Kickstart 1.2/1.3 gestartet wurde (behoben). Modem-Init/Exit-String werden jetzt auch im Telefonbuch verwendet. Die Wählfunktion führt beim letzten Anwahlversuch nicht noch einmal ein Redial-Delay durch, sondern kehrt ins Hauptprogramm zurück. Da diese Funktion besonders übel zusammenprogrammiert aussieht, ist sie ein wahrscheinlicher Kandidat für eine komplette Überarbeitung in einer zukünftigen Programmversion. Das Layout der Texte in den Gadgets des Telefonbuchs wurde auf besonderen Wunsch eines einzelnen Herrn leicht geändert. Es werden bei empfangenen Dateien immer noch keine Icons erzeugt, das von mir geschriebene Utility `Icon' bewerkstelligt dies viel effizienter und verbraucht dabei auch noch wesentlich weniger Speicherplatz auf Diskette/Festplatte. Stattdessen werden die ersten 400 Bytes einer jeden empfangenen Datei untersucht und in den Dateikommentar eingetragen, für welche Dateiart die Identifizierungsroutine die jeweilige Datei hält. Bei aktiviertem ZModem-Download wird eine weitere Funktion aktiv, die beim Erkennen der Init-Sequenz des Empfängers einen Requester öffnet, in der Text- oder Binary-Upload als Funktion ausgewählt werden können. Man könnte diese Funktion quasi als `Auto-Upload' bezeichnen. V1.6b Keine zu spektakulären Änderungen, sonst stände hier nicht `1.6b' sondern `1.7'. Ein paar Fehler wurden beseitigt (das Smooth-Scrolling schob statt einer Zeile gleich deren zwei durch die Gegend, das zuletzt angeklickte String-Gadget wird endlich korrekt erkannt), das Logbuch läßt sich jetzt auch mittels der Maus durchblättern. Es gibt schon wieder einen neuen ARexx-Befehl. Als ich einmal genügend Zeit für diesen Vorgang zur Verfügung hatte, habe ich das gesamte Programm noch einmal mit aktiviertem `Global Optimizer' durch den Compiler geschickt (Schwerpunkt Timing-Optimierung). Zusätzlich ließen sich mit einem kleinen Trick mehr als 34 KBytes Diskettenplatz sparen (`term' und die dazugehörigen Programme sind kürzer geworden). Das Löschen des `executable'-Flags bei empfangenen Daten, die keine ausführbaren Dateien darstellen, funktioniert jetzt zufriedenstellend. Ich habe die Funktion `atol' ersetzt und den `Rattenschwanz', der an der Funktion `tolower' hing, entfernt. V1.6a In den vorausgehenden `term'-Versionen hatte das ARexx-Interface einen verhängnisvollen Fehler: wurden ARexx-Programme vom `term'-Hauptmenü aus gestartet, so wurde der `BatchMode' aktiviert, d.h. alle synchronen Befehle wurden vom ARexx-Server direkt ausgeführt. Probleme konnten beim Aufruf von Funktionen entstehen, die das timer.device nutzten, oder sich mit dem aktuellen seriellen Treiber beschäftigten, da die entsprechenden ReplyPorts und Signalbits nur für den Haupt-Prozess eingerichtet waren. Eine so aufgerufene Funktion kehrte nach dem Aufruf nie zurück. Mittlerweile habe ich dieses Problem gelöst, indem ein weiterer Prozess asynchron gestartet wird, um den ARexx-Befehl auszuführen, während sich das Hauptprogramm um das Abarbeiten eingehender Befehle kümmert. Nebenbei habe ich noch zwei weitere ARexx-Befehle implementiert: `waitstring' wartet auf das Eingehen von Zeichenketten und `quietexit' beschleunigt das Beenden eines ARexx-Programmes. Zusätzlich werden neu erstellte Telefonbucheinträge mit Default-Werten für die Gebührenberechnung gefüttert. Aufgrund meiner eigenen Schusseligkeit funktionierten die Form-Feeds in Version 1.6 nicht (vielleicht lerne ich doch noch eines Tages programmieren ;-) V1.6 Ich habe mich endlich zu größeren Änderungen durchringen können. Nachdem die bisherigen Versionen mehr Fehler in älteren Versionen behoben haben, anstatt neue Funktionen einzuführen, hat sich jetzt eine ganze Menge getan. Es ist dermaßen viel geworden, daß ich nicht noch einmal die Änderungen, die bereits in der Dokumentation aufgeführt sind, wiederholen möchte. Vieles wird man auch im täglichen Einsatz bemerken. Ich empfehle Jedermann, sich die Anleitung noch einmal genau durchzulesen und auch einen Blick auf die Dokumentation des ARexx-Interfaces zu werfen! V1.5 Was viele vermißt hatten: jetzt läßt sich endlich der Inhalt des Haupbildschirms wie auch im Logbuch `ausschneiden' und ins Clipboard verfrachten. Zusätzlich ist es auch möglich, den Bildschirminhalt auszudrucken oder auch als Einzeldatei abzuspeichern (als ASCII). Die Emulation `Atomic' impliziert nicht mehr den Monochrommodus. Hinzugekommen ist die Emulation `TTY', die sich nur insofern von `Atomic' unterscheidet, als daß Steuersequenzen nicht ausgefiltert werden (statt dem einleitenden `Escape' wird ein Caret ^ ausgegeben). Der Monochrommodus kann jetzt für jede Emulation zugeschaltet werden (Farben werden nach ihrer Helligkeit in Schwarz/Weiß umgerechnet und immer so, daß Kontrast vorhanden ist). Weitere Neuerungen merkt man als normal aufmerksamer Anwender nicht unbedingt, dennoch hat sich im Detail eine ganze Menge getan. V1.4a Die Unverträglichkeiten mit dem A3000 sollten dank Garry Glendown jetzt behoben sein (eine Signalmaske wurde über einen Fensterzeiger gebildet, auch wenn das betreffende Fenster nicht geöffnet war -- es erfolgte ein Speicherzugriff auf den unteren Adressbereich, was die MMU des 68030 auf den Plan rief). Nach Up-/Downloads, Anwahlversuchen, etc. wird der Hauptbildschirm nach vorne gebracht und dreimal `gepiept', was den Benutzer auf den soeben abgeschlossenen Vorgang aufmerksam machen sollte. Nebenbei wurde noch eine etwas `abgedrehte' Idee implementiert: statt des `normalen' Piepsens kann jetzt auch ein IFF-Sound verwendet werden, solange dieser nicht komprimiert ist und die magische Länge von 102400 Bytes nicht überschreitet (Abspielgeschwindigkeit und Lautstärke werden aus der jeweiligen Datei ermittelt). V1.4 Das wortweise Springen in Zeicheneingabefeldern funktioniert endlich vernünftig. Das Aussehen von Bildschirm und Fenstern im 8/16-Farbenmodus wurde aufpoliert. Fenster werden korrekt behandelt, wenn der `term'-Bildschirm nach vorne gebracht wird. Die Eingabe in Zeicheneingabefeldern konnte `zufällig' beendet werden (dieses Problem wurde beseitigt). Der Abbruch von Up-/Download geschieht jetzt fast `augenblicklich'. Endlich werden beim Programmstart auch die Bildschirmfarben korrekt gesetzt. Beim Abarbeiten von Steuersequenzen werden jetzt auch die Codes zum Abbrechen einer Sequenz erkannt und genutzt (die Online-Datenbank des Magazins `Börse Online', deren Pseudo-VT100-Emulation einen blinkenden Cursor simulierte, indem der Inverse-Video-Modus in schneller Folge an- und wieder abgeschaltet wurde, provozierte diese Änderung). Das Laden und Setzen der Bildschirmfarben funktioniert jetzt endlich wie in der Dokumentation beschrieben ist. Die `Logbuch'-Funktion wird jetzt statt als Task als Process ins System eingebunden, da es vorkommen konnte, daß das clipboard.device geöffnet werden mußte: eine Funktion die einem Task nicht gestattet ist (Bumm!). Das `Logbuch' konnte das Hauptprogramm beim Verlassen zum endlosen Warten zwingen (behoben), der Rexx-Server konnte ebenfalls beim Bearbeiten einer Nachricht an das `Logbuch' zusammenbrechen (behoben). Zeicheneingabefelder werden bei der Aktivierung besonders gekennzeichnet. Zwei kleinere Fehler im Einstellfeld für die Modem-Konfiguration sind behoben. V1.3 Sehr viele kleinere Veränderungen, die im Einzelnen gar nicht alle aufgezählt werden können. Generelle Resultate sind: die Wählfunktion stürzt nicht mehr unkontrolliert ab (für die Spitzfindigen unter uns: sie stürzt auch nicht kontrolliert ab), der Bildschirm läßt sich endlich mit Hilfe der iffparse.library abspeichern, der Bildschirm des `Logbuches' wird mit einer festen Breite geöffnet, die Position und die Größe des ASL-Requesters wird bis zum nächsten Aufruf gespeichert, es gibt einen echten ASCII Up-/Download und drei neue ARexx-Query-Befehle. Das Programm ist jetzt auch wesentlich toleranter beim Öffnen des seriellen Treibers (Vorversionen versuchten den Treiber solange zu öffnen, bis es klappte -- fatal wenn man sich beim Eingeben des Namens vertippt hatte!). Auf besonderen Wunsch eines einzelnen Herrn wurde die Anordnung der Anzeigefelder im Wählfenster geändert (eine Telefonnummer mit bis zu 40 Ziffern wird jetzt komplett angezeigt). Beim Aktivieren/Deaktivieren eines Eingabefensters wird das zuletzt angewählte Zeicheneingabefeld wieder aktiviert. Vier Bildschirmmodi wurden klammheimlich wieder aus dem Programm genommen (PAL/NTSC Productivity, denn es gibt nur einen Productivity mode, der vom Videosystem unabhängig ist). V1.2 ARexx-Interface leicht überarbeitet (asynchrone und synchrone Befehle werden im Notfall vom RexxServer abgearbeitet), VT220-Sequenzen in das Befehlsparsing eingearbeitet, Unterstützung für Dead-/Double-Dead-Keys hinzugefügt. String-Gadgets und Menüs blockieren sich nicht mehr gegenseitig, es gibt das `Packet Window'. Kleinere Änderungen (meist kosmetischer Natur) hier und da und dort. V1.1 Neue Funktionen sind hinzugekommen, das ARexx-Interface ist soweit komplett, einige Fehler wurden beseitigt. V1.0 Erste Veröffentlichung im kleinen Kreise. * "...you can't get what you want till you know what you want..." -Joe Jackson