Hallo Leute,
ich weiß nicht, ob ich hier ganz richtig bin, aber ich glaube hier ist
eine ganze Menge Hirnschmalz versammelt... deshalb hier meine Frage:
Ich habe ein altes Programm, dass nur unter MS-DOS läuft. Ich habe eine
Virtuelle Maschine mit VirtualBox aufgesetzt und habe hierauf DOS6.22
laufen.
Mein Programm (Multiprog) arbeitet über eine Serielle Schnittstelle.
Das Problem => es kommt keine Kommunikation zustande
Die Serielle Schnittstelle funktioniert soweit auch unter DOS (hab das
mit einem anderen Programm getestet)
(ist ein USB to Seriell-Adapter, der unter Windows 10 eingebunden und
dann über VirtualBox "durchgeroutet" ist)
Ich vermute jetzt, dass mein altes Programm Probleme mit dem FIFO der
Seriellen Schnittstelle hat. Kann ich den irgendwie komplett abschalten?
Im Gerätemanager kann ich den leider nur Runterschrauben.
Runterschrauben hilft aber leider nichts.
eventuell auch noch andere Ideen?
Für eure Hilfe wäre ich sehr dankbar :-)
Gruß Chris
Ältere Programme haben oft nur ein Byte-Protokoll, d.h. sie senden keine
Blöcke.
Damit sind bei einer USB-Pollingzeit von 10ms nur max 50Byte/s möglich
und die Programme machen einen Timeout.
Am FIFO wirds daher nicht liegen. Man könnte die Pollingzeit verringern,
z.B. auf 1ms.
Oder ne echte UART nehmen. Viele Motherboards haben noch eine, nur das
Kabel zum D-SUB fehlt.
Erstmal Danke für die schnelle Antwort!
Hmh ok... das mit der Pollingzeit auf 1ms klappt leider nicht
mit dem echten UART ist das so ne Sache... ich brauch das ganze auf nem
Notebook...hab hier leider keinen richtigen Seriellen Anschluss mehr....
hmh dann werd ich wohl hoffen müssen, dass mein altes Notebook (mit dem
das noch funktioniert) noch ne Weile läuft
Falls noch Ideen vorhanden sind, bitte melden :-)
Gruß Chris
Schonmal Dosbox (http://www.dosbox.com/) ausprobiert? Das bringt älteste
DOS Software zum laufen. Da das Opensource ist kannst du vielleicht
sogar die FIFO selbst aus der COM Emulation entfernen.
Was macht denn dieses uralte DOS-Programm? Vielleicht gibt es
vergleichbare Funktionalität auch mit etwas neuzeitlicheren Programmen,
die auf das direkte Hardwaregefrickel verzichten?
Das ist ein Regelungsprogramm... das gibt's auch mit gleicher
Funktionalität neuer... aber hilft mir leider nix, wenn meine alte
Anlage das nicht kann :-)
@Bernd Strobel... wie entfernt man da die fifo?
> wie entfernt man da die fifo?
Gar nicht. Die sind standardmäßig deaktiviert und können per Software
aktiviert werden - soweit ich weiß.
In der Systemsteuerung gibt es dazu eine "Erweiterte"
Einstellmöglichkeit. Siehe angehängter Screenshot.
Ich schätze aber, dass das nicht auf DOS Programme wirkt. Die gehen ja
nicht über den Windows Treiber sondern sprechen den UART Chip über seine
Register an. Wenn Windows bzw. VmWare diese emuliert, dann sicher auch
das Verhalten, dass der Fifo standardmäßig deaktiviert ist.
Chris schrieb:> Ich vermute jetzt, dass mein altes Programm Probleme mit dem FIFO der> Seriellen Schnittstelle hat.
Ziemlich sicher nicht. Nach meiner Erfahrung ist es viel eher so, dass
ein heutiger Rechner einfach zu schnell ist, das Programm wartet auf
Antwort von der Gegenstelle, aber um Grössenordnungen weniger lang als
auf einem alten 80286er, und kommt dann zum Schluss da ist keiner.
Ich habe so ein Protokoll in DosBox zum Laufen gebracht, da kann man die
verfügbare CPU-Leistung bzw. Geschwindigkeit einstellen. Die habe ich
solange heruntergesetzt, bis ein uralter Hitex-Emulator wieder von
seiner Software ansprechbar war, funktioniert jetzt wieder einwandfrei.
Das muss man natürlich auf jedem Rechner anders einstellen.
Georg
Hallo Stefan Us
erstmal Danke für deinen Screenshot. Genau diese Einstellmöglichkeit
habe ich gesucht... nur leider sieht die bei mir etwas anders aus!
(siehe Anhang)
hier hab ich auch mal etwas an den Werten rum gestellt... leider ohne
Erfolg... so nen Haken setzen (Fifo verwenden) kann ich leider nicht...
Ich nehme an, da das hier keine echte serielle Schnittstelle ist,
sondern ein USB to seriell Adapter!
Und wie gesagt.. mit DOSBox geht's leider auch nicht....
Hi Georg,
phuu... das hört sich sehr aufwändig an... werde das bei Gelegenheit mal
noch ausprobieren!
Hast du vielleicht eine kurze Anleitung für mich... dann muss ich mich
nicht zu Tode suchen ;-)
Richtig, Deine Serielle scheint über einen USB-Chip angebunden zu sein.
Probier mal, die Paketgrößen auf Minimum und die Wartezeit auf 1-2 ms zu
stellen. Dann werden die Daten schneller gesendet und nicht erst
gesammelt.
Bei den DOS Programmen war es oft üblich die Hardware der Comports
dierekt anzusprechen.
Ich verwende noch oft das alte Terminalprogramm vom Nortoncommander, da
ist das auch so. Das läuft nur mit "echten" Comports. Mit USB hat man da
keine Chance.
Chris schrieb:> @Bernd Strobel... wie entfernt man da die fifo?
Das weiß ich leider nicht.
Zur DosBox, das ist ein recht verbreitetes Programm, das vor allem
entwickelt wurde, um DOS-Spiele aus den 80er und 90er Jahren wieder
laufen zu lassen. Darin ist es sehr erfolgreich.
Es ist keine herkömmliche virtuelle Maschine, sondern es emuliert das
DOS und die HW selbst. Gerade Spiele waren ja damals sehr hardwarenah
programmiert, da es keine Treiber in engerem Sinne gab und jedes
Programm direkt die HW ansprechen musste.
Dosbox emuliert sämtliche Soundkarten, Joysticks, Tastaturen, Mäuse usw
aus der Zeit und auch die DOS Systemcalls. Zudem bremst es die
Ausführung der Programme soweit ab, dass die alten Spiele wieder
spielbar werden auf unserer Sience Fiction Hardware.
Da Mäuse damals oft über die serielle Schnittstelle angeschlossen
wurden, könnte Dosbox vielleicht auch diese emulieren. Einen Blick ist
es wert. Obs es am Ende klappt weiß ich nicht. Es ist nur ein Versuch,
der nichts kostet.
Installieren brauchst du das Ding nicht. Es gibt ein Zipfile, dass du
einfach auspacken kannst und dann läuft es. Die Doku solltest du aber
auf jeden Fall lesen. Es gibt da eine Configdatei, keine UI für die
Einstellungen.
Chris schrieb:> Das ist ein Regelungsprogramm... das gibt's auch mit gleicher> Funktionalität neuer... aber hilft mir leider nix, wenn meine alte> Anlage das nicht kann :-)
Und warum muss das Programm für Deine "Anlage" jetzt ausgerechnet auf
einem Notebook laufen?
Hat das Notebook einen ExpressCard-Slot? Dann könntest Du eine
ExpressCard mit RS232 verwenden (aufpassen, die Dinger gibts auch mit
interner USB-Anbindung, womit Du nicht weiter wärst).
Das muss unbedingt auf ein Notebook, da ich nicht ständig nen kompletten
PC zu meiner "Anlage" tragen möchte :-)
ExpressCard hats leider nicht :-(
Ist generell recht spärlich ausgestattet... hat nicht mal ein DVD
Laufwerk :D...
aber tut ja generell nix zur Sache....
also die einzige brauchbare Idee scheint momentan die DOSBox und da mal
den Fifo abzuschalten...falls das geht...ansonsten macht das ja
eigentlich auch nix anderes wie meine virtuelle Maschine...von daher
wird's wahrscheinlich nicht klappen...
Rufus Τ. F. schrieb:> Chris schrieb:>> also die einzige brauchbare Idee scheint momentan die DOSBox>> Hattest Du nicht schon geschrieben, daß Du DOSBox ohne Erfolg> ausprobiert hättest?>> Beitrag "Re: Fifo abschalten unter Windows 10?"
Ja, aber den Tipp von Georg (Runtertakten/CPU-Leistung einschränken) in
der DosBox hat er noch nicht probiert. Ich denke, das meint er hier.
Eriwan schrieb:> Ja, aber den Tipp von Georg (Runtertakten/CPU-Leistung einschränken) in> der DosBox hat er noch nicht probiert.
Anbei meine dosbox.conf. Wichtig für diesen Zweck: "cycles" und
"serial".
Georg
Georg schrieb:> Nach meiner Erfahrung ist es viel eher so, dass> ein heutiger Rechner einfach zu schnell ist, das Programm wartet auf> Antwort von der Gegenstelle, aber um Grössenordnungen weniger lang als> auf einem alten 80286er, und kommt dann zum Schluss da ist keiner.
Ich kann mich dunkel erinnern, daß Programme, die in Turbo-Pascal oder
TC geschrieben wurden, ab 166MHz die Hufe hochgerissen haben.
Super, vielen Dank soweit
@Rufus => ich meinte das mit dem runtertackten...
ich werd mich die Tage nochmal dran setzen und das ausprobieren...
vielleicht klappts ja!
Peter D. schrieb:> Georg schrieb:>> Nach meiner Erfahrung ist es viel eher so, dass>> ein heutiger Rechner einfach zu schnell ist, das Programm wartet auf>> Antwort von der Gegenstelle, aber um Grössenordnungen weniger lang als>> auf einem alten 80286er, und kommt dann zum Schluss da ist keiner.>> Ich kann mich dunkel erinnern, daß Programme, die in Turbo-Pascal oder> TC geschrieben wurden, ab 166MHz die Hufe hochgerissen haben.
Da gab es doch sogar sogenannte "PC-Bremsen", also Programme, die den
Prozessor dermaßen ausgebremst haben, daß alte Programme wieder liefen
:-)
Chris schrieb:> @Rufus => ich meinte das mit dem runtertackten...
Auf welchem Rechner bzw. Win-Version ist dein Programm zuletzt gelaufen?
Vielleicht ist auch nur dein USB-RS232 Adapter ungeeignet.
Welchen Chip hat dieser?
Peter D. schrieb:> Ich kann mich dunkel erinnern, daß Programme, die in Turbo-Pascal oder> TC geschrieben wurden, ab 166MHz die Hufe hochgerissen haben.
Das lag m.W. am Second Level Cache. Wenn man den damals auf den Pentiums
(MMX usw.) abgeschaltet hat, ging alles wieder. Aber das ist heute keine
Option mehr.
superdepp schrieb:> Besorg dir eine Docking Station für den Laptop. Dann ist der echte com> Port wieder da ...
aber da kann man nicht sicher sein, teilweise binden sie die COM auch
nur über USB an.
Es gibt Docking Station die Nur per USB3.0 angeschlossen werden.
H.Joachim S. schrieb:> Bei ebay ein Uralt-Laptop für 10€ kaufen und nur dafür nutzen?
Das sehe ich da eigentlich auch als sinnvollste Option.
Die alten Dockingstation Anschlüsse der Laptops waren ja komplette
ISA/PCI Busse, da konnte man dann ja auch normale Steckkarten dran
installieren.
Die neuen am USB Bus werden da nicht funktionieren.
Besitze HP 4000 Laser Jet, mit Renkforce Cetronics Anschlußkabel
(Cetronics zu USP)funktioniert leider nicht.
Unter Windows 10 wird nur die Möglichkeit geboten das Ding zu entfernen?
helfried schrieb:> Besitze HP 4000 Laser Jet, mit Renkforce Cetronics Anschlußkabel
Das hat mit dem Thema dieses Threads exakt überhaupt nichts zu tun.