Runtime error 200

L'erreur :
Sur les ordinateur équipés de processeur supérieur ou égale à 230 MHz, nous obtenons souvent l'erreur 200 lorsque nous exécutons un programme fait en Turbo (Pascal ou C) pour DOS de Borland. Cette erreur est due à l'unité CRT ; elle est provoquée par le calcul de la variable qui sera utilisée par la procédure "Delais".

Solution par patch :
Pour palier rapidement à ce problème, vous pouvez effectuer une modification directement dans le fichier EXE en remplaçant la première chaîne par la seconde :

F7 D0 F7 D2 B9 37 --> F7 D0 33 D2 B9 37.

F7D0
F7D2
B93700
F7F1
NOT
NOT
MOV
DIV
AX
DX
CX,0037
CX
F7D0
33D2
B93700
F7F1
NOT
XOR
MOV
DIV
AX
DX,DX
CX,0037
CX

Cette solution remplace un NOT DX en un XOR DX,DX. Ainsi, le double mot DX:AX utilisé pour la division se restreint à AX.
Avec cette modification (patch), il est certain qu'un programme utilisant la routine de temporisation basé sur le quotient de la division ne fonctionnera pas à la vitesse prévue.

Solution de compilation : (Turbo Pascal)
L'unité CRT est à l'origine de l'erreur. Pour la résoudre, vous pouvez soit ne pas utiliser l'unité, soit la remplacer par une nouvelle prenant en compte le problème : voir le dossier sur la nouvelle unité.


Dernière mise à jour : dimanche 06 janvier 2008