Funkamateur 02 und 03/86

 

Ein komfortables RTTY-Programm für den Amateurcomputer "AC1" (1 u. 2)

F. HEYDER - Y21SO, J. REUL - Y27XO

Dieser Beitrag stellt ein Programm vor, das mit dem Grundgerät des Amateurcomputers "AC1" einen komfortablen und lautlosen Femschreibbetrieb im Telegraphenalphabet Nr.2 (Baudotkode) ermöglicht. Zwischen dem "AC1" und dem Transceiver bzw. Sender und Empfänger sind dann nur noch ein RTTY-­Konverter und eine AFSK bzw. FSK zu schalten. Für den Anfang reicht hier z.B. die in [2] vorgestellte Minimallösung aus, die auch ohne Änderung mit diesem Programm betriebsfähig ist.

Hardware-Anforderungen

Die hier vorgestellte Softwarelösung läuft auf dem Grundgerät des "AC1" mit verdoppeltem Arbeitsspeicher (2-kByte-­SRAM) und wahlweise 16 oder 32 Zeilen Anzeigekapazität. Als Hardware zum Sender/Empfänger-Anschluß können die in [1], [2] veröffentlichten Schaltungen, oder solche, die das gleiche logische Verhalten realisieren, verwendet werden. Der Systemtakt muß 2 MHz betragen (8-MHz-Quarz), sonst stimmen die Baudraten nicht. Am CTC der Grundleiterplatte sind ZC/TO0 und CLK/TRG1 miteinander zu verbinden (Steckverbinder X2/B3-B4), da zur Abtastzeiterzeugung zwei CTC-Kanäle in Reihe geschaltet werden. Zum Anschluß an das jeweilige RTTY-Interface dienen drei Leitungen des PIO-Port B.
PB1 ist als Eingang geschaltet und wertet das Ausgangssignal des RTTY-Konverters aus, wobei H-Pegel der Space-Lage entspricht. An PB2 wird das Tastsignal zum Senden ausgegeben, so daß damit die FSK- bzw. AFSK-Schaltung angesteuert werden kann. Hierbei entspricht Low-Pegel der Space-Lage. Mit PB3 kann die Sende-Empfangsschaltung (PTT) angesteuert werden. Low-Pegel bedeutet dabei "Sender EIN". An dieser Stelle muß darauf hingewiesen werden, daß bei Benutzung dieser Leitung der Funkamateur eine zusätzliche Sendeanzeige anschließen sollte, und daß bei der Nichtbenutzung dieses RTTY-Programms das RTTY-Interface vom Mikrorechner zu trennen ist. Sonst kann es passieren, daß bei anderen Programmen, die ebenfalls diese Leitung ansteuern, (oder auch bei Programmabstürzen) aus Versehen der Sender eingeschaltet wird.

Prinzip der Kodierung/Dekodierung

Bevor die Bedienung des eigentlichen RTTY-Programms beschrieben wird, noch etwas zum hier verwendeten Prinzip der Kodierung bzw. Dekodierung der Fernschreibzeichen. Das Programm ist so gestaltet, daß sich das "RTTY-Terminal AC1" mit dem Interface aus [1] nach außen genauso verhält wie eine mechanische Fernschreibmaschine. Das heißt, für die notwendige Serien/Parallel- bzw. Parallel/Serien-Wandlung wird keine zusätzliche Hardware benötigt, sondern es geschieht alles per Software. Für den Sendefall ist das relativ problemlos zu realisieren. Die Kodierung des entsprechenden Femschreibzeichens wird einer Tabelle entnommen, mit Start- und Stoppbits versehen und mit dem der eingestellten Baudrate entsprechenden Bittakt zum PIO-Port "hinausgeschoben". Der Einfachheit halber werden 2 Stoppbits angefügt. Bei der mechanischen Maschine sind es nur 1 1/2. Die Umschaltzeichen für Buchstaben und Ziffern müssen nicht extra eingetippt werden, der Mikrocomputer fügt sie automatisch ein. Mehr noch, zur Erhöhung der Übertragungssicherheit wird je Zeiteinheit, die 10 Zeichen entspricht, das aktuelle Registerzeichen eingefügt.
Im Empfangsfall ist es etwas komplizierter. Man muß darauf eingestellt sein, daß durch den Übertragungsweg das empfangene Impulsbild mehr oder weniger von der Idealform, wie sie z.B. an PB2 im Sendefall zu sehen ist, abweichen wird. Meist sind Überlagerungen von Störimpulsen und Flankenverformungen vorhanden. Die mechanische Maschine eliminiert solche Störungen bis zu einem bestimmten Grad durch die "Trägheit des Systems". Der Mikrocomputer aber muß eine solche "Trägheit" erst erzeugen. Im vorliegenden RTTY-Programm wurde das Problem dadurch gelöst, daß jedes empfangene Bit dreimal, und zwar bei 25 %, 50 % und 75 % der Zeit, abgetastet und daraus der Mittelwert gebildet wird. Ein Beispiel ist in Bild 1 dargestellt.
Weiterhin, und das ist eine Möglichkeit, die mechanisch nicht so einfach zu realisieren ist. sind das Start- und ein Stoppbit mit in die Auswertung einbezogen. Hat z.B. ein Störimpuls eine Startfanke vorgetäuscht, so wird nach einem Bittakt die Dekodierung abgebrochen und sofort in den Ausgangszustand übergegangen. Eine mechanische Maschine wäre jetzt gezwungen, einen vollen Umlauf zu machen und stünde in dieser Zeitspanne für ein echtes Fernschreibzeichen nicht zur Verfügung. Wurde nicht mindestens ein Stoppbit erkannt, so gelangt ebenfalls kein Zeichen auf den Bildschirm.
Ein Vergleich dieser Softwarelösung mit einer mechanischen Femschreibmaschine zeigte bei gleichzeitigem Betrieb mit einem leicht gestörten Empfangssignal weitaus weniger Fehlschriften auf dem Bildschirm. Auch das Einrasten in eine laufende Sendung erfolgt bei dieser Softwarelösung meist weitaus schneller als bei der Fernschreibmaschine.
Der Fangbereich, in dem sich die Baudrate bewegen darf, ist bei diesem RTTY-Programm aufgrund des gewählten Abtastprinzips etwas geringer als bei der Fernschreibmaschine. Deshalb wurde die Baudrate nicht in den gebräuchlichen Stufen gerastert, sondern in Schritten zu einem Baud einstellbar gestaltet. Damit ist dann auch wieder Fernschreibbetrieb mit QSQ-Partnern möglich, bei denen die Fernschreibmaschine nicht exakt eingestellt ist.
Bei elektronischen Terminals dürfte die Baudrate meist genau stimmen, da sie von einem Quarzgenerator abgeleitet wird, so daß dieses Problem hier keine Rolle spielt. Ein Test ergab für 45 Baud einen Toleranzbereich des Programms von 42 bis 47 Baud.

Zur Programmgestaltung

Dieses Programm realisiert alle für den Amateurfunk notwendigen Funktionen einer Femschreibmaschine. Darüber hinaus bietet es einige Funktionen, die zur Erleichterung des Fernschreibbetriebs und zur Erhöhung der Übertragungssicherheit dienen. Das Programm belegt den Adreßbereich von 18B0H bis 1DAFH. Der restliche Speicher von 1DB0H steht als Standardtextspeicher zur Verfügung. Dieser Speicherplatz reicht bei geschickter Anwendung für solche Texte wie RY-Zeile, CQ-Ruf, Vorstellung mit Rapport, Stationsbeschreibung und für einen Testtext aus. Da dieses Programm einerseits möglichst viel Komfort bieten sollte, der benötigte Speicher aber kaum mehr als 1,75 kByte betragen durfte, mußte auf einen komfortablen Bedienerdialog bzw. eine Menüführung sowie auf die Anzeige von Statusinformationen verzichtet werden. Das wird einer späteren Version, die eine Speichererweiterung erfordert, vorbehalten bleiben.
Wie aber die ersten Erfahrungen gezeigt haben, hat man sich an den etwas spartanischen Dialog mit dem Mikrocomputer schnell gewöhnt und ist dann in der Lage, damit einen sicheren und schnellen Fernschreibbetrieb zu realisieren. Der Ansprung der einzelnen Komponenten Standardtextabspeicherung, Fernschreiben mit und ohne "Diddle" erfolgt über Kennbuchstaben aus dem Monitor.

Standardtextabspeicherung

Vor dem eigentlichen Fernschreibbetrieb empfiehlt es sich, erst einmal den Standardtextspeicher entsprechend den eigenen Anforderungen und Vorstellungen zu beschreiben. Danach sichert man sich das gesamte Programm mit den Standardtexten auf Kassette, damit sie nicht jedesmal neu eingegeben werden müssen. Auch mehrere Versionen, z.B. in deutscher, russischer oder englischer Sprache, sind denkbar. Der Standardtextspeicher wird mit einem extra Programmteil gefüllt. Der Aufruf erfolgt über den Kennbuchstaben "Y" aus dem Monitor, natürlich nachdem das Programm eingetippt bzw. von Kassette geladen wurde.
Nach dem Ansprung erfolgt die Ausschrift "TEXT:". Hier ist ein ASCII-Zeichen einzugeben, unter dem der Text dann im RTTY-Teil des Programms aufgerufen werden kann, Ausgenommen ist der "*", der die Sonderfunktion des Löschens bzw. Eingabeabbruchs übernimmt. Die nun nachfolgend auf dem Schirm erscheinende vierstellige Hexadezimalzahl gibt die noch freien Plätze im Textspeicher an. Werden mehr Zeichen eingegeben, bricht das Programm automatisch ab und kehrt zum Monitor zurück. Beendet wird der jeweilige Standardtext mit einem "*". Dieser erscheint nicht mit auf dem Schirm, sondern das Programm meldet sich dann wieder mit dem "#" des Monitors. Nun läßt sich der nächste Standardtext eingeben oder man beginnt mit dem Fernschreibbetrieb. Wie schon gesagt, dient der "*" auch als Löschzeichen. Wird er als Textnummer eingegeben, so wird der gesamte Textspeicher gelöscht, wird er als erstes Zeichen eines Textes eingegeben, so wird nur dieser gelöscht.
Eine weitere Sonderfunktion ist dem "@" zugedacht. Es wirkt als Stoppzeichen in Standardtexten, so daß hier im Fernschreibbetrieb aktuelle Daten, wie z.B. Rapport oder Name des QSO-Partners nachträglich eingegeben werden können und nach dem ersten dabei eingegebenen Leerzeichen der restliche Standardtext ausgegeben wird. Hier ein Beispiel: "DER RAPPORT FUER SIE IST @ IN BERLIN ... ". Sind alle Standardtexte eingegeben, wird mit S 18A0 1FFF 0 RTTY das so komplettierte Programm erst einmal auf Kassette gesichert. Tabelle 1 enthält die Bedienfunktionen der Standardtextabspeicherung noch einmal zusammengefaßt.

Das RTTY-Programm

Nun kann mit dem eigentlichen RTTY-Betrieb begonnen werden. Die ersten Durchläufer sollte man am besten "trocken" trainieren, um die ersten QSOs nicht durch Bedienfehler zu erschweren. Der Ansprung erfolgt über kleine bzw. große X, je nachdem, ob in den Tastpausen nur der Mark-Ton oder eine Buchstabenkennung, auch "Diddle" genannt, ausgesendet werden soll. Nach dem Ansprung wird der Schirm gelöscht und mit der Überschrift "RTTY - AC 1 (C)Y21SO/Y27XO" versehen. In der untersten Zeile erscheint die Aufforderung "BAUD #" zur Eingabe der Baudrate. Es sind Eingaben zwischen 31 und 200 Baud in Schritten zu einem Baud möglich. Nach Abschluß der Eingabe mit CR wird das Empfangsprogramm initialisiert und der Sendetext kann vorgeschrieben werden. Auf der untersten Zeile blinkt der Cursor des Sendepuffers, der empfangene Text wird ab der dritten Zeile von unten geschrieben und nach oben gerollt.
Je mehr Sendetext vorgeschrieben wird, desto geringer ist der verbleibende Empfangsspeicher, in dem gerollt wird. Der Bildschirm ist sozusagen dynamisch, in Abhängigkeit vom bereits vorgeschriebenen Sendetext, geteilt. Damit der Empfangsspeicher nicht ganz verlorengeht, wird der Sendepuffer nach der 11. Zeile begrenzt und jede weitere Eingabe von Sendezeichen im Empfangszustand verweigert.
Es ist auch nur sinnvoll, Zeichen, die im Telegrafenalphabet Nr.2 enthalten sind, in den Sendepuffer zu schreiben. Alle anderen Zeichen erscheinen zwar ebenfalls auf dem Schirm, werden aber nicht ausgesendet. Da aus Speichergründen der Bildschirm gleichzeitig als Sendepuffer dient, wird anstelle des Zeichens CR (0DH), das nicht in den Bildwiederholspeicher geschrieben werden kann, ein 60H eingetragen. Bei anderen Zeichengeneratoren als dem U 402 D kann das zur Darstellung eines entsprechenden Symbols, z.B. einem Apostroph führen, es wird aber trotzdem ein CR ausgegeben. Bei mehr als 63 Zeichen je Zeile fügt das Programm automatisch einen Wagenrücklauf/Zeilenvorschub ein. Die Benutzung der Backspacefunktion ist natürlich nur dann sinnvoll, solange das Zeichen noch nicht ausgesendet wurde.
Die Bedienung des RTTY-Programms erfolgt mit einer Reihe von Steuerkodes (Control + Zeichen), die nachfolgend erläutert werden:
Control + B
Ändern der Baudrate
Das Empfangsprogramm wird unterbrochen und die Baudrate kann neu eingegeben werden. Bei Eingabe von 0, gefolgt von CR oder nur CR, setzt das Programm den Empfang in der zuletzt eingestellten Geschwindigkeit fort. Hiermit ist eine Unterbrechungsmöglichkeit des Empfangs gegeben, z.B. um Fehlerausschriften beim Absuchen des Bandes nach einer RTTY-Station zu unterdrücken. Für den Sendeteil des Programms gilt natürlich immer die gleiche Baudrate wie für den Empfangsteil.
Control + C
Rückkehr zum Monitor
Diese Eingabe bricht den Empfang ab, setzt PIO und CTC zurück, und übergibt die Steuerung wieder dem Monitor. Ein direkter Übergang vom Sendeteil zum Monitor ist nicht möglich. Hier muß erst auf Empfang geschaltet werden.
Control + E
Sende/Empfangs-Umschaltung
Die Aussendung von RTTY-Zeichen wird abgebrochen, das Programm geht wieder in den Empfangszustand über. Der Bildschirm rollt um drei Zeilen nach oben und zur Kennzeichnung eines abgeschlossenen Durchgangs erscheint eine Strichlinie auf dem Schirm.
Control + S
Empfangs/Sende-Umschaltung
Der Empfangsteil des Programms wird abgebrochen und die Ausgabe von RTTY-Zeichen aus dem Sendepuffer beginnt. Das gerade ausgesendete Zeichen erkennt man am Cursor, der dieses für den Zeitraum der Ausgabe ersetzt. So kann man leicht feststellen, bei welchem Zeichen sich das Ausgabeprogramm gerade befindet. An PB3 wird Low-Pegel eingestellt. Durch ein entsprechendes Interface, wie z.B. in [2], kann man damit den Sender einschalten.
Control + T
Kennzeichen Standardtextaufruf
Der Text, der unter dem Kennzeichen, welches nach Control + T folgen muß, im Standardtextspeicher abgelegt ist, erscheint im Sendepuffer.
Control + U
Registerumschaltung
Hiermit kann im Empfangsprogramm alternierend der gerade eingestellte Registersatz gewechselt werden, also von Buchstaben auf Ziffern und umgekehrt.
Control + W
Wortwiederholung
Der Text im Sendepuffer bis zum letzten Leerzeichen, also meist das zuletzt eingegebene Wort, wird innerhalb der Zeile wiederholt. Damit braucht man z.B. Rufzeichen oder Rapporte nur einmal einzutippen und kann sie dann mit nur einem Tastendruck wiederholen.
b bzw. z
Registerzeichenaussendung
Obwohl das Sendeprogramm automatisch das erforderliche Registerzeichen einfügt und dies spätestens alle 10 Zeichen wiederholt, ist es möglich, auch einzelne Registerzeichen auszusenden. Diese sind den beiden Kleinbuchstaben b wie Buchstaben und z wie Ziffern zugeordnet.
Zur besseren Übersicht während der Bedienung dieses Programms, sind die hier beschriebenen Steuerfunktionen ebenfalls in Tabelle 1 kurz aufgelistet.

Betriebserfahrungen

Mit diesem Programm wurden ausgedehnte RTTY-Tests unter den Bedingungen des 2-m-Bandes (Sendeart F2B, Shift 850 Hz) durchgeführt. Y21SO verwendete dazu die in [2] beschriebene AFSK-Konverterschaltung mit dem A 290 D. Verbindungen bis zu 150 Baud Übertragungsgeschwindigkeit waren dabei fehlerfrei realisierbar, auch bei relativ stark angerauschten Signalen. Die Versuche zeigten, daß die Übertragungssicherheit bei höheren Geschwindigkeiten u.a. von der Qualität des Sendesignals und von der verwendeten Konverterschaltung abhängt.
Die Bedienung des Programms erwies sich nach kurzer Übung als unkritisch und sicher. Durch die Speicherfunktionen des Programms ist auch für weniger Geübte ein flüssiger Betriebsablauf möglich. Die Anzeigekapazität, speziell bei verdoppeltem Bildwiederholspeicher, reicht für den normalen QSO-Betrieb völlig aus. Bei der Verwendung von Kleinbuchstaben für den Empfangstext (Änderung siehe Tabelle 2) erhöht sich die Übersichtlichkeit. Um einen ersten Einblick in die Funktion dieses Programms zu geben, sind in den Bildern 2 und 3 Teile von durchgeführten RTTY-QSOs als Bildschirmfoto wiedergegeben.

Eingabe des Programms

Da es die Möglichkeiten der Autoren überfordert, jedem Interessenten an diesem Programm eine Kassette zu bespielen, wird es dem einen oder anderen nicht erspart bleiben, es Byte für Byte selbst einzutippen. Das Listing des Programms ist in Tabelle 3 angegeben und kann mit dem M-Befehl des Monitors eingetippt werden. Um geordnete Verhältnisse zu schaffen, die auch eine eventuelle Fehlersuche vereinfachen, sollte der Speicher zuvor von 18A0H bis 1FFFH mit 00 gefüllt werden. Damit ist dann auch gleich der Standardtextspeicher gelöscht. Ist alles eingetippt, empfiehlt es sich, erst einmal das Programm auf Kassette zu sichern und danach "trocken" seine Funktion zu testen. Sollte noch nicht alles funktionieren, sucht man zuerst nach Tippfehlern, erst dann überprüft man die angeschlossene Hardware. Sehr leicht wird z.B. die erforderliche Brücke am CTC vergessen!
Das abgedruckte Listung enthält die Grundversion für 16 Zeilen Bildwiederholspeicher und den U 402 D als Zeichengenerator. Auch auf bereits erweiterten Amateurcornputern läuft das Programm nach wenigen geänderten Bytes einwandfrei. In Tabelle 2 sind die zu ändernden Stellen für verdoppelten Bildwiederholspeicher sowie für einen erweiterten Zeichengenerator angegeben.
Die Autoren möchten sich bei den OMs, die mithalfen, dieses RTTY-Programm zu testen, herzlich bedanken und wünschen allen Nutzern viel Spaß damit und interessante RTTY-QSOs.

Literatur

[1] Heyder, F.: Funkamateure entwickeln Amateurcomputer "AC1",
FUNKAMATEUR 33 (1984), H.5, S.221
[2] Rössel, G.: Ein einfacher Funkfernschreibzusatz für den Amateurcomputer "AC1",
FUNKAMATEUR 35 (1986), H.2, S.98

18 KByte 121 KByte 44 KByte
Bild 1 Tabelle 1 Tabelle 2

167 KByte 279 KByte
Bild 2 Tabelle 3