OS/2 2.1

In May 1993, IBM released OS/2 version 2.1. It was an incremental improvement over 2.0 and especially at first glance OS/2 2.1 didn't look noticeably different from its predecessor. That's good for you because you won't have to read boring technical description of the wonders of OS/2's architecture and you can feast your eyes upon the glorious screenshots... umm, okay, I'm exaggerating a little. OS/2 2.1 in fact had the same boring look of OS/2 2.0 with the weird (but no doubt determined by careful scientific research) color scheme and the same old boring icons:

Actually I think even the greatest OS/2 aficionados would have hard time telling whether this is OS/2 2.0 or 2.1. So you'll just have to take my word for it. Another thing you can't tell from the above screenshot is the fact that it's actually OS/2 2.1 Special Edition, better known as OS/2 for Windows, released in October 1993.
 

Installation

But first let me tell you the story of how I nearly didn't get OS/2 2.1 installed. I have the CD version of OS/2 for Windows. It includes total of four boot floppies - two 3.5" and two 5.25" HD diskettes. What it unfortunately doesn't include is modern drivers (that's not really a wonder given its vintage). I didn't even attempt installing on my main 40GB drive and pulled out my "oldies" 4GB disk. But no go. Firstly, the floppies wouldn't even boot and complained about missing A:\COUNTRY.SYS. I thought that was curious because this file was decidedly present and it couldn't have anything to do with the anticipated harddisk troubles. So I resorted to a trick that I learned during installation of OS/2 2.0 - I disabled internal and external caches on my PIII-600.

That got me past the first hurdle. The second one followed very shortly. As I mentioned, I have the CD-ROM version. I really wasn't going to create 20 floppies although in retrospect, it would have saved me a lot of time. I actually have two CD-ROM drives: new IDE DVD-ROM and an old SCSI CD-ROM attached to an Adaptec 2940 PCI controller. It's really too bad that OS/2 2.1 had drivers for neither - I believe both IDE CD-ROMs and Adaptec 2940s appeared just a short while after OS/2 2.1. I tried the Adaptec driver from Warp but it wouldn't even load under 2.1, apparently due to missing PCI support. So I had a nice shiny CD-ROM but couldn't get at the data it contained.

Fortunately, I have more tricks up my sleeve. I used to have similar problems long long ago with OS/2 Warp and an old Mitsumi double-speed CD-ROM that had its own proprietary controller. Because back then I could access my CD-ROM from DOS, I learned that it is possible to copy the contents of CD-ROM onto harddrive and install from there (the file OS2SE20.SRC in root directory tells the installer where to look). So I did that.

I went through first phase of the installation process without problems. But then the partially installed OS/2 wouldn't reboot and locked up right after Boot Manager. This was fixed by reenabling L1 and L2 CPU cache - don't ask me why. Unfortunately that only led to the biggest hurdle of them all. I still couldn't boot and was getting errors about missing VIOTBL.DCP, DOSCALL1.DLL and more. I knew this had to mean something else because all the files were present. I tried many different things until I had the bright idea to edit the CONFIG.SYS to boot to CMD.EXE instead of the installation shell. When I saw that the command prompt was sitting on drive L: - which I didn't have - I knew what was happening.

This is a (mis)feature of Boot Manager and LVM. You see, when you boot via Boot Manager, it tells the system which drive letter it is on. I am not quite certain why but that's how it works. The volume I was installing OS/2 2.1 on was configured as L: under LVM but OS/2 2.1 saw it as D:. So the files were all on D: but poor old OS/2 was thinking it was booting from L: and couldn't find anything there. Once I understood the problem it was a matter of minutes to fix the drive letters.

Then there was one last problem - disk drivers again. OS/2 still wouldn't properly see the disk. This was solved in an unexpected way - that is, I didn't expect it would work. In an act of desperation I simply took the latest IDE drivers (dated June 2001) from IBM's DDPak site and put them onto OS/2 2.1. Guess what, they worked. Not only that, I also discovered that I can put them on the boot floppies and install the IDE CD drivers. And with updated floppy driver, I didn't even need to disable the CPU cache! Too bad I hadn't found out earlier. Well, if you get an urge to dig out your old OS/2 2.1 and install it on your new machine, remember that you heard this tip here first. Moral of the story: if at first you don't succeed, modify one or more variables and try again. It might just work.
 

The Big Thing

Anyway I got OS/2 2.1 installed after this adventure which (as usual) made me learn more about inner workings of OS/2 than I actually cared to know. And while I was at it, I installed the one new big thing in OS/2 2.1 - Multimedia Presentation Manager/2. In version 2.1, MMPM/2 was shipped with the OS but it was separate and had its own installer program. It only included drivers for Sound Blaster and Pro Audio Spectrum cards but fortunately the SB Pro 16 driver works very well with my AWE64. After MMPM/2 was installed the desktop looked like this:

Yup, I had shiny new multimedia icons there. And of course, I had sound! OS/2 starting up, windows opening and closing, error windows popping up, everything had a sound bit associated. Remember, this was 1993! There was even software motion video included, although to be really able to use it I'd need to install video drivers supporting at least 256 colors (and I don't have any for my Matrox G400). At 16 colors, Ultimotion videos look just horrible and Indeo clips don't play at all. The 2.1 CD included the same sample videos included later on OS/2 Warp CDs.

There were few other not so visible enhancements in OS/2 2.1. It had the new 32-bit Graphics Engine that didn't make it into OS/2 2.0. It included APM support, primarily for laptop computers. And last but not least, version 2.1 offered wider selection of printer and display drivers.
 

Operate at a higher level

The above was IBM's slogan for OS/2 2.1. The lower level was, of course, DOS and Windows. Just like version 2.0, OS/2 2.1 supported most DOS and Windows 3.x applications. But while OS/2 2.0 came with Windows 3.0, version 2.1 actually came with Windows 3.1. Unless you had OS/2 for Windows like me. With OS/2 2.0, things were simple. There were versions on 3.5", 5.25" or CD-ROM media and there were upgrade editions, but they were all the same really. With OS/2 for Windows, things started getting interesting. OS/2 for Windows did not come with Win-OS/2 and instead would use existing Windows 3.1 installation - although it actually wasn't required so you could have OS/2 for Windows completely without Windows (isn't that funny?). Later in summer 1995 the confusion would be taken to new levels with the introduction of Warp Connect. Then there would be four separate versions (not counting different distribution media) to choose from - more about that elsewhere.

The codename of OS/2 2.1 was Borg. This certainly fit OS/2 for Windows well, given the situation on the market. Microsoft had OEMs under tight control and prevented them from preloading anything other than MS-DOS/Windows. This was later found illegal but that did not help OS/2 in any way. With OS/2 for Windows, IBM found a way for OEMs to preload OS/2 while still honoring their agreements with Microsoft. I remember that in 1993-94, several major German retailers were offering OS/2 preloads.
 

Applications

In the OS/2 2.1 years, the number of applications available for OS/2 grew rapidly. IBM managed to convince several big-name companies to develop OS/2 versions of their products - companies like Borland, Novell, Lotus or WordPerfect. I have heard that IBM actually subsidized at least some of those OS/2 products, although I have no solid figures. And while I'm rumormongering, I should probably also mention that Microsoft was no less 'active' than IBM - but instead of paying those companies, it was threatening to deny them access to beta versions and information about Windows if they developed for any other platforms (this was certainly so in case of Borland).

Information about Borland C++ can be found on the OS/2 2.0 page and and I'm not that interested in networking. That leaves WordPerfect and Lotus. In 1993, WordPerfect Corp. released WordPerfect 5.2 for OS/2. Like many other ported applications, it used Micrografx Mirrors. It looked like this:

Unlike the immensely popular WordPerfect 5.1 for DOS, version 5.2 for OS/2 (and Windows too) was a WYSIWYG word processor. And it was a powerful word processor. It looked pretty much like every other word processor, but it had the wonderful "Reveal Codes" feature:

Last time I criticized Corel for doing a quick and dirty job with their CorelDraw 2.5 port. WordPerfect 5.2 for OS/2 was totally different and yet very much the same. It offered comprehensive WPS integration and was in fact a model WPS enabled application:

It had document templates, supported extensive drag and drop operations on WordPerfect documents (printing etc.) and all those goodies. Unfortunately, most WP 5.2 users complained that it was also very slow (I didn't notice that on my PIII-600 of course) and buggy. An interesting fact is that WP 5.2 was a 16-bit application and was in fact built with Microsoft C 6.0. I'm sure that made Microsoft very happy. It seems that most OS/2 WordPerfect users preferred (and still prefer!) DOS versions 5.1 or 6.x to this (sort of) native product. WordPerfect Corp. was working on an OS/2 version of WordPerfect 6 for OS/2 but canned the product in December 1993, probably because WP 5.2 for OS/2 was not received very well. Whether the fault was with WordPerfect or OS/2 users is anyone's guess.

Now let's take a look at WordPerfect's competitor from Lotus Development Corporation: AmiPro 3.0 for OS/2, released in 1993. AmiPro in my opinion was never as powerful as WordPerfect but it was OK for typical office use. AmiPro was also able to work together with other Lotus products like 1-2-3 or Notes.

Just like WordPerfect 5.2, AmiPro 3.0 was port of a Windows product. But unlike WP 5.2, AmiPro did not use Mirrors and it was a purely 32-bit program (built with Borland C++ 1.0 for OS/2).

AmiPro 3.0 for OS/2 was missing some features of its Windows counterpart (drawing and charting) but on the other hand it had a few OS/2 specific features such as REXX integration. I am not sure if AmiPro 3.0 was Lotus's first OS/2 word processor, but I am certain it wasn't the last. There were several updates to AmiPro 3.0 (the latest was 3.0b I believe) and it was later followed by WordPro. I am not certain how good AmiPro 3.0 for OS/2 actually was but I have heard many criticisms regarding lack of stability.

The word processor preferred by many OS/2 users was DeScribe, developed by DeScribe, Inc. It was a native application developed for OS/2 from the beginning - I believe the first versions of DeScribe ran on OS/2 1.x. Just out of curiosity I looked at the program executable and determined that it was built with IBM CSet++ compiler. DeScribe was fast and powerful - it even offered some DTP-like features such as text frames and it included a drawing package:

The above screenshot is from DeScribe version 5, released in late 1994. It would be more appropriate to present a picture of DeScribe 4 or 3, but version 5 is all I have. While many users of AmiPro 3.0 and WordPerfect 5.2 stopped using those products because of bugs and instability, DeScribe users claimed that their word processor wouldn't buckle even under heavy load.
 

Application Development

Last time I looked at the various compilers available for OS/2 2.0. In the 2.1 days there were new versions of all of those products available (IBM CSet++ 2.1, Borland C++ 1.5 and 2.0, Watcom C/C++ 9.5 and 10) but with the exception of Watcom C/C++ version 10, these were not substantially different from the older versions. But instead of taking a look at Watcom C/C++ version 10, I will present a different and very OS/2 specific product of Watcom International Corp., based in Waterloo, Ontario, Canada: VX-REXX 1.0. Version 1.0 was released in 1993, followed by version 2.0 and 2.1 in 1994. The most advanced version was VX-REXX 2.1 Client/Server edition which supported charting and database objects that could talk to Watcom SQL (obviously) and IBM DB2/2.

VX-REXX conceptually resembles products like Delphi or Visual Basic. The user creates windows and places GUI controls (objects) on them. Each object has an extensive set of properties, neatly presented in a notebook control. Objects can receive events and each event can be associated with REXX code. Simple yet powerful.

Watcom VX-REXX was (and still is) a popular tool thanks to its ease of use, power and flexibility. Creating simple GUI applets is very easy with VX-REXX and several nice sample programs were included.

I should probably mention that Watcom VX-REXX 1.0 came on a single 3.5" HD floppy and had extensive online documentation (identical to the printed manual). Products like that just don't seem to happen today. And VX-REXX had competition too - VisPro REXX. I'm sure if I didn't mention VisPro REXX, I'd get hate mail from its devotees<g>.
 

OS/2 2.11 SMP

I cannot omit to mention one important milestone in OS/2 history, OS/2 2.11 SMP. It was released in July 1994 and it was the first version that supported symmetric multiprocessing or SMP for short. It was in fact one of the first SMP enabled PC OSes on the market. It was unfortunate that until Warp Server for e-Business (1999), the SMP version was always one release behind the uniprocessor version. This, together with relative scarcity and high cost of SMP hardware, prevented more widespread  use of SMP on the desktop. For those who perhaps don't know, SMP is a way of exploiting multiple CPUs in a system. All the CPUs are equal (more or less) and can run any task. I should note that SMP is not the only form of multiprocessing. There is also a more crude variant caller asymmetric multiprocessing where each CPU is assigned a specific task - this is of course not as flexible as SMP. IBM was building asymmetric MP machines in early 90's (OS/2 1.3 ran on those). But let's take a look at OS/2 2.11 SMP - which in fact looked no different than the single-processor 2.11, at least at first glance:

You can immediately see that it's not OS/2 2.1 - the color scheme makes a big difference. If you look closer, you will see that the desktop layout and all the icons are unchanged, but the color scheme is about the same used later in OS/2 Warp. And it looks way better. Technically, OS/2 2.11 SMP was an amazing beast. Its authors took OS/2 2.11 - which was not really designed with SMP in mind - did some magic to key components (primarily kernel, loader and DOSCALL1.DLL) and ended up with one of the best SMP operating systems. This is because SMP support in OS/2 was (and is) very fine-grained and not only can different processes run on different CPUs but threads within a single process can as well. Thus even applications not specifically designed for SMP can take advantage of it if they are multithreaded.

I nearly didn't get OS/2 2.11 SMP running in multiprocessor mode. On the only SMP machine I have access to, an IBM IntelliStation M Pro equipped with two 300 MHz Pentium II CPUs, it would just lock up early in the boot process. But that didn't surprise me too much because OS/2 2.11 SMP had a reputation for being very very picky about the hardware it would run on and this machine was made when 2.11 SMP was not supported anymore. But then I had the bright idea to use OS2APIC.PSD (the SMP Platform Specific Driver) from Warp Server for e-Business and to my surprise, it actually worked!

Above is a screenshot of the multiprocessor CPU monitor utility which shows processor utilization as well as lets you selectively turn individual CPUs on or off. It is one of the very few visible differences between SMP and regular version of OS/2 2.11 so take a good look at it.
 

WPS Enhancers

Thanks to the flexibility and extensibility of the Workplace Shell, a number of "enhancers" were developed. The most complete and most popular of them was Stardock Systems' Object Desktop. It was actually released at the end of 1995 which was technically not the 2.1/2.11 era anymore, but at that time OS/2 2.11 was still widely used and supported by Object Desktop. Because Kris Kwilas of Stardock was so kind to open the forgotten OS/2 vault and dig out a dusty copy (the dust on the ZIP file was only virtual though) of Object Desktop 1.03 for me, I can present a few screenshots of the best selling OS/2 utility program.

As usual, this was not without difficulties. Object Desktop doesn't really look very well in VGA resolution, making me search for some kind of SVGA solution for OS/2 2.11. The drivers for my Matrox G400 should have worked on OS/2 2.11. But didn't. Why wasn't I surprised? Fortunately I have access to what might be world's largest collection of graphics cards. After several more failed attempts I finally found an ancient S3 928 which worked with the drivers that came with OS/2. In the process I learned to appreciate the boot to command line feature - which was sadly not present in OS/2 2.11. I also got quite good at manually installing VGA drivers by editing CONFIG.SYS and OS2.INI. And here are the results of my hard work:

You can see the wonders of Object Desktop 1.0 - Enhanced Folders, Tab LaunchPad (there was no LaunchPad in OS/2 2.1 yet) and the Control Center with perhaps the single most valuable feature of Object Desktop: virtual desktops. Oh, and I mustn't forget the close button added to every window. But Object Desktop didn't stop there:

This is the Object Navigator and Enhanced Data Object with a nice little text viewer. And looking at the Control Center again, there are all the little monitors of CPU utilization, RAM, swap space and disk space (and a time monitor a.k.a. clock), plus shadows of the Desktop and important folders. Doesn't it just look cool? Object Desktop had many more features but I really don't have enough space to describe half of them. Installing Object Desktop was almost like upgrading to a new version of the OS.

Compared to OS/2 2.0, version 2.1 and 2.11 wasn't all that interesting. There was a number of enhancements but most of them weren't very visible (that didn't make them less important though). Nevertheless, OS/2 2.1 had substantially wider selection of available applications and attracted a number of new users frustrated by the inherent instability of Windows 3.1 and looking for something better than DOS. And perhaps most importantly, OS/2 2.1 set stage for the version of OS/2: Warp. But OS/2 Warp most certainly deserves its own page.
 

Acknowledgements

My thanks go to Lewis G. Rosenthal for kindly sending me the OS/2 2.11 SMP CD.

Thanks to Kris Kwilas for the copy of Object Desktop 1.0.