270 comments

[ 2.7 ms ] story [ 103 ms ] thread
I started with TP 3.0 in high school. It compiled faster than any other Pascal. It uses the WordStar editor. My teacher called it the cat's pajamas.
TP 2.x and 3.x had integrated editors that were functionally similar(inspired by) to WordStar, but were not wordstar, and using an external editor was a pain in the ass.
I mean to say it used WordStar commands. It was an early IDE and worth the money to switch from MGA to CGA to see the color highlights.
Hi Norm, hope everything is well with you.
All is well. How are you doing? I'm thinking of skipping Windows 11 and going to Debian or Ubuntu. My PIII problem was that the CD-ROM drive was not supported by Linux, so I had to buy a Sony drive.

I got Ubuntu on a laptop and Virtual Box on my Windows 10 PC. I am slowly getting better with it. All I had to do was avoid IWETHEY and investigate on my own.

Here is a Turbo Pascal 3.0 Autoexe Password program I wrote in 1985: https://github.com/generalram/TurboPascalDOSPassword

I'd like to get into Free Pascal and Lazarus but I am also trying to get into so many other things like Python. I worked with Procasti to do this forum software: https://github.com/orionblastar/K666 But I forgot what I learned due to my medicine and mental illness which causes a disability.

I've come a long way, but needed a break to get sane again.

Never wrote a line of code in Turbo Pascal afterward, but taking it in HS (somewhat on accident) in 1995 was what set the trajectory for the rest of my life.
Same here. Even now, I still sometimes set my vim colors to blue background and yellow/white text.
That was a common choice for TUI software running in the 16-color PC textmode palette. I suppose the blue provided a "dark" background with less contrast than actual black. (TUI programs of the era generally had a pure black-and-white mode too, and the overall look there was not unlike that of *nix terminal-based software.)
I suspect it was in rather large measure because white on blue was the default for the DOS prompt in the early-mid eighties, and that in turn I always thought was because those were the colours of IBM's logo.
Cool. I should try that. I was a heavy TP user too.

Man, this reminds me of amber screen monitors. I liked them better than the green screen ones, but somehow, the amber ones seemed to be much less popular, at least in areas where I was.

I used blue/yellow in Emacs until I bought a laptop with a glossy screen in 2011. Now it's grey/yellow. Some habits die hard.
Similar story here. I started with like 12 casually with C and later C++ in multiple attempts and failed, but TP brought me the joy of programming. And later I could master all other languages (including C/C++).

I will never forget how great it is to have some simple IDE with a "run" button/key, and build simple UI toys with points/lines/rectangles/... (what was it? tortoise? turtle? idk) for a school kid in that age. it was pure magic to bend pixels to my will.

I started with Turbo Pascal, and as is often noted by others, I spent a lot of time with the book Borland shipped with the compiler.
And Jeff Duntemann's outstanding "Complete Turbo Pascal".
I remember his x86 assembly book really well - I remember him first showing DEBUG.COM and I was like “what??? How is that possible???”
I still have a (translated) copy of that book!
Turbo Pascal was my first real programming language (after BASIC and a bit of 8086 assembly) in my pre-teen years, and I read the manual very thoroughly. It was fascinating to learn, even though much of it was over my head.

I remember sitting at the living room table on many evenings, studying a stack of printed out source code. My task was to contribute to translating a bulletin board system called WWIV.

https://en.wikipedia.org/wiki/WWIV

I went on to study Turbo C, which came with a wonderfully informative manual also. That experience formed the foundation of my programming in the next decades (2~3).

25 seconds to compile it? How come ?
My understanding is the compiler was insanely efficient and parts of it coded in assembly if I'm not mistaken.
I think that the question was rather why it took 25 seconds to the current compiler to compile an Hello world on a contemporary computer... Turbo Pascal would have definitely done that in a second or less on an 8086 CPU...
It was completely written in assembly
hand written and also optimized for throughput right ? maybe pascal syntax was also parsing friendly.. i don't recall

one thing for sure is that it felt near instant if not real time building small projects, to the point that 14yo me was completely unaware of meaning of Compile until years later.

>maybe pascal syntax was also parsing friendly..

Yep, designed to be single pass, recursive descent friendly

And despite being single pass, you could call functions and procedures before you defined them (later in the code), by using the forward declaration feature of Pascal.

Because of this feature, the language could also support mutually recursive functions, which some other languages might not have been able to (not sure).

What bear8642 says. I worked with Anders and interviewed the poor man about it!
Niklaus Wirth (Pascal inventor) had the rule that compiler speed must never regress. So if you add an optimization (which means the compiler has to do more work), the optimization must "pay for itself" and make the compiler faster.

That philosophy probably seeped into Turbo Pascal to some degree.

That’s very interesting. I see similar attitude in the C# JIT/Roslyn developers where they take this very seriously. Interesting are this is influenced by Anders, or just whole thing tick for a lot of compiler developers?
You're saying that the reason for the slow compilation speed we see here is a commitment to keeping the compiler fast. That's not a logical sequence of thought.
Also, Pascal is a direct descendant of a very, very old language (ALGOL-58 from 1958). In the 1950s, HLL compilation was at the extreme edge of what computers were capable of doing and a key goal of language design was (or should have been - cough COBOL cough) to make it as efficient as possible.

By the time Ken Thompson was designing languages, hardware had improved a lot and he could make compilation efficiency a lower priority.

Technically, ALGOL-58 lead to ALGOL-60 which led to ALGOL X (1966) then to ALGOL W (1966) and then to Pascal (1970). X and W were proposals by Nicklaus Wirth and Tony Hoare as successors to ALGOL 60.
When I was a kid, a kindly computer store owner (who also made me a great deal on an PC-semi-compatible running MS-DOS 1.25, for approx. a hundred lawns mowed and babies sat) sold me a copy of Turbo Pascal for generic MS-DOS (no PC BIOS assumed) on 8" floppy. He transferred it to the 160KB 5.25" format that my semi-compatible used.

I hope I was appreciative enough at the time, as I am now. That helped bootstrap my career.

Okay, I'll bite :)

What's this "PC-semi-compatible" of which you speak?

Interesting question... based on DOS 1.25, I can't imagine there are many choices. (Maybe the earliest Compaq machines among them).
That was the version of DOS that the Columbia MPC ran, and it was almost 100% compatible. I ran some code based on articles about the video card, and it couldn’t do the 160x100 mode that people wrote about.

So a lot of “clones” may have been this close as the Columbia was.

Sanyo MBC-550 series. It later got MS-DOS 2.11.

https://en.wikipedia.org/wiki/MBC-550

That was my first computer too.
Missed this and commented separately. Thanks for reminding me of the model. This was my upgrade to the TI 99/4 I drove across the state of CT to spend 995 1980-ish dollars on.
Back in the early days, MS-DOS was very much like CP/M in that there were several different 8088 machines. The “PC Compatible” hadn’t quite exploded yet, so MS-DOS (and CP/M 86) compatibility was enough.

But soon, Flight Simulator became the benchmark for compatibility, and I think the final nail was that Lotus 1-2-3 required an actual PC compatible machine. That plus the rise of clone BIOSs pretty much ended the brief era of generic, 8088, non-PC compatible machines, save for niche domains.

An interesting artifact of this era was when Steve Ciarcia of BYTE magazine released his 8088 board, and it was not PC compatible. He made some different design decisions.

Flight simulator as a test … still remember my boss tick that out as said you really cannot put that as requirement. We are in business not playing game …
I thought it was the BIOS that was the compatibility issue. That's one of the few proprietary parts IBM had when they released their PC. Clones were built on a reverse engineered BIOS that, for a while, wasn't quite right. I vaguely recall 90% PC Compatible computers or something like that.

Halt and Catch Fire covers this. I could be wrong though.

https://www.imdb.com/title/tt2543312/

Not the OP but in my case it was a Sanyo with 2 floppies.
Wang had some funny ones. They ran both MS Word and MS Multiplan.
I remember back in the day working for a law firm that had some Wang MS-DOS compatible PCs. Note "MS-DOS" compatible, not PC compatible...they ran DOS without even trying to duplicate the IBM-PC BIOS, as Compaq eventually did.
Free Pascal still has a look-a-like of the original TP IDE! But that code is bitrotting by their own admission (it still relies extensively on obsolete quirks of the original MS-DOS platform) and it's sad that we don't have a look-a-like version that can work as a general editor in the terminal (like neovim or emacs) and integrate with modern IDE-oriented facilities like the LSP, tree-sitter parsers or the debug adapter protocol. That could even be a game changer for editing code remotely from SSH/terminal connections.
A little over a decade ago some of my friends who were Turbo Pascal fans transitioned to Lazarus. Seemed like the logical successor to Turbo Pascal and Free Pascal. (Personally I transitioned to writing C++ in Emacs as I did not really appreciate the Pascal language.)
> Seemed like the logical successor to Turbo Pascal and Free Pascal.

To be more accurate, Lazarus is a GUI IDE for Free Pascal, not a successor. The same way Emacs can be an IDE for C that you'll compile with GCC.

I know, Delphi effectively replaced Turbo Pascal from the Borland side, even though Delphi could have been "just" an add-on to Turbo. They just didn't take that route.

It changed my life and made me want to write compilers for a living. I wrote the first one in Turbo Pascal.
I first used Turbo Pascal in a high school programming class. I remember our teacher saying: "Make it work first, then you can make it look pretty."
It's being used to this day (or until very recently, at least) in some countries, generally running under dosbox because DOS software can no longer run natively in modern PC OS's.
FreeDOS exists.. https://freedos.org/
That can no longer run on many modern computers as the backwards-compatible BIOS is phased out, not to mention many computers switching to ARM.
You can still run it on qemu (even on ARM).
we had Turbo, JRT, and UCSD back at my first job out of college. All quite good in their way.
I started with TP 5.5...
My uni had two micros halls, one with 5.0, the other with 5.5. What's the difference? I asked. It turns out the 5.5 had some new shit called "Object Oriented Programming"... and a Breakout clone to illustrate the paradigm.

At some moment Borland released, free as in beer, the 3 and 5 versions. Binaries should be out there somewhere for those curious.

I'm sure young people would be surprised to see what 5.5 provided. The on-screen help was amazing: cut and paste useful examples from the help of many functions. And the instantaneous compiling... :)

Ha, thanks for refreshing my memory that it was 5.5 that added OOP!

I started with 4.0, so that's my baseline. Then 5.0 added overlays (IIRC) and 6.0 introduced Turbo Vision, which was a kind of magic to me :).

It's interesting how a _programming language/IDE_ can bring such warm feelings.

I remember I learned Turbo Vision and OOP in general by writing my own Turbo Vision equivalent for the graphics mode (vs. text-only). Good times!
That's very cool! IIRC I tried to write a very simple Turbo Vision clone (or subset) but I couldn't fully comprehend how the nested widget initialization worked. I mean, I knew the last parameter was a pointer to the next widget, and so on and on, but somehow I couldn't "integrate" everything in my brain :).
Other than some Logo experience, I first learned "real programming" using Turbo Pascal. I was in sixth grade and went to a programming summer-camp-of-sorts, held on the grounds of the Techno-da science museum (today called the Mada-Tek). At break time, one of the other kids got a copy of "Ironman Super Off Road" [1], and we would play or watch others try to beat the computer. And at break time there were bread rolls with some filling I think, and every other day or so it was this chocolate-flavored spread.

Man, that was so much fun!... I haven't thought about those times in years; thanks for the trip down memory lane :-)

[1] - https://www.mobygames.com/game/4444/ivan-ironman-stewarts-su...

Ok with a bunch of old hats here, anyone else remember

Technojock's Turbo Toolkit?

It was a UI and eventually object toolkit for Pascal apps and it was pretty damn cool for the time.

There isn't much online about it, but everyone I knew who was working in TP or BP swore by this in the early 90s..

https://www.computerhistory.org/collections/catalog/10277966...

I remember it well, including the fonts it bundled .. burned into my retina even today, given the crazy code I wrote using that toolkit. Thanks for the nice memories, I always wonder what happen to TTK .. as well as PC-Write, for which I had the source code license, and always tried to pack along with the TTK in my backups for some reason (I was a weird kid) ..
Ran it on my Apple ][. It was interesting because another great platform on the Apple was UCSD Pascal but Turbo was so much slicker and easier to use.
My High School had a computer lab of ~8 Apple ][s with dual floppy drives and the CPM board to run UCSD. It worked, but we were definitely limited in the number of computers we could use due to these limitations. I also had access to an HP 9835 also running USCD, so it was very familiar to me.

But part way through my class we switched from UCSD to Turbo Pascal, which only needed one floppy and just absolutely blazed. It was like a space age rocket ship.

My first exposure to TP was when I pirated it off a warez BBS in the winter of 93 at the age of 14. The raw power I felt when I compiled my own EXE in contrast to running just a .BAS file was enthralling! I started modding Renegade BBS and writing door programs. I tried to, unsuccessfully, create worms, Trojans and viruses. It changed my life and set me on a course for where I am in tech today. Moreover I’m reformed my deviant teenage tendencies. I owe Borland a lot.
Ah, the good old BBS days. I wrote a door library for Turbo Pascal back in '89 when I was 17 after I learned how to write an interrupt based serial driver, and then released it as shareware. It saw quite a bit of use until the mid-90's when the BBS scene fell off a cliff.
Inquiring minds need to know: what is a door library?
I think doors in BBS terms were essentially side-loaded programs that ran within the BBS framework. Different content, text games, that sort of thing. So the library would be something written to work within that specific BBS software.
I had a similar experience in the same era. In addition to the deviant stuff I also used it to tinker with graphics programming using inline assembly for the “performance critical” (for a 386SX) parts. That experience definitely laid the foundation for what I do today.
"I owe Borland a lot."

A belated license to be exact :P

I pirated Turbo Pascal back in the day because I was a poor student in a Third World country and there was no way I could afford it. Ditto Turbo C.

After I started working, I had a hand in selecting Borland C++ as our in-house development platform, and we paid Borland a fortune in licensing fees. Which would have gone to Intel or another company if it were not for my, and other folks in my cohort's experience with pirated Borland products as students.

There is a lesson in there, somewhere.

The lesson is that piracy (and to an only slightly lesser extent, free student licences) was an extremely powerful tool to keep a tool market cornered: impossible to compete on price when piracy is so ubiquitous that payment is essentially opt-in.

(I had a mouse driver disc, 5.25, that wasn't pirated, it felt like something from a parallel universe with its machine-printed label)

A deliberate strategy by some companies. (Microsoft comes to mind.(
I really wonder when all this changed. I seem to have this idea, that I share with many others that software houses back in the day explicitly didn't care much about piracy because it got people hooked on their software and in the end enterprise would foot the bill.

I'm not sure how true this was, as I've yet to see any real official sources speaking about this myself but it seems like it was like that. But most of my thoughts about this comes from being in the piracy space back in the days so I really have no idea if this was ever a real thing or not.

I was joking. I think IP laws are broken anyway, so I really dont care.
That throws me back. Being a teenager without any real understanding of compilers, interpreters etc., being able to create my own EXE file in TP4 felt like having superpowers - like being a real(TM) programmer :)

A few years later at 16, I actually got paid for developing a small app for managing my dad's customers, paid by the company he worked for. Part of that money went into getting a legal version of TP6.

Good times :)

(comment deleted)
I still open up TP7 in DOSBox-X to play with "leet code" puzzles. They're mostly imperative and the super-fast compilation time and debugger are impressive even by today's standards.
Wow I wrote a lot of Pascal when I was a kid. I then did a bit of C but didn't like it much, and moved onto Delphi.

It hadn't occurred to me that Pascal is actually younger than me, though not by much.

The interesting thing about Turbo Pascal is that by the time it was TP6 it was just about as expressive as C itself. (Evidenced by the fact Turbo Pascal for Windows could easily interoperate with the heavily C-based Win16 API).
I also learnt Turbo Pascal before Turbo C (in high school days: 2001-2004). Eventually I knew C had a major selling point: Linux/Unix.

Pascal? Limited interest among system/OS kernel programmer nowadays. Still a fine language for building applications, though.

My first language in college was TP. It was such a nice environment to use that when I first encountered gcc and similar UNIX compilers I thought them to be very primitive.
TP was also the first language that I learned in collage in 84. I remember the Prof always calling it the language of love. We made fun of him alot for that statement but I think he got the last laugh...
Turbo Pascal and a few others programs of this era would still be utterly relevant technically and pragmatically. Don't forget the past.
The language that taught me systems programming should be all about, with proper security, modularity and good high level code, no need for lack of security shortcuts.

I was blessed to have learnt TP before C.

Happy birthday Turbo Pascal!

This brings back great memories. I wrote a text based adventure game in turbo pascal for a high school project (97/98) and had a blast. It was a really easy language for my needs and skill level. Started a life long love of code.
I mostly consider languages as a mere tools like a screwdrivers. But yet there is that warm fuzzy feeling when I remember lying my hands on Turbo Pascal. Comparatively to other "high level" tools of the time it was at the different level.

Happy Birthday

They taught Pascal in high school, for my AP Computer Science course. We used Turbo Pascal on PS/2 model 30's. There were no hard drives in the machines! The teacher handed out floppies at the start of the class. By that point, I already knew C but it was still fun learning a new language.
One of my favorite vintage PCs is my PS/2 Model 30, and I had no idea it was available in a dual floppy configuration! It seems way too late to have been sold that way, but yup, checks out, that was the bare-bones configuration.
Yes, it was pretty odd! This was around 1992 or 1993, so long after the PS/2 was even released.