TopSpeed Modula2,
32-bit being the main motivator, since increasing amounts of work went in my old app working around memory limitations. (64k per structure, EMS/XMS etc). Commercial 32-bit M2, already not a primary choice due to student finances and no sitelicenses, had no real non dos/windows options (and I wanted Linux/BSD in due time), so I ended up with FPC.
The lessons I learned from the M2 period were that language purity is overrated, specially when taken to extremes, and not having a(ny) community, and having to do everything by yourself is tiring.
Yes, I'd forgotten that (never got TopSpeed), I just gave up and went back to Pascal. The bit about libraries and community can't be overemphasized, some good stuff has died out for that reason.
Of course I/O was a big problem in the original Writh definition of Pascal (like it was a major pain, I first used Pascal c1981 on a main frame) trying to just write a sting to standard I/O was confusing especially for a beginner (I'd already learned several languages by then so it was just awkward for me, but for most students in that class it was like their first intro to programming after BASIC), but that got fixed, and I'm sure M2s shortcomings would have too, but we are where we are and FPC/Lazarus is really a darn good language, I can produce debugged code faster than anything else in it and if M2 had become dominant instead, that's probably what I'd be saying about it.
@OP:
I just looked and I see there is a free version of ADA, anyone interested in Pascal like languages should check it out:
https://en.wikipedia.org/wiki/Ada_%28programming_language%29or here:
http://www.getadanow.com/which is GNU 3 license
Learn it then maybe get a job with the US DOD
(no I didn't download it got enough on my plate).
This was an attempt actually to consolidate a lot of languages but it has a lot in common with Pascal (and ALGOL). Get a basic feeling for it (no pun intended) here:
https://en.wikipedia.org/wiki/Ada_%28programming_language%29It was written with concurrency in mind and built into the language so it might be useful for that. But implement some pragmas and there goes all the safety features
.