The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,860 other subscribers

Archive for the ‘Turbo Pascal’ Category

pascal.js

Posted by jpluimers on 2025/10/22

Because it is cool: interactive [Wayback/Archive] pascal.js that shows the intermediate steps:

  1. Turbo Pascal 1.0-ish code
  2. Abstract Syntax Tree (in JSON notation)
  3. LLVM IR (intermediate representation)
  4. Emscripten compiled JavaScript
  5. Console output (stdout)

Source is at GitHub: [Wayback/Archive] GitHub – kanaka/pascal.js: Pascal compiler implemented in JavaScript

Via: [Wayback/Archive] javascript pascal at DuckDuckGo

--jeroen

Posted in Development, JavaScript/ECMAScript, Pascal, Scripting, Software Development, Turbo Pascal | Leave a Comment »

My first computer, which I bought way after my first programming contest

Posted by jpluimers on 2025/05/15

1988: my first computer

Earlier this year, I found back the ad on the right of the first computer it bought including monitor: at JWC Computers in The Hague¹ where after the the warranty period was over I found out the 16 Mhz 286 processor was a 12 Mhz configured with zero wait state. Luckily I could exchange the VGA card which wasn’t really compatible with a more compatible one.

The machine really boosted my software career and made me start my own company in august 1989 at age 20.

The start of the career however was about a year after attending this programming contest:

Using the computers at university, I showed off some more Turbo Pascal things I created (including a graphical mouse cursor in text-mode²) right after the CP/M and CP/M-86 support was dropped in favour of DOS at the end of the combined Turbo Pascal CP/M and DOS versions. Hello Turbo Pascal 4 with units³, .EXE support, new IDE and new-style manuals, Turbo Pascal 5.0 with integrated debugger, Turbo Pascal 5.5 with objects, Turbo Pascal 6.0 with Turbo Vision and MDI, and Turbo Pascal version 7.0 with DPMI and Windows support (the last two in Borland Pascal; and Windows support also separately available in the OWL based Turbo Pascal for Windows 1.0 and 1.5) sharing the same DLL and DOS Extender support system, syntax highlighting.

1986: my first and only programming contest

I found back JWC computers a few days after finding back my first ever computer programming contest in 1986 [Wayback/Archive] Jeroen Wiert Pluimers: “@bert_hubert @ionica Jullie …” – Mastodon

Bij Micro Masters Holland in 1986 ging het dus al om de UI en niet om de inhoud (:
In educatieve software bleek toen al nauwelijks brood te verdienen.
Misschien als ik toen @WGAvanDijk gekend had…

Followed by [Wayback/Archive] Jeroen Wiert Pluimers: “@bert_hubert @ionica @WGAvanDi…” – Mastodon

Oh kijk: het andere interview van Nico Baaijens (Paul van der Bijl van het vorige interview teruggevonden op Twitter: @paulvdb)

Wat wist ik toen al veel en weinig tegelijk.

Dat is niet heel veel veranderd (:

That contest was a result of The calculators that got me into programming (via: calculators : Algorithms for the masses – julian m bucknall).

I was quite good at Turbo Pascal programming, which landed my first freelance gigs and led me – after FORTRAN and x86 assembly language side-steps – to Delphi, C# and many scripting languages on many platforms. Of course DOS, Windows and OS/2, but also VAX/VMS, BSD (including MacOS, SunOS and the migration of the latter from BSD to SVR4), HP UX, AS/400, AIX, and of course Linux including embedded varieties of some.

There is remarkably little information about Micro Masters Holland via Google Search, but other searches have more results. From those, my conclusion is that the contest ran at least 3 times. Below some articles grouped by the years it ran.

Micro Masters Holland 1984

Micro Masters Holland 1985

Micro Masters Holland 1986

Micro Masters Holland 1987

Micro Masters Holland generic

Interviews with me about Micro Masters Holland

The full article by Paul van der Bijl from [Wayback/Archive] Leidse Courant | 21 mei 1986 | pagina 13 – Historische Kranten, Erfgoed Leiden en Omstreken

Did you spot the image behind the lamp. Yup: Karateka – a game I loved and still do. Thanks Jordan Mechner for creating that!

The full article by Nico Baaijens (also interviewing Jos de Klerk who now works at Settels Savenije) from [Wayback/Archive] Algemeen Dagblad » 17 mei 1986 – Art. 227 | Delpher

The insert on the top right is about addiction. Even back then I thought that wording was too strong: it is an addiction when things run out of hand. Looking back, it never really did. The time spent programming was a combination of passion and avoiding my mom. Only much – at age 50 – I found out the cause for that: she had been narcissistic since her youth and kept pushing me beyond my limits to compensate for the shortcomings of my mentally retarded brother. That was the real problem and combined with my autism and skills the reason I ended up in IT: a kind of mental safe space.

--jeroen


Footnotes

¹ [Wayback/Archive] Jeroen Wiert Pluimers: “… Thuis dus niet aan de orde: mijn eerste PC was een bij elkaar verdiende 286 van JWC op de LvM in Den Haag. Dat waren afzetters, dan die 16 Mhz was een 12 Mhz op zero wait-state. De advertentie net terggevonden op aan de p…” – Mastodon

JWC computers advertisement picture from:

Way more of their ads: [Wayback/Archive] Resultaten | Delpher: jwc computers

A tiny bit of history on them in the replies of a blog post describing a very similar store: [Wayback/Archive] Weans, Den Haag – blafhert

Weans & sunshine zijn een en de zelfde, op een gegeven moment (bijna tegen het einde) kwam er nog een filiaal & kantoor bij in de Pasadena in den haag. Dit was de “groothandel” hier kochten bedrijven zoals DES en King computers (wie kent die nog) hun spullen.

Owja Weans staat idd voor we are not stupid.

Die ene Marc, heeft in een veel later stadium in onze organisatie gewerkt, dat was bij EURO P.C. met vestingen op de segbroeklaan en 2 in de fahranheitstraat,het klopt wel dat ook dit een vestiging was van Sunshine N.V.
Onze holding is begonnen met computerverkoop in 1983 !!!, onder de naam EPC ,JWC computers , Necom en RE-Paco. met 5 vestigingen in den haag en 1 in Rotterdam, spectaculaur was onze vestiging in de weimarstraat te den haag waar een omzet
op zaterdag gerealiseerd werd van 1 MLN, het einde van deze vestiging is geweest een overtreding van BUMA er werden namelijk firenzo DOS bij een systeem geleverd welke uitstluitend geleverd mocht worden bij FIRENZO systemen.

Dat weans geen belasting betaalde is niet juist het bedrijf is ten onder gegaan door het opstarten van een memory fabriek in nederland en zoedoende alleen grondstoffen te hoeven importeren om zodoende de anti dumpheffing te ontlopen, die in die tijd 60% was, wij kregen een navordering van 150 MLN voor in ogen van overheid ontdoken invoerrecht, uit eindelijk heb ik de bete afgekocht voor 32 mln.

Ik blijf de verhalen van Jan hier boven hilarisch vinden. 90% een leugen. Heb er bijna 3 jaar gewerkt tot aan het bezoek van de FIOD. Bleek bij het GAK dat er voor het personeel nooit iets was afgedragen, terwijl wij dachten van wel. Jan was een briljant zakenman, kon iedereen oplichten waar je bij zat, draaide vele BTW carrousels en verdiende zich scheel. Maar ieder woord uit zijn mond was meestal onzin om zijn handel te verkopen.
Toch kijk ik met veel plezier terug op de tijd dat ik daar gewerkt heb.

² It was cool to see a similar solution mentioned at [Wayback/Archive] mouse – Graphics Cursor in Assembly – Stack Overflow.

³ A unit like modules concept was already in the beta version of the never Borland released Turbo Modula-2 later released as

Images

Queries

Posted in About, Development, Pascal, Personal, Software Development, Turbo Pascal | Leave a Comment »

Trip down memory lane: book on p-Code based UCSD Pascal

Posted by jpluimers on 2025/05/06

Last week I wrote on File scoped namespaces – C# 10.0 draft specifications | Microsoft Learn, promising to write more on p-Code and UCSD Pascal. That’s now (:

I started with [Wayback/Archive] “java byte code” “ucsd” “p-code” – Google Search as I was looking for really old material on this (Java 1.0 versions became available in the 1994-1995 time frame, and a lot of material back then either did not make it to the World Wide Web (which slowly gained popularity around that time, see History of the World Wide Web) or has vanished due to link rot.

The cool thing is that many “new” people are not even aware of p-Code, as the 2019 thread [Wayback/Archive] What do you think about something like Pascal bytecode? shows.

I learned a thing or two from it as well, for instance that there has been a “recent” book on UCSD Pascal:

Read the rest of this entry »

Posted in Apple Pascal, Conference Topics, Conferences, Development, DVCS - Distributed Version Control, Event, gist, GitHub, History, Internet, link rot, Pascal, Power User, Software Development, Source Code Management, Standard Pascal, Turbo Pascal, UCSD Pascal, WWW - the World Wide Web of information | Leave a Comment »

File scoped namespaces – C# 10.0 draft specifications | Microsoft Learn

Posted by jpluimers on 2025/05/01

Oops, I thought this had been published a long time ago, but oh well: it is never too late to publish reflections on a C# programming language improvement.

After recovering from my rectum cancer treatments and finally upgrading most of my projects to recent enough C# versions, it was time to catch up on useful little C# language features released during my treatments.

This one is really nice: [Wayback/Archive] File scoped namespaces – C# 10.0 draft specifications | Microsoft Learn.

I wish it had been released much earlier, as it so much reminds me of the unit keyword in Delphi which influenced C# a lot. Well, actually the unit actually started in UCSD Pascal and Turbo Pascal; UCSD Pascal ran on the UCSD p-Machine (more on that in a future blog post), which influenced the Java Virtual Machine, which was based on Java bytecode and a Just-in-time compiler in turn influenced the .NET Common Language Runtime.

There are many examples from other languages, paradigms and frameworks: I love how C# and .NET bring so much programming history together.

In Delphi  it is easy: a source file can contain at maximum one unit (and apart from files included in that source file, no other source files can contribute to that unit) and the filename needs to match the unitname, so the unit is a self contained namespace.

Read the rest of this entry »

Posted in .NET, About, C#, C# 10, Cancer, Delphi, Development, Java, Java Platform, Jon Skeet, Pascal, Personal, Rectum cancer, Rider from JetBrains, Software Development, Turbo Pascal, UCSD Pascal, Visual Studio and tools, vscode Visual Studio Code | Tagged: , , , , , | Leave a Comment »

From Turbo Pascal to Delphi to C# to TypeScript, an interview with PL legend Anders Hejlsberg – YouTube

Posted by jpluimers on 2025/04/09

Nice historic perspective: [Wayback/Archive] From Turbo Pascal to Delphi to C# to TypeScript, an interview with PL legend Anders Hejlsberg – YouTube

Via [Wayback/Archive] Zack Urlocker on Twitter: “Great interview with @ahejlsberg on the evolution of programming languages, the rise of TypeScript and more. Anders is one of the best programmers I ever worked with. …”

--jeroen

Posted in .NET, Borland Pascal, C#, Delphi, Development, History, JavaScript/ECMAScript, MS-DOS, Pascal, Scripting, Software Development, Turbo Pascal, TypeScript, Windows Development | Leave a Comment »

Old programming books had cool little “puns” in their references, modern lack them in their indices. On the why, and history of them.

Posted by jpluimers on 2025/01/01

I wrote a two earlier blog posts around puns in programming book indices before:

  1. the 1992 Turbo Pascal 7.0 Language Guide having both entry in the manual about Recursion (“recursive loop, see recursive loop”) which of course is similar to “infinite loop” and entries for “infinite loop See loop, infinite” and “loop, infinite See infinite loop”.
  2. infinite loop in “LaTeX: A Document Preparation System” by Leslie Lamport, printed in 1994.

In the last one, I promised to list more occurrences which I now finally had time for to do.

But let me first elaborate more on the observation that modern computer books (like for instance on C# and Delphi beyond version 1) lack these kinds of index pun.

On the Delphi side, the index entry joke for recursion got removed no later than Delphi 3 (I am still looking for a Delphi 2 version of the Object Pascal Language Guide, see further below) even before the book being fully redone electronically and the index pages generation being automated in

I think I even understand why that is: the process of creating of indices. By the start of this century, more and more indices were automatically being generated and for the last 2 decades or so, all of them are. Back in the days however, indices were mostly done by hand. Nowadays, with everything automated, it is actually pretty tricky in most environments to add such an “infinite loop” index entry like in the Turbo Pascal book, as it would require two things at once:

Read the rest of this entry »

Posted in .NET, C, C#, C++, Conference Topics, Conferences, Delphi, Delphi 1, Delphi 2, Development, EKON, Event, History, LaTeX, LifeHacker, LISP, Mathematics, Pascal, Perl, PL/I (a.k.a. PL/1), Power User, science, Software Development, Turbo Pascal, Typesetting | Tagged: , | 4 Comments »

Brush up on your knowledge of the elements with this Chrome Experiment, an interactive Periodic Table by Sarath Saleem: goo-gl/HJ9O31 #fridayfun

Posted by jpluimers on 2024/09/03

[Wayback/Archive] https://plus.google.com/+Chrome/posts/AgtEDd7ngEJ “Brush up on your knowledge of the elements with this Chrome Experiment, an interactive Periodic Table by Sarath Saleem: goo-gl/HJ9O31

This reminded me so much about the atom spin tables I wrote some Turbo Pascal code for in the late 1980s to help a university professor. Maybe one day, I will find that code back.

(note: I expanded the actual googl link because Google URL Shortener was killed in 2019 with links stopping to work in 2025, see [Wayback/Archive] Google Graveyard – Killed by Google)

The links:

--jeroen

Posted in Development, JavaScript/ECMAScript, Pascal, Scripting, Software Development, Turbo Pascal | Leave a Comment »

Happy birthday Turbo Pascal! Some marketing and Borland Conference videos

Posted by jpluimers on 2023/11/20

Some of you might remember [WayBack] Borland – Wikipedia, that today in 1983 shipped the first version of Turbo Pascal [Wikipedia].

It was of great influence, leading to other Turbo languages, Delphi, and – through it’s creator Anders Hejlsberg – eventually C#, .NET and TypeScript.

From the mid 1990s until the early 2000s, the Borland organised conferences (having various names, like Borland Language Conference, Borland Conference, Borland Developers Conference, Inprise Conference) had famous opening videos, and product marketing videos.

Some of them are below the signature.

Hopefully by the time of publishing, all of them are still there.

Edit 20231202:

I scheduled this post back in Winter 2019/2020 in between radiation therapy and surgery.

By now, more information on the anniversary has appeared online.

For more Turbo Pascal history, including – in reverse chronological order – old screenshorts and the first advertisements (and how quickly they changed from the pink on white to full colour ones), see my 2021 blog post Much Turbo Pascal history (via What is a Delphi DCU file? – Stack Overflow). It had many screenshots including a Turbo Pascal 1.0 screenshot, which I have added it here to the right. By now  Turbo Pascal – Wikipedia and Borland Graphics Interface – Wikipedia are quite complete history of Turbo Pascal.

Read the rest of this entry »

Posted in .NET, C#, Delphi, Development, Pascal, QC, Software Development, Turbo Pascal | Leave a Comment »

The Delphi and Turbo Pascal tools page by Duncan Murdoch has moved domain from www8.pair.com to murdoch-sutherland.com

Posted by jpluimers on 2022/07/13

For a very long time (about 2 decades) Duncan Murdoch had his home page at www8.pair.com/dmurdoch which somewhere in 2021 has moved to

I figured that out thanks to some help from [Wayback/Archive] Pair Networks (@pairnetworks) / Twitter.

So you need to do a replacement of many URL link prefixes

  • from http://www8.pair.com/dmurdoch/
  • to: http://murdoch-sutherland.com/

For instance some old and new pages:

Read the rest of this entry »

Posted in Borland Pascal, Delphi, Development, Pascal, Software Development, Turbo Pascal | Leave a Comment »

On Windows, keep the lifetime of relative pathnames as short as possible because of thread-safety issues

Posted by jpluimers on 2022/05/18

Subtitle:

GetFullPathName thread-unsafety because of SetCurrentDirectory isn’t, so derived functions (like Delphi GetDir/ChDir/TPath.GetFullPath, or .NET System.IO.Path.GetFullPath) are not thread-safe either (via The Old New Thing)

A while ago I got a big reminder because of [Wayback] What are these dire multithreading consequences that the GetFullPathName documentation is trying to warn me about? | The Old New Thing:

Read the rest of this entry »

Posted in Delphi, Development, Pascal, Software Development, Turbo Pascal, Windows Development | Leave a Comment »