I'm writing a decompiler for Turbo Pascal 3.0, to reverse engineer an educational game from the 80s.
Since TP 3.0 does no optimisations, and looking at the progress so far (~25% decompiled), it seems like matching decompilation should be achievable.
If/when I get to 100%, I hope to make the process of annotating the result (Func13_var_2_2 is hardly an informative variable name) into a community project.
Neat! I sometimes play around with the idea of reverse engineering and transcompiling a tiny game that I think was probably written in Turbo Pascal 4.0. Maybe 4.0 supported optimizations, but this program seems to have been compiled in a debug mode. (At least, it seems to have no optimization, and has the default {$S+} stack overflow checking at the start of every function.) The lack of optimization makes it (and perhaps other programs written in Turbo Pascal) a really attractive artifact to experiment with transcompiling. When I realized that only the first segment was the actual game, and the other three segments corresponded to standard units used for I/O (etc.), which could be harder to analyze, I realized I could just omit those segments and replace them with new functions suitable for the transcompilation target. Maybe some day I'll get around to finishing it.
Good luck!