TopView Screenshot

Quando nel 1984 Bob Markell, vicepresidente esecutivo di IBM responsabile dello sviluppo software, annuncia TopView, lo definisce come “Strategic Product”, quindi molto più che un semplice launcher di applicativi.

Il progetto è guidato da David C. Morrill che dal 1980 si occupa della realizzazione di un Windows Managament System per sistemi IBM denominato GLASS. Morrill in una sua lettera inviata a Don Estridge, team lead del progetto “PC IBM”, fa il punto sul suo lavoro:

... In June of 1980 I began a two year temporary assignment with what, at that time, was the ISG advanced technology group in Yorktown Heights. During this period, ISG and Research were in the process of defining an office systems research strategy. The result was that I had a lot of "free" time on my hands, since I was not directly involved in the definition of this strategy. I made use of this time to investigate some ideas I had been toying with during the previous few years in Rochester, Minnesota dealing with "windows" and advanced user interfaces. At this time, the notion of windows and windowing systems was not well known or accepted. No systems using windows were yet commercially available, or even hinted at. As far as I am aware, no work on windowing systems was underway anywhere in IBM.

Initially, my work received little or no attention. However, since management in Yorktown continued to be "bogged down" in the office systems research strategy, I was given additional time to pursue my work. Eventually, my management began to take note of the work I was doing, and while still not overly supportive, at least gave me permission to "officially" continue work on windows.

Up to now, all my work on windows had taken place on IBM System/370 computers running under VM. Due to inherent limitations in the I/O and display architecture of these systems, the results I was achieving weren't all that I had hoped. As a result, in the winter and spring of 1981, I began work on a windowing system which ran on an Apple II computer. The choice of the Apple II was somewhat accidental. At that time, the IBM PC was only a rumor. I felt that what was needed was a machine with direct video mapped memory, such as the Apple II (and now the IBM PC) possessed. In addition, I happened to own an Apple II. The only stumbling block was a legal one. The IBM legal department in Research had determined that no Apple II could be allowed inside the research facility. As a result, I was forced to use my own equipment and my own time to continue my research into windowing.

The result was that in the spring of 1981, I had completed a windowing system on the Apple II. This new system aroused somewhat more interest than the previous VM versions had. Now, with a greater degree of management cooperation, I proceeded to give a number of demos to groups in Research and ISG, both in Yorktown and in White Plains. The main problem that I encountered though was an attitude that might be characterized as: "So what, IBM doesn't make Apples.".

However, in July of 1981 it became clear to me that IBM was indeed going to make "Apples". At this time, my manager was able to arrange for me to travel to Boca Raton to "evaluate" the new personal computer being developed there. I spent several days in Boca, during which time I became somewhat familiar with the PC, BASIC, and some of its hardware features. In fact, Don, you may recall the drawing program I wrote in BASIC during those two days.

On return to Yorktown, I immediately began to turn my attention to the task of writing a windowing system for the new IBM PC. I had learned a lot from the previous two windowing systems I had written. Armed with this experience, and some additional ideas concerning object oriented systems, I was eager to combine them into a system that would run on the PC. However, in the fall of 1981, PC's were not easy to come by. As a result, I developed the windowing routines on an Intel MDS, but, having no way in which to test them, I turned instead back to VM. There I updated the windowing routines with some of the techniques I had developed over the past year, and incorporated the object architecture ideas I had been working on. The result was that by the end of September 1981 I had a version of what I called GLASS running on VM.

During the next two months, I "tinkered" with this system while waiting to get my hands on a PC. Finally, in late November 1981, my manager in Yorktown was able to procure two old engineering models of the PC for me to work on. From then until January 1982 I worked on rewriting GLASS for the PC, incorporating some additional ideas I had had while using the VM version.

In late January of 1982, my manager arranged for us to travel to Boca to demonstrate GLASS to a group working on the Datamaster word processing system. During this trip, he also arranged to give a demonstration of GLASS to you, Don. I recall, as you do I'm sure, that your reaction was one of interest, but concern over the fact that existing PC applications would not run under it. I was somewhat reluctant to promise anything in this area, and so we let the matter drop, and I returned to Yorktown.

During the rest of 1982 I continued to work on improving and refining GLASS for the PC. It was during this time that several significant uses for GLASS developed. In the late spring, a group from Kingston saw a demonstration of GLASS and were immediately interested in its windowing capabilities. They were in the process of defining a new display system and were considering incorporating a form of windowing into the display. Upon seeing the GLASS demo however, they immediately revised their concept of what windowing was and what it should be. They began trying to interest me in pursuing a temporary assignment in Kingston to help them with the development of their new display. However, for various personal and professional reasons, I declined all their offers. From a professional viewpoint, I was convinced that the ideal use of windows was in a personal computer, and not in a mainframe-based terminal. I was afraid that if I worked with them, the real potential of a windowing system would never be realized. So I refused.

Seeing that I would not work with them, Kingston next decided that they would make do with the code that I had developed. Again I refused. Finally, Kingston decided to go around me, and appealed to what was now my CPD management in Yorktown. The result was that I was forced to send all source code that I had developed to Kingston.

It was at this point, feeling somewhat cheated, that my relationship with Kingston, as well as my own group in Yorktown, broke down. To this day, Kingston has been fairly silent as to where many of the original concepts of the PC/3270 originated. In several conversations I have had with people outside of Kingston, I have even heard stories of misrepresentations as to the origins of the prototypes they developed based on the GLASS code I sent them.

The net result of this series of events was my transfer from CPD to the Research Division in Yorktown in September 1982. The agreement with which I joined Research was that I would be allowed to continue work on GLASS. And so I continued to do so.

As the end of 1982 approached, it became clear to me that the correct place in IBM for GLASS was Boca. And so in December and January I turned my attention to what I knew was the major stumbling block for GLASS with Boca: its inability to run with existing applications. During those two months I developed the code which was the basis for the DOS emulation employed today in Orion. At the end of this time I had solved enough of the problems that I was able to demonstrate running GLASS with several applications popular at the time. In late winter of 1983 I again returned to Boca to demonstrate GLASS. This time, considerably more interest was generated.

In fact, a task force was formed to study which of the several windowing systems becoming available at that time, including GLASS, should be adopted by Boca. After several weeks of evaluation, GLASS was chosen by the task force as its recommendation. As a result, in late march of 1983 I was asked to come to Boca for a six month assignment to work on turning GLASS into a product. With a certain amount of hesitation I agreed. During the first week of April, I packed a suitcase and left for Boca, leaving behind a new house I had just bought and moved into in December. It is now 14 months later...

In sostanza GLASS si trasforma in TopView, e le sue API diventando il relativo TopView Programmer’s Toolkit (venduto a 395$) con cui IBM punta a sfruttare appieno le potenzialità delle CPU i286, in particolare il multitasking utilizzando la modalità protetta di gestione della memroia. Microsoft, tra l’altro, aveva apertamente dichiarato di non essere interessata a integrare nel proprio DOS tali funzionalità, perché già proiettata sul futuro i386 che garantiva maggiori possibilità (leggasi gestione della paginazione).

Dal canto suo, comunque, IBM aveva la necessità di motivare l’acquisto dei nuovi PC AT e, al contempo, cercare di limitare l’espansione dei concorrenti OEM sul fronte dei sistemi compatibili e con TopView sperava di raggiungere entrambi gli scopi: proporre soluzioni multitasking e realizzare un ecosistema al di sopra del Dos, a cui legare le future applicazioni che, quindi, non sarebbero state in grado di girare con il “semplice” MS-DOS. 


TopView package

Nonostante le ottime premesse, TopView presenta numerose incompatibilità con i software esistenti, tant’è che pochi di essi sono etichettati come “compatible”, ovvero in grado di funzionare in modo concorrente. Per non parlare poi dei programmi “aware”, ovvero quelli realizzati sfruttando il programmer’s toolkit, confinati ad un minuscolo insieme di applicativi IBM.

I maggiori problemi di compatibilità erano dovuti al fatto che le applicazioni DOS solitamente accedevano in modo diretto alle risorse del sistema, così come era tipica la gestione diretta della memoria video consentendo, di fatto, a TopView di visualizzarle solo in modalità full-screen. Nel caso, invece, di applicazioni TopView-aware, attraverso le specifiche API, all'applicazione veniva riservata una "virtual video memory" rimappata da TopView sulla memoria video reale, in modo da poter visualizzare l'applicazione stessa in una finestra.

Risultava, inoltre, molto limitato, anche il sistema di “cut & paste”,  in grado di catturare solo l’intero contenuto informativo della schermata e non una singola parte, mentre la configurazione hardware necessaria era decisamente al di fuori della dotazione standard dell’epoca.


Infoworld del 15 ottobre del 1984 dedica la prima pagina a Topview

A causa di queste difficoltà e all’assenza di una GUI con cui sviluppare nuove tipologie di applicazioni, BigBlue non riesce a convincere le software house ad utilizzare TopView. Gli utenti, infatti, si stanno ormai avvicinando alle interfacce grafiche e, mentre Microsoft è intenta a sviluppare il proprio Windows e il mercato conta diverse soluzioni come VisiOn e GEM, IBM punta tutto su applicazioni “text based” in cui lo scambio delle informazioni tramite una serie di menu che possono essere visualizzati sullo schermo.

Fondamentalmente solo una caratteristica di TopView viene ripresa da altri ambienti multitasking del periodo: si tratta dei file PIF (Program Information Files) utilizzati per descrivere come l’applicazione DOS debba essere eseguita in ambiente multitasking. Lo stesso Windows utilizzerà tali file come anche Quarterdeck DESQview


Cute, la mascotte di TopView

IBM rilascia una major release (1.0) e una serie di minor upgrade (1.10, 1.11 e 1.12), promettendo, addirittura, di dotare TopView di una GUI a partire dalla versione 2.0. In particolare con la versione 1.10 arriva la possibilità di utilizzare la memoria estesa, di eseguire file batch e  la compatibilità con le Reti TokenRing. TopView si afferma un pò come standard de facto nell'ambito dei gestori di applicazioni in esecuzione concorrente, tant'è che altre soluzioni similari lo prendono come riferimento (vedasi DESQview e lo stesso Panorama di seguito).

Al di là delle considerazioni relative al prodotto in sè, il reale obiettivo di Big Blue è quello di convincere Microsoft a realizzare un nuovo sistema completamente svincolato dal vecchio DOS (leggasi OS/2) utilizzando TopView per punzecchiare Microsoft nel suo settore naturale, in quanto ipotetico concorrente di Windows.

La risposta di Gates non si fa attendere e Microsoft acquista una sconosciuta società dell’Oakland (California) chiamata Dynamical Systems, che produceva un clone particolarmente efficiente di TopView, compatibile con le applicazioni "aware" di quest'ultimo e con il suo modus operandi. La società era nata per opera di Nathan Myhrvold e Chuck Whitmerche avevano realizzato il tool Panorama, per l’esecuzione concorrente di processi su PC DOS Based, al fine di supportare i loro studi in un campo della fisica teorica chiamato “determistic chaos”.

Panorama si trasforma ben presto in un vero e proprio sistema operativo multitasking (sempre Dos Based) e viene rinominato in Mondrian poco prima la schedulazione del rilascio, previsto nel 1985. Mondrian era in grado di eseguire in modo efficiente fino a 16 processi concorrenti con l’utilizzo, per se stesso, di soli 64Kb di memoria. Un capolavoro se paragonato a TopView che mostrava i suoi limiti con soli 2 processi e richiedeva circa 400Kb di Ram.

Mondrian diventa così parte integrante del nascente Operating System/2 e parte del suo team di sviluppo entra in Microsoft. In particolare a Redmond arriva David Weise, che sarà l’Umo-Microsoft impiegato al tavolo con IBM e Lotusper lo sviluppo di un approccio standard per superare il limite dei 640Kb di indirizzamento contiguo per la memoria, imposto dall’architettura Intel pre-386, definendo lo standard LIM-EMS (Lotus-Intel-Microsoft Expanded Memory System).