Runtime Error 200

1999 November 25

Problem: All programs compiled with Turbo Pascal 7 that use the system unit CRT (almost all programs do) abort with the error message "Runtime Error 200" on faster PCs (e.g., a Pentium II with 233 MHz). These programs include versions of TrakStar, Pass Scheduler, and Pass Update released prior to 1999 November.

Cause: The source of the bug is in the initialization for the delay procedure that is part of the initialization of the CRT unit. The delay initialization is called in every program that uses the CRT unit, not just in those that use the delay procedure. The CRT unit is included in most programs that are written in Turbo Pascal. The delay initialization counts how often a tiny do-nothing loop must be called in order to delay by 55 milliseconds (time measured by reading the BIOS Time Counter at memory address 40:6C that ticks 18.2 times a second, i.e., each 55 milliseconds). This number is then divided by 55 to get the number of calls for one millisecond. The result is written to a word (16-bit) variable. The overflow of this variable triggers a runtime error (Runtime Error 200 is a division by zero, which is caused by the overflow condition in this case).

Solution: All programs were recompiled after applying the patch found at

http://www.brain.uni-freiburg.de/~klaus/pascal/runerr200/download.html#T7TplFix

The information above was extracted from:

http://www.brain.uni-freiburg.de/~klaus/pascal/runerr200/index.html

If you continue to experience this problem with the newer versions of these programs, please let me know.


TLE Data Space Data
Current GPS
Archives EOP
Documentation Space Weather
SATCAT Columns
Boxscore Software
SOCRATES
Dr. T.S. Kelso [TS.Kelso@celestrak.com]
Follow CelesTrak on Twitter @TSKelso
Last updated: 2018 Jun 27 02:21:55 UTC
Accessed times since 2000 December 16
Current system time: 2018 Jul 21 07:16:16 UTC