Error 200 Division By Zero Pascal
Contents |
the CRT.ASM unit included with these compilers. DOS based programs that were compiled using these buggy versions of the CRT unit will generate the RTE200 error when started on a CPU that runtime error 200 dos is faster then 200 Mhz (though some non-Intel CPU's would avoid the error up to 350 Mhz).
Tp7p5fix
One solution is to recompile the source code using a later version of Pascal, or a fixed CRT.ASM unit. Obviously that's only possible if freedos runtime error 200 you have the source code available. The more common solution is to patch the .EXE file to disable the bug. There are several programs that allow this. The one I recommend is PatchCRT by Kennedy Software. This one is more compatible patchcrt then most others, including TPPatch (which is less effecent, and uses German results and error text). I'd suggest keeping PatchCRT.exe in your path, so that you can run it from any directory simply by typing it followed by the name of the .EXE to be patched. PatchCRT will only be able to patch .EXE files which have not been compressed by an EXE compressor, such as aPACK, Diet, LZEXE, PKLite, Petite, UPX, etc. If PatchCRT fails to patch the .EXE, there
Dosbox Runtime Error 200
is a good chance it is because the .EXE has been compressed. The best tool I have found to uncompress .EXE files is UNP. This has worked for about 80% of the compressed .EXE files I have encountered. The nice thing about UNP is it runs well under Windows. My second choice would be CUP386, but this works best in a plain DOS environment without any extended memory manager (including himem.sys or emm386.sys) installed. I have used this tool to uncompress several .EXE's which UNP was unable to do. Once you have sucessfully uncompressed a compressed .EXE file, you should then be able to run PatchCRT on it to remove the RTE200 bug. If all the above fails, the other option is to run a TSR (Terminate and Stay Resident) utility that will provide a kluge to the division by zero issue by catching this error as the .EXE is being run, and telling DOS to ignore it. The best TSR I have found to do this is TP7p5fix. Simply run the TP7P5.EXE to load the TSR into memory, and any programs being run in that DOS window will avoid the RTE200. Keep in mind that once you close this DOS Window, or open other DOS Windows the TSR will not be active unless you load it again. Be sure to read our Disclaimer Return to the EleBBS FAQ Copyright © 2000 - 2006 pc micro systems, inc.
MSS03USA 2006South Africa 2008 Last updated: July 18th, 1999(Uploaded May 17th, 1998) Runtime Error 200 running a Pascal program on fast systems (PII 266+) Contents of this document General information Programmers information Programmers Option 1: Enhancing the Delay-routine Programmers Option zero tsum tsum 2: Removing the Delay-routine Optional replacement delayloop Users Patch-program General information The Runtime Error 200 (Division by zero) bug is not part of the Pentium Errors. It's a mistake Borland made. The initialization part of the CRT unit has a calibration loop for the procedure DELAY. The resulting value of a counter depends on the speed of the cpu. This counter http://www.pcmicro.com/elebbs/faq/rte200.html has an overflow on high speed cpu's, including Pentium II 266 Mhz and faster. Actually it is the same bug that on earlier processors caused Delay to be inaccurate, that now causes programs to fail with a runtime error if they use the CRT unit! Some (earlier?) compiler versions mysteriously seem to go free of this bug - Delphi doesn't have http://mtech.dk/thomsen/program/pasbug.php them, for instance, and Turbo Pascal 6 seems to work too. Please note: I take no responsibility for the potential damage people may do to their RTL's, working programs or vital data while using the instructions in this document. Keep backups of the appropriate files! (and then some...) Programmers As a programmer you have several different options. First of all you can disable the delay-routine completely. If you need a delay routine you can use the one found in this document, you can create your own, or you can find another one somewhere on the web. Another solution is to change the Delay-routine so it will work on todays fast systems. This solution found in this document should push the problem about 10 years into the future if we assume that Moores Law is correct. If you're having Borland Pascal, you also have the sources of the runtime library. Just make the following changes and recompile the complete runtime library. A MAKEFILE is included with the sources. If you have Turbo Pascal only, it's a bit more complicated. You'll need t
encounter this Runtime Error. Runtime Error 200 Symptoms Like any other Runtime Error, Runtime Error 200 lets itself be well known via http://wiki-errors.com/runtime-error-200-%E2%80%93-the-pascal-error/ a pop up alert. This “bug” seems to pop up in DOS based programs that were faster than 200MHz and could make an already slow machine even slower and/or inoperable. Runtime Error 200 Causes The Runtime Error 200 problem is generated in the initialization routine’s internal workings. What happens is a code will actually measures the “running time” of what is called error 200 a busy wait loop. While doing so it calculates how many times a call must be made for a delay in the correct amount. When the computer moves too fast and the loop takes zero ticks and the calculations come up as “Division by Zero’ or Runtime Error 200. Solving Runtime Error 200 There are two ways in which you can runtime error 200 go about solving Runtime Error 200 problems. The first way is to use a patch in order to get the program to work, but this is risky. If you do this be sure you are using a reputable website in order to get the patch as some patches are really nothing more than viruses in disguise. Another solution is to run a TSR, or Terminate and Stay Resident, utility. Steps: Run the TP75.EXE and allow loading into TSR memory. Run your DOS program and avoid the error message. Repeat steps one and two each time you access DOS as the TSR will not be active unless you load it each time. See Also Personal tools Namespaces Article Search Our Products Main Page Applications .Net Framework Error AOL Browser Errors Installer Errors Internet Explorer Macro Errors Media Player MS Outlook Network Errors Outlook Express Windows Live Articles DLL Errors Exe Errors Ocx Errors Operating Systems Windows 7 Windows Others Windows Vista Windows XP TuneUp Tips Browser Tuneup Computer Tuneup Pages About Us Cat List Support Contact Us Help Center How to Uninstall Refund Polic