Discussion:
Überlauf bei Division
(zu alt für eine Antwort)
Wolfgang Fieg
2015-09-10 18:02:16 UTC
Permalink
MS-DOS 6.00 und 6.22

Nach Installation von MS-DOS 6.00 und 6.22 habe ich ein altes
DOS-Programm (Ahston Tate's Framework IVI installiert. Bei Aufruf des
Programms wird es nicht gestartet; statt dessen erscheint die
Fehlermeldung "Überlauf bei Division". Was kann die Ursache sein? Ein
falscher oder fehlender Eintrag in der CONFIG.SYS?

Vielleicht kann jemand helfen.

Wolfgang
Marcel Mueller
2015-09-10 20:21:38 UTC
Permalink
Post by Wolfgang Fieg
Nach Installation von MS-DOS 6.00 und 6.22 habe ich ein altes
DOS-Programm (Ahston Tate's Framework IVI installiert. Bei Aufruf des
Programms wird es nicht gestartet; statt dessen erscheint die
Fehlermeldung "Überlauf bei Division". Was kann die Ursache sein? Ein
falscher oder fehlender Eintrag in der CONFIG.SYS?
Mal so ins Blaue:

Vermutlich mit Borland C compiliert. Da gab einen Fehler in der C
Runtime in einer Routine, die die CPU-Geschwindigkeit in Schleifen
ermittelt. Da wird einfach bis zu einer bestimmten Zahl gezählt und die
Zeit gestoppt. Auf schnellen CPUs gibt es aber während der gesamten
Schleife keinen einzigen Timer-Interrupt und so ermittelt die Funktion
einer Dauer von null. Bei der anschließenden Berechnung der Anzahl der
Schleifendurchläufe pro Sekunde wird dann durch null dividiert. Kurzum,
auf neueren Rechnern, bei denen der loop-Befehl schnell ist, geht das in
die Hose.

Falls es das ist: dafür gibt es einen binären Patch, der im wesentlichen
darin besteht durch 1 statt durch null zu dividieren. Das Ergebnis ist
natürlich trotzdem falsch bzw. stark ungenau, aber das hat zumeist keine
Auswirkungen.


Marcel
Ulrich F. Heidenreich
2015-09-11 08:11:13 UTC
Permalink
Post by Marcel Mueller
Post by Wolfgang Fieg
Nach Installation von MS-DOS 6.00 und 6.22 habe ich ein altes
DOS-Programm (Ahston Tate's Framework IVI installiert. Bei Aufruf des
Programms wird es nicht gestartet; statt dessen erscheint die
Fehlermeldung "Überlauf bei Division". Was kann die Ursache sein? Ein
falscher oder fehlender Eintrag in der CONFIG.SYS?
Vermutlich mit Borland C compiliert. Da gab einen Fehler in der C
Runtime in einer Routine, die die CPU-Geschwindigkeit in Schleifen
ermittelt. Da wird einfach bis zu einer bestimmten Zahl gezählt und die
Zeit gestoppt. Auf schnellen CPUs gibt es aber während der gesamten
Schleife keinen einzigen Timer-Interrupt und so ermittelt die Funktion
einer Dauer von null. Bei der anschließenden Berechnung der Anzahl der
Schleifendurchläufe pro Sekunde wird dann durch null dividiert.
Das dürfte die gleiche Routine sein, die unter ähnlichen Umständen in
Turbo-Pascal den berühmt/berüchtigten "Runtime error 200" auslöst:

<http://www.heise.de/ct/hotline/Nicht-schon-wieder-Runtime-Error-200-307662.html>


CU!
Ulrich
--
Ja.
Wolfgang Fieg
2015-09-11 19:09:12 UTC
Permalink
Erst mal vielen Dank für die Hinweise; ich werde das in den nächsten
Tagen probieren und dann eine Rückmeldung geben.

Wolfgang
Wolfgang Fieg
2015-09-12 14:34:30 UTC
Permalink
Am 10.09.2015 um 20:02 schrieb Wolfgang Fieg:

Ja, leider funktioniert es nicht. Das empfohlene ct-Programm gibt
zunächst folgende Meldung aus:

"Original BP 7.0 CRT will overflow on this processor at 263 MHz"

Und dann die Fehlermeldung:

"FW.EXE ... no TP/BPoops, access error".

Kann jemand damit etwas anfangen?

Wolfgang
Claus Reibenstein
2015-09-12 17:35:54 UTC
Permalink
Post by Wolfgang Fieg
"FW.EXE ... no TP/BPoops, access error".
Ich interpretiere die Fehlermeldung so, dass FW.EXE kein
Turbo-Pascal-Programm ist und deshalb der Patch nicht angewandt werden kann.

Übrigens lustig, was Google so ausspuckt, wenn man die Fehlermeldung
dort eingibt ;-)

Gruß
Claus
Claus Reibenstein
2015-09-12 17:42:03 UTC
Permalink
Post by Wolfgang Fieg
Nach Installation von MS-DOS 6.00 und 6.22 habe ich ein altes
DOS-Programm (Ahston Tate's Framework IVI installiert. Bei Aufruf des
Programms wird es nicht gestartet; statt dessen erscheint die
Fehlermeldung "Überlauf bei Division".
Du könntest mal versuchen, das Programm in einem DOS-Emulator wie z.B.
DOSBox laufen zu lassen. Diese Emulatoren sind deutlich langsamer als
gängige Hardware.

Gruß
Claus

Loading...