A "Runtime Error 200", "Divide Overflow", or a "Divide by 0" error message
that is displayed when you try to run a program may be a result of a timing loop that
affects any program compiled on Borlands TurboPascal* compiler. All versions
(including version 7.0) of Borlands TurboPascal compilers are affected by this
issue. This compiler problem is dependent on the speed the processor is running, but it is
not a processor issue.
When executed at speeds greater than or equal to 233 MHz, a speed-dependent timing loop
in the compiled program generates a large number. The code following the timing loop then
attempts to divide this large number by a smaller constant number. This division results
in a quotient too large to be represented in the quotient register designated by the
specific divide instruction. The program will not run, and the system displays the
"Runtime Error 200" message, or a "Divide Overflow" error message.
The root cause of this problem appears to be the software libraries that come with the
compiler. Any compilers that are dependent on software-based timing loops are affected,
but this issue is specifically known to affect Borlands TurboPascal compilers.
If you have a piece of software that was compiled on a Borland Turbo Pascal compiler,
you will likely encounter this problem when run at speeds of 233 MHz and higher. One
possible solution is to contact your software vendor to see if they have a newer version
of that software that is not dependent on timing loops.
Intel is also aware of two patches for this problem, one for programs that have been
compiled with a Borland TurboPascal compiler, and one that will patch the software
libraries of the compiler itself.
Intel has worked with Inprise (formerly Borland), and Inprise has communicated that there is more
information about this problem on the Inprise Developer Support web site.