Funkamateur 05/89

 

S 3004 als Schönschreibdrucker an "AC1"

F.HEYDER-Y21SO

Die elektronische Schreibmaschine S 3004 ist für den Anschluß als Drucker an einen Computer vorbereitet. Normalerweise ist dafür noch ein spezielles Interface notwendig, um das Protokoll eines Standardanschlusses (z.B. V.24) in das für die S 3004 notwendige umzuwandeln.
Für den Amateur, besonders für den, der seinen Computer selbst gebaut hat, ist es sicher aber auch legitim, diese Aufgabe seinen Computer gleich miterledigen zu lassen. Es ist dann zwar eine spezielle Schnittstelle für die S 3004 und vermutlich nur für diese Maschine, aber es spart Kosten. Bevor ich diese Lösung beschreibe, muß ich noch auf zwei Tatsachen, die unbedingt zu beachten sind, hinweisen. Erstens sind dazu die, Ein/Ausgangs-Leitungen der S 3004 mit einem eigenen Interface zu beschalten. Da es sich hier um die ungeschützten Leitungen der seriellen Schnittstelle eines Einchipmikrorechners U 884 handelt, ist entsprechende Sorgfalt angeraten! Also wenigstens l-kΩ-Schutzwiderstände in alle Leitungen außer Masse, oder besser, Optokoppler einsetzen und somit Schreibmaschine und Computer galvanisch voneinander trennen!
Zweitens befindet sich bei dieser Art des Anschlusses nichts zwischen dem Computer und der Schreibmaschine, das die vom Computer ausgesendeten Informationen auf ihre Zulässigkeit prüft. Da die Schnittstelle an der S 3004 vermutlich aber auch zu Servicezwecken gebraucht wird, existieren Kodes, die nichts mit dem eigentlichen Schreibbetrieb zu tun haben und somit in der S 3004 unerlaubte Systemdauerzustände erzeugen oder gar die Schrittmotoren in Gefahr bringen. Das nachfolgend beschriebene Programm dürfte keinen dieser Kodes erzeugen. Aber bereits ein Eintippfehler an der richtigen Stelle, eigene Programmierversuche, die versehentlich diese Schnittstelle berühren, Rechnerabstürze oder andere Ursachen können dazu führen. Um die Wahrscheinlichkeit für diese Extremfälle zu minimieren, sollte man die Maschine nur zum Drucken einschalten oder noch besser, sie nur zum eigentlichen Drucken an den Computer anschließen. Für eventuell auftretende Folgen ist natürlich jeder selbst verantwortlich.

Hardware

Nach dem Einschalten ist die S 3004 auf 1200 Bd (1 Startbit, 8 Datenbit, 1 Stopbit) eingestellt. Zum Anschluß an den Computer werden die Leitungen Dateneingang (A 11) und Empfangsbereitschaft (A 12) benötigt und an die Ausgänge PB1 und PB3 der PIO der Grundleiterplatte angeschlossen. Die Masse des Computers ist dann mit A 13 zu verbinden. Diese Minimalvariante unter Verwendung der Schutzwiderstände ist im Bild dargestellt und funktioniert seit etwa 9 Monaten bei etwa einem Meter Kabellänge ohne Beanstandungen. Sicherer ist aber eine galvanische Trennung durch Optokoppler. Dafür kann man aus der S 3004 an B 12 + 5 V entnehmen.

Software

Das hier vorgestellte Druckprogramm gestattet es, sowohl alle Ausgaben, die zum Bildschirm über den RST 10 erfolgen, auch auf Papier zu bringen, als auch als gewöhnlicher Druckertreiber, wie er z.B. für EDAS oder den Texteditor benötigt wird, zu arbeiten.
Für den ersten Anwendungsfall enthält es drei "Kennbuchstaben" mit folgender Funktion:

2 - Initialisierung, d.h., Programmierung der PIO und Rücksetzen des Zeilenzählers.
1 - Drucken parallel zur Bildschirmausgabe.
Jede Ausgabe des RST 10 erfolgt zuerst auf den Drucker, dabei verlangsamt sich die Ausgabe auf den Schirm entsprechend der Druckergeschwindigkeit auf etwa 10 Zeichen/s.
0 - Drucken parallel zur Bildschirmausgabe beenden.

Für den zweiten Anwendungsfall als gewöhnlicher Druckertreiber sind für die entsprechenden Programme folgende Einsprungadressen von Bedeutung:
2005H Initialisierung,
201DH Zeichenausgabe, Zeichen im Akku.
Beide Routinen zerstören kein Register.
Der Druckertreiber realisiert die Kodes 20H bis 7FH entsprechend dem Zeichengenerator, also ohne Umlaute. Bei Zeichen, die das Typenrad nicht enthält, gelangt ein Leerzeichen zur Ausgabe. Sind die Umlaute gewünscht, so müssen die entsprechenden Kodes der S 3004 (65H bis 70H) an den dem deutschen ASCII-Zeichensatz entsprechenden Stellen der Kodetabelle eingetragen werden. Damit für den Papierwechsel der einzelnen Blätter ausreichend Zeit ist, stoppt das Programm nach 60 Zeilen automatisch und setzt nach der Eingabe eines "P" den Druck fort. Da der Anschluß der S 3004 über die Original-PIO des "AC1" erfolgt, wird diese bei der Initialisierung natürlich umprogrammiert. Das ist bei der Nutzung weiterer freier PIO-Leitungen dieses Ports zu beachten; auf die Funktion der Kassettenroutinen des Monitors hat es keinen Einfluß. Die Realisierung der Bitzeit der seriellen Ausgabe zur S 3004 erfolgt mit einer Zeitschleife. Im Hexlisting sind die adreßabhängigen Byte unterstrichen.
Das Programm untergliedert sich in die folgende Bestandteile:

2001H ... 2016H Initialisierung
201DH ... 204BH Druckhauptprogramm
204DH ... 2084H Senderoutine 1200 Bd
2085H ... 20E4H Zeichentabelle ASCII-Druckkode
20E5H ... 2123H Parallelschaltung zu RST 10 ein/aus
2124H ... 212CH Zeitschleife für Bitzeit
2006H und 2049H Einstellen der Zeilenzahl/Seite

29 KByte 88 KByte
Bild 1 Hexlisting