Altes DOS-Programm unter Windows 7

Hallo zusammen,

ich muss ein altes DOS-Programm unter Windows 7 (32bit) ans Laufen kriegen. Das Programm erhält per Tastendruck Informationen über die serielle Schnittstelle, nämlich das angezeigte Gewicht auf einer Waage.

Das geht einige Male gut, aber dann friert das DOS-Programm ohne erkennbaren Grund ein, was leider jedesmal mit Datenverlust einhergeht.

Diverse Einstellungen im „Kompatibilitätsmodus“ brachten keine Verbesserung. Versuche mit dem Programm DosBox 0.74 schlugen fehl - das Programm startet in dieser Umgebung erst gar nicht.

Könnte es daran liegen, dass der Rechner einfach „zu schnell“ für das Programm ist? Wie könnte man das Programm dann bremsen? Oder gibt es sonst noch Lösungsvorschläge?

Dankeschön!
(Woly)

Hi Woly

ok… würde mal folgende zwei Wege vorschlagen:

Gibts vom Hersteller der Software bzw. Wage eine Windows-Version der Software? Mal auf diese Wechseln…

oder

Denke, wenn es keine Windows-Version gibt, dann ist der Weg über die DOS-BOX nicht so schlecht. Allerdings sind dort die COM-Schnittstellen standardmässig nicht aktiviert. Im Programm-Ordern der DOX-BOX gibt es eine Datei mit den Namen „DOSBox 0.74 Options.bat“. Damit öffnet sich die Konfguratins-Datei der DOS-Box. Schaue dort unter dem Abschnitt [serial]. Dort gibt es 4 Einträge für die COM-Schnittstellen.

Wenn die Wage an der COM1 hängt müsste die Zeile so aussehen:
serial1=directserial realport:com1

bei COM2 so:
serial2=directserial realport:com2

Für weitere Angaben siehe http://www.dosbox.com/wiki/Dosbox.conf#.5Bserial.5D

Dann die Datei speichern und die DOS-BOX nochmals starten. Damti das Programm gleich startet beim Start der DOS-Box: in der selben Datei den Bereich [autoexec] ergänzen um die Zeilen, welche beim Start der DOS-BOX automatisch ausgeführt werden sollen.

Gruss
Sam99

Moin Sam99!

Gibts vom Hersteller der Software bzw. Wage eine
Windows-Version der Software? Mal auf diese Wechseln…

Keine Chance. Das Programm ist steinalt und die Herstellerfirma gibts schon seit langem nicht mehr - der Pleitegeier hat sie geholt. Somit ist die Software wirklich eine „Blackbox“ - man kann sie verwenden - und fertig! Konfigurieren oder Anpassen ist nicht möglich. Es gibt nichtmal mehr eine Doku :smile:

Denke, wenn es keine Windows-Version gibt, dann ist der Weg
über die DOS-BOX nicht so schlecht.

Wie gesagt: Das Programm startet in der DosBox überhaupt nicht. Ich müsste ja zumindest mal das Startmenü der Software sehen. Aber nach dem Aufruf der EXE tut sich im Fenster der DosBox überhaupt nichts mehr. Mag sein, dass das damit zusammenhängt, dass das Programm auf Clipper basiert - keine Ahnung.

serial1=directserial realport:com1

DAS ist natürlich ein sehr guter Hinweis! Vorausgesetzt, ich krieg die EXE überhaupt ans Laufen :wink:

Danke schonmal!
(Woly)

Servus,

Könnte es daran liegen, dass der Rechner einfach „zu schnell“
für das Programm ist? Wie könnte man das Programm dann
bremsen? Oder gibt es sonst noch Lösungsvorschläge?

Dreh die Übertragungsrate runter.
Gerätemanager --> RM COM --> Eigenschaften --> Anschlusseinstellungen

Grundconf (dran drehen bis läuft):
BpS: 9600
Datenbits: 8
Parität: Keine
Stoppbits: 1
Flussteuerung: Keine

Good luck!

widecrypt

Hi Woly

Keine Chance. Das Programm ist steinalt und die
Herstellerfirma gibts schon seit langem nicht mehr - der
Pleitegeier hat sie geholt. Somit ist die Software wirklich
eine „Blackbox“ - man kann sie verwenden - und fertig!
Konfigurieren oder Anpassen ist nicht möglich. Es gibt
nichtmal mehr eine Doku :smile:

Ok, nich gerade optimal…

Wie gesagt: Das Programm startet in der DosBox überhaupt
nicht. Ich müsste ja zumindest mal das Startmenü der Software
sehen. Aber nach dem Aufruf der EXE tut sich im Fenster der
DosBox überhaupt nichts mehr. Mag sein, dass das damit
zusammenhängt, dass das Programm auf Clipper basiert - keine
Ahnung.

Nun, weil die COM1-Schnittstelle in der DOS-BOX standardmässig nicht auf die Hardware verbunden ist und das Programm aber diesen Anschluss sucht, aber deshalb nicht findet, kann ich mir gut vorstellen, dass das Programm deshalb auch nicht läuft.

Clipper?.. ok, habe früher auch mal noch darauf programmiert… nun, wie ich weiss, hatten Clipper-Programme auf schnellen Rechnern u.U. Probleme.

Wenn du das Programm in der DOS-BOX startest, erhälst du dann eine Fehlermeldung, etwa so?

run-time error R6003

  • integer divide by 0

Gruss
Sam99

Hi!

Nun, weil die COM1-Schnittstelle in der DOS-BOX standardmässig
nicht auf die Hardware verbunden ist und das Programm aber
diesen Anschluss sucht, aber deshalb nicht findet, kann ich
mir gut vorstellen, dass das Programm deshalb auch nicht
läuft.

Absolut logisch! Trifft aber nicht zu - unter Windows XP läuft das Programm auch ohne vorhandenen COM1 - sowohl auf Blech als auch virtuell.

Wenn du das Programm in der DOS-BOX startest, erhälst du dann
eine Fehlermeldung, etwa so?

Nein, es wird folgendes angezeigt:

DOS/16M Protected Mode Run-Time Version 6.01
Copyright © Tenberry Software Incl. 1987 - 1994

Nur, dass es an dieser Stelle normalerweise nach einigen Sekunden weitergeht und das Programmmenü gestartet wird. Innerhalb der DosBox bleibt diese Meldung ewig stehen.

(Woly)

Hi widecrypt!

Die Übertragungsrate der COM1 ist schon ganz unten. Ich dachte eher daran, die Rechnerleistung selber (also die CPU-Geschwindigkeit) zu drosseln, falls sowas für einzelne Programme überhaupt möglich ist.

Danke und Gruß!
(Woly)

Hallo, Woly!

Und wenn Du mal versuchen würdest, ein beliebiges MSDOS oder z,B, FreeDOS in einer virtuellen Maschine laufen zu lassen (z.B. Virtual OSE)? Bei mir läuft da sogar das gute alte BlockOut noch passabel.

Viele Grüße

Thomas

Hallo Woly

ok… dürfte wohl etwas schwieriger werden mit diesem uralt Progi… nun, ich sehe noch zwei Möglichkeiten:

  1. Lösungsansatz
    Versuche in der DOS-BOX in der besagten config-Datei in Bereich [cpu] für den Wert cycles= verschiedene Werte aus (anstelle von =auto). Tiefere Werte machen das Programm langsamer. Wenn tatsächlich die Geschwindigkeit der CPU einen Einfluss hat, könnte damit tatsächlich was erreicht werden. Standard für aktuelle PC für diesen Wert ist ca. 3000. Versuch es doch mal mit 1200 oder 400. Versuche auch noch, wenn du unter dem Bereich [dos] die Einstellung ems=true auf ems=false stellst.

  2. Lösungsansatz
    Installiere die VirutalBOX von Oracle:
    http://www.virtualbox.org/
    Hast Du irgendwo noch ein altes DOS (5.0 oder höher), welches du installierst kannst?
    Hier eine Anleitung, wie das gehen mit der Installation:
    http://www.youtube.com/watch?v=8C_XQ86bXE0&feature=r…

Und dann in den Einstellungen hier auch wieder den COM-Anschluss auf den korrekten Hardware-COM-Anschluss verbinden in den Einstellungen der Virtual-BOX (Serielle Schnittstellen).

Der Vorteil dieser Variante ist, dass ein kompletter PC virtuell emuliert wird und nicht „nur“ eine DOS-Umbebung, was helfen könnte, dass das Programm (besser) läuft.

Gruss
Sam99

Hallo,

  1. Lösungsansatz:

-> http://www.freedos.org/freedos/files/

fdbasews.iso […]Can boot FreeDOS as LiveCD[…]

-> http://de.wikipedia.org/wiki/Live-System

  1. Lösungsansatz:

-> http://www.microsoft.com/windows/virtual-pc/

In Virtual PC kannst du versuchen dir FreeDOS einzurichten, oder es dort von der CD zu booten.

-> http://technet.microsoft.com/de-de/library/ee449417%…

Grüße Roman

Servus,

wenn die Einstellungen am COM passen, wird er Hund in den Sicherheitsriegeln von 7 begraben liegen.
Stichwort buffer underrun/overflow.
Zeug, das es zu DOS-Zeiten nicht gab.
Deswegen läuft das Prog wohl ne Zeit lang und friert dann ein.

Der Tipp im Thread drüber
/t/altes-dos-programm-unter-windows-7/6582158/8
dürfte aber funktionieren.

widecrypt

Und wenn Du mal versuchen würdest, ein beliebiges MSDOS oder
z,B, FreeDOS in einer virtuellen Maschine laufen zu lassen
(z.B. Virtual OSE)? Bei

Versuch’ ich mal… Danke!
(Woly)