Bonjour
J'ai un logiciel sous DOS de 1995 qui ne marche pas avec les processeurs de plus de 200 Mo
J'ai essayé avec le patch en . exe mais ça marche
Je pense que ce logiciel a du etre fait en turbo Pascal 5 ??
Que faire
Merçi de vos réponse
Bonjour
J'ai un logiciel sous DOS de 1995 qui ne marche pas avec les processeurs de plus de 200 Mo
J'ai essayé avec le patch en . exe mais ça marche
Je pense que ce logiciel a du etre fait en turbo Pascal 5 ??
Que faire
Merçi de vos réponse
Si tu disposes des sources du logiciel, tu peux essayer de le recompiler avec une version plus récente. Sinon...
Hello!
et non je n'ai les sources du logiciel qui date de 1994 exactement je l'ai
obtenu sur une disquette qui etait avec le magazine PC
Si tu veux je te la fait parvenir...sur une disquette
Merçi de me répondre
Hé bien, si le patch ne marche pas, il n'y a aucune autre solution à part chercher à la main dans le code assembleur... Ou sinon récupérer un pc de moins de 200MHz...
Bonjour !
C'est un peu tordu comme solution, mais avec un émulateur comme DOSBox, tu peux régler la vitesse du processeur.
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Hello !
Ok Merçi pour vos infos
Dosbox je l'ai fait mais cela reste figé je ne peux pas acceder au DD
Et avec Win98 SE impossible pas trouvé comment faire
Dommage, si je comprends bien il est impossible de décompiler le logiciel
.exe ?
Donc je reste avec mon pentium 200 mhz
Le désassembler est chose aisée mais lui appliquer une correction à la main est difficile.Envoyé par HERON Daniel
L'erreur d'exécution vient d'un compteur de l'unité CRT déclaré comme entier 16 bits alors qu'il aurait fallu un entier 32 bits (si je dis une bêtise, merci de me corriger).
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Avez-vous essayé le patch MODIFTP7 que l'on trouve sur la page de Haypo à l'adresse http://turbo-pascal.developpez.com/ ?
Ce patch permet de modifier les exécutables créés avec TP7.
S'il ne marche pas sur votre programme, c'est que celui-ci a été compilé avec une version plus ancienne de Turbo Pascal.
Quant au Runtime error 200 qui se produit sur les processeurs plus rapides que 200 Mz, il provient du fait que la boucle de calibrage est trop rapide : entre son début et sa fin, il n'y a aucune interruption horloge ( laquelle se produit toutes les 55 millisecondes ) ; résultat, le nombre d'interruptions reste à zéro et plus loin, lors de la division par ce nombre, on obtient une division par zéro ...
La solution consiste à augmenter le temps d'exéctution de la boucle de calibrage et, comme le dit Alcatîz, à utiliser un compteur sur 32 bits pour cette boucle et non un compteur sur 16 bits qui est insuffisant.
Après vérification, l'explication du Runtime error 200 que j'ai donnée dans mon précédent message est fausse :il se produit bien une interruption horloge pendant la boucle de calibrage.
La procédure de Turbo Pascal incrémente un compteur jusqu'à ce qu'une interruption horloge se produise.
Puis elle divise ce compteur par 55 pour avoir la durée correspondant à une milliseconde.
Le problème survient parce qu'avec les processeurs plus rapides que 200 Mz, le quotient ne tient pas sur 16 bits.
Il se produit alors un dépassement de capacité, générant l'erreur et un arrêt du programme.
La modification proposée par MODIFTP7 est expliquée dans le fichier texte accompagnant le patch.
Ok comment faire pour connaitre la version TP du logiciel avec quel logiciel peut on le faire ?
Merçi
Ok pour moi j'ai réussi directement dans le fichier .exe en utilisant le
logiciel hexedit changé F7 D0 F7 par F7 D0 33 et cela marche
Grand merçi à vous tous
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Partager