IBM TopView. TopView is the first object-oriented, multitasking, and windowing, personal computer operating environment for PC DOS developed by IBM, announced in August 1984 and shipped in March 1985. TopView provided a text-mode (although it also ran in graphics mode) operating environment that allowed users to run more than one application at the same time on a PC. IBM demonstrated an early version of the product to key customers before making it generally available, around the time they shipped their new PC AT computer.

History 
When Microsoft announced Windows 1.0 in November 1983, International Business Machines (IBM), Microsoft's important partner in popularizing MS-DOS for the IBM PC, notably did not announce support for the forthcoming window environment. IBM determined that the microcomputer market needed a multitasking environment. When it released TopView in 1985, the press speculated that the software was the start of IBM's plan to increase its control over the IBM PC (even though IBM published the specifications publicly) by creating a proprietary operating system for it, similar to what IBM had offered for years on its larger computers. TopView also allowed IBM to serve customers who were surprised that the new IBM AT did not come with an operating system able to use the hardware multitasking and protected mode features of the new 80286 CPU, as DOS and most applications were still running in 8086/8088 real mode.

Even given TopView's virtual memory management capabilities, hardware limitations still held the new environment back—a base AT with 256 KB of RAM only had room for 80 KB of application code and data in RAM once DOS and TopView had loaded up.  512-640 KB was recommended to load up two typical application programs of the time. This was the maximum the earlier IBM XT could have installed. Once loaded, TopView took back much of the memory consumed by DOS, but still not enough to satisfy industry critics. TopView ran in real mode on any x86 processor and could run well behaved DOS programs (i.e. programs that did not write directly to the screen but used BIOS int 10h and DOS int 21h, such as the IBM Assistant Series of productivity programs) in an arrangement of windows. Well behaved applications would use standard DOS and BIOS function calls to access system services and hardware. Misbehaving programs (i.e. such as programs that did write directly to the screen) such as Lotus 1-2-3, WordStar and dBase III would still run in the TopView environment, but would consume the entire screen.  Object-oriented applications were written using the TopView API. TopView was developed to run on the 8088 (and required what IBM referred to as a fixed disk) and later the 80286. TopView was not updated to make use of the virtual 8086 mode added in the Intel 80386 processors that allowed better virtualization.

Initially, compatibility with the extended features was limited mainly to IBM applications, along with a few third-party products like WordPerfect and VolksWriter. A chicken-and-egg situation developed where third-party developers were reluctant to add extended feature support (such as block insert and delete to allow users to do cut/copy/paste between applications) when they did not see market demand for them. Most DOS programs did, however, support these functions and did allow the user to perform the cut, copy, and paste operations by using the TopView pop-up menus.

Some believed that IBM planned to use TopView to force reliance on them to comply with the new technical specifications.  As later versions of TopView were released, it was able to successfully make more challenging DOS apps run in a multitasking fashion by intercepting direct access to system services and hardware.

TopView first introduced Program Information Files (PIF files), which defined how a given DOS program should be run in a multi-tasking environment, notably to avoid giving it unnecessary resources which could remain available to other programs. TopView's PIF files were inherited and extended by Quarterdeck's DESQview and Microsoft Windows. The concept of Program Information Files was also used under Digital Research operating systems such as Concurrent DOS, Multiuser DOS, Datapac System Manager and REAL/32; however, using the PIFED command, the necessary program information got directly embedded into the .EXE or .COM executable file.<ref>{{cite book |publisher=Digital Research |title=Concurrent DOS 386 - Multiuser/Multitasking Operating System - Reference Manual |date=1987 |url=http://bitsavers.trailing-edge.com/pdf/digitalResearch/concurrent/1126-2064-001_Concurrent_DOS_386_Reference_Guide_Nov87.pdf}}</ref>

 Version history 
Version 1.1, introduced in June 1986, added support for the IBM PC Network and IBM 3270 terminal emulation. Importantly, support for swapping non-resident programs was added—onto the hard disk on all computers and into the high memory area on machines equipped with a 286 CPU. The initially poor support for DOS batch files was improved.

Version 1.12, introduced in April 1987, added support for the new IBM PS/2 series, their DOS 3.30 operating system, and their new PS/2 mice. It could also now use up to four serial ports.

 Decline and discontinuation 
TopView sold below expectations from the start, with many potential users already satisfied with cheaper, less memory-intensive terminate-and-stay-resident task switchers like Ready, Spotlight, and Borland Sidekick which didn't need a multitasking environment. TopView ran in graphics mode (TOPVIEW /G); however, this was rarely used. By mid-1987, IBM began to shift focus away from TopView and was promoting the use of OS/2 to developers and end users alike. OS/2 1.0 was a pre-emptive multitasking, multithreading OS that allowed one real mode and multiple 16-bit protected mode sessions to run at the same time on the PC/AT based 80286 and provided as a DOS alternative announced in April 1987 and made available later that December. A graphical user interface (Presentation Manager) was added with OS/2 1.1 in October 1988. 1.1 could run with or without Presentation Manager as well as an embedded system with no screen, keyboard or mouse interface required. IBM officially stopped marketing the final release of TopView, version 1.12, on 3 July 1990. TopView's concept was carried forward by other DOS multitaskers, most notably Quarterdeck's DESQview, which retained TopView's user interface and many features, plus added more features such as support for the special features of the 80286, 80386 and compatible processors, and, with DESQview/X (released in June 1992), a true GUI interface running on DOS. A variety of similar programs to TopView were also available, including one from Dynamical Systems called Mondrian, which Microsoft bought in 1986 with the stated intention of implementing TopView API compatibility into Windows which never happened. Later in April 1992, IBM introduced OS/2 2.0 which included virtual 8086 mode and full 32-bit support of the Intel 80386 superseding even DESQview and other similar environments. OS/2 2.0 was a priority based preemptive multitasking multithreading OS including 32 levels of priority (from time critical to idle time) for the 386.

TopView requires IBM PC DOS versions 2.0 to 5.0 or MS-DOS 2.0 to 6.0, and will not run with later releases.

Key contributors to TopView included David Morrill (the "father of TopView" code-named "Orion" once the GLASS project was moved to Boca Raton), Dennis McKinley (tasking), Ross Cook (memory management), Bob Hobbs (TopView Toolkit) and Neal Whitten (product manager). Bill Gates, Steve Ballmer, Gordon Letwin and other key Microsoft executives accepted an invitation from IBM executive Don Estridge to IBM Boca Raton to see a special demonstration of TopView. Gates was disturbed that Windows did not have the multitasking (Windows used a cooperative method to share the CPU) and windowing capabilities (i.e. overlapping windows, etc.) that TopView had.  Gates witnessed TopView running multiple copies of the Microsoft BASIC interpreter running in windows (overlapping and side-by-side) in a multitasking fashion. Microsoft later released a multitasking version of MS-DOS 4.0 (multitasking) from what it learned from the meeting. Even though there was no joint development agreement with Microsoft for the development of TopView, Estridge asked and later told Whitten (against Whitten's and the TopView team's wishes) to turn over all source code and documentation of TopView to Microsoft. Within a short time after the meeting, Estridge's request was granted. Gates gave the code and documentation to a group headed by Nathan Myhrvold. Once the code had been modified according to Gates' specifications, he purchased the company. The product itself, Mondrian, was never released.  Gates, however, gave members of the team key positions at Microsoft. This led to a Joint Development Agreement with Microsoft (an agreement that previously only included DOS) to co-develop OS/2 (an agreement that lasted until 1990). This was all done in order to satisfy the USA vs. IBM anti-trust court case that was filed in 1969. Even though it was dismissed in 1982, IBM was mired in antitrust troubles for more than a decade after the dismissal and did not recover from the legal morass until the early to mid-90s. In June 1990 an FTC probe was launched into possible collusion between Microsoft and IBM in the PC software market.

ReceptionInfoWorld in 1985 described TopView as "bland, plain vanilla software that hogs far too much memory". BYTE'' also criticized TopView's memory usage, but stated that "you will find that most software written for the IBM PC is TopView-compatible". Noting the low price and "innovative multitasking features", the magazine predicted that the software "will attract a lot of takers".

In 1985, Digital Research positioned their multitasking Concurrent DOS 4.1 with GEM as alternative for TopView.

See also 
 DOS Shell
 MS-DOS 4.0 (multitasking)
 OS/2
 Visi On
 VM/386

References

External links 
 TopView: An early multi-tasking OS for the PC - a history of TopView by its lead developer

DOS software
TopView
Operating system APIs
Process (computing)