Funkamateur 05/90

 

K 6311...14 am AC1

M. FISCHER - Y21WR

Angeregt durch die letzten Veröffentlichungen im FUNKAMATEUR zum AC1 möchte ich eine Druckerroutine für die Druckertypen K 6311...14 mit IFSS-Schnittstelle vorstellen.

Hardware

Die Schaltung zur Ansteuerung des Druckers (Bild 1 zeigt den Stromlaufplan) habe ich aus [1] entnommen und so ergänzt, daß zusätzlich zur IFSS-Schnittstelle eine V.24-Druckerschnittstelle zur Verfügung steht. Die Ansteuerung des Interfaces erfolgt mit der im AC1 vorhandenen PIO (Port B).
Die Parallel/Serien-Wandlung wird programmtechnisch realisiert. Die Belegung des PIO-Ports B ist so festgelegt, daß die Ein- und Ausgabeleitungen der Belegung des RTTY-Konverters nach [2] entsprechen.

Software

Druckerroutine
Die Startadresse der Druckerroutine ist 3030H. Sie ist als Unterprogramm aufgebaut und mit Return (0C9H) abgeschlossen. Das Programm zur Ansteuerung des Druckers wurde auf einem zusätzlich installierten EPROM (Adresse 3000H) untergebracht. Durch Verwendung der Unterprogrammtechnik und einer Interruptroutine ist das Programm nicht mehr frei im Speicher verschiebbar, ohne bestimmte Adressen ändern zu müssen.
Bei Beachtung dieser Besonderheiten (Tabelle 1) ist es jedoch auch auf andere Speicherbereiche übertragbar. Das Programm ist so aufgebaut, daß es gleichermaßen für RAM- und ROM-Bereiche verwendbar ist.
Die Übergabe der Zeichen erfolgt gemäß den Vereinbarungen der Programme EDAS4 und TEDIT im A-Register der CPU. Alle anderen benutzten Register werden im Stack abgelegt und nach Beendigung der Druckroutine wieder zurückgestellt. Durch Steuerzeichen kann der Drucker auf eine andere Schriftart umprogrammiert werden. Die Zuordnung der Steuerzeichen zur entsprechenden Schriftart ist Tabelle 2 zu entnehmen [3].
Die Betriebsart "Breitdruck" ist zusätzlich noch durch ein sichtbares Zeichen (kommerzielles A; 40H) einstellbar. Das erleichtert das Arbeiten mit dem Texteditor in der Betriebsart "Breitdruck".
Zu beachten ist, daß nach dem Zeichen 0DH (CR) der Drucker alle Zeichen wieder in Normalschrift druckt.
Um kontinuierlich drucken zu können, werden die Statussignale des Druckers in einfachster Form ausgewertet. Das Programm geht davon aus, daß der Drucker in Ordnung ist und Papier eingelegt wurde. Bei dieser Vereinfachung können nur die Signale "Sperre für Zeichenübertragung" (Druckerpuffer voll) und "Freigabe für nächste Zeichenübertragung" (Druckerpuffer aufnahmebereit) vorkommen. Beide Signale werden gleich behandelt. Beim Senden dieser Signale vom Drucker löst das Programm im Druckprogramm ein Interrupt aus. In der Interruptroutine werden eine Warteschleife abgearbeitet und danach das Senden der Zeichen fortgesetzt. Diese Zeit reicht aus, um erneut Zeichen in den Puffer des Druckers aufzunehmen.

Schreibprogramm
Zusätzlich habe ich noch ein kleines Programm erstellt, das die Möglichkeit bietet, über die Tastatur eingegebene Zeichen auf Bildschirm und Drucker zugleich auszugeben. Es dient zur Kontrolle der Betriebsbereitschaft des Druckers. Gleichzeitig läßt sich so der AC1 als Schreibmaschine verwenden. Dieses Programm wird über den Kennbuchstaben "s" gestartet. Der Abbruch des Programms erfolgt mit CTRL-X.

Bildschirmkopierprogramm
Oft besteht der Wunsch, sich den Inhalt von Speicherbereichen auflisten und ausdrucken zu lassen.
Ich möchte zum beschriebenen Schreibmaschinenmodus ein zweites Anwenderprogramm der Druckroutine anfügen. Dieses Programm gestattet es, vom Bildschirmspeicherinhalt eine Hardcopy anzufertigen. Das Programm ist so aufgebaut, daß der gesamte Bildschirminhalt gedruckt wird. Da im Bildschirmspeicher bereits ASCII-Zeichen abgespeichert sind, können diese sofort ohne Umwandlung gedruckt werden. Damit ist es möglich, alles, was auf dem Bildschirm mit druckbaren ASCII-Zeichen darzustellen ist und selbst keine Druckerroutine beinhaltet (Monitor, Mini-BASIC, 8-KByte-BASIC, CLIST usw.) bildschirmweise zu drucken. Das Programm ist frei im Speicher verschiebbar und über den Kennbuchstaben "i" zu starten. Es benutzt die Unterprogramme der Druckroutine (siehe auch Tabelle 3).

Schlußbetrachtungen
Die vorgestellte Druckerroutine und Interface arbeiten bisher zuverlässig. Beim Ausdrucken von Programmen und Texten wurde kein Datenverlust beobachtet. Das Programm wurde den speziellen Bedingungen des AC1 - Assemblers angepaßt (verschiedene Zeichen bei Zeilenabschluß).
Das Interface ist in der Lage, auch andere Drucker anzusteuern (z.B. Seikosha GP 100 über V.24-Schnittstelle). Eine Anpassung des Programmes an die entsprechenden Druckertypen (Baudrate, Anzahl der Zeichen, Parität) ist jedoch unumgänglich. Bei entsprechender Software läßt sich selbstverständlich auch eine Kopplung von Rechnern über diese Schnittstelle vornehmen. Die Druckeranschlußsteuerung wurde zusammen mit dem RTTY-Konverter [2] in einem Gehäuse untergebracht. Ein Tastenschalter realisiert die Umschaltung der PIO-Anschlüsse entsprechend den Erfordernissen.

Literatur

[1] Lange, H.: Lokales Netz für Mikrorechner,
rfe 34 (1985), H.2
[2] Rössel, G.: Ein einfacher Funkfernschreibzusatz für den Amateurcomputer "AC1",
FUNKAMATEUR 35 (1986), H.2
[3] Manual Robotron K 6311, K 6312 Hard-Copy­Drucker, Oktober 1985

109 KByte 118 KByte 347 KByte
Stromlaufplan Programme Tabellen