The following text is not an introduction to the history of OS/2 or the design of the operating system. It only maps the early semi-public development builds of Microsoft OS/2 prior to the release of OS/2 1.1 and the Presentation Manager.
All screenshots were taken from slightly customized VirtualBox 4.0 VMs, unless otherwise noted.
The timeline is not authoritative; it is based on press releases and press articles (where available) and timestamps of files on distribution media. Developers would have been expected to receive the materials with a delay of several weeks.
The OS/2 SDK
About six months before OS/2 1.0 was released to the public, Microsoft shipped the first OS/2 Software Development Kit (SDK) to ISVs who were part of Microsoft’s OS/2 development program. The program wasn’t cheap—the price of admission was $3,000 (in 1987 dollars). In return, developers received everything they needed to write OS/2 applications: The operating system itself, development tools including Microsoft C and MASM, programming examples, printed and electronic documentation, a subscription to the Microsoft Systems Journal, and access to Microsoft DIAL, an electronic technical support system. That is, everything except hardware—the OS/2 SDK required an IBM PC/AT or compatible (including the Compaq Deskpro 286 or 386) with at least 1.5 MB RAM.
In retrospect, the $3,000 price tag had been too steep. Too many developers balked at the price and continued developing for DOS (and later, Windows). Microsoft learned the lesson and the development tools for its next operating system, Windows NT, were much more accessibly priced.
OS/2 was officially announced, together with the IBM PS/2 line of computers. Microsoft ran spreads advertising OS/2 in publications such as the Wall Street Journal, and a few weeks later published ads for the upcoming OS/2 SDK in trade press (InfoWorld).
At the end of May 1987, Microsoft started shipping the OS/2 SDK version 1.00. This SDK contained a pre-release build of OS/2, not OS/2 1.0. Also included were beta versions of Microsoft MASM and C, both with a 4.50 version tag. The SDK came with a heavy stack of printed documentation which covered the new operating system, the complete C and MASM development systems, and OS/2 programming documentation.
In addition, the OS/2 SDK shipped with the full Microsoft Windows 1.04 SDK which included Windows 1.04 itself, programming tools and libraries, as well as Microsoft C 4.0, required to develop for Windows. This was not intended to surreptitiously promote Windows instead of OS/2; Microsoft simply wanted to help programmers understand and learn the new programming model that the upcoming Presentation Manager would utilize. Windows 1.0 was similar enough in concept that it would have been helpful.
The operating system was clearly unfinished, yet quite usable. The multi-tasking shell was very spartan. There was no online help, some utilities were missing, hardware beyond PC/AT compatibles was unsupported. Still, it was possible to use the system to develop OS/2 software. The C compiler and MASM were marked as beta, but could build the sample applications without major issues. Documentation was incomplete, there were numerous references to DOS 5 rather than OS/2, but the system was functional.
Programmers could certainly get a very good feel for how the finished new operating system would work, and could start developing applications. The base system API was more or less stable at that point. The brave new world of OS/2 was just around the corner.
Microsoft held OS/2 technical training seminars in Seattle and New York. At these seminars, speakers from Microsoft (including some of the core OS/2 developers) introduced key OS/2 design concepts, including Presentation Manager development.
The OS/2 SDK version 1.01 arrived with only a relatively small update to the OS: The Program Selector. The system kernel was unchanged and only one replacement disk was shipped. The Program Selector was not significantly different from the version later shipped with OS/2 1.0.
There were other important additions in the 1.01 SDK though. Microsoft shipped the complete pre-release documentation for “Windows Presentation Manager”, the OS/2 GUI which would not be released until late 1988.
No less important was the availability of the OS/2 DDK (Device Driver Development Kit, sometimes abbreviated as DDDK) version 1.0. The DDK contained sample code (a disk driver and a serial port driver) and documentation required for the development of OS/2 device drivers. An important part of the DDK was the OS/2 debug kernel—a modified version of OS2DOS.COM (the OS kernel) with a built-in debugger that could be accessed over a serial line. There was also a special test kernel, which contained both the kernel debugger and special debug routines intended for validating device driver functionality.
The 1.02 SDK shipped with the final build of Microsoft OS/2 1.0. However, the development tools were still not quite finished—MASM was at level 5.00A, while the Microsoft C compiler version was 5.1 beta. The programming tools, libraries, examples, and documentation were nearing completion as well.
The OS/2 SDK version 1.03 was an important milestone: For the first time, a build of the Presentation Manager GUI was available to developers outside Microsoft and IBM.
Also important were the release versions of Microsoft C 5.1 and MASM 5.1, finally shipped with the 1.03 SDK. The version included in the SDK was slightly different from the retail release. The SDK release of Microsoft C 5.1 also included MASM 5.1, while the normal retail products were separate. In addition, QuickC was removed from the SDK release, presumably because it didn’t support OS/2.
The OS/2 Programmer’s Toolkit 1.0 was also included; the Toolkit was intended for owners of the retail versions of OS/2 1.0 and only included programming documentation, libraries, and sample code. Users of the Toolkit also had to separately purchase a C compiler and/or assembler, such as Microsoft C 5.1/MASM 5.1. Apart from printed documentation, reference information was now additionally available in the form of QuickHelp on-line databases.
The 1.03 SDK was built around the first pre-release version of the OS/2 1.1 kernel. One of the major improvements was support for disk partitions larger than 32MB, with the caveat that most DOS versions at the time could not access such partitions.
The big news was of course the Presentation Manager. The GUI look and feel strongly resembled Windows 2.0. In this release, the Presentation Manager was very clearly unfinished, the API was not yet fully finalized. Still, enterprising developers could finally go from reading pre-release documentation to writing code, even though the system was somewhat flaky.
Included with the SDK documentation was a draft copy of Charles Petzold’s Programming the OS/2 Presentation Manager, an excellent introductory book on Presentation Manager programming which came with numerous example programs. Microsoft also provided a guide on converting Windows application to the Presentation Manager.
The 1.03 SDK also included the recently released Windows 2.03 with the corresponding SDK. This was again intended to give developers a head start on designing applications for the not-yet-finished Presentation Manager. Windows 2.03 was much closer to the Presentation Manager in both functionality and look and feel than Windows 1.04 had been.
The DDK was updated to the OS/2 1.0 level, with relatively few changes.
Microsoft held two Advanced Network Development Conferences, in San Francisco and New York. These conferences introduced OS/2 networking, particularly the LAN Manager and SQL Server.
The 1.04 SDK was shipped shortly after 1.03 and contained no OS updates. Instead, a big networking milestone had been reached—the first preview version of the LAN Manager.
The LAN Manager 1.0 pre-release came with DOS and OS/2 workstation (client) and OS/2 server components. Microsoft did not intend to sell the LAN Manager directly to end-users but rather license it through OEMs. For that reason, drivers for only a very few network cards were included; OEMs were expected to supply their own.
Although LAN Manager could be installed on top of the released OS/2 1.0 version, Microsoft recommended using the pre-release version 1.1 kernel instead, without the Presentation Manager components.
The OS/2 SDK version 1.05 refreshed the base operating system and the Presentation Manager. The GUI was now very similar to the final OS/2 1.1 release.
The Presentation Manager in the 1.05 SDK was much more stable and complete than the earlier 1.03 release from March. Developers could now get serious about developing OS/2 GUI applications, although relatively few actually did.
The updated DDK version 1.05 was significantly larger than the previous releases because support for developing Presentation Manager drivers was now included. This version added the source code for the EGA/VGA and IBM 8514/A display drivers. However, there was no printer driver sample code yet, a fact which no doubt contributed to the dearth of printer drivers when OS/2 1.1 was released several months later.
The Presentation Manager display drivers were rather complex and written entirely in assembler, in part for performance reasons and in part because much of the code had been adopted from Windows display drivers. The complexity was one of the reasons why very few OEMs provided good OS/2 display drivers. It took IBM until 1996 to develop a simplified display driver model for OS/2.
The OS/2 SDK version 1.06 was somewhat unusual. It included the final version of IBM OS/2 1.1 SE and a pre-release of Microsoft’s development tools and sample programs. Similar to the situation with OS/2 1.0, IBM released the new OS/2 version several months before Microsoft delivered the final development kits, and also several months before OEM versions of Microsoft OS/2 would appear. The 1.06 SDK underscored that Microsoft and IBM releases of OS/2 were identical as far as applications were concerned.
The SDK provided a good basis for developing OS/2 1.1 applications. Both the OS and the development tools were in final retail form, and the API headers, libraries, sample code, and documentation were not far from the released version.
Microsoft shipped the final OS/2 1.1 SDK, a year after the first Presentation Manager SDK appeared and two years after the Presentation Manager had been announced in early April 1987.
The DDK was updated to the OS/2 1.1 level. Sample printer and plotter drivers (written in C) were finally included, while the rest of the DDK had not significantly changed.
At this point, the $3,000 OS/2 SDK was discontinued but immediately replaced by retail products. That marked the end of the early development period of OS/2; the system was now established and available through retail channels, and Microsoft’s standard development tools supported OS/2.
For basic OS/2 development, a copy of OS/2 1.1 and Microsoft C 5.1 sufficed. However, MS C 5.1 offered no specific support for writing Presentation Manager applications. An OS/2 Presentation Manager Softset ($150) was available from Microsoft, offering the necessary headers and libraries, as well as dialog, icon, and font editors, plus a resource compiler. However, sample code and documentation were not included. Those were part of the OS/2 Presentation Manager Toolkit ($500), a superset of the Softset. A three-volume printed OS/2 programming reference was also available separately from Microsoft Press, or developers could get an electronic copy of the documentation as part of the Microsoft Programmer’s Library CD-ROM ($395).
The 32-bit OS/2 2.0 SDK was scheduled to be delivered to developers later in 1989, but that’s a different chapter in the history of OS/2.