Funkamateur 05/84 |
zurück zu Teil 5 |
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.
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/ParallelWandlung,
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.
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.
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.
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.
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 MagnetbandSpeichers.
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 RAMZellen 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.
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.
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.