Funkamateur 06/89

 

Ein Terminalprogramm für den PRC 1 Y2

AG "Digitale Kommunikation im Amateurfunk"

Der Komfort und der Nutzen der Anwendung von Packet-Radio in der Praxis des Funkamateurs hängen wesentlich von den Eigenschaften des TNC, noch stärker aber von den Leistungen des Terminalprogrammes ab. Ein solches hat drei Hauptaufgaben zu erfüllen:
- die Kommunikation mit dem Funkamateur zu organisieren,
- die Verbindung mit dem TNC (z.B. PRC 1 Y2) herzustellen und
- die Peripherie des Computers für Packet-Radio zu nutzen.
Aufgrund der Vielseitigkeit dieser Aufgabenstellung erstellt man Terminalprogramme heute ausschließlich in Hochsprachen der Programmiertechnik, wie z.B. PASCAL oder C.
Die Kommunikation mit dem bedienenden Funkamateur erfolgt bei modernen Systemen grundsätzlich über eine Tastatur und einen Bildschirm, das eigentliche Terminal. Besonders bei Anwendung der Programmierumgebung TURBO-PASCAL lassen sich durch Fenster-Technik (WINDOWs) komfortable Formen schaffen. Dabei werden für empfangene und zu sendende Daten, für Steuerdaten und Informationen über den Stand einer Packet-Radio-Verbindung unterschiedliche Fenster auf dem Bildschirm geöffnet und geschlossen. Dadurch ist eine übersichtliche Arbeit, u.U. auch mit mehreren Amateurfunkstellen gleichzeitig, möglich. Darüber hinaus kann der Operator durch das Terminalprogramm zusätzliche Informationen, wie z.B. Hilfsprogramme mit Informationen zu den Kommandos des PRC 1 Y2 und deren Wirkung und Parametern, aufrufen und anzeigen lassen. Ingesamt soll das Terminalprogramm den Bediener von Routinetätigkeiten entlasten und den Schwerpunkt auf die Verbindung zwischen den Amateurfunkstationen legen. Dazu gehören u.a. folgende Funktionen:
- Standardinitialisierung des TNC für den Betrieb auf VHF oder auf KW entsprechend den spezifischen Bedingungen (je nach Gerätetechnik und Zielstellung);
- automatische Rufzeichennennung (z.B. bei Portablebetrieb) mittels Bakenfunktion;
- Unterstützung bei der Logbuchführung (z.B. automatisches Speichern von Rufzeichen, Uhrzeit, Datum usw.);
- Auswahl häufig benutzter Rufzeichen und automatische Eintragung im TNC;
- Ausgabe von Informationen über den Zustand der Verbindung und der Voreinstellung des TNC;
- Speichern von empfangenen Texten auf einem Datenträger (z.B. auf FloppyDisk oder Kassette) sowie
- Senden von vorbereiteten Texten von einem Datenträger oder vom Terminalprogramm (z.B. Stationsvorstellung).
Je nach Niveau des Übertragungsprotokolls lassen sich noch weitere Funktionen über ein Terminalprogramm realisieren (nach ISO-Schichtenmodell, z.Z. Level 2, Version 1, beim PRC 1 Y2).

Die Bedienung durch den Funkamateur

  

Der Start des Terminalprogrammes (s. Listing) führt zur Anzeige des Startmenüs (Prozedur "Head Line"), das nach Ausgabe der Programmüberschrift die Abfrage enthält, ob der PRC 1 Y2 neu initialisiert werden soll. Das Betätigen von "CRTL-C" hat zur Folge, daß bereits eingestellte Parameter bestehen bleiben und keine erneute Initialisierung erfolgt. Anderenfalls kommt die Prozedur "Init TNC" zur Vorbereitung des PRC 1 Y2 für den praktischen Betrieb zum Aufruf (s.u.). Danach befindet man sich unmittelbar im Befehlsmodus des PRC 1 Y2. Wurde der PRC 1 Y2 rückgesetzt, erscheint die Ausschrift:
X.Y
:
Dabei ist X.Y das Versionskennzeichen der Software, das Prompt (Doppelpunkt) fordert zur Eingabe eines Kommandos an den PRC 1 Y2 auf. Damit befindet man sich im Hauptprogramm, das die Tastatur des Terminals zyklisch auf eine gedrückte Taste und die SIO auf ein vom PRC 1 Y2 empfangenes Zeichen abfragt.
Liegt ein solches Zeichen vor, hindert das den PRC 1 Y2 an der Ausgabe weiterer Zeichen (Prozedur "XOFF", s.u.). Das Zeichen wird von der SIO abgeholt (INSIO) und über die Prozedur "Print", die eine Ausfilterung unerwünschter Zeichen vornimmt, auf dem Bildschirm dargestellt. Dieser Ablauf erfolgt analog bei einer gedrückten Taste des Terminal-Computers. Das Betätigen von "ENTER" (CR = 0DH) hat gleichzeitig die Ausgabe eines Zeilenvorschubes (0AH) zur Folge.
Betätigen von "CTRL-A" (01H) führt innerhalb des Hauptprogrammes zum Aufruf der Prozedur "Menü". Diese zeigt ein Menü weiterer Funktionen des Terminalprogramms, die sich durch Eingabe der zugehörigen Buchstaben aufrufen lassen.

I Neuinitialisierung von SIO, CTC und PRC 1 Y2,
P Parameterliste anzeigen,
X Programm verlassen,
Z Rückkehr ohne Änderung.

In Abhängigkeit vom eingegebenen Buchstaben werden die Prozeduren "Init TNC" und "Show Parameter" aufgerufen. Betätigen von "X" stellt die Abbruchbedingung für das Terminalprogramm ein und man verläßt das Programm. Zu beachten ist, daß der PRC 1 Y2 dann noch arbeitet und sich erst nach Abschalten der Betriebsspannung oder erneutem RESET außer Betrieb setzen läßt.
In dieses Menü können je nach Bedarf weitere Funktionen eingebunden werden. Von besonderem Interesse ist die Prozedur "Init TNC", da sie alle Voreinstellungen für den praktischen Betrieb automatisch vornimmt. Als Parameter sind auf VHF voreinzustellen:
SE D Ausschalten der TNC-Echo-Funktion,
SV -- Digipeaterrufzeichen löschen,
OH E alle Rufzeichen anzeigen,
OC E Anrufe von anderen Stationen anzeigen (mit denen man z.Z. keine Verbindung hat),
MK DACK-Anzeige (Acknowledge) einschalten (Quittung vom Partner für ein empfangenes Paket),
MR D kein automatischer Digipeaterbetrieb zugelassen,
SH 1 maximal ein Rahmen (Frame) je Sendung,
SF 50 50 Byte Vorspann,
SL 80 maximal 80 Zeichen innerhalb eines Pakets.
Der Betrieb auf Kurzwelle erfordert die Änderung einiger Werte. Diese Eintragungen können entweder in einer neuen Funktion des Hauptmenüs untergebracht oder unmittelbar in das vorliegende Programm eingetragen werden:
SF 20 20 Byte Vorspann,
SL 20 maximal 20 Zeichen innerhalb eines Pakets,
SJ 3 Geschwindigkeit 300 Bit/s.
Weitere Prozeduren im Terminalprogramm (z.B. "SendString" und "Wait") dienen der internen Organisation und vereinfachen die Arbeit mit der SIO-Schnittstelle.

Die Verbindung zum PRC 1 Y2

Die Verbindung zum TNC erfolgt im Beispielprogramm über spezielle hardwarespezifische Schnittstellen. Aufgrund der Verbreitung des U 880-Systems in der DDR wird ausschließlich darauf eingegangen. Das Listing zeigt ein einfaches, aber voll funktionsfähiges Terminalprogramm für den PRC 1 Y2 sowie Voreinstellungen für den Betrieb am PC/M-Computer. Die unmittelbare Kommunikation mit dem PRC 1 Y2 geschieht also über eine SIO, die vom Terminalprogramm mittels spezieller Prozeduren und Funktionen bedient wird. Die Anpassung an den eigenen Rechner kann man mittels TURBO-PASCAL (Version 2 oder 3) unter CP/M 2.2 (z.B. PC/M-Computer mit CP/V) durchführen. Bei abweichender Hardware (SIO-Port) sind die folgenden Angaben im Variablenvereinbarungssteil zu ändern:
- SIO_Daten (Datenport der SIO)
- SIO_Control (Steuerport der SIO),
- CTC0 (CTC-Kanal 0 für SIO-Takt),
- CTC1 (CTC-Kanal für Takterzeugung des jeweiligen SIOKanals; A oder B).

Die zugehörigen Prozeduren und Funktionen sind:
INITSIO intialisiert die SIO für den Betrieb in asynchroner Betriebsart mit 8 Datenbits und ohne Parität bei 2400 Bd. Dabei werden 1,5 Stop-Bits eingestellt. Danach erfolgt über die Leitung DTR das Rücksetzen des PRC 1 Y2.
Die Prozedur OUTSIO sendet ein vorher in der Variablen TxZeichen abgelegtes ASCII-Zeichen über die SIO an den PRC 1 Y2.
Die Funktion SIOSTAT zeigt an (TRUE oder FALSE), ob ein Zeichen von der SIO, also vom PRC 1 Y2, abgeholt werden kann.
Die Prozedur INSIO übergibt ein Zeichen, das vom PRC 1 Y2 an die SIO gesendet wurde.
Die Prozedur XON legt den RST-Ausgang der SIO auf High und läßt damit das Senden von Zeichen durch den PRC 1 Y2 zu.
XOFF verhindert durch Steuerung des RTS-Ausganges auf Low das Senden von Zeichen durch den PRC 1 Y2.

Die Nutzung der Peripherie der Terminal-Computers

Die Möglichkeit, den TNC zur zeichenweisen Ausgabe der empfangenen Pakete zu verlassen, erlaubt auch die Verwendung von solchen Computern als Terminal, die nur über langsame Bildschirmtreiber verfügen (z.B. KC 85/2 und KC 85/3). Außerdem lassen sich auch Sonderzeichen (z.B. bei Bell-Klingel, wenn diese als Zeitschleife realisiert wurden) behandeln. Der Grund besteht darin, daß vom PRC 1 Y2 gesendete Zeichen verloren gehen können, wenn sie nicht sofort vom Terminal abgeholt wurden. Weiter ist es so möglich, die am Terminal ankommenden Informationen nach entsprechender Pufferung in einem externen Speichermedium (Kassette, Floppy-Disk o.a. zur Archivierung abzulegen bzw. sie auszudrucken.
Beispiele für derartige Terminalprogramme mit Druckerschnittstellen und Diskettenarbeit stehen bei Bedarf auf einer Diskette bereit.

Die Bedienung des PRC 1 Y2 mittels Terminalprogramm

Nach erfolgtem Start des Terminalprogramms und initialisiertem PRC 1 Y2 kann man nun den Aufbau einer Verbindung versuchen. Dazu ist nach Eingabe des Kommandos "SD" unmittelbar das Rufzeichen der Gegenstation einzutragen. Das Rufzeichen entnimmt man einem sogenannten Header, der bei fehlerfreiem Empfang auf dem Terminal erscheint. Dabei ist das zweite der angezeigten Rufzeichen das der empfangenen Station. Das erste Rufzeichen gibt die Gegenstation an. Folgen weitere Rufzeichen, deutet das auf die Arbeit über Digipeater hin.
Jede Station verwendet einen "SSID", eine Kennzeichnung zusätzlich zum Rufzeichen, die häufig Hinweis auf den benutzten Frequenzbereich ist (z.B. "1" = Kurzwelle, "2" = 2m, "7" =70 cm; sonst wird eine "0" eingetragen). Der SSID (second station identifier) läßt sich von 0 bis 15 wählen. Das Rufzeichen der eigenen und der Gegensation muß aus 6 ASCII-Zeichen bestehen. Nicht benötigte Zeichen sind durch Leerzeichen (Space) zu füllen.
Nach Eingabe von "SD" wird also das bisherige Rufzeichen der Gegenstation angezeigt (------, wenn noch kein Rufzeichen eingestellt ist). Danach gibt der Operator unmittelbar das Gegenrufzeichen (6 Zeichen) ein. Daraufhin kommt durch den PRC 1 Y2 der SSID zur Anzeige, der wiederum einzustellen ist. Diese Eingabe ist mit "ENTER" (0DH) abzuschließen.
Nun folgt der Versuch einer Verbindungsaufnahme durch Eingabe von "AC". Es wird jetzt automatisch bis 16mal (Voreinstellwert) versucht, eine Verbindung zum Partner herzustellen. Im Fehlerfall kommt es zu einer kodierten Ausschrift durch den PRC 1 Y2. Gelingt der Verbindungsaufbau, erscheint z.B. die Ausschrift:
Connected to Y21MH.
Damit steht die Verbindung und der PRC 1 Y2 ist selbständig in den Arbeitsmodus übergegangen. Will man nun Informationen austauschen, muß lediglich der gewünschte Text über das Terminal eingegeben werden. Mit "CTRL-J" wird der Text an die Gegenstation abgeschickt. Erscheint auf dem eigenen Terminal der Text "- Ack" und ertönt (falls vorhanden) die Klingel (Bell - 07H), hat der Partner den Text fehlerfrei empfangen und quittiert. Dieser Austausch wird automatisch solange versucht, bis vom Partner eine Quittung (auch automatisch erzeugt) vorliegt. Anderenfalls erfolgt selbsttätig ein Abbruch der Verbindung. Die Anzahl der Wiederholungen und die Zeit zwischen zwei Versuchen läßt sich ebenfalls am PRC 1 Y2 voreinstellen.
Sollen Parameter korrigiert werden, oder man will überprüfen, auf welchem Weg (z.B. über welche Stationen) die Verbindung aufgebaut worden ist, bzw. wer noch auf dem Kanal arbeitet, kehrt man durch Betätigen der ESCAPE-Taste (01BH) in den Befehlsmodus zurück. Erst dort können Voreinstellungen geändert werden. Ebenfalls im Befehlsmodus ist ein automatischer Abbruch der Verbindung mit dem Kommando "AD" möglich.
"CTRL-C" ermöglicht ebenfalls einen Verbindungsabbruch. Hat die Gegenstation die Abbruchanforderungen quittiert, erscheint auf dem Terminal die Ausschrift:
- Disconnected.
Ist keine Verbindung mehr möglich (z.B. durch QRM oder QSB), wird automatisch verhindert, daß die Verbindung unnötig bestehen bleibt. Erfolgt z.B. eine Überschreitung voreingestellter Zeitparameter oder der Anzahl der voreingestellten Versuche, beendet der PRC 1 Y2 automatisch die Verbindung und gibt folgende Meldung aus:
- No Ack
- Disconnected,
Anzumerken ist, daß der PRC 1 Y2 empfangene Texte erst dann auf das Terminal ausgibt, nachdem er die Anweisung zum Senden der Texte aus seinem Sendepuffer erhalten hat. Bei leerem Sendepuffer wird der empfangene Text sofort angezeigt. Wie aus dem Stromlaufplan des PRC 1 Y2 ersichtlich, löst jede Zeichenausgabe vom Terminal am PRC 1 Y2 einen Interrupt zur Behandlung des ankommenden Zeichens aus. Das hat zur Folge, daß zur gleichen Zeit ankommende Pakete nicht mehr weiter empfangen werden können und die Gegenstation sie wiederholen muß. Sendet der PRC 1 Y2, während Zeichen an ihn abgeschickt werden, führt das zur Zerstörung des gerade zu sendenden Pakets; die Gegenstation kann es nicht empfangen und es ist demzufolge auch zu wiederholen. Eine Lösung dieser Probleme läßt sich erreichen, indem die zu sendende Information nicht sofort zeichenweise zum PRC 1 Y2 übertragen, sondern im Terminal in einem Puffer aufgefangen und erst unmittelbar mit dem Sendekommando mit maximaler Geschwindigkeit zum TNC gesendet wird.
Abschließend möchten wir darauf hinweisen, daß es sich bei dem Terminalprogramm um eine extrem abgerüstete, stark vereinfachte Version zur Veranschaulichung der Grundfunktionen eines solchen Programms handelt.
An dieser Stelle unser Dank im besonderen an Y21ZK, Y24KK, Y25GO, Y25TN, Y27AM, Y27NN und Y27RO.
Die Software für das Betriebssystem PRC 1 Y2 sowie Terminalprogramme und Informationen zu Packet-Radio und zum AX.25-Protokoll sind gegen Zusendung einer 5,25"-Diskette (nur Briefe, keine Päckchen o.ä.; freigemachten und adressierten Umschlag beilegen!) bei Y21ZK bzw. Y25TN kostenlos zu erhalten.

Literatur

[1] DL1KAY, DG5FW: Dokumentation und Parameterliste zum GLB PK1 Board, 1985/1986
[2] EXAR-Firmenschrift: Application Note AN-01/Stable FSK Modems Featuring the XR-2207, XR-2206 and XR-2211, S. 4ff.