Dos Runtime Error
Contents |
CRT.ASM unit included with these compilers. DOS based programs that were compiled using these buggy versions of the CRT unit will runtime error 200 pascal generate the RTE200 error when started on a CPU that is faster then
Freedos Runtime Error 200
200 Mhz (though some non-Intel CPU's would avoid the error up to 350 Mhz). One solution is to recompile the source
Tp7p5fix
code using a later version of Pascal, or a fixed CRT.ASM unit. Obviously that's only possible if you have the source code available. The more common solution is to patch the .EXE file to disable
Patchcrt
the bug. There are several programs that allow this. The one I recommend is PatchCRT by Kennedy Software. This one is more compatible 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 dosbox runtime error 200 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 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.EX
fix RunTime Errors on some apps A freeware utility, which patches some older MS-DOS EXE files, to permit them to run on fast Pentium CPUs. This speed problem applies only on CPUs which match or exceed the speed of a Pentium 200 (approx), and applies only to some older versions of a specific software module named CRT.ASM, which was part of the Turbo-Pascal offerings from Borland. Be aware that this CRT.ASM module has been used in a variety of other products, and it is often not initially obvious that some flawed CRT.ASM code is embedded in other apps. The symptom is a Divide-by-Zero error message when the app http://www.pcmicro.com/elebbs/faq/rte200.html is run on a fast CPU, or a Divide Overflow error message, or a Runtime Error 200 message, or similar. Unfortunately, the error message usually won't simply say that the CPU is too fast !. The preferred solution is to use an updated version of CRT.ASM, or to contact the software developer, and request that an updated CRT.ASM be used to re-build the app/utility. However, if this is http://www.kennedysoftware.ie/patchcrt.htm not possible, then PatchCRT can be tried. Similar CRT.ASM "patchers" are available from others - though feedback suggests that a few different versions of flawed CRT.ASM code were released, and that this patcher copes with all known releases. Note: we've seen a few EXE files with the 200 error, but which PatchCRT, up to ver 1.5, would not adjust. On looking inside these EXEs, we noticed some code which is similar to published versions of CRT.ASM, but not EXACTLY the same. As of Jan 2000, we released ver 1.6, which also recognises this similar code, and patches it accordingly. Which is another way of saying - TEST your app carefully, if PatchCRT patches it !!. This program is freeware: use it at your own risk; take good backups first; test carefully - the usual small print. We'd appreciate feedback, if it works for you, and feedback if it does not !. Download PatchCRT.ZIP. This file-size is about 30k. (See Download Instructions). Note-1: Sometimes, EXE files are Compressed. PatchCRT does not include any de-compression code, and therefore will not repair compressed EXE files. If PatchCRT does not work for you, you might check if the EXE file is compressed, eg using PKLITE, LZEXE, etc. (To
I have some old .exe files that were developed during the MS-DOS era. I have run them in a Windows 95 system and everything was ok then. However with Windows XP a Runtime Error 200 http://www.pcreview.co.uk/threads/runtime-error-200-while-trying-to-run-old-exe-files-ms-dos-era.3439239/ message appears on my screen (while executing C:\WINDOWS\system32\cmd.exe). What is error 200? How could I https://www.experts-exchange.com/questions/10476300/runtime-error-when-trying-to-run-ms-dos-program.html run those old files again in a XP system? Do I need to modify something in the XP? Thanks in advance for your comments QUESTIONC++, Mar 5, 2008 #1 Advertisements Dave R. Guest "QUESTIONC++" <> wrote in message news:... > Hi: > I have some old .exe files that were developed during the > MS-DOS era. > > I have run runtime error them in a Windows 95 system and everything was ok then. > However > with Windows XP a Runtime Error 200 message appears on my screen > (while > executing C:\WINDOWS\system32\cmd.exe). > > What is error 200? How could I run those old files again in a XP > system? Do > I need to modify something in the XP? > > Thanks in advance for your comments Looks like you have run into an oldie but runtime error 200 a goodie (and has nothing to do with Windows at all, if I'm right). Most likely, these old .exe files were compiled with Borland Turbo Pascal 7, which had a bug that caused Runtime 200 errors when they were run on a PC faster than about a 200MHz PC. Here's an excerpt from the comp.lang.pascal.borland FAQ: Why do fast CPUs (Celeron, Pentium II and >200MHz) give problems with Crt.Delay? A problem may occur with a PP-200 (or better) CPU in that Runtime Error 200 is generated in the start-up code
for Help Receive Real-Time Help Create a Freelance Project Hire for a Full Time Job Ways to Get Help Ask a Question Ask for Help Receive Real-Time Help Create a Freelance Project Hire for a Full Time Job Ways to Get Help Expand Search Submit Close Search Login Join Today Products BackProducts Gigs Live Careers Vendor Services Groups Website Testing Store Headlines Experts Exchange > Questions > runtime error when trying to run ms-dos program Want to Advertise Here? Solved runtime error when trying to run ms-dos program Posted on 2000-06-17 Windows OS 1 Verified Solution 15 Comments 601 Views Last Modified: 2013-12-28 runtime error message : runtime error 200 at 0009:37F2 appeared when I tried to run a dos program like Kermit, or dos games. Sometimes the message said "overflow.." I have amd k7 800mhz, 128Ram, 16Gb, win98. 32 bit access Is there any way to get dos programs working. 0 Question by:visp Facebook Twitter LinkedIn Google LVL 15 Best Solution byhewittg Ok Tonny, Thanks Glenn Go to Solution 15 Comments LVL 15 Overall: Level 15 Windows OS 12 Message Expert Comment by:hewittg2000-06-17 visp, What is the exact error? Any numbers after runtime error? Glenn 0 Message Author Comment by:visp2000-06-17 Edited text of question. 0 LVL 15 Overall: Level 15 Windows OS 12 Message Expert Comment by:hewittg2000-06-17 Pentium® II Processors "Runtime Error 200", "Divide Overflow", "Divide by 0" errors when running software that was compiled on a Borland TurboPascal* compiler. 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 Borland’s TurboPascal* compiler. All versions (including version 7.0) of Borland’s 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 prob