Das Programm ZEITTAST ist ein Programm, das eine zeitgesteuerte simulierte Tastatureingabe bewerkstelligen soll. Will man beispielsweise zu einer betriebsarmen Zeit (z.B. nachts um 3:00) automatisch Daten aus einer Mailbox auslesen, dann können die erforderlichen Tastatureingaben zum Starten des Packet-Radio-Programmes und Aufbau der Verbindung zur Box sowie der Lesebefehl an die Box durch ZEITTAST ausgeführt werden. Bedingung ist nur, daß man keine modernistischen Programme verwendet, wo man mit der Maus drin rumfummeln muß, anstatt Tastaturbefehle eingeben zu können.
Das Programm ist ein TSR-Programm. Es nistet sich also resident im Speicher ein, bis die Zeit abgelaufen ist und die simulierte Ausgabe erfolgt ist. Aus diesem Grund wurde es in Assembler geschrieben, wie es sich (meiner Meinung nach) für ein TSR-Programm gehört. Der Speicherplatzbedarf im RAM beträgt somit nur 560 Byte. Das Environment wird sofort freigegeben. Nachdem die automatische Ausgabe der simulierten Tastendrücke erfolgt ist, entfernt sich das Programm selbsttätig wieder aus dem Speicher, sobald dies möglich ist.
Das Programm ZEITTAST kann mehrmals hintereinander geladen werden, was jedoch nur mit unterschiedlichen Zeiten sinnvoll ist. In diesem Fall nistet es sich auch mehrfach im RAM ein. Der zuerst belegte Speicherbereich kann erst dann wieder freigegeben werden, wenn alle danach belegten Bereiche wieder freigegeben sind.
Beim Laden von ZEITTAST werden in der Kommandozeile sowohl der Ausgabetext mit Steuertasten als auch die Uhrzeit, zu der die Ausgabe stattfinden soll, übergeben. Der Ausgabetext wird in „Anführungszeichen“ gesetzt, die Uhrzeit steht dahinter. Die Uhrzeit wird in Stunde und Minute angegeben mit einem Doppelpunkt oder einfachen Punkt zur Abtrennung.
Beispiel: ZEITTAST "Hallo" 14:27
Dies würde die Eingabe von 'Hallo' um 14:27 Uhr simulieren. Ob das allerdings sinnvoll ist, ist eine andere Frage.
Meist müssen auch Sondertasten betätigt werden, wie z.B. Enter, Esc oder eine Funktionstaste. Dabei gilt es zwischen zwei verschiedenen Typen von Sondertasten zu unterscheiden, nämlich den Sondertasten, die einen einfachen Tastaturcode erzeugen, und den Sondertasten, die einen erweiterten Tastaturcode erzeugen. Zur ersten Kategorie zählen die Tasten Enter, Esc, Backspace und Tab. Alle anderen Sondertasten erzeugen einen erweiterten Tastaturcode. Um ZEITTAST mitzuteilen, daß nun eine Sondertaste kommt, wird das Zeichen # als Kennung eingegeben. Unmittelbar danach steht der Tastencode DREISTELLIG in dezimaler Codierung, wie man ihn auch bei ausgeschaltetem NumLock zusammen mit der Alt-Taste eingeben kann. Ist die Sondertaste eine Taste, die einen erweiterten Tastaturcode erzeugt, wie beispielsweise eine Funktionstaste, dann muß hinter dem # ein F stehen.
Beispiele: ZEITTAST "Hallo#013" 14:27
Dies würde die Eingabe von 'Hallo' um 14:27 Uhr simulieren, die mit <Enter> abgeschlossen ist.
ZEITTAST "#F072#F077#013" 3.17
Dies würde die Eingabe von ↑ → Enter um 3:17 Uhr simulieren.
Wenn das Zeichen # selbst ausgegeben werden soll, dann muß man sich mit einem kleinen Trick behelfen, da das Doppelkreuz ja als Erkennungszeichen für Sondertasten verwendet wird. Die Eingabe #035 bewirkt die Ausgabe des Doppelkreuzes. Entsprechendes gilt bei der zu simulierenden Ausgabe eines Anführungszeichens „ . Hier bewirkt die Eingabe #034 die Ausgabe des Anführungszeichens.
Die Tasten Alt, Shift, Strg, <NumLock>, usw. können nicht simuliert werden. Ihr Einfluß ist jedoch in dem erzeugten Code bereits berücksichtigt.
Hier die Liste der Codes einiger häufig verwendeter Sondertasten:
Tastenkombination | Code |
---|---|
Enter | #013 |
Esc | #027 |
← | #F075 |
→ | #F077 |
↑ | #F072 |
↓ | #F080 |
Strg + Bild↓ | #F118 |
F1 … F10 | #F059 … #F068 |
Shift - F1 … Shift - F10 | #F084 … #F093 |
Strg - F1 … Shift - F10 | #F094 … #F103 |
Alt - F1 … Alt - F10 | #F104 … #F113 |
Abschließend ein Beispiel für eine Mehrfachverwendung von ZEITTAST. Hiermit soll zuerst BayCom gestartet werden, dann die Mailbox DB0EAM-3 connected werden und schließlich 10 Files aus der Rubrik IBM in das File TEXT.000 geschrieben werden:
ZEITTAST "L2#013SCC#013#f018" 3:00 ZEITTAST "c DB0EAM-3#013:w TEXT.000#013" 3:05 ZEITTAST "r IBM 1025-1035#013" 3:10
Mit dem ersten Befehl wird um 3:00 Uhr in der Nacht zuerst das BayCom-Hintergrundprogramm L2 gestartet. Anschließend wird das zuge hörige Monitorprogramm SCC gestartet. Danach wird noch die Taste <Alt-E> im Tastaturpuffer abgelegt. Damit kann unter BayCom ein Makro zum connecten von DB0EAM über den lokalen Digi aktiviert werden. In der Hoffnung, daß der Connect mittlerweile geglückt ist, erfolgt aus dem zweiten geladenen ZEITTAST 5 Minuten später der Befehl zum connecten der Box und ein Befehl zum Eröffnen der Datei TEXT.000 zum Schreiben. Wieder 5 Minuten später, wenn man davon ausgehen kann, daß auch dieser Connect geglückt ist, erfolgt der Lesebefehl an die Box. Nun können die gewünschten Files ausgelesen werden, ohne das Netz zu den Hauptverkehrszeiten zu belasten.
Das Copyright für ZEITTAST liegt bei mir, Wolfgang Kippels, DK4EK. Es darf nur kostenlos und nur zusammen mit dieser Anleitung weitergegeben werden. Für Erfahrungsberichte bin ich dankbar.
Mit vy 73 de Wolfgang, DK4EK @ DB0EAM