Pascal – the perfect language for Retro Computing

Begin

As a professed software nerd, I really enjoy writing code, whether it is low-level Assembly language for bare hardware access and control, C for high-level coding with great performance, Java for pure business reach or simple Javascript for a better web experience.  The different languages all have their advantages and situations where they are best situated to solve a problem.  In many cases the problems are so mainstream that many languages will do just fine and at that point it is simply a case of individual developer preference or if with a team, group productivity.

With all that said, and the many languages I have coded in, my favorite all-around language has to be one of the first I ever used, Pascal.  While I started like many in the 80s with BASIC (on a TRS-80 Model I and III and Sinclair ZX81), then graduated to some simple Z80 Assembly Language routines to speed up a game or a sort routine, it wasn’t until I got my first CP/M machine, a Morrow Micro Decision in 1983 that I got a taste of a more suitable programming language for all of my projects, Turbo Pascal.

Revolution := Programmers + Turbo Pascal;

My CP/M computer ran many useful programs, the first king of word processing Wordstar, spreadsheets, databases but the most impressive program I had was so fast and so cool, it could create more programs that were just as cool as it.  The ability to write with such a beautiful structured programming language like Pascal AND have the ability to have it compile in mere seconds at the push of a button was incredible.  After experiencing Turbo Pascal, competing languages all fell into two sad groups,  either slow, multi-pass beasts that cost a fortune and took what now felt like eons to compile and link to a huge command line executable, OR a slow interpreter which felt like you were just pretending to be a developer with a kids toy.

“America is all about speed. Hot, nasty, badass speed.” 
― Will Ferrell (from the movie Talladega Nights)

The raw speed of development, compilation and performance of the final program reinforced the aptly named product and made me feel like a bit-level god at the keyboard.  It was exhilarating.  It was so ahead of its time that when I left that next year for college, the first computer science classes I took involved Pascal, but instead of having to share time with other students in the lab to peck out the assigned projects on the university mainframe using a glacial speed compiler I got approval and ultimately programmed and printed out all of my programs in Turbo Pascal on my CP/M computer (one of only 2 computers I knew of in our dorm in 1984) from the comfort of my PJs in my room.

Turbo Pascal Ad from Byte Magazine Ad Nov. 1986

Rediscovering := Pascal.Magic();

So with all this nostalgia it makes sense that I cut to the point that while working with many of my classic computers I am reminded of the power and importance of Pascal.  From my Mac Classic with its operating system, Mac OS,  almost entirely written in Pascal to my Atari 1040 ST where Pascal was a dominant language for games and utilities, it is like a siren call to dive back into Pascal but from a modern point of view.  So a bit of googling started to suggest to me that it wasn’t so strange to consider Pascal and I soon ended up coding again in my favorite language using the latest in Object Pascal compilers called Free Pascal and a great IDE called Lazarus.

Pascal code for Atari ST Clock Accessory from Compute! Magazine from Feb. 1987

Lazarus and Free Pascal bring back the magic of both Turbo Pascal as well as Delphi (Object Pascal from the early days when Visual Basic was big on the scene).  What is so amazing is that you get the speed of compiling on the fly so fast that you can try out ideas with little concern for wasting time.  Free Pascal has the goal to support a wide range of historically important platforms which makes it great for developers such as myself involved in retro computing.

The Free Pascal philosophy is Write once, Compile anywhere.  The list of target processor architectures is amazing, they include:

  • Intel x86 (including 8086)
  • AMD64/x86-64
  • PowerPC, PowerPC64
  • SPARC
  • ARM
  • AArch64
  • MIPS
  • Motorola 68k
  • and the JVM.

Supported operating systems include:

Free Pascal for Amiga OS (http://freepascal.org/)

  • Linux
  • FreeBSD
  • Haiku
  • Mac OS X
  • iOS/iPhoneSimulator/Darwin
  • DOS (16 and 32 bit)
  • Win32, Win64
  • WinCE
  • OS/2
  • MorphOS
  • Nintendo GBA, Nintendo DS, Nintendo Wii
  • Android
  • AIX
  • AROS
  • Amiga OS (developer version)
  • Atari TOS (cross compiling)

Free Pascal is a modern language that has all the power you are used to in languages such as C, Java, C# and C++ including:

  • Strong Typing
  • Generics
  • Units
  • Native String support (unlike C/C++)
  • Operator overloading
  • Objects and Classes
  • Metaclasses
  • Dynamic arrays
  • Interfaces
  • RTTI
  • Preprocessor directives
  • Fast compile times

Repeat Coding(); Until Complete=True;

Currently I am working with Free Pascal and the companion IDE Lazarus to work on a few different projects and it is a joy to rediscover the fun and speed of working in Pascal again.  I’ll be updating my progress on many of the projects and those that involve Pascal I’ll point out the work done and how Free Pascal played a part in reaching my goals.

If you haven’t tried Modern Object Pascal I suggest you give Free Pascal (and Lazarus) a try, it is a great language that has the raw speed of C, the structure of Java and Modula-2, native String support like Javascript and BASIC and the cross platform support like no other language.

Also, if you are new to Pascal and especially to Free Pascal and Lazarus I recommend this book to get started:
“Getting Started with Lazarus and Free Pascal” by Menkaura Abiola-Ellison

Also, if you are a fan of Pascal and Object Pascal and actively working a project drop me a line and let me know what you are doing.  I am also interested in groups or forums to share ideas and projects leveraging Free Pascal or Delphi.

Happy Retro (and Current) coding!

END.
Posted in Retro Computing, Review and tagged , , , , , , .

23 Comments

Comments are closed.