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 [2013/06/12 08:29] – Link mit z9001:module:megamodul geändert zu z9001:module_robotron:megamodul volkerpz9001:drucken [2020/07/24 09:55] (aktuell) – [Anschluss von Druckern mit paralleler Schnittstelle (centronics)] volkerp
Zeile 4: Zeile 4:
 ===== Druckermodule von Robotron und Drucker mit serieller Schnittstelle ===== ===== Druckermodule von Robotron und Drucker mit serieller Schnittstelle =====
  
-{{z9001:module:drucker_modul.jpg?100}}{{z9001:module:drucker_platine.jpg?100}} {{z9001:module:modul_schreibm_aussen.jpg?100}}{{z9001:module:modul_schreibm.jpg?100}} {{rob6304ax.jpg?150}}\\+{{z9001:module:drucker_modul.jpg?0x150}}{{z9001:module:drucker_platine.jpg?0x150}} {{z9001:module:modul_schreibm_aussen.jpg?0x150}}{{z9001:module:modul_schreibm.jpg?0x150}} {{rob6304ax.jpg?0x150}}\\
 (v.l.n.r: Modul 690006.8, Modul 690021.1, K6304) (v.l.n.r: Modul 690006.8, Modul 690021.1, K6304)
  
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 121: Zeile 123:
  
 ===== Umbau eine Druckermoduls als vollwertiges V24- (RS232) Modul =====  ===== Umbau eine Druckermoduls als vollwertiges V24- (RS232) Modul ===== 
 +
 +Der  EPROM  ist  sinnvollerweise auf  allen  Modulen  mittels  DIL-Schalter  abzuschalten 
 +(beide  Schalter aus). Achtung: Die Schalter sind in den Modulen nicht immer gleich eingelötet. Aus ist die Seite ohne Punkt!. 
  
 {{z9001:module:v24umbau.jpg?242}}  {{z9001:module:v24umbau.jpg?242}} 
  
-Noch ein Tipp: Das Druckermodul sollte man so umbauen, dass es als vollwertiges V24-Modul genutzt werden kann (s.a. {{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!
  
-**Hinweis**: Es ist besser, statt RTS das Signal DTR zu nutzen. Dazu muss auf der Leiterplatte der Leiterzug zur PIO Pin17 getrennt werden und stattdessen mit Pin 16 verbunden werden!+<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 
 +Drucker  vorbereitet.  Eine  bidirektionale Arbeitsweise (Ausgabe und Eingabe) 
 +ist erst nach einem kleinen Umbau und Auswechseln des Kabels möglich. 
 +
 +**V.24  Definition der Schnittstellenleitungen** 
 +
 +Am Druckermodul werden nur die folgenden Leitungen verwendet: 
 +
 +  TxD  - Transmitter Data (Sendedaten, Ausgang) 
 +  CTS  - Clear To Send (Senderfreigabe, Eingang) 
 +  SG  - Signal Ground (gemeinsame Masse) 
 + 
 +nach dem Umbau werden folgende Empfängerleitungen ergänzt: 
 +
 +  RxD  - Receiver Data (Empfangsdaten, Eingang) 
 +  DTR  - Data Terminal Ready (Empfänger bereit, Ausgang) 
 +
 +am Modul sollte ein 25poliger oder ein 9poliger SUB-D-Stecker männl. angeschlossen werden.
 +
 +:!: An den DDR-Geräten haben die Drucker Buchsen (weibl.). In der originalen 
 +Beschaltung der Druckermodule sind die Signale gekreuzt angeschlossen: CTS 
 +(SIO, X4) geht an SUB-D-Stecker DTR, TxD (SIO, X5) geht an SUB-D-Stecker RxD. Damit kann der 
 +Stecker kann unmittelbar an einen DDR-Drucker angesteckt werden.
 +
 +Folgendes ist die Standardbelegung der V24-Anschlüsse (ohne Kreuzung der Leitungen)
 +^ Abkürzung ^ Name ^ Beschreibung ^ Pin-Nr. 25-pol. ^ Pin-Nr. 9-pol. ^ Richtung beim DTE (Z9001) ^ Richtung beim DCE (z. B. Drucker) ^
 +| TxD, TX, TD | Transmit Data | Leitung für ausgehende (von DTE gesendete) Daten (negative Logik). | 2 | 3 | Ausgang | Eingang | 
 +| RxD, RX, RD | Receive Data | Leitung für eingehende (von DTE zu empfangende) Daten (negative Logik). | 3 | 2 | Eingang | Ausgang | 
 +| GND  | Ground  | Signalmasse. Die Signalspannungen werden gegen diese Leitung gemessen. | 7 | 5 | — | — | 
 +| RTS  | Request to Send | „Sendeanforderung“; Ein High-Pegel an diesem Ausgang signalisiert, dass DTE Daten senden möchte | 4 | 7 | Ausgang | Eingang | 
 +| CTS | Clear to Send | „Sendeerlaubnis“; Ein High-Pegel an diesem Eingang ist ein Signal der Gegenstelle, dass sie Daten von DTE entgegennehmen kann | 5 | 8 | Eingang | Ausgang | 
 +| DTR  | Data Terminal Ready | Mit einem High-Pegel an diesem Ausgang signalisiert DTE seine Betriebsbereitschaft an die Gegenstelle. Damit kann die Gegenstelle, z. B. ein Modem, aktiviert oder auch zurückgesetzt werden. Üblicherweise antwortet die Gegenstelle mit einem High-Pegel auf DSR | 20 | 4 | Ausgang | Eingang | 
 +
 +Bei  der  Verbindung  zweier  Geräte  sind  die  Leitungen  über  Kreuz,  also 
 +TxD  mit  RxD  und  CTS  mit  DTR  und umgekehrt zu verbinden.  Die Abschirmung kann an SG angeschlossen werden.
 + 
 + 
 +**Umbau des Druckermoduls auf bidirektionalen Betrieb**
 + 
 +Alle handelsüblichen Druckermodule sind nur für Senden vorbereitet. Diese 
 +Betriebsart reicht aus, wenn man nur drucken will. Falls an die V24-
 +Schnittstelle aber ein anderes Gerät - z.B. ein zweiter Rechner zur 
 +Datenübertragung - angeschlossen werden soll, muss mit dem Modul auch 
 +empfangen werden können. Folgender Umbau ist durchzuführen: 
 + 
 +1.  <del>Auf der Rückseite der Leiterplatte am SIO (U 8560) den Leiterzug vom 
 +Anschloss 17 (RTSA) trennen und mit  einer  kleinen  Drahtbrücke  an  16  (DTRA) 
 +anlöten.  (Dieses  Signal  wurde  im  Originalzustand  nicht benutzt.)</del> 
 + 
 +2.  Auswechseln des Kabels. Es wird vieradriges abgeschirmtes Kabel benötigt. 
 +Für kurze Entfernungen ist auch mindestens 5 adriges Kabel ohne Schirm 
 +verwendbar. Auf der Leiterplatte befinden sich links oben 4 Anschlußpunkte (X4-
 +X7). Davon sind im Originalzustand aber nur die äußeren (X4, X5) benutzt. An die 
 +zwei  dazwischenliegenden  Lötpunkte  (X6,  X7)  werden  die  zusätzlichen 
 +Leitungen  angeschlossen.  Die Masseleitung  SG  (Abschirmung)  wird  unterhalb 
 +der  Zugentlastung  an  die  Lötöse  angeschlossen.  Die Lötösen X3-X7 sind auf 
 +dem Druckermodul so angeordnet wie sie hier gezeichnet sind. 
 + 
 +<code>
 +Druckermodul SIO              D-SUB Stecker 25 polig männl.
 +     
 +X4 (x4)    CTS        <--------------- 20  (DTR) 
 + X6 (x7)   RxD        <---------------  2  (TxD) 
 +  X7 (x8)  RTS o. DTR --------------->  5  (CTS) 
 +   X5 (x5) TxD        --------------->  3  (RxD) 
 + X3 (x6)   SG         ----------------  7  (S0) 
 +</code>
 + 
 +(in Klammern: Anschlussnummern in den Unterlagen von U.Zander)
 +
 +Die Anschlussbelegung der Signale CTS, TxD, SG entspricht der Originalbelegung 
 +mit 25 poligem Stecker. An der rechten  Seite  sind  die  Signalbezeichnungen 
 +angegeben,  die  für  die  Buchse  an  einem  angeschlossenen  Gerät gelten. **Die 
 +Signale sind also bereits gekreuzt.** Der Stecker kann unmittelbar an einen 
 +Drucker oder das EPROM- Programmiergerät angesteckt werden. Falls ein anderer 
 +Stecker  erforderlich ist, kann anhand der Signalnamen die richtige Belegung 
 +ermittelt werden. Auf alle Falle müssen die drei Verbindungen CTS, TxD und SG 
 +wieder so angeschlossen werden, wie vor dem Auswechseln des Kabels. 
 + 
 +Zum Kopplung mit einem PC wird ein Gender-Changer benötigt (Buchse 1:1 auf 
 +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.  
 + 
 +{{:z9001:img_3205.jpg?200|}} {{:z9001:img_3213.jpg?200|}} 
 + 
 +<code> 
 +Z9001 User Port Drucker (K6325)
  
-{{img_3205.jpg?200}}{{img_3213.jpg?200}}+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 145: 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 155: 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.1371025779.txt.gz
  • Zuletzt geändert: 2013/06/12 08:29
  • von volkerp