Turbo/Borland Pascal Patches

for CRT Problems on Fast PC's


If you have a 'fast' PC (what's that today :-)), a PPro/P2 at 200MHz or better, you may have noticed a couple of Good Old Dos programs are no longer functioning. Instead they reply with an error message like 'Runtime Error 200: Divide by zero'. In this case, the program is a Pascal program using the CRT unit. At startup of the program, the Crt.Delay loop is executed. The loop counter, divided by 55 is on these machines larger than what fits in a 16-bit register. So the 'divide by zero' error message isn't really correct.

There are a couple of patches available for this problem. Some patches are RT (runtime): they fix the actual program. Other patches actually alter the source code of the CRT. But this is only useful if you compile Pascal programs yourself. Already built programs won't be changed.

Runtime patch

I have one patch here that should work with any Pascal programs compiled with TP/BP 6.0/7.00/7.01. I have finally been able to check this patch (unfortunately not on my very own PC, which is still too old, I'm afraid...) and guess what... IT WORKS!

The patch has background information in German (TPPATCH.DOC) and English (TPPATCH.ENG). The patch can be executed by starting TPPATCH.EXE. If you want to patch from inside Windows NT, run NT.BAT instead.


BP7 CRT source patches (compiletime)

I have two of those patches here. The patches have been tested, but only the second one seems to work for protected mode programs. The patches work with versions 7.00/7.01 only. See readme.txt in the files for instructions.


Back to homepage.