VOICE Home Page: http://www.os2voice.org | August 2001 [Newsletter Index] [Previous Page] [Next Page] [Feature Index] editor@os2voice.org

## An OS/2 History Lesson - Ten years ago

By Michal Necasek © August 2001

Ten years ago, the world of OS/2 was very very different from today. For one thing, there was not just IBM OS/2 - Microsoft OS/2 was also available. Even after the MS-IBM split, Microsoft still continued to sell OS/2 version 1.3 which was developed primarily by IBM (Microsoft top management had already lost interest in OS/2). OS/2 version 1.3 was almost identical to OS/2 1.2 as far as the feature set was concerned but contained a number of performance optimizations and some usability enhancements. The similarity of OS/2 1.2 and 1.3 is evidenced by the fact that almost all OS/2 applications of that time ran on both versions - although in the IBM/MS "tradition" they usually required versions 1.21 or 1.31 respectively, as the initial releases were too flakey.

I will now present a tour of OS/2 1.3 - that was the version of OS/2 current 10 years ago. To my knowledge, there were three flavors of OS/2 available in 1991:

- Microsoft OS/2 1.3
- IBM OS/2 1.3 SE (Standard Edition)
- IBM OS/2 1.3 EE (Extended Edition)

IBM's SE version and MS OS/2 were nearly identical, the only difference was packaging - mostly different drivers (MS OS/2 included some additional SCSI drivers). MS OS/2 was sold primarily through OEMs such as Compaq or NCR. OS/2 EE was IBM's "heavyweight" version which contained Communications Manager, Database Manager (the predecessor of DB2/2) and LAN Requester. This version was naturally targeted at corporate accounts, especially those that needed to interface with IBM's big iron.

I have concentrated on the basic version of OS/2, namely MS OS/2 1.31. Microsoft positioned it as a server OS (remember, in 1991 Windows NT was still far away and DOS isn't exactly natural server platform) and OEMs often bundled it with MS LAN Manager - which was MS/IBM's (mostly pathetic) response to Novell NetWare. Note that the basic concepts and large parts of the user interface (eg. the NET command) are still present mostly unchanged in today's offerings by both Microsoft and IBM.

Now let's take a look at the package: MS OS/2 1.31 spanned 10 3.5" HD floppies. Those contained the base OS, Presentation Manager, fonts, video and printer drivers (though not a very wide selection). There was no networking support in the base package - one could either obtain the full LAN Manager (including goodies like HPFS386) or just the LAN Manager client (which is probably still available on MS's FTP!). Let's see what OS/2 1.3 already had:

- Preemptive multitasking
- Multithreading (max. 512 threads system wide)
- Fully protected memory
- No 640K memory limit for OS/2 apps
- Virtual memory (could theoretically use 1GB virtual memory)
- Graphical user interface (Presentation Manager)
- Windowed and fullscreen OS/2 sessions
- Installable filesystems including HPFS
- Support for the REXX scripting language

But OS/2 1.3 had also many limitations, mainly caused by the fact that it was designed to run on a 286 processor:

- Support for only 16MB of physical memory
- Support for 16-bit apps only
- Only a single fullscreen DOS session with not very good compatibility (dubbed "penalty box")

It is interesting to note that (to my knowledge) Microsoft's HPFS386 driver supplied with LAN Manager broke the first two limitations (naturally on 386 machines only). OS/2 2.0 rectified all of these drawbacks - although the 16MB limitation was not a practical problem in 1991.

Digression: The DOS support in OS/2 1.x was technically very interesting. The 286 chip was not designed to allow virtualization of real mode DOS programs (unlike the 386). The Intel designers probably had no idea DOS would be so tenacious (the word "pest" comes to mind) and expected fully protected OSes to completely replace it. Hence the 286 supported real mode and protected mode but no easy way to switch between them. That is, switching from real to protected mode was simple (just toggling a bit in the MSW - Machine Status Word, a CPU register on 286 and later chips), but there was no way to switch back - well, no easy way. As we know, engineers can be rather clever sometimes and they don't care if something "can't be done". One such engineer is Gordon Letwin (one of the first ten Microsoft Employees, Chief Architect of OS/2 on the Microsoft side and designer of HPFS among other achievements) who found a workaround for the problem. That is implemented through forcing a hardware reset on the CPU (either by using circuitry external to the CPU or making it reset itself by triple faulting) - after a reset all Intel x86 CPUs start executing in real mode. This method was described as "turning the car on and off at 60 MPH to shift gears" and was used more or less successfully by OS/2 1.x, Windows/286 and Windows 3.x standard mode. The 386 offers much better real mode support (through Virtual 8086 mode).

### Base OS/2

I'm sure the original MS/IBM engineers would be shocked to hear what hardware I ran OS/2 1.3 on: Intel PIII-600 CPU, 256MB RAM, Matrox G400/32MB graphics card. I only had to remove my 40GB harddrive and replace it with a 4GB drive - but that's no surprise because even much newer OSes (like Warp 4 and Windows NT 4, both of 1996 vintage) crash on the 40G drive just like the ancient OS/2 did. Note that this is an IDE drive although OS/2 1.3 supported SCSI hardware of the early 1990's such as Adaptec 154x with attached harddrives and CD-ROMs.

I installed OS/2 on a small 512MB HPFS partition (it seems to have a problem with partitions larger than about 1GB - remember that in 1991, typical harddrive was certainly smaller than 100MB. The installation went quite smoothly, although there wasn't that much to install. Supplied display drivers are limited to standard CGA/EGA/VGA/XGA (some vendors had hi-res drivers for their hardware back then) and multimedia support is nonexistent. OS/2 1.3 has no problem using my PS/2 mouse.

OK, now let's finally see some pictures. This is the standard OS/2 1.3 desktop:

Pretty boring, huh? Note the DOS icon in the bottom left corner. It was always present because the DOS box was always open - although it was not running unless it was in the foreground (ie. fullscreen). Similarly the Print Manager was always running. The interface closely resembled Windows 3.0 both graphically (the GUI widgets) and conceptually - there were no folders to speak of, only program groups containing program icons. The only "big" difference was that the shell program was not called Program Manager like in Windows but rather Desktop Manager:

There were no nifty applets like Solitaire included with OS/2. One of the very few supplied GUI programs was the File Manager which somewhat resembled its Windows counterpart:

Current users of OS/2 (or eComStation) would find some striking similarities between OS/2 1.3 and OS/2 4.5 of ten years later. One of them is the help subsystem:

The configuration was handled by the Control Panel (again analogous to Windows). If you were wondering (like me) where some of the more crummy-looking dialogs still present in contemporary OS/2 came from, now you know:

The Add/Delete Font dialogs are among the most senior ones (basically unchanged since OS/2 1.1). Another nearly unchanged feature was Lockup (I wonder where this OS/2 logo came from though):

Yet another familiar-looking feature (but this time simply because there's not much to improve) were command-line windows:

And here's one final screenshot of the OS/2 desktop proving that OS/2 was always a real OS and not just a showy facade like Windows - the Shutdown dialog:

Especially when using HPFS (first appearing in OS/2 1.2), shutting down cleanly was very important for data integrity - and to prevent annoying and lengthy CHKDSKs.

### Applications

As you may have noticed in the screenshots, there were several popular office applications available for OS/2. I briefly tried two of them, Microsoft Word for OS/2 (version 1.1) and Microsoft Excel 3.0. Both these applications were very very similar to the Windows versions - I will later explain why.

Let's take a look at MS Word first. It came on 4 HD floppies and contained the actual Word program, filters for various text and graphical file formats and a tutorial program. The application window didn't look all that different from the later versions:

Note that this is a rare 1.1 'B' version from 1992 which runs unchanged on today's versions of OS/2 - not that anyone would want to use it nowadays, but it proves that the backwards compatibility in OS/2 is truly remarkable.

As I mentioned earlier, Word came with an interactive tutorial program which was in my opinion rather nice, especially considering its vintage:

As for the actual word processing features, ten years ago Word didn't suffer so much from feature overload but was still a fairly capable word processor - if you're into Word-style word processing that is (I'm not):

Another major Microsoft application available for OS/2 was Excel. Again, it looked extremely similar to its Windows counterpart:

Note the reported amount of memory used - I'm almost certain some variable overflowed during the calculation because the original developers never tested it on a 256MB machine.

Just like Word, Excel was fairly capable and could do pretty much everything you'd expect a spreadsheet to do:

One interesting feature was the online help in Excel:

If you've ever used Windows 3.0, the help viewer should look very familiar to you. In fact, if you didn't look carefully, you could easily mistake the screenshot for Windows 3.0. It looked that similar.

Microsoft naturally wasn't the only application vendor. Lotus was also selling an OS/2 version of the famous 1-2-3 spreadsheet. But on the whole, there were not many GUI apps available. Some office apps were also available for text mode, such as Microsoft Word 5.5 (ran under both DOS and OS/2), Lotus 1-2-3 or WordPerfect (I think).

### Application Development

OS/2 1.x was a great development platform. With its good multitasking, it allowed developers to simultaneously compile a large project, edit a source file and download a file from a BBS for instance. Windows 3.x promised the same but failed to deliver - at least in the opinion of the power users. To my knowledge, Microsoft programmers heavily used OS/2 internally to develop OS/2, DOS and Windows apps - cross compiling was no problem with Microsoft tools.

OS/2 1.x has one interesting feature - it allowed developers to build "family mode" applications that could run unchanged on DOS as well as OS/2 - note that this was not the same as "bound" apps which essentially contain separate executables for DOS and OS/2. The Family API was a subset of OS/2 API. A family app was an OS/2 program (a NE format executable) which ran on OS/2 without any special considerations. But the DOS stub was unusually large (about 11K) and contained a miniature OS/2 API "emulator" that ran on top of DOS. Many OS/2 commands used this feature as well as some Microsoft programming tools (linker, librarian etc.).

The Family API was fairly powerful as evidenced by the following screenshot:

This is - obviously - Microsoft Word 5.5 (do you understand their version numbers? I don't) for DOS and OS/2. It is a family mode application and the executable runs under both DOS and OS/2. It can run in text mode and 'pseudo-text' mode - graphics mode which looks like text mode but can display italics or bold characters etc. This word processor has one other interesting 'feature': it is available for download from Microsoft's Office website as a free Y2K upgrade for DOS Word 5.0 users.

A number of vendors offered OS/2 compilers (C language was the most popular), I'll list some of them:

- IBM - sold rebranded versions of MASM and Microsoft C as IBM Macro Assembler/2 and IBM C/2.
- Lattice C
- Watcom C and FORTRAN - the only compiler that still supports 16-bit OS/2 development (now Open Watcom)
- Zortech C (later Symantec C, now Digital Mars)

There were many others. But by far the biggest language vendor was Microsoft itself. Their OS/2 compilers included the following:

- Microsoft C versions 5.1 and 6
- Microsoft Macro Assembler (MASM) versions 5.x and 6.0
- Microsoft FORTRAN version 5.1
- Microsoft Pascal version 4.0
- Microsoft Basic version 7

All of these compilers supported both DOS and OS/2 development and allowed cross-compilation in both directions. All the supplied tools were strictly text oriented. Most compilers came with Programmer's Workbench which served as an IDE:

The supplied debugger was the classic CodeView (protected mode version - CVP). The OS/2 versions of CodeView looked almost exactly like the DOS versions, that is to say, there was not much to look at. Especially the early versions of CodeView (before 1989) were pretty ugly:

Note the dates in the about box: So much for the Y2K craze! The later versions of CodeView were still text mode but had a little nicer window-based interface:

All Microsoft languages also came with extensive online help and TSR-style help viewer, QuickHelp:

Note that this interface still lives on in the DOS version of QBASIC supplied with OS/2 as well as EDIT.EXE which comes with Windows 9x.

On the whole 16-bit programming was naturally a pain - if you don't know why, don't even ask. But with its protection features and virtual memory, programming for OS/2 was still way better than Windows and especially DOS development. Many of the 16-bit limitations were still present, but at least the platform was stable.

### Interesting Stuff

During my search for ancient OS/2 software I came across one very interesting piece of software - Microsoft's WLO or Windows Libraries for OS/2. I'm not sure this product was ever officially released because it was finished around the time of the MS/IBM divorce. Simply put, WLO is "Windows for OS/2" - port of the 16-bit Windows 3.x API to OS/2 1.x. It is implemented as a set of libraries and DLLs designed to allow developers to build applications that run unchanged on Windows 3.x and OS/2 (with the WLO DLLs). Microsoft used earlier versions of WLO to develop the OS/2 versions of Word and Excel. This explains why they look so similar to the Windows releases and why Excel comes with Windows Help viewer. I don't know of any non-Microsoft application that used WLO.

At any rate WLO was pretty complete. To prove it I made a few screenshots of sample applets supplied with WLO.
Here's the first one:

This really is OS/2, it's not a fake! And it's not Win-OS/2 either, it's genuine MS OS/2 1.3. This is of course Windows Paintbrush with a screenshot of Windows Write open in it. Here's another one:

Again, don't get sidetracked by the fact that it looks exactly like Windows - it's not! Actually, the about box would look slightly different on Windows 3.x. This is naturally the ever popular Solitaire card game. It works pretty well, too:

Yeah, I'm pretty good at it...

And with OS/2's backwards compatibility, it should not come as a surprise that WLO still works today:

This screenshot was taken on OS/2 4.5 - there are apparently some graphical glitches but the help viewer works just fine. Neat, huh?

#### Acknowledgements

I would like to thank those several veteran OS/2 users who supplied me with the software described here. They know who they are.

Some of the information presented here is taken from the excellent book "Inside OS/2" by Gordon Letwin, published by Microsoft Press in 1988.

Most of the screenshots were taken with PMCamera, an IBM EWS utility by Juerg von Kaenel. The text mode screenshots were taken with PMView under Warp 4.5.

All this information is accurate to my knowledge. I never actively used OS/2 1.x, hence there are bound to be omissions in the text. If you were around in the 1.x days and have some extra information, I will welcome any comments at <MichalN@prodigy.net>.

[Feature Index]
editor@os2voice.org
[Previous Page] [Newsletter Index] [Next Page]
VOICE Home Page: http://www.os2voice.org