Classic Computer Magazine Archive CREATIVE COMPUTING VOL. 10, NO. 2 / FEBRUARY 1984 / PAGE 74

Product preview: Microsoft Windows; 23 computer manufacturers to support new operating software system.

Microsoft Windows is an extenison to the Microsoft MS-DOS operating system that provides a universal operating environment for the new generation of bit-mapped application programs. Microsoft Windows will allow independent software vendors to develop sophisticated graphically-based integrated software packages that run without modification on any 16-bit microcomputer.

In addition to announcing the product, Microsoft announced that 23 personal computer manufacturers will offer Microsoft Windows with their systems, opening up a large market for software vendors who choose to develop programs based on the Microsoft Windowse concept. These manufacturers include: Altos, Apple/Rana, Burroughs, Bytec/Hyperion, Columbia Data Products, Compaq Computer Corporation, Computer Devices, Convergent, Data General, Digital, Eagle Computer, Hewlett-Packard, Honeywell, ITT XTRA, Mindset, NCR Corporation, Polo Micro-systems, Radio Shack, Seequa Comput er Corporation, TeleVideo, Texas Instruments, Wang Laboratories, and Zenith Data Systems.

In addition, Microsoft Windows features a window management capability that allows a user to view unrelated application programs simultaneously. Further, It provides the capability to transfer data from one application program to another. Microsoft Windows provides these advanced user interface capabilities for owners and purchasers of mid-priced 16-bit computers. Portable Operating Environment

New application programs are using enhanced bit-mapped graphics and a mouse to improve the user interface of personal computers. When MS-DOS was originally developed in 1980, no allowances were made in the operating system to manage the interaction of these components of a computer system. To successfully use these hardware enhancements, application program developers have been writing programs that directly address hardware, a complex, time-consuming task. This technique has significantly limited the number of computers that an application program could run on without extensive modifications. Microsoft Windows will eliminate the necessity to write application software that directly addresses hardware by extending the functions of the MS-DOS operating system to include the management of bit-mapped screen graphics and mouse hardware. Consequently , a program that is written for Microsoft Windows will work on any system with the Microsoft Windows operating software.

"Microsoft Windows is the first truly hardware independent operating environment for application programs," said William H. Gates, chairman of the board of Microsoft.

"Finally, microcomputer users will be able to take their software and plug it into any system, without worrying about compatibility."

This portability is designed to appeal to the software developers, who are expected to develop Microsoft Windows-compatible programs because they will not have to adapt software programs to each different microcomputer. Gates added, "Because of this universal appeal, we expect Microsoft Windows to become the dominant operating environment for integrated software packages that run on 16-bit microcomputers." Simplified Computer To Human Interface

Microsoft Windows optimizes the bit-mapped graphcis and mouse capabilities of a personal computer to provide an intuitive pictures-oriented user interface. This user interface can be customized by a software or hardware manufacturer to give each product its own unique look without sacrificing compatibility.

Application programs that are activated by Microsoft Windows will appear as one or more windows on the display. Any number of application programs can be displayed on a screen and the user can alt ernate between unrelated application programs without restarting the system.

Microsoft Windows does not overlap the different application windows. Instead, application programs are automatically positioned to fill the entire screen. Microsoft calls this feature "tiling" and believes that it leads to more effective use of the display screen. Another feature of Microsoft Windows is "zooming," which allows th euser to display and application program at the full size of the screen.

Microsoft Windows will be sold like MS-DOS, adding little or no cost to a system. The hardware requirements for Microsoft Windows are: 192K Bytes of random access memory , a mouse, two floppy disk drives and a bit-mapped display. Running Existing MS-DOS Programs

Microsoft Windows will run all existing MS-DOS 2.0-based application programs although these programs will not be able to take advantage of the windows user interface or data exchange capabilities of the operating software. The operating software can recognize that the program is not a Microsoft Windows-based application and, after saving the state of the window's environment, will release control of the screen and hardware to the application program being started. Once the user has completed working with the nonwindows program, Microsoft Windows will restore its environment and resume operation. How It Works

There are two parts to Microsoft Windows, the window manager and the graphics device interface (GDI). The window manager draws the window for each client and manages the screen as a whole, using a techniqe called automatic window layout. The window manager is event-driven; it passes hardware-level events to its clients, and the clients supply procedures to be invoked in response.

The window manager also provides a library to user interface functions. The facilities included in this library are menus, property sheets, scroll bars, universal window commands, error handling, data interchange, and automatic window layout. To display its graphics-based interface features on a screen, the iwndow manager calls the graphics device interface. The GDI can also be called directly from a Microsoft Windows client to generate graphics. Virtual Interface To Graphics Devices

The GDI is a device-independent interface between a program and various output devices. The output devices may be vector or raster devices. The program may be an operating system extension, such as Microsoft Windows, or an application program, such as a spreadsheet or word processor. What the programs have in common is the need to draw images on devices and to be device-independent.

The GDI is designed around an "abstract device," which is the collection of all t he functions that ultimately will be performed by the actual graphics devices. (For example, "draw a circle" or "change hatch style" would be functions for devices to perform.) When a function is called, the GDI takes the function parameters, in abstract-device terms, and passes them to a logical device driver. A logical device driver is the software that translates abstract device functions into a sequence of device-specific actions. These actions, communicated through a physical device driver, result in the appearance of graphics on the device. The only device-specific code is the physical device driver.

The language of t he abstract device is made up of "primitives." The primitives are the calls to the graphics functions available at the lowest level of the GDI--the level of the logical device driver. The primitives may be expressed in any of the five high-level languages for which the GDI has language bindings (C, Basic Compiler, Fortran, Pascal, and Cobol). In the Microsoft GDI, there are over 90 primitives in four functional groups: control primitives, output primitives, attribute primitives, and inquiry primitives.

Microsoft Windows "calls itself" in that it uses the GDI to perform much of the display functionality it provides to clients. It si also quite legitimate for clients to call the GDI directly, especially to implement graphics for applications, such as business charting programs or mouse-based "drawing" programs. Because the graphics overhead is shared by all programs in the Microsoft Windows environment (including Microsoft Windows itself), the content and efficiency of individual application programs are enhanced. The Microsoft GDI meets the emerging ANSI-VDI standard for graphics interfaces. Exchange Capabilities

Microsoft Windows' clents run independently of each other, but can exchange data even if their data structures are different. From the user iterface point of view, data exchange means taking data from one window and inserting it into another window that is running a different application program. From the programming point of view, it means finding a common data type and interchange protocol between programs.

"Most of the application packages that are now describe as 'integrated' can talk only to themselves," says Leo Nikora, marketing manager for Microsoft Windows. "The programs have the same data structure, and their exchange protocol is unique to that package. They can't exchange data with programs outside the package."

Microsoft Windows integrates independent application programs by putting the data exchange capability in the envirnment, rather than in the programs themselves.

In its user interface library, Microsoft Windows provides an extensive set of predefined data tpes. These are "uninterpreted binary," ASCII "text," and Microsoft's "SYLK."

Microsoft Windows supports two data interchange protocols. One is based on polling, in which one window periodically queries the contents of anot her. If polling is too expensive, a notification technique is also available by which clients express an interest in changes in other windows, and Microsoft Windows Notifies them when a change has taken place.

Application programs can be designed specifically to cooperate with each other when exchanging data under Microsoft Windows. The programmer can easily extend the set of data types to include types that add to the efficiency or effectiveness of the exchange. But the basic mechanism for data transfer is part of the Microsoft Windows environment. Without this mechanism, independent application programs would either be restricted to certain data types, or unable to communicate.

For more information, contact Microsoft Corp., 10700 northup Way, Bellevue, WA 98004. (206) 828-8080.