OS/2 Easter Eggs

The 32-bit version 2.0 of OS/2 contained a hidden Easter egg with a flamingo, a boat, and development team credits. The Easter egg could be invoked by selecting the desktop (either the background or a folder) and pressing Ctrl+Alt+Shift+O.

easteregg-20

This undocumented key combination started \OS2\BITMAP\AAAAA.EXE, if present. The file \OS2\BITMAP\AAAAA.MET (a Presentation Manager metafile) contained the background image. The Easter egg was part of the desktop bitmaps package and wasn’t installed by default. The files had the hidden and system attribute set and therefore weren’t normally visible.

For whatever reason, the Easter egg was not shipped with OS/2 2.1, OS/2 2.11 or OS/2 for Windows, even though it was part of some OS/2 2.1 beta releases. In fact references to aaaaa.exe/aaaaa.met can be found in SYSINST2.EXE on distribution disk 1 in most, if not all, releases of OS/2 2.1. What’s more, the key combination to invoke the Easter egg was retained and supplying the two files would restore the functionality. Presumably on OS/2 2.0 systems where the Easter egg had been installed it would continue to be available after upgrading to OS/2 2.1.

It is unclear whether this was a deliberate decision or a packaging omission. Evidence (unchanged hotkey functionality, references in SYSINST2.EXE) points towards the latter.

Who Was Darren Miclette?

In OS/2 Warp, the Easter egg was back, essentially unchanged but additionally displayed the message “The OS/2 Team dedicates this release to Darren Miclette”. What was that about?

easteregg-warp

Darren Miclette was a member of the OS/2 development team in Boca Raton, Florida. Among other things, he was the inventor of US Patent 5671417, “Method and system for inserting floating code hooks into multiple versions of code”. This was a technique for flexible code patching where the code to be patched did not have to exactly correspond to a single expected image. Instead, the patching code would search for specific patterns and would find the correct locations even if the code to be patched was recompiled with minor modifications.

What the above technique did was enable IBM to release OS/2 for Windows, code name Ferengi. OS/2 for Windows would “absorb” an existing Windows 3.1 setup, rather than shipping its own Win-OS/2 code. The upshot was that IBM did not have to pay Microsoft royalties for Win-OS/2. At the time, Microsoft was very successful in forcing OEMs to preload Windows 3.1, hence most owners of new PCs already possessed a Windows 3.1 license anyway. The same technique was later used in “blue spine” (with Win-OS/2) and “red spine” (without) OS/2 Warp and OS/2 Warp Connect.

Darren Mark Miclette died on September 25, 1994 at the age of 29; OS/2 Warp was released in October 1994 with the hidden tribute to Darren. The same Easter egg was also shipped with OS/2 Warp Server, including the Advanced SMP release.

In OS/2 Warp, the Easter egg files (\OS2\BITMAP\AAAAA.EXE and .MET) were no longer hidden and a curious user had a fair chance of stumbling upon them.

Warp 4

In OS/2 Warp 4, the Easter egg screen changed somewhat. The flamingo, palm tree, and a boat called S.S. Boca were no longer appropriate as the OS/2 development team had moved from Boca Raton, Florida to Austin, Texas. The Easter egg now showed a green plain at sunset, with mountains in the background. It would be difficult to say that the Easter egg had a high artistic value.

easteregg-w4

The Warp 4 style Easter egg  survived into the Convenience Package era and thus into the next millennium. It is part of the Warp 4 Convenience Packages (“Merlin” or MCP 1 and 2), as well as the Warp Server for e-Business Convenience Packages (“Aurora” or ACP 1 and 2), still included in the desktop bitmaps item. At least some versions of eComStation shipped this Easter egg as well.

The Warp 4 style Easter egg was still implemented as AAAAA.EXE and .MET in the \OS2\BITMAP directory and still invoked with Ctrl+Alt+Shift+O.

Note that on faster systems (possibly anything beyond a Pentium Pro or so), invoking the Easter egg via the Ctrl+Alt+Shift+O key combination is somewhat broken; the Easter egg comes up but immediately disappears again. Running AAAAA.EXE from \OS2\BITMAP produces the expected results.

This entry was posted in OS/2. Bookmark the permalink.

11 Responses to OS/2 Easter Eggs

  1. Jorpho says:

    Ahh, thank you. This was probably one of the first Easter eggs I ever read about some twenty years ago, probably because its invocation is relatively to describe. Information about it seems to be hard to come across nowadays, aside from one little thumbnail on eeggs.com . (They also mention a Pronews Easter egg there.)

  2. Dennis Curley says:

    Just a minor correction to the write-up on Darren Miclette – Darren died on Sunday morning, September 25, not the 26th. He was my daughter’s high school sweetheart and at the time of his death was her husband/my son-in-law. We think of him often.

  3. Michal Necasek says:

    Thanks for the correction! I should have checked what date the Sunday was… And thank you for the note. That’s a very personal connection to the history of OS/2.

  4. Joe Nord says:

    OS/2 Warp 4 was built in Boca Raton, not Austin. It wasn’t until 4.5 that things officially moved to Texas.

    The device driver model for OS/2 32-bit was the same driver model as for OS/2 16-bit, which interestingly, is the same model that was defined in DOS 1.0 and I understand was modeled on CPM.

    Virtual Device Drivers were added in OS/2 2.0 to support MVDM and WinOS2. VDDs were implemented as a 32-bit kernel mode, flat memory DLL architecture. These were codeable in ‘C’ which was great for development as the PPD (16:16) APIs were register based and hard to code in a high level language. The Watcom C compiler ultimately made it possible to code 16:16 PDDs in C as well though glue assembly language was always needed.

    Technically, 16 and 32-bit are incorrect. The “bit-ness” of all kernel code on all versions of OS/2, 2.x and beyond is 48-bit. 16-bit selector and a 32-bit offset. This true for PDDs and VDDs. In the case of the VDDs, the default selectors pointed to flat memory space, so the selectors could be “ignored” and the model was 32-bit, but the additional bits were still there and it was common to call between models, 16:16 in Windows DRV space -> 0:32 VDD space -> 16:32 PDD space -> 16:16 PDD space.

  5. Michal Necasek says:

    I’ll take your word for Boca vs. Austin — you worked for IBM back then 🙂

    DOS 1.0 didn’t define a loadable driver model. DOS 2.0 did, and it was certainly in many ways similar to the OS/2 one. The big difference was complete lack of anything like the OS/2 DevHlp API in DOS. I believe that Mark Zbikowski designed or at least heavily influenced both the DOS and OS/2 driver model.

    Watcom C was certainly great for writing OS/2 drivers. I never really understood why anyone bothered with Microsoft C beyond 1994 or so.

    The memory model in OS/2 2.x was certainly… interesting.

  6. Cris Attaway says:

    Darren Miclette was our neighbor when he first moved to Boca to work for IBM. He later married Kris Curley and they both became good friends of ours. His death was a shock to all of us and much too early at age 29. My husband and I think of him often and of Kris. I can’t believe it was almost 20 years ago and I wonder what Darren would have accomplished if his life had not been cut too short.

  7. Morten Andersen says:

    Very interesting, I clearly remember this splash screen also! And the whole blog is an interesting read, there’s so much stuff I remember from the good old days (LOADALL etc.). I might comment on more of them.

    Nice idea to do a tribute to a programmer that died to young. Maybe I ask what the cause of death was? The obit suggests he was in the ICU.

  8. Joe Nord says:

    Re: Michal Necasek. I checked with people with better memory than me, and you are correct, Warp 4 did ship out of Austin. I never made the move, but did work on Warp 4, in Boca. Article is correct, it shipped from Austin “after the move”.

    As for the device driver model, yep, the physical device driver model it is pretty much the same as the DOS model, with the addition of a full OS underneath. Both 16:16 memory model, same strategy routine dispatch and assembly language interface. It twas a nice kernel to work with, happy memories. Technically the OS/2 model was 16:32, and not flat, which is one of the more bazaar formats to program.

  9. Michal Necasek says:

    Thanks for checking on the Austin move!

    I’ve neve done VDDs, but I recall those explicitly used the 16:32 model. Very unusual, and there were very few compilers capable of handling that memory model.

  10. Tom Hayden says:

    Darren was my roommate at Clarkson U back in 86-87. A very sweet guy, always a smile on his face. He was so devoted to Kris and he hated he was so far from her at college. Such a shock when he passed so young. If was a defining life moment for me and my girlfriend when we attended the funeral..life is short. We got married shortly after and took a risk of moving across the country to seek our fortune. A great move for our family sparked by a tragedy in another. Circle of life. Today I viewed photos from our time at college, and now I shed a tear again for the loss of you my friend. 20 years later you are still missed.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.