Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Hilfe gesucht: Erika 3004 als Drucker an PC anschließen » Themenansicht

Autor Thread - Seiten: -1-
000
11.10.2018, 09:54 Uhr
octank



Liebe Rototron-Fans,

dies ist mein erster Post in diesem Forum und daher würde ich mich gerne kurz vorstellen.

Seit Samstag bin ich stolzer Besitzer einer Sigma SM 8200i. Diese Schreibmaschine habe ich für 15 EUR über eBay gekauft, weil ich mir vorgenommen habe, diese als Drucker an meinem PC zu verwenden.
Vor dem Kauf habe ich umfassend recherchiert, ob diese Maschine eine Schnittstelle hat, da ich vorher schon versucht hatte, meine Brother AX-110 anzuschließen. Dies gelang mir allerdings nicht, da man dazu auf der Platine hätte herumlöten müssen.

Ich verfüge über langjährige Programmiererfahrung, allerdings eher auf Hochsprachenebene anstatt auf Assemblerebene. Und habe ich ein großes technisches Verständnis, allerdings auch hier wieder nicht bis auf Transistorebene herunter.
Daher habe ich mir einen Raspberry PI 3b+ gekauft, mit dem ich diese Schnittstelle zur Schreibmaschine realisieren wollte. Einerseits um meinen Horizont zu erweitern, andererseits um meinen Sohn auch für Technik und Programmierung zu begeistern.

Allerdings bin ich nun nach mehreren Tagen Probierens an einem Punkt angelangt, an dem ich um Rat fragen muss. Im Laufe der vielen Versuche bin ich nämlich auf dieses tolle Forum gestoßen, das unsagbar viele Informationen bereithält, die ich alle gelesen und versucht habe, in meine Versuche einfließen zu lassen.

Es ist unfassbar, was es hier alles gibt. Für die Brother konnte ich nur mit größter Mühe eine BA finden und hier gibt es Schaltpläne, Fotos von Platinen, Codelistings und noch viel mehr.

Um den Post nicht zu lang werden zu lassen, sehe ich von einer detaillierten Auflistung meiner Versuche ab. Stichwortartig war aber Folgendes dabei:

- RASPI: fertige RS232 Schnittstelle mit Python -> Baud-Rate beim RASPI nicht einheitlich, da von Prozessorlast abhängig
- RASPI: USBSER-Adapter direkt an die 3004-Schnittstelle -> es werden beliebige Buchstaben gedruckt
- RASPI: USBSER <-> Terminal mit Psion 5mxpro -> funktioniert
- Psion 5mxpro an 3004-Schnittstelle im TTL-Modus -> scheint besser zu funktionieren, Buchstaben sind etwas beständiger
- PC: USBSER RS232 an 3004-Schnittstelle -> es werden beliebige Buchstaben gedruckt oder Funktionen ausgeführt (Rückwärtsdruck)
- PC: USBSER RS485 an 3004 -> beliebige Zeichen
- PC: USBSER <-> Steckplatine mit Widerständen <-> 3004 -> beliebige Zeichen

Natürlich habe ich auch alle Permutationen der Einstellungsmöglichkeiten des USBSER-Adapters und des Ports durchgetestet. Und ich habe mit einem Multimeter die Ströme gemessen, um zu testen, ob die konsistent sind. Dann habe ich noch einen Aufbau auf der Steckplatine mit der RS232 und Spannungswandlern gebaut (der RASPI verträgt max. 3.3 V). Aber da habe ich mich bisher nicht getraut, die anzuschließen, da ich schon einen RASPI gegrillt habe.

Was mir jetzt noch aufgefallen ist: die Maschine scheint ein Zwischenmodell zu sein. Irgendwo habe ich etwas über die Gehäuse und die Baureihen gelesen. Und diese hat anscheinend schon das neuere, etwas rundere Gehäuse aber dort, wo das Display wäre, ist eine Kunststoffplatte aufgeklebt. Also quasi das neue Modell, aber ohne Display.
Könnten die Probleme etwas damit zu tun haben, dass in der Maschine schon eine andere Technik steckt und die Doku zur 3004 dafür nicht passt. Lt. Handbuch kann sie nämlich auch 12 statt 10 Zeichen/Sek. und hat einen 20-Zeichen-Speicher.

Ich wäre sehr glücklich, wenn mir jemand Tipps oder Hinweise geben könnte, was ich noch machen muss. Ansonsten muss ich wohl Micha fragen, ob er mir auch so ein hervorragendes Interface baut und verkauft.

Viele Grüße
Oliver
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
11.10.2018, 10:12 Uhr
ralle



Normalerweise wird ein IF3000 oder IF6000 als Pegelwandler und Übersetzer benötigt.

Bei einigen Computern wurde die S3004 hart angeschlossen, einerseits wegen der Tastatur, manche Serien-Tastaturen waren eine echte Zumutung, aber auch wegen der ESC-Steuerung. Die IF unterdrücken das wirkungsvoll.

Denk bitte daran, das die CPU der S3004 keinen Schutz vor den Dummheiten der User hat.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
11.10.2018, 11:21 Uhr
octank



Hallo Ralle,

ja, das weiß ich, deshalb habe ich die Verbindung auch nur über eine RS232 Schnittstelle hergestellt und nicht direkt über die GPIOs, da ich mich das nicht getraut habe.
Obwohl es ja unzählige Dokumente zum Anschluß gibt, aber die beziehen sich alle auf die alten DDR-Computer. Der RASPI ist zwar auch ein Einplatinengerät, allerdings mit einer modernen CPU ausgestattet. Ich vermute, dass die Bytes nicht korrekt an der Schnittstelle ankommen (trotz CTS/RTS). Vielleicht gilt auch die Code-Tabelle von Michi für meine Schreibmaschine nicht mehr, weil es die Version mit Display-Vorbereitung ist.
Ich hatte die Hoffnung, dass es hier schon mal irgendjemand geschafft hat. Der RASPI sollte dann eigentlich nur die Aufgabe der Interface-Box übernehmen (Übersetzung des Zeichensatzes und ggfs. Pegelwandlung).
Anscheinend ist es doch nicht so einfach, wie ich gehofft hatte.
Gruß
Oliver
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
11.10.2018, 11:24 Uhr
wpwsaw
Default Group and Edit


Hallo,

die IF Box wandelt nicht nur die Pegel (3004 hat TTL-Pegel) sondern kodiert auch die Daten um. Die 3004 versteht keinen ASCII-Code.

Gruß
wpw
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
11.10.2018, 11:27 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Micha hatte vor 4 Jahren eine eigene Interface-Box Erika-IF2014 gebaut:

in http://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=10266
im Post 092 ist der Link zu den Unterlagen (Schaltplan, Software, Handbuch) zum Nachbau
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 11.10.2018 um 11:53 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
11.10.2018, 11:41 Uhr
octank



Danke für die bisherigen Antworten.

@wpw: genau, das mit den TTL-Pegeln habe ich schon herausgefunden. Daher der RS485-Versuch. An meinem USBSER-Adapter kann man das umstellen. Und Python hat dafür auch eine extra Klasse, um die RTS/CTS Pegel vor dem Senden zu prüfen.
Und dass sie kein ASCII versteht, habe ich aus Michas Dokumentation entnommen. Daher sende ich z.B. b'0x24' bzw. b'00100001' für das K.

@VolkerP: ja, wahrscheinlich muss ich, wie im Eingangspost schon geschrieben, ihn bitten, mir auch so etwas zu bauen und zu verkaufen ;-) Seine umfangreiche und hervorragende Dokumentation habe ich heruntergeladen und sie ist quasi die Basis für meine bisherigen Versuche. So etwas selber nachbauen kann ich nicht, da ich nicht einmal wüsste, wie man das EPROM programmiert.


Grüße
Oliver
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
11.10.2018, 11:55 Uhr
wpwsaw
Default Group and Edit


nein, du verstehst das nicht richtig, es gibt eine Umwandlungstabelle speziel ASCII>s3004 und s3004>ASCII vor allem die Steuerzeichen die notwendig sind um die Schreibmaschine in die verschiedenen Modis zu bringen, können und müssen nicht nur von der Tastatur sondern auch vom Port kommen. Z.B. enthält dieses alles der Druckertreiber vom KC85/x speziell für die S3004.

in den erwähnten IF-Boxen, die ja eine CPU mit Software enthalten, wird dieses umwandeln durchgeführt und nicht nur TTL<>V24.

wpw
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
11.10.2018, 12:24 Uhr
octank



Okay.

Ich dachte, genau das wäre der Appendix F von Micha.

D.h., wenn ich über die TTL-Schnittstelle z.B. b'0x79' sende, macht sie einen Tab-Sprung, oder bei b'0x85' setzt sie den Zeilenabstand auf 1.5.

Ich hatte mir das so vorgestellt: das Python-Programm kann ein rtf parsen und holt sich über eine Array den 3004-Code für die druckbaren Zeichen (0x01 bis 0x67 und 0x71 für Space), da die 3004 kein reines ASCII versteht.

Alle zusätzlichen Steuercodes, wie z.B. CR und/oder LF oder Zeichen rückwärts, sendet das Programm mit den Codes aus der Tabelle (ab 0x72) auch an die 3004.

Irgendwo habe ich sogar eine noch umfangreichere Liste an Steuercodes gefunden, mit denen man Rückwärtsdruck etc. umschalten kann.

Aber von Windows ist es dann nicht so einfach? Ich kann leider mit den Hex-Listings der Druckertreiber für die KCxx nicht viel anfangen. Gibt es da irgendeine Code-Sequenz, mit der man die Maschine quasi in einen Bereitschaftsmodus oder so etwas schalten muss? Vielleicht liest sie die Bytes ja doch richtig, kann nur nichts damit anfangen, da sie nicht weiß, dass die über den Port kommen oder wer sie sendet? Vielleicht erwartet sie auch eine Initialisierung um zu wissen, welche Codetabelle genutzt werden soll.

Ich hatte auch versucht, die 8x8 Matrix Bytes zu senden (b'01011011' z.B. für Normaldruck, Spalte 3, Zeile 3), aber das macht keinen Unterschied.

Was ich wohl ungewollt hinbekommen hatte, war, dass nach einigen Versuchen die Tastatur dann auch andere Zeichen als die Abgedruckten ausgegeben hat. Also, wenn man C gedrückt hat, hat sie ein F gedruckt.
Vielleicht hat dieses Modell mehrere Codetabellen gespeichert oder wie wäre dieses Verhalten sonst zu erklären?

VG Oliver
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
11.10.2018, 12:55 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Da ganz klingt bei Dir noch nach Problemen mit der seriellen Schnittstelle beim RASPI?
Wenn ich Dich richtig verstehe, funktioniert das unter Windows mit einem USB-TTL-Seriell-Adapter, der direkt an die S3004 angeschlossen ist?
Dann kannst Du doch unter Windows und mit Python experimentieren und einen Druckertreiber /Zeichenkonverter bauen. Wenn dort alles läuft, kannst du es auf einen RASPI umsetzen und die Schnittstellenprobleme lösen.

Auf meiner Seite gibt es die Steuercodes:
https://hc-ddr.hucki.net/wiki/doku.php/z9001/erweiterungen/s3004

Die interne Software der Schreibmaschine ist leider nicht bekannt; inwiefern sich die diversen Modelle in solchen Details unterscheiden, leider auch nicht. Alles Bekannte zu den Modellen gibts auf
erika-elektronik.de
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 11.10.2018 um 12:57 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
11.10.2018, 13:40 Uhr
octank



Hallo Volker,

vielen Dank für Deine tolle Webseite. Den genannten Artikel habe ich als PDF auf dem Rechner und ist neben den Unterlagen von Micha mein zweites Kompedium. Deine Liste meinte ich weiter oben mit der ausführlicheren Liste der Steuercodes. Daher habe ich auch die Matrix-Informationen. Und auch die Ideen, den PC direkt zu koppeln, da Du das ganz unten auf der Seite auch so beschreibst.

Gestern habe ich gute zwei Stunden Zeit damit verbracht, auf Deiner Seite zu schmökern. Nicht nur wegen dieses Themas sondern generell sind dort viele interessante Dinge zu lesen.

Zum Thema: Mit Windows funktioniert es auch nicht korrekt. Nachdem ich von der unzureichenden RASPI Schnittstelle gelesen hatte, bin ich direkt auf Windows umgestiegen. Aber auch hier werden die Zeichen beliebig gedruckt. Wenn ich vier mal mit Pausen das gleiche Zeichen sende, druckt sie entweder immer das Pfund-Zeichen oder auch mal zwischen 3 und 4 verschiedene Zeichen. Manchmal auch noch mit Zeilensprüngen nach oben oder unten. Vollkommen willkürlich.

Daher habe ich inzwischen die Vermutung, dass man die Verbindung irgendwie initialisieren muss. So etwas wie hier:
96H Drucker Fertigmeldung Fertigmeldung Drucker: RTS wird erst wieder, wenn das Zeichen gedruckt ist

Vielleicht ist die RTS/CTS Logik nicht korrekt aktiviert oder die default Baud-Rate ist nicht 1200, obwohl ich diverse andere ausprobiert habe.

Mich würde brennend interessieren, was die Druckertreiber für die alten KCxx denn so tun. Oder die 3004.com, die es anscheinend für MS-DOS gibt. Leider kann ich den Code nicht entschlüsseln.

VG Oliver
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
11.10.2018, 14:31 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Die Druckertreiber für die DDR-Kleincomputer wie den Z1013 machen nichts besonderes, sondern wie auf meiner Webseite beschrieben warten auf RTS, dann 1 Byte ausgeben mit 8N1.

Die S3004 ist zum Empfang des nächsten Zeichens erst bereit, wenn das aktuelle komplett verarbeitet wurde.

Mit modernen seriellen Schnittstellen und besonders am PC gibt es da ein Problem: Die serielle Schnittstelle muss einen Empfangspuffer von mind. 4 (16?) Zeichen haben. Windows sendet noch munter weiter, auch wenn die Gegenstelle die Empfangsbereitschaft aufgehoben hat!
Leg mal in Deinem Python-Programm testhalber nach jedem gesendeten Zeichen eine Wartezeit ein (0.5 .. 1 Sekunde). Dann sollte die Schreibmaschine wieder bereit zum Empfangen sein.

Andernfalls liest die Schreibmaschine nur die restlichen Bits, die nach RTS noch gesendet werden, und interpretiert diese entsprechend falsch.
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 11.10.2018 um 14:33 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
11.10.2018, 14:32 Uhr
Enrico
Default Group and Edit


Ist die Frage, ob die Schreibmaschine richtig tut.
Du hast nur Unbekannte, und kannst auch die Schreibmaschine nicht als
funktionierend ansehen.

Versuchs mit HTERM, und schick die Codes damit per Hand rüber.
Dort kann man auch direkt Hex eingeben.

Die 3004. com wird doch eher für CPM als DOS als für DOS sein?
--
MFG
Enrico

Dieser Beitrag wurde am 11.10.2018 um 14:32 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
11.10.2018, 17:37 Uhr
Mobby5



@octank

Wenn Du schon RS232 oder RS485 an die S3004 angeschlossen hast, hast Du bestimmt schon den Anschluss an der S3004 zerschossen.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
11.10.2018, 19:30 Uhr
ralle



Also, bei der Harten Kopplung wurde ein größerer Treiber geschrieben, der nicht nur als Übersetzer funkierte, sondern es war auch die Übermittlung von Steuer-Codes möglich. Beim KC85/4 und TypeStar war das mit einer modifizierten M003 aka M054 möglich.

Die .COM ist für CPM als nur Druckertreiber gedacht, in der Regel mit einer der beiden IF.

Die Software sowohl für die Schreibmaschine selber als auch für die beiden IF ist für dem Z8, 8830 in der IF und 8840 in der Schreibmaschine. Die Treiber allerdings für die Z80 PIO und SIO.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
12.10.2018, 06:55 Uhr
ralle



Ich meinte, das ich eine Anleitung zum Anschluss am Window-PC mit einer IF als nur Text-Drucker gesehen zu haben.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
12.10.2018, 08:10 Uhr
wpwsaw
Default Group and Edit


Gibt es doch mit der originalbeschreibung "Informationen zur Interfacebox für elektronische Kleinschreibmaschinen IF3000 (Centronix und Commodore) und IF6000 (V24). Die IF6000 kannst du in der Grundinitialisierung mit 9600,n,8,1 an einen PC mit ASCII-Drucker an die V24 anschließen. Die PC V24 muss nur auf Hardwareprotokoll umgestellt werden, weil sie meines Wissens nach WIN Start auf Xon/off steht.

Gruß
wpw

P.S. wenn die S3004 mit der Box verbunden und in Betrieb ist, kannst du die Einstellungen der IF-Box über die Schreibmaschine anzeigen und ändern.
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP

Dieser Beitrag wurde am 12.10.2018 um 08:12 Uhr von wpwsaw editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
14.10.2018, 13:35 Uhr
octank



So, ein kleines Update meiner Versuche, die S3004 ohne Interface-Box an einen modernen PC anzuschließen.
Der Datentransfer klappt ja schon seit einiger Zeit. Der Empfang von Zeichen in HTERM klappt gut. Und auch in Python ist das problemlos.
Das Problem ist das Senden von Zeichen. Da kommen bei der S3004 willkürlich irgendwelche Zeichen.

Aber heute habe ich einen kleinen Durchbruch erzielt. Die Pegelwandlung hat mir keine Ruhe gelassen und ich vermutete, der USBSER-Adapter ist schlecht implementiert.
Daher habe ich eine RS232-Platine, die ich für den RASPI gekauft hatte, dazwischengeschaltet. Also S3004 -> RS232-Platine -> USBSER-Adapter.
Und siehe da: nun kann ich zuverlässig über HTERM Zeichen (gem. der Codetabelle in Michas Handbuch) an die S3004 senden. Konnte sogar meinen Namen fehlerfrei schreiben. YEAH!

Aber wenn ich in der DOS-Box Zeichen an den COM-Port sende, kommt weiterhin Schmu raus, genau der gleiche Mist, wenn ich das über Python versuche.
Daher vermute ich, dass die Python-Serial-Implementierung das Selbe tut, wie die DOS-Box. Aber: bei Python gibt es ein kleines Test-Minicom-Skript. Das erzeugt quasi eine kleine Terminal-App. Und damit funktioniert das korrekte Senden an die Schreibmaschine.

Nun werde ich das Skript analysieren und schauen, wie dort die Senderoutine implementiert ist und versuchen, das nachzubauen. Ich vermute, es hat einfach etwas mit der Bitsequenz, die an den COM-Port gesendet wird, zu tun.

Falls es danach funktioniert, melde ich mich wieder. Vielleicht interessiert sich ja noch jemand dafür.

Dieser Beitrag wurde am 14.10.2018 um 13:37 Uhr von octank editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
14.10.2018, 15:05 Uhr
octank



So, jetzt kann ich auch mit Python über den PC drucken.
Nun muss ich noch eine Code-Ersetzungstabelle bauen, die die Zeichen umwandelt und dann noch ein paar Features wie Fettdruck, Unterstrichen codieren.

Skripte, um ein RTF einzulesen habe ich schon und auch ein Optimierskript, dass den Text in Vorwärts- und Rückwärtsdruck optimal ausdruckt, habe ich schon vorbereitet.

Das ganze wird es zwar wohl nicht als Druckertreiber geben, außer ich komme dahinter, wie ich den seriellen Port als Drucker in Windows einrichten kann. Aber das wäre mich auch nicht so wichtig. Ich kann einen Text als Text oder RTF ausdrucken und das Skript liest die Datei ein und sendet sie an den Drucker. Völlig ausreichend.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
14.10.2018, 15:59 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Gratulation!
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
14.10.2018, 16:42 Uhr
ralle



andere Frage, Linux oder Windows?
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
14.10.2018, 20:13 Uhr
ambrosius



Das dürfte bei Python nicht so die Rolle spielen.
--
viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
14.10.2018, 21:05 Uhr
octank




Zitat:
ralle schrieb
andere Frage, Linux oder Windows?



Win10.
Wollte es ja eigentlich unter Linux auf dem RasPi machen, aber bisher habe ich mich nicht getraut, die Schnittstelle dort anzuschließen, weil ich schon einen RasPi mit 5V gegrillt habe.

Dieser Beitrag wurde am 14.10.2018 um 21:06 Uhr von octank editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
022
14.10.2018, 21:50 Uhr
octank



Der nächste Schritt wurde erreicht:
ich kann beliebige Texte in Vorwärts- und Rückwärtsrichtung ausdrucken.

Dies wäre ein Debug-Output:
--> 35|00[00]: →Willkommen im Robotron-Technikforum↓
<-- 16|35[35]: ↓Ich freue mich, ←
--> 41|16[00]: →mich hier mit Gleichgesinnten austauschen ↓
<-- 49|41[41]: ↓zu können und wertvolle Hinweise zu den Produkten←
--> 24|49[00]: →von Robotron zu erhalten.↓
--> 00|24[24]: →▼ LF
→Willkommen im Robotron-Technikforum↓
↓← ,hcim euerf hcI
→mich hier mit Gleichgesinnten austauschen ↓
↓←netkudorP ned uz esiewniH ellovtrew dnu nennök uz
→von Robotron zu erhalten.↓
→▼

Jetzt müsste ich noch die Vorwärtsschaltung optimieren, indem ich z.B. mehrere Leerzeichen durch einen Wagenvorlauf ersetze, was sicherlich Zeit spart.
Und ich muss doch mal meinen Lötkolben rausholen, ähm, also aus dem Keller holen, und an die CTS und RTS-Anschlüsse zwei Kabel löten. Leider sind die auf der RS232-Platine nicht mit Steckern versehen. Dann kann ich vielleicht den Hardware-Handshake aktivieren und die Druckzeit verbessert sich. Derzeit bekommt jedes Zeichen 0.5 Sek. Zeit, was das Ganze recht behäbig macht.
Falls der Hardware-Handshake nicht geht, kann ich noch versuchen, CTS manuell abzugreifen und erst das nächste Zeichen zu senden, wenn die wieder Luft hat.

Fettdruck geht sogar auch, ist ja nur: \xA9\xA5\x01
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
023
15.10.2018, 08:57 Uhr
ralle



Die Erika ist von Natur aus nicht die Schnellste.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
024
18.10.2018, 00:22 Uhr
octank



So, jetzt ist es vollbracht. Die Schreibmaschine funktioniert, bis auf ein paar offene Kleinigkeiten (Implementierung von PICA und LINE) wunderbar.
Aber es war schwierig. CTS/RTS Hardware Handshake funktioniert nicht ganz so optimal, obwohl ein Signal ankommt. Also habe ich mir die Mühe gemacht, und alle Buchstaben des Typenrades abgetippt, um die Reihenfolge zu ermitteln.
Damit errechne ich den kürzesten Weg von einem zum nächsten Buchstaben (in der Hoffnung, Erika kann vorwärts und rückwärts drehen). Und diese Anzahl multipliziere ich mit ein paar Millisekungen, um die Radbewegung zu errechnen. Dazu gibt es etwas Zeit für den Datentransfer und das Drucken selbst. Und bei CRLF haue ich noch mehr drauf.
Beim Druck von wiederholenden Zeichen gibts dafür weniger.
Und vor dem Absenden des Zeichens prüfe ich CTS. Und in dieser Kombination rattert die Gute los wie ein Maschinengewehr (naja, fast, an eine Gatling kommt sie natürlich nicht heran).

Der Rückwärtsdruck funktioniert auch blendend, bis auf den Fall, wo ich die Spaces durch Wagenvorschub ersetze. Hier muss ich noch mal ran, dass der Wagenvorschub ein Wagenrücksschub wird, da dies augenscheinlich absolut gilt und nicht abhängig von der Druckrichtung.

Und da ich es leid war, immer im Code irgendwelche Testcases einzutragen, habe ich ein kleines Frontend gebaut, damit ich schneller einen Output erzeugen kann, indem ich Text- oder RTF-Dateien einlese, die in das nötige Format konvertiert werden. Sieht ziemlich mäßig aus, ich weiß, aber ich habe vor 7 Tagen meine erste Zeile Code in Python geschrieben, also kenne ich noch nicht alle Tricks und Kniffe.

Der Dialog zeigt auch den Output in ASCII und RAW an, so spart man zum Testen viel Farbband, wenn man erst mal schaut, ob es auch so ist, wie man es erwartet.



Ich bleibe aktiver Leser in diesem tollen Forum und danke allen, die Hinweise und Kommentare hinterlassen haben.

VG Oliver

Dieser Beitrag wurde am 18.10.2018 um 00:25 Uhr von octank editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
025
18.10.2018, 11:59 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Und nochmal Gratulation zum Ergebnis und zur Ausdauer!
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
026
18.10.2018, 14:51 Uhr
jde

Avatar von jde

Hatte mal von einer S6005 die ROMs reassembliert und diese dann mit einer V.24 Schnittstelle mit SIO und Druckwegoptimierung für bidirektionalen Druck versehen.
Dort wurde je nach Druckfläche des Zeichen auf dem Typenrad die Andruckzeit des Magneten auch noch modifiziert.
Das ist in der 3004 bestimmt auch so und beeinflusst die Zeit die jedes Zeichen zum Druck braucht.

wen es interessiert: www.2jo.de/robotron/Erika/ev24n.mac

Gruß
Jonny

Dieser Beitrag wurde am 18.10.2018 um 14:54 Uhr von jde editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
027
18.10.2018, 16:41 Uhr
holm

Avatar von holm

Cool Jonny!!
Habs mir aufgehoben.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
028
18.10.2018, 18:51 Uhr
ralle



Ich habe mal nach den Phyton geschaut, ganz umsonst ist die nicht...
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
029
18.10.2018, 21:37 Uhr
octank




Zitat:
ralle schrieb
Ich habe mal nach den Phyton geschaut, ganz umsonst ist die nicht...



Hi Ralle,

doch, Python ist über python.org kostenlos zu beziehen. Und als kostenlose Entwicklungsumgebung kann man PyCharm nehmen. Das funktioniert super. Oder man kann auch Plugins für Eclipse finden.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
030
18.10.2018, 22:42 Uhr
jde

Avatar von jde

Die Interfaces IF3000 (Centronics/Commodore) und IF6000 (V.24) die es zur S3004 gab waren mit einem U881 bestückt.
Es wurde ein Software SIO im U881 benutzt. Reassemblierte Software vom IF3000 enthielt diese Routine. Mit sehr schöner Codegrößenoptimierung.

Quellcode:

print:  call    o+serout
        jr      nc,print
        ret
;
;
; Software SIO zur Schreibmaschine
;
serout: tm      p3,#8           ; CTS von Schreibmaschine
        rcf
        jr      nz,serou7       ; nicht bereit
        ld      r9,#8           ; Anzahl Bits
        call    o+serou4        ; Startbit senden
serou1: ld      r10,#.h(serou2+o) ; RET-Adresse
        ld      r11,#.l(serou2+o)
        push    r11
        push    r10
        rr      r8              ; Byte schieben
        jr      nc,serou4       ; 0-Bit
        jr      serou3          ; 1-Bit
;
serou2: dec     r9
        jr      nz,serou1
        call    o+serou3        ; Stop-Bit senden
serou3: or      p3,#10h         ; 1-Bit senden
        jr      serou5
;
serou4: and     p3,#0efh        ; 0-Bit senden
        jr      serou5
;
serou5: ld      r10,#0a0h       ; Warteschleife
serou6: dec     r10
        jr      nz,serou6
        scf
serou7: ret
;



kompletter von mir reassemblierter Code vom IF3000 Interface hier: http://www.2jo.de/robotron/Erika/if3000.asm
Das Faltblatt dazu (bitte doppelseitig ausdrucken und als A5 heften): http://www.2jo.de/robotron/Erika/if3000.pdf

Gruß
Jonny

Dieser Beitrag wurde am 18.10.2018 um 22:57 Uhr von jde editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
031
19.10.2018, 00:21 Uhr
octank



Und zum Abschied ins Bett noch ein kleines Goodie von mir.
Habe eine zweite Version des Druckprogramms geschrieben. Mit der Änderung, dass man nicht komplette Texte läd und druckt, sondern dass man quasi im bidirektionalen Direkt-Modus an der Schreibmaschine schreibt.
Aber eben mit zeilenweise Korrekturmöglichkeit.


Dieser Beitrag wurde am 19.10.2018 um 00:22 Uhr von octank editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
032
19.10.2018, 13:11 Uhr
octank



Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
033
19.10.2018, 17:41 Uhr
octank



Jonny,
vielen Dank für das komplette ASM-Programm. Hier sind alle Codes enthalten und nun werde ich mir auch noch mal die Grafikdruck-Fähigkeiten ansehen. Obwohl ich denke, für eine kleine Grafik den Punkt auf dem Typenrad plattzuhämmern macht nicht viel Sinn.
Aber mal sehen...


Zitat:
jde schrieb
Die Interfaces IF3000 (Centronics/Commodore) und IF6000 (V.24) die es zur S3004 gab waren mit einem U881 bestückt.
Es wurde ein Software SIO im U881 benutzt. Reassemblierte Software vom IF3000 enthielt diese Routine. Mit sehr schöner Codegrößenoptimierung.

Gruß
Jonny


Dieser Beitrag wurde am 19.10.2018 um 19:45 Uhr von octank editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
034
26.10.2018, 15:46 Uhr
octank



So, hier noch ein paar Fotos von meiner Schnittstelle IF2018. Leider optisch bei Weitem nicht so ansprechend wie die Platine von Micha.
Aber funktional und in dem Apple-Gehäuse recht schick und zumindest geschützt.

Jetzt funktioniert auch die bidirektionale Datenübergabe. D.h. ich kann auch mit der Schreibmaschine in der PC-App schreiben und erst am Ende der Zeile drucken.
Dazu musste ich aber den DTR-Kanal vom PC mit DTD der Schreibmaschine verbinden. Sonst hat die Übertragung von der Schreibmaschine an den PC nicht funktioniert. Und außerdem musste ich ein Kabel an den nicht ausgeführten CTS-Pin löten, damit ich das mit dem RS232-Stecker verbinden konnte. Erst dann hat alles funktioniert.



Inzwischen ist auch die App fast eine kleine Textverarbeitung geworden. Man kann Dateien laden, bearbeiten, speichern und auch alle Befehle über die Schreibmaschine eintippen. Dazu habe ich ein virtuelles Display eingebaut. Ich habe für den Raspi noch ein kleines LCD-Display, das wollte ich mal an den GPIO anschließen und darüber dann Infos für die Schreibmaschine ausgeben. Das könnte man dann zum Schluß auch in der Schreibmaschine einbauen.

Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
035
03.12.2018, 11:29 Uhr
octank



Hi zusammen,

hier mal ein Video mit der Maschine in Aktion.

Link zum Video
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
036
03.12.2018, 17:06 Uhr
ralle



Geil, wieder Buchstabenbilder, wie zu wilden DOS-Zeiten auf PaketRadio.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek