Ok das ist sicher irgendwelcher Exotenkram, aber vielleicht hat ja jemand so etwas schon mal gemacht. Folgender Sachverhalt: Ein Messgerät (Laboranalyse) wird von einem Uralt-PC gesteuert. Diverse proprietäre Hardware da drin, keine Chance das ganze zu modernisieren. Datenausgabe auf den Drucker, (PCL oder Epson FX Protokoll) das war's. Das ganze soll jetzt in ein pdf gedruckt werden, was auf dem DOS Rechner "etwas schwierig" ist. Folgende Idee: Die Daten die zum Drucker gesendet werden an der LPT Schnittstelle abfangen (das Protokoll ist ja nicht allzu aufwendig), in eine Datei schreiben und diese an einem modernen Rechner in ein pdf drucken. "Druckdatei zu pdf" Lösungen gibt es, nur wo und wie bekomme ich die "LPT Schnittstelle zu Datei" Funktion?
kann das Programm die Daten auch zu einer Seriellen schnittstelle
ausgeben? Es gab ja einige drucker die hatten einen com-port.
Dann könntest du einfach per CrossOver kabel einen 2.PC anschließen.
> Druckdatei zu pdf" Lösungen gibt es
aber doch bestimmt nicht für ein altes Epson protokoll.
Wenn er z.B. auf LPT1 druckt sollte MODE LPT1=C:\TEST.TXT den Ausdruck auf DOS-Ebene umleiten. hans
Mit etwas Glück nutzt das DOS-Programm den Drucker-Interrupt 17H für die Ausgabe. Da könnte man eine ISR reinhängen. Ist zu lange her, als dass ich Dir mal eben etwas dazu hacken könnte, aber mit diesem Ansatz kämst Du ohne zusätzliche selbst gebastelte Hardware aus.
das Problem wurde schon for über 20 Jahren mit diversen, speicherresidenten Tools gelöst. Eines hies Plotfang.exe. Wenn du im Netz nicht fündig wirst, durchsuchte ich meine alten Disketten, falls noch lesbar.
Peter II schrieb: > kann das Programm die Daten auch zu einer Seriellen schnittstelle > ausgeben? Es gab ja einige drucker die hatten einen com-port. nope > > Dann könntest du einfach per CrossOver Kabel einen 2.PC anschließen. Schön wäre es, danke für die Idee, Aber das ganze ist knallhart auf Portebene programmiert. > >> Druckdatei zu pdf" Lösungen gibt es > aber doch bestimmt nicht für ein altes Epson protokoll. FX80 geht super mit DOSprn
hans schrieb: > Wenn er z.B. auf LPT1 druckt sollte > > MODE LPT1=C:\TEST.TXT > > den Ausdruck auf DOS-Ebene umleiten. Funzt nicht, weiß der Teufel was die da programmiert haben. Das zweite Problem ist das die Datei dann auf dem gleichen Rechner sind und das Programm nicht unterbrochen werden kann. Holler schrieb: > das Problem wurde schon for über 20 Jahren mit diversen, > speicherresidenten Tools gelöst. Eines hies Plotfang.exe. Danke für den Tip aber siehe oben. Zusätzlich brauchen die residenten Programme Speicher, der ist aber auch ausgequetscht. Philipp K. schrieb: > Mit etwas Glück nutzt das DOS-Programm den Drucker-Interrupt 17H für die > Ausgabe. Da könnte man eine ISR reinhängen. Ist zu lange her, als dass > ich Dir mal eben etwas dazu hacken könnte, Dank für den Tip, geht aber auch nicht (s.o). Außerdem ist es zu Riski da noch ein anderes Programm laufen zu lassen weil kein Mensch weiß wie sich die Software vom Timing verhält > aber mit diesem Ansatz kämst Du ohne zusätzliche selbst gebastelte > Hardware aus. Es braucht eine saubere Trennung, die Daten extern abzufangen greift nicht in den PC ein.
ich würde einen Versuch mit plotfang, war in der DOS Zeit sehr zuverlässig und benötigte keine 20 kb. Lies sich auch in den "oberen Speicherbereich" hochladen, d.h. zwischen die Adapter ohne dem Hauptprogramm Speicher wegzunehmen. Wenn du dennoch scharf trennen willst, schaue dich mal bei emsystech um. Die bieten converter von GPIB und LPT auf USB eines Hostrechners an. Dabei wird eine Bitmap erzeugt. Habe die gpib Version für ca 100euro im Einsatz an meinem alten Spekki, funktioniert super.
http://www.wut.de/e-28000-ww-dade-000.php?pf=80 Klemmst Du anstelle des Druckers an den Parallelport. Auf einem zweiten PC kannst Du die Ausgabe über eine serielle Schnittstelle entgegennehmen und weiterverarbeiten. Eine andere Lösung wüßte ich jetzt nicht. fchk
Philipp K. schrieb: > Da könnte man eine ISR reinhängen. Du meinst TSR. Ich habe mal sowas geschrieben für Drucken über INT17 (aus Clipper-Programm), das speichert die Druckausgabe in eine Datei, die wurde dann umgewandelt von Epson in PCL und mit Kopien auf Laserdrucker ausgegeben. Hat jahrelang tagein tagaus funktioniert.
1 | ; |
2 | ; WPRINT (TSR) leitet drucken via int17 |
3 | ; um in eine datei |
4 | ; |
5 | ; V1.0 Copyright (c) RK elektronik 1996 |
6 | ; |
7 | code segment |
8 | assume cs:code,ds:code |
9 | ; |
usw. ist aber wirklich schon lang lang her. Gruss Reinhard
Holler schrieb: > Wenn du dennoch scharf trennen willst, schaue dich mal bei emsystech um. Guter Tip, werde dort mal Anfragen Frank K. schrieb: > Klemmst Du anstelle des Druckers an den Parallelport. Könnte klappen, danke für den Tip.
Reinhard Kern schrieb: > Du meinst TSR In dem TSR ("Terminate and Stay Resident") -Programm liegt irgendwo die ISR ("Interrupt Service Routine") für den Int 17H. Dass hinter Interrupts Systemaufrufe stecken, ist eine PC/DOS-spezifische Kiste, aber rein vom Namen her ist es eine ISR. Wir meinen das gleiche.. :-)
Könnte auch nützlich sein: Beitrag "Programm um virtuellen Com Port auszulesen und Daten in bmp schreiben" Rainer
Das Problem löst man hardwareseits damit: http://www.tu-chemnitz.de/~heha/lptcap und softwareseits damit: http://www-user.tu-chemnitz.de/~heha/viewzip.cgi/hs_freeware/SPE.zip/ Ersteres fängt parallele Druckdaten zu USB (virtuelles COM-Port) auf. Einfacher geht's wirklich nicht, wenn keine Softwarelösung zur Umlenkung aufs COM-Port anwendbar ist. Letzteres interpretiert die Druckdaten zur Ausgabe auf (irgend)einen Windows-Drucker, etwa einen PDF-Generator. Fertig. (Die vorliegende Version unterstützt keine Pixelgrafik-Ausgaben!) Ein Windows-PC mit USB wird benötigt, darf >10 Jahre alt sein. Linux (etwa ein Raspberry) geht auch, wenn man die Funktionalität von SPE.exe in ein Python-Skript steckt und einen geeigneten Text-Zu-PDF-Konverter benutzt. henni
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.