Funkamateur 05/90 |
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.
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.
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.
[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-CopyDrucker, Oktober 1985 |
109 KByte | 118 KByte | 347 KByte |
Stromlaufplan | Programme | Tabellen |