Funkamateur 05/84

zurück zu Teil 5

Funkamateure entwickeln Amateurcomputer "AC1" (6)

Dipl.-Ing. F. HEYDER - Y21SO

Bei Betätigung eines Tasters wird nun die Basis des jeweiligen Zeilentransistors an die Spaltenleitung gelegt, der Transistor damit durchgesteuert. Daraufhin nimmt der Kollektor dieses Transistors dann Low-Pegel ein, der durch die nachfolgende Zeilenkodierung ausgewertet und mit den beiden Funktionstasten verknüpft wird. An der Basis des betreffenden Transistors (und damit auf der Spaltenleitung) stellt sich ein um die Flußspannung höherer Pegel als am Emitter ein, also etwa 0,7 V bzw. 0 V, und damit Low-Pegel.
Nach Möglichkeit sollte das Emitterpotential der Transistoren um deren Flußspannung unter dem Massepotential, also auf etwa -0,7 V, liegen, um die Störsicherheit der Kodierschaltungen zu erhöhen. Diese Spannung läßt sich leicht mit einer in Durchlaßrichtung gegen Masse gepolten Si-Diode erreichen, die über einen Vorwiderstand an eine der negativen Versorgungsspannungen des Rechners gelegt wird. Entsprechend der Low-aktivierten Spaltenleitung wird durch G2 bis G4 die binär kodierte Spaltennummer und durch G1 High-Pegel für die Information "Taste gedrückt" ausgegeben.
Es ist also erkennbar, daß der Tastenkode durch die Anordnung der jeweiligen Taste in der Matrix bestimmt wird. Das führt dann dazu, daß einige Ziffern- bzw. Zeichentasten anders als bei der Schreibmaschine üblich zu beschriften sind. Dieser Kompromiß dürfte jedoch durch den geringen Kodieraufwand gerechtfertigt sein. In Bild 15 ist ein Vorschlag für eine entsprechende Tastenanordnung und -beschriftung angegeben.
Die Tastatur wird durch die Leitungen TD0 bis TD6 und TAST über einen PIO-Port, wie in Tabelle 2 gezeigt, an den Rechner angeschlossen. Da diese Tastatur als separate Einheit funktioniert, kann man nach dem Anlegen der Betriebsspannungen mit einem Prüfstift oder einem Universalmesser sofort überprüfen, ob ein Tastendruck auch den der Tabelle 1 entsprechenden Kode an den Ausgängen liefert. Auf diese Art und Weise lassen sich Fehler suchen, ohne dazu den Rechner zu benötigen. Es wäre natürlich auch möglich gewesen, diese Tastatur als Matrix zu gestalten, die durch den Rechner abgefragt und dekodiert wird, um so per Software die Anpassungen an die jeweilige Tastenanordnung zu erreichen. Eine solche Lösung hätte dann aber entweder den ganzen PIO oder ein zusätzliches Businterface, zusätzlichen Dekodierspeicherplatz und ein wahrscheinlich aufwendigeres Tastatureingabeprogramm erfordert, wäre also im Endeffekt kaum einfacher. Und da Speicherplatz zur Zeit doch noch eine recht teure Angelegenheit ist, dürfte die gewählte Lösung auch von diesem Gesichtspunkt die günstigere sein. Außerdem erschweren solche Softwaremodifikationen nur unnötig die Kompatibilität aller "AC1", die ja zum problemlosen Softwareaustausch erforderlich ist.
Durch diese Tastatur und das darauf aufbauende Eingabeprogramm ist diese Schnittstelle zum Rechner eindeutig festgelegt. Das schließt jedoch nicht aus, auch andere Tastaturlösungen zu verwenden, wenn mit ihnen das gleiche Verhalten gegenüber dem Rechner realisiert werden kann.

Das Fernschreibinterface

Die Schaltung zum Anschluß eines Fernschreibers bzw. zu seinem Ersatz durch "AC1" ist in Bild 16 dargestellt. Sie hat dem Rechner eingabeseitig zu signalisieren, ob Linienstrom fließt oder nicht und dementsprechend ausgabeseitig den Linienstrom zu schalten. Dieses Interface realisiert also nur die Funktion von Sendekontakt und Empfangsmagnet, es trennt den Rechner galvanisch von der Fernschreiblinie. Bei entsprechender Beschaltung des Fernschreibsteckers ist es damit möglich, die mechanische Maschine durch das elektronische Display zu ersetzen, indem man nur die Stecker austauscht. Die Linienstromquelle ist dann weiterhin erforderlich. Als Relais werden 6V-Reed-Relais verwendet, da mit Reed-Kontakten die erforderliche Schaltgeschwindigkeit realisiert werden kann. Bei gemeinsamem Betrieb dieser Interfaceschaltung und einer mechanischen Maschine in einer Linie mit relativ hoher Spannung der Linienstromquelle (über 60 V) kann es zum Kleben des Relaissendekontaktes infolge zu hoher Induktionsspannungsspitzen kommen. Hier muß man entweder ein größeres Reed-Relais einsetzen, oder man reduziert die Spannung der Linienstromquelle auf etwa 60 V. Diese Interfaceschaltung wurde bisher bei verschiedenen Übertragungsraten, mit mechanischer Fernschreibmaschine in Reihe, bis 50 Baud und als Einzelgerät bis 110 Baud getestet. Andere Schaltungen, die das gleiche logische Verhalten zeigen, sind natürlich ebenfalls einsetzbar. Hier ist z.B. in [8] eine weitere Möglichkeit zum Anschluß eines Fernschreibers gezeigt. Bei der Verbindung von Sender, Empfänger und RTTY-Display kann auch ganz auf ein solches Linienstrominterface verzichtet werden. Wichtig ist nur, daß am Ende immer das gleiche logische Verhalten für den PIO-Anschluß des Rechners realisiert wird. Die Serien/Parallel­Wandlung, das Kodieren und Dekodieren der Fernschreibzeichen erfolgt vollständig per Software, wie es später noch erläutert wird. In Verbindung mit dem RTTY-Konverter ist dieses Interface auch für den CW-Betrieb einsetzbar. Der Konverter wird dann im Space-only-Betrieb als Tonfilter verwendet.

Kassettenrekorder-Interface

Das Interface zum Anschluß des Kassettenrekorders bzw. Magnetbandgeräts wird später veröffentlicht, da die Testphase dafür noch nicht abgeschlossen ist. Auch hier wird versucht, mit minimalem Aufwand auszukommen.

Leiterplatte, Aufbau- und Testhinweise

An dieser Stelle ist die Vorstellung der Grundbaugruppen des Amateurcomputers "AC1" abgeschlossen. Sobald die Überprüfung der Topologie der Grundleiterplatte beendet ist, folgen darauf bezogene Aufbau- und Testhinweise sowie die Bestückungsunterlagen, möglicherweise aber erst nach einer Unterbrechung dieser Beitragsfolge.

Software

Um einen ersten Einblick in die Möglichkeiten zu geben, die einem mit solchen minimalkonfigurierten Mikrorechnern bereits zur Verfügung stehen, sei an dieser Stelle ein kurzer Einblick in den Stand der Programmentwicklung für den "AC1" gegeben. Im Rahmen dieser Veröffentlichung ist es jedoch nicht möglich, das "Wie" der Programmierung zu erläutern. Dazu muß vorerst auf die dazu bereits erschienene Fachliteratur, z.B. [2] und [3], verwiesen werden.
Um den "AC1" möglichst schnell zur Programmentwicklung und -testung nutzen zu können, wurde zuerst ein Monitorprogramm erarbeitet. Und darauf aufbauend folgten Programme für CW und RTTY sowie ein Mini-BASIC-Interpreter.

Das Monitorprogramm

Nach dem Einschalten bzw. jedem RESET-Impuls beginnt der Amateurcomputer, wie in Teil 2 bereits erläutert, ab Adresse 0 mit der Ausführung des Programms. Um hier universell zu bleiben, und nicht bei jedem Programmwechsel auch die EPROMs austauschen zu müssen, bekam dieser Anfangsbereich ein Programm, das nach dem Einstellen eines bestimmten Anfangszustandes (Bildschirmlöschen, Fertigmeldung), Initialisierung genannt, in den Dialog mit dem Benutzer tritt, so daß dieser mittels entsprechender Befehle über die weitere Programmausführung entscheiden kann. In seiner Funktion stellt es sozusagen ein minimales Betriebssystem dar.
Das Monitorprogramm enthält Befehle zum Einlesen und Abspeichern von Programmen bzw. Speicherinhalten auf Magnetband, zur Anzeige und Modifizierung von Speicher- und Registerinhalten, zum Ansprung von Nutzerprogrammen und zur ProgrammentwickIung und -testung. Damit ist es also bereits möglich, selbst Programme in Maschinensprache zu entwickeln, zu testen und das fertige Programm z.B. auf Magnetbandkassetten abzuspeichem bzw. auch Programme für den "AC1" einzulesen und abzuarbeiten, die andere Amateure entwickelt haben. Das Einlesen der Programme vom Magnetband in den RAM-Speicher des Rechners und der nachfolgende Ansprung dieser Programme soll den Regelfall bei der Nutzung des "AC1" darstellen. Auf diese Art ist ein relativ schneller Programmwechsel möglich, und, weil sich bei diesem Prinzip nur das gerade benötigte Programm im Speicher des Rechners befinden muß, braucht dieser auch nur so groß zu sein, wie es das jeweilige Programm erfordert.
Die Möglichkeit, häufig benötigte Programme im restlichen bzw. erweiterten EPROM-Speicher abzulegen, besteht natürlich auch, ist aber weitaus teurer als die Nutzung des externen Magnetband­Speichers.
Das Monitorprogramm für den "AC1" entstand auf der Grundlage von [10]. Dazu wurde der dort veröffentlichte hexadezimale Speicherausdruck (Hexlisting) rückübersetzt, kommentiert und der Hardware des "AC1" angepaßt; also mit entsprechenden Routinen für Tastatur, Bildschirm und Tonbandausgang versehen. In der endgültigen Version wird er etwa 2 KByte EPROM und etwa 60 RAM­Zellen belegen. Eine abgerüstete Variante, die nur das Einlesen und Anspringen von Programmen ermöglicht und dann etwa 1 KByte EPROM benötigt, ist ebenfalls denkbar.

CW- und RTTY-Programme

Diese beiden Programme sind nun schon spezielle Anwendungsbeispiele für den Einsatz des "AC1" auf dem Gebiet des Amateurfunks. Das CW-Programm wurde als Morseschreibmaschine gestaltet. Nach der Wahl der Geschwindigkeit erfolgt die exakte Ausgabe des eingegebenen Textes, bis das zuletzt eingegebene Zeichen erreicht ist. Zur Orientierung wird das jeweils auszugebende Zeichen auf dem Bildschirm durch einen Stern ersetzt, so daß man sofort sieht, an welcher Stelle die Morseausgabe gerade erfolgt. Eine Erweiterung zur Eingabe von Speichertexten und zur Morsezeichendekodierung ist vorgesehen.
Eine der interessantesten Anwendungen von Computern im Amateurfunk dürfte wohl das Funkfernschreiben sein. Deshalb wurde auch für den "AC1" ein RTTY-Programm geschrieben und bereits mehrfach mit Erfolg eingesetzt. Mit ihm ist es möglich, in jeder gebräuchlichen Baudrate (ab 35 Bd in Schritten zu 1 Bd aufwärts frei wählbar) RTTY-Funkbetrieb entsprechend dem Telegraphenalphabet Nr.2 der CCITT durchzuführen. Standardtexte wie RY-Schleife oder Stationsbeschreibung lassen sich aus dem Speicher abrufen. Durch den geschickten Einsatz von Speichertexten ist es auch für Ungeübte relativ schnell möglich, einen raschen RTTY-Funkbetrieb zu realisieren. Das bei der mechanischen Maschine notwendige Umschalten zwischen Buchstaben und Ziffern erfolgt hier automatisch, mehr noch, je Zeiteinheit, die 10 Fernschreibzeichen entspricht, wird das gerade aktuelle Registerzeichen automatisch in die Aussendung eingefügt. Damit erhöht sich die Sicherheit der Übertragung.
Die Serien/Parallel-Wandlung und die Kodierung bzw. Dekodierung der Fernschreibzeichen erfolgen ausschließlich mit dem Grundmodul des "AC1" per Software. Im Gegensatz zur mechanischen Maschine tastet der "AC1" jeden Informationsschritt dreimal ab (bei 25, 50 und 75 % der Schrittweite) und bildet daraus den Mittelwert. War z.B. kein echter Startschritt, sondern nur ein Störimpuls vorhanden, so bedeutet das den sofortigen Übergang zur Empfangsbereitschaft. Wurde nicht mindestens ein Stoppschritt erkannt, so erfolgt keine Ausgabe des Zeichens auf dem Bildschirm. Durch diese Maßnahmen ergibt sich gegenüber der mechanischen Maschine eine größere Störsicherheit und die Synchronisation beim Einschalten in eine laufende Sendung erfolgt schneller.
Das Zeitraster zur Realisierung der entsprechenden Baudrate ist durch den CTC vom quarzstabilisierten Systemtakt des Rechners abgeleitet, so daß die Toleranz der Baudrate im Bereich weniger Promille liegt Ein weiterer, bestimmt nicht unerheblicher Vorteil eines solchen RTTY-Displays ist seine vollständige Geräuschlosigkeit, wenn man vom Tastengeräusch und dem eventuellen Klappern eines Fernschreibrelais einmal absieht. Eine Erweiterung auf den ASCII-Zeichensatz ist möglich und vorgesehen.

Mini-BASIC-Interpreter

Zur Demonstration der Möglichkeiten, die sich durch den Einsatz einer höheren Programmiersprache ergeben, aber auch als erste Möglichkeit für den Amateur, sich damit vertraut zu machen, wurde das in [11] veröffentlichte Tiny-BASIC zum Einsatz für den "AC1" bearbeitet. Durch die Ausnutzung einiger Möglichkeiten, die der Befehlssatz der U 880 gegenüber dem dort eingesetzten Prozessor bietet, eine etwas andere Organisation und das Weglassen einiger Befehle entstand ein Mini-BASIC, das in den restlichen 2 KByte des EPROM-Speichers des "AC1" abgelegt wurde. Der Befehlsvorrat stellt eine Untermenge der Programmiersprache BASIC dar, die sich im Rahmen von Computern dieser Art stark verbreitet hat und sich durch ihre relativ leichte Erlernbarkeit auszeichnet. Der hier realisierte Interpreter enthält Steuerbefehle, programmierbare Befehle (z.B. Unterprogrammaufruf, Ein- und Ausgabe, Sprungbefehl), Funktionen, logische Verknüpfungen und eine Ganzzahlarithmetik mit den vier Grundrechenarten im Bereich -32768 bis +32767. Mit Hilfe des Monitorprogramms sind die BASIC-Programme auch auf Magnetband speicherbar.
In der Lernphase sowie zur Realisierung einfacher Programme dürfte dieses Mini-BASIC bereits gute Dienste leisten. Für den späteren Einsatz ist dann ein vollwertiges BASIC geplant, das aber dann eine Speichererweiterung des RAM-Bereichs um mindestens 16 KByte erfordert.
Die Bilder 17, 18, 19 und 20 sollen einen Eindruck in die Möglichkeiten des Monitorprogramms und des Mini-BASIC-Interpreters vermitteln.

Änderungen

Beim Umzeichnen der Stromlaufpläne haben sich leider ein paar kleine Fehler eingeschlichen:
Bild 4: Hinter dem Ausgang von DG7 ist der Negator DN55 einzufügen.
Bild 7: Die Leitung LD geht nicht an den Ausgang von DG10, sondern an den Ausgang von DG9. Der obere Eingang von D45 geht nicht an den Ausgang von DG13, sondern an den Ausgang von DG14.
Die Leitung zum unteren Eingang von D45 ist abzutrennen. Der untere Eingang von D45 geht an den Ausgang von DN43.
Hinweis: Der Zeichengenerator U 402 muß in der Ausführung für TTL-Betriebsspannungen verwendet werden und im Zeichenvorrat lateinische Buchstaben enthalten. Diese Forderung erfüllen z.B. die Bitmuster 510 und 513.

weiter mit Teil 7