Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
z9001:drucken [2014/08/30 09:47] – [Druckermodule von Robotron und Drucker mit serieller Schnittstelle] volkerpz9001:drucken [2020/07/24 09:55] (aktuell) – [Anschluss von Druckern mit paralleler Schnittstelle (centronics)] volkerp
Zeile 78: Zeile 78:
 Beim alphanumerischen Druck werden Grafikzeichen generell als "*" gedruckt.Die Verwendung von Systemressourcen und die Anbindung an das OS ist ebenfalls je nach Treiber leicht verschieden. Gemeinsam ist die Nutzung von max. 182 Byte am Speicherende für die Seitenformat-Einstellungen und den Zeilenpuffer (EOR wird entsprechend herabgesetzt). Die älteren Treiber halten sich noch nicht einmal an die Vorschriften für System-Treiber (s. OS-Handbuch Z9001), und implementieren nur die Treiberfunktion 0 (Statusabfrage). Alle anderen Funktionen werden nicht ausgewertet, es wird immer davon ausgegangen, dass nur noch die Zeichenausgabe genutzt wird! Beim alphanumerischen Druck werden Grafikzeichen generell als "*" gedruckt.Die Verwendung von Systemressourcen und die Anbindung an das OS ist ebenfalls je nach Treiber leicht verschieden. Gemeinsam ist die Nutzung von max. 182 Byte am Speicherende für die Seitenformat-Einstellungen und den Zeilenpuffer (EOR wird entsprechend herabgesetzt). Die älteren Treiber halten sich noch nicht einmal an die Vorschriften für System-Treiber (s. OS-Handbuch Z9001), und implementieren nur die Treiberfunktion 0 (Statusabfrage). Alle anderen Funktionen werden nicht ausgewertet, es wird immer davon ausgegangen, dass nur noch die Zeichenausgabe genutzt wird!
  
-===== Softwarequellen =====+===== Download =====
  
-Robotron hat den Quelltext zu V24A3 veröffentlicht, so dass man die SIO-Ansteuerung und Geräteeinbindung nicht neu erfinden muss. Ich habe mir die Mühe gemacht und alle Treiber disassembliert und aufbereitet. Alle mir bekannten Druckertreiber, Sourcen etc. finden sich in diesem {{druckertreiber.zip|Paket}}.+  * {{druckertreiber.zip|}}. Alle Modul-ROMs, Beschreibungen, weitere Teiber, Quellcodes zu allen Treibern uam. 
 + 
 +Robotron hat den Quelltext zu V24A3 veröffentlicht, so dass man die SIO-Ansteuerung und Geräteeinbindung nicht neu erfinden muss. Ich habe mir die Mühe gemacht und alle Treiber disassembliert und aufbereitet. Alle mir bekannten Druckertreiber, Sourcen etc. finden sich im Zip-Archiv.
  
 u.a. u.a.
Zeile 102: Zeile 104:
 ===== Was erwartet das Betriebssystem? ===== ===== Was erwartet das Betriebssystem? =====
  
-Das OS des Z9001 ist basierend auf CP/M entwickelt worden und hat dessen Treiberkonzept übernommen. So gibt es 4 logische Geräte, die von den Anwendungsprogrammen genutzt werden können: CONST, READER, PUNCH, LIST. Diesen logischen Geräten werden nun physische Gerätetreiber zugeordnet. Das erfolgt mittels Kommando ASGN. Üblicherweise wird CONST der Tastatur und dem Bildschirm zugeordnet und LIST dem Drucker.+Das OS des Z9001 ist basierend auf CP/M entwickelt worden und hat dessen [[z9001:software:os:geraetetreiber|Treiberkonzept]] übernommen. So gibt es 4 logische Geräte, die von den Anwendungsprogrammen genutzt werden können: CONST, READER, PUNCH, LIST. Diesen logischen Geräten werden nun physische Gerätetreiber zugeordnet. Das erfolgt mittels Kommando ASGN. Üblicherweise wird CONST der Tastatur und dem Bildschirm zugeordnet und LIST dem Drucker.
  
 Damit ein physischer Gerätetreiber so zugeordnet werden kann, muss er einige Eigenschaften erfüllen:  Damit ein physischer Gerätetreiber so zugeordnet werden kann, muss er einige Eigenschaften erfüllen: 
Zeile 129: Zeile 131:
 Das Druckermodul sollte man so umbauen, dass es als vollwertiges V24-Modul genutzt werden kann (s. unten und {{192k_RAM-EPROM-Modul_Softwarebeschreibung.pdf|Beschreibung 192K-Modul}}): Für eine vollständige V24-Schnittstelle sind lediglich alle vorhandenen Anschlüsse auch zu nutzen. Selbst im angebauten Kabel sind noch Adern frei! Das Druckermodul sollte man so umbauen, dass es als vollwertiges V24-Modul genutzt werden kann (s. unten und {{192k_RAM-EPROM-Modul_Softwarebeschreibung.pdf|Beschreibung 192K-Modul}}): Für eine vollständige V24-Schnittstelle sind lediglich alle vorhandenen Anschlüsse auch zu nutzen. Selbst im angebauten Kabel sind noch Adern frei!
  
-Aßerdem ist es besser, statt RTS das Signal DTR zu nutzen. Dazu muss auf der Leiterplatte der Leiterzug zur SIO Pin 17 getrennt werden und stattdessen mit Pin 16 verbunden werden! (s.u.)+<del>Außerdem ist es besser, statt RTS das Signal DTR zu nutzen. Dazu muss auf der Leiterplatte der Leiterzug zur SIO Pin 17 getrennt werden und stattdessen mit Pin 16 verbunden werden!</del> (s.u.)
  
 Alle  Module  sind  herstellerseitig  nur  für  die  Richtung  Ausgabe  zum  Alle  Module  sind  herstellerseitig  nur  für  die  Richtung  Ausgabe  zum 
Zeile 173: Zeile 175:
 Betriebsart reicht aus, wenn man nur drucken will. Falls an die V24- Betriebsart reicht aus, wenn man nur drucken will. Falls an die V24-
 Schnittstelle aber ein anderes Gerät - z.B. ein zweiter Rechner zur  Schnittstelle aber ein anderes Gerät - z.B. ein zweiter Rechner zur 
-Datenübertragung - angeschlossen werden soll, muß mit dem Modul auch +Datenübertragung - angeschlossen werden soll, muss mit dem Modul auch 
 empfangen werden können. Folgender Umbau ist durchzuführen:  empfangen werden können. Folgender Umbau ist durchzuführen: 
    
-1.  Auf der Rückseite der Leiterplatte am SIO (U 8560) den Leiterzug vom  +1.  <del>Auf der Rückseite der Leiterplatte am SIO (U 8560) den Leiterzug vom  
-Anschluß 17 (RTSA) trennen und mit  einer  kleinen  Drahtbrücke  an  16  (DTRA)  +Anschloss 17 (RTSA) trennen und mit  einer  kleinen  Drahtbrücke  an  16  (DTRA)  
-anlöten.  (Dieses  Signal  wurde  im  Originalzustand  nicht benutzt.) +anlöten.  (Dieses  Signal  wurde  im  Originalzustand  nicht benutzt.)</del> 
    
 2.  Auswechseln des Kabels. Es wird vieradriges abgeschirmtes Kabel benötigt.  2.  Auswechseln des Kabels. Es wird vieradriges abgeschirmtes Kabel benötigt. 
Zeile 199: Zeile 201:
 </code> </code>
    
-(in Klammern: Anschlußnummern in den Unterlagen von U.Zander)+(in Klammern: Anschlussnummern in den Unterlagen von U.Zander)
  
-Die Anschlußbelegung der Signale CTS, TxD, SG entspricht der Originalbelegung +Die Anschlussbelegung der Signale CTS, TxD, SG entspricht der Originalbelegung 
 mit 25 poligem Stecker. An der rechten  Seite  sind  die  Signalbezeichnungen  mit 25 poligem Stecker. An der rechten  Seite  sind  die  Signalbezeichnungen 
 angegeben,  die  für  die  Buchse  an  einem  angeschlossenen  Gerät gelten. **Die  angegeben,  die  für  die  Buchse  an  einem  angeschlossenen  Gerät gelten. **Die 
Zeile 213: Zeile 215:
 Buchse, kein Nullmodemkabel!) Buchse, kein Nullmodemkabel!)
  
 +
 +**RTS vs. DTR**
 +
 +http://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=11373, [415]
 +
 +Holm:
 +Ich habe nun eine Weile mit den SIO Treibern gekämpft, genauer gesagt mit der Hardware Flusskontrolle.
 +Ich habe mehrmals gedacht ich habe eine Macke, aber das Problem scheint prinzipieller Natur bei der SIO zu sein. Üblicherweise verdrahtet man RTS und CTS gekreuzt zu Flusskontrolle, aber bei der SIO hat die Sache einen Haken, nämlich den hier:\\
 +"Sobald das RTS-BIT eines Kanals gesetzt ist, geht die zugehörige RTS-Leitung in den Low-Zustand über. Wird das RTS-BIT in der asynchronen Betriebsart rückgesetzt, geht die zugehörige RTS-Leitung in den High-Zustand, sobald das Senderegister leer ist. In der synchronen Betriebsart..."
 +
 +D.h. RTS macht nicht so recht was ich mit ihm machen will sondern geht eigene Wege, was daran liegt das RTS ursprünglich einen anderen Zweck hatte und wohl deshalb dieses Verhalten zeigt weil z.B. die ACIA des 6800 Systems da einen fetten Bug hat, die bricht nämlich die Übertragung nicht nach einem gesendeten Byte ab, sondern mitten drin :-~ was zwangsläufig zu Kauderwelsch auf im Empfänger führt.
 +
 +Bei RTS/CTS Handshake dient der RTS Ausgang aber nicht der Bitte Senden zu dürfen sondern als Signal an den gegenüberliegenden Sender ggf. das Senden einzustellen weil der Empfangspuffer voll ist, das bedeutet das RTS hier ein ziemlich suboptimaler Ausgang der SIO zu diesem Zweck ist.
 +Ich habe ne Weile gesucht, andere Leute haben das damit gelöst das sie nicht den RTS Ausgang genutzt haben sondern den frei programmierbaren DTR.
 +
 +11.2.16:\\
 +DCD der SIO ist jeweils auf Masse zu legen da der Kanal sonst gesperrt wird. Wer CTS auch nach Masse brückt gibt den Sender der SIO ständig frei so dass dieser Sendet ohne auf HW Flußkontrolle Rücksicht zu nehmen, DTR (RTS) bleibt dann einfach frei. 
 ===== Anschluss von Druckern mit paralleler Schnittstelle (centronics) ===== ===== Anschluss von Druckern mit paralleler Schnittstelle (centronics) =====
  
-Für Drucker mit Parallelschnittstelle bietet sich das E/A-Modul an oder es wird der User-Port des Z9001 genutzt. Die Hardware für eine solche Erweiterung hält sich in minimalen Grenzen. Einen [[z9001:literatur:treiber|umfangreichen Beitrag]] dazu gab in der mikroprozessortechnik (Dr. Frank Schwarzenberg, "Standard-Interfaces über den User-Port des KC85/1", mp 10/87, S.311-315) +Für Drucker mit Parallelschnittstelle bietet sich das E/A-Modul an oder es wird der User-Port des Z9001 genutzt. Die Hardware für eine solche Erweiterung hält sich in minimalen Grenzen. Einen umfangreichen Beitrag dazu gab in der mikroprozessortechnik (Dr. Frank Schwarzenberg, "[[z9001:literatur:treiber|Standard-Interfaces über den User-Port des KC85/1]]")  
 + 
 +vgla. practic 2/89 [[z1013:literatur:practic-89-2-2#bit-centronic-schnittstelle]]
  
 {{druckerkabel.jpg?344}} {{druckerkabel.jpg?344}}
  
-Hier ist meine Lösung: An einem normalen Centronics-Kabel wird der Sub-D-Stecker abgebaut und ein 3x5-DDR-Steckverbinder angeschlossen. Für das Ready-Signal ist ein D121 zusätzlich im Relaisgehäuse platziert. Dazu gehört mein {{drucker.zip|Vollgrafikdruckertreiber}} LX86NR. Beim Einlesen im OS des Computers stellt sich der Treiber automatisch ans logische RAM-Ende und initialisiert seinen Z9001-Modus. Soll im BASIC gedruckt werden, so ist unbedingt das 'memory end' unter den Beginn von LX86NR zu stellen. Es gibt 3 Modi: Z9001-Modus, Vollgraphik-Modus (Es werden alle Grafikzeichen und ein Hardcopy korrekt gedruckt!), Intern-Modus. +Hier ist meine Lösung: An einem normalen Centronics-Kabel wird der Sub-D-Stecker abgebaut und ein 3x5-DDR-Steckverbinder angeschlossen. Für das Ready-Signal ist ein D121 zusätzlich im Relaisgehäuse platziert. Dazu gehört mein {{drucker.zip|Vollgrafikdruckertreiber}} LX86NR, -> [[z9001:drucken#drucken_mit_dem_megamodul|EPSON-Treiber im Mega-Modul]]. Beim Einlesen im OS des Computers stellt sich der Treiber automatisch ans logische RAM-Ende und initialisiert seinen Z9001-Modus. Soll im BASIC gedruckt werden, so ist unbedingt das 'memory end' unter den Beginn von LX86NR zu stellen. Es gibt 3 Modi: Z9001-Modus, Vollgraphik-Modus (Es werden alle Grafikzeichen und ein Hardcopy korrekt gedruckt!), Intern-Modus. 
  
-{{img_3205.jpg?200}}{{img_3213.jpg?200}}+{{:z9001:img_3205.jpg?200|}} {{:z9001:img_3213.jpg?200|}}
  
 +<code>
 +Z9001 User Port Drucker (K6325)
 +
 +D0..D7 >----------------------------> D0..D7
 +/STRB <----------------------------< /ACK
 +
 +          5+---------------+
 +/ARDY >--| EB | I--I | Q |
 +       |      |   |
 +   3|    |      |   |1
 + +-| EA1|      |/Q o---------> /STROBE
 + | |    |      |   |
 + +-| EA2|      |   |
 + |4|    | D121 |   |
 +         | +---------------+
 +             11|    |10
 +        GND      +-||-+
 +                  C
 +                 R R=4,7K
 + | C=10n
 ++5V ---------+
 +</code>
  
 ===== Vollgrafik-Druckertreiber für Anschluss eines Druckers am Userport (Serielle Schnittstelle) ===== ===== Vollgrafik-Druckertreiber für Anschluss eines Druckers am Userport (Serielle Schnittstelle) =====
Zeile 230: Zeile 273:
 ===== Drucken mit dem Megamodul ===== ===== Drucken mit dem Megamodul =====
  
-Das [[.:module_robotron:megamodul|]] enthält diverse Druckertreiber. +Das [[z9001:module_sonstige:megamodul]] enthält diverse Druckertreiber. 
  
 **EPSON** ist mein universeller Vollgrafik-Druckertreiber f. Centronics oder seriell über ein Druckermodul (V24) für diverse Drucker wie LX86, K6313, TD80 (K6304) und 24-Nadel-Drucker wie den LQ400. **EPSON** ist mein universeller Vollgrafik-Druckertreiber f. Centronics oder seriell über ein Druckermodul (V24) für diverse Drucker wie LX86, K6313, TD80 (K6304) und 24-Nadel-Drucker wie den LQ400.
Zeile 240: Zeile 283:
   1-LX86, 2-LQ400, 3-K6313, 4-K6304:    1-LX86, 2-LQ400, 3-K6313, 4-K6304: 
  
-Anschluss: 1- V24-Modul (9600Baud, 8N1), 2 - UserPort lt. mp\\+Anschluss: 1- V24-Modul (9600Baud, 8N1), 2 - UserPort (8 Bit, mein Interface)\\
 Arbeitsmodi: 1-Grafik, 2-ASCII, 3-IBM 1-Vollgrafik, 2-nur '*' bei Grafik, 3-Direktmodus\\ Arbeitsmodi: 1-Grafik, 2-ASCII, 3-IBM 1-Vollgrafik, 2-nur '*' bei Grafik, 3-Direktmodus\\
 unterstützte Drucker: LX86, LQ400, K6313, K6304 (TS80) unterstützte Drucker: LX86, LQ400, K6313, K6304 (TS80)
  • z9001/drucken.1409392038.txt.gz
  • Zuletzt geändert: 2014/08/30 09:47
  • von volkerp