I could compile it in Lazarus (just because I'm not so familiar with the old Turbo Pascal user interface of the FP GUI any more). Changes required:
- All the units having "unit" in their name (e.g. "GRAPHUNIT.PAS") are "real" units; the other files are include files - this is the reason why they simply begin with "procedure". FPC does not seem to like it. Rename these files to have the extension ".inc" instead of ".pas". Note: in many unit files there is a list of included files, e.g. {$I STRINGS.PAS} - apply the .inc here too! (--> {$I STRINGS.INC}).
- The project links the old BGI drivers and font files. FPC does not seem to like them (at least I don't know how to fix this). In unit "INITUNIT.PAS" remove the units Drivers and Fonts from the uses list. In "DETECT.INC" remove the blocks commented as {Register all the drivers} and {Register all the fonts} which are responsible for linking the corresponding .obj files.
- When you intend to run the program under Linux make sure of the case of all filenames. Lazarus sets all files to lowercase while this project has everything in uppercase - this calls for trouble under Linux.
Good news: With these changes the project compiles.
Bad news: The screen is only black... So, you'll have to spend many happy hours of debugging.
Is this solution (theory and its formulas) still valid after almost 3 decades?
Believe it or not: Newton's Law of Gravity is still valid after more than 300 years.
Write it new again.
Yes, I agree. But I think the conversion is easier if the old source still can be brought back to life, just for comparison of the results etc. If you don't get happy with FPC you could also thinking of using the old original Turbo Pascal versions which are free now as "Antique Software" (
https://web.archive.org/web/20040203055603/http://bdn.borland.com/museum/).