Some Programs Crash When Run on Some Faster Pentium-Based Computers
Affects:
MicroCAT Compiler for DOS (MC.EXE)
Possibly some other DOS-based programs
Problem
The above products crash upon starting when run on a computer
using an Intel Pentium II (and possibly Celeron) processor running above 180
MHz. The crash usually results in a "Runtime Error 200" message.
Solution 1
Download the file pent2.exe into the directory
containing the problematic program. After making a copy of the program that
needs the fix (in case this experimental solution doesn't work), run the
Pent2 program on it. For example, to modify MC.EXE, type the following red
text at a DOS prompt:
C:\MICROCAT\>COPY MC.EXE MC.OLD
1 file(s) copied (DOS will reply with this message)
C:\MICROCAT\>PENT2 MC.EXE
Pentium 2 Delay Bug Fixer, (Borland: CRT unit, TurboPower: OPCRT, APTIMER)
Searching...
Fixed at byte position: 186863
Try running the program; if it doesn't work, try Solution 2 below.
Solution 2
Disable the internal cache in your computer's BIOS (this process
differs from one manufacturer to another, so you will need to consult the
computer's manual). If you don't feel comfortable making this kind of change to
your computer, consult your local technology specialist or adolescent. Because
this slows Windows severely (and essentially turns your computer into the
equivalent of an 80386), we recommend rebooting into the Command Prompt only to
run the DOS program. Re-enable the cache before even attempting to use Windows.
Trust me, it isn't fun without the caches!
If it still doesn't work, e-mail
us and we'll get to work on finding another solution.
Techno-Babble - For those too curious for their own good...
Some applications written using Borland Pascal may generate this error
message when running on fast machines. The cause of this error is a timing loop
that occurs as part of the initialization of the program. This timing loop
counts how many clock ticks occur within the loop and then divides that number by 55. The result of this division is a
number too large to fit
into an integer value. The "Divide by 0"/"Runtime Error 200"
error messages are the catch-all errors displayed when this overflow occurs.
Curiously, although Intel's Web site reports that the "problem is dependent on the speed the processor is running, but it is
not a processor issue" [italics added], this problem has yet to
appear (for ASC products) while using Pentium III- or anyAMD-based
computers (even those running as high as 450 MHz). We leave any conclusions
given that information to the reader.