A DATA DISPLAY SYSTEM

Abstract: A display system which is used as the input-output terminal of a data processing system which may be used for concurrent processing of application. Each application may have a viewport on the display screen and viewports may overlap. In order to write to low priority viewports without disturbing data displayed in those of a higher priority a mask buffer is used to prevent overwritting of high priority viewports.

Description: A DATA DISPLAY SYSTEM This invention relates to a data display system and particularly to a display system which is used as an input-output terminal of a data processing system which may be used for concurrent processing of application programs. Viewporting is the generic name given to the technique of defining a particular screen area as the viewport on which an application writes and displays data - graphic or alphanumeric. When a user is using a display terminal to interact with more than one application program then different areas of the screen will be allocated to different applications this is multiple view porting. This concept is explained in Fundamentals of Interactive Computer Graphics by Foley and Van Dam published by Addison Wesley 1982. A further development has been the so-called 'messy desk' concept in which multiple viewports overlap and the user regards the view which overlays the others as that which highest priority and the one which is currently being used. Viewporting designs for current raster displays use the concept that only the viewport which is of highest priority, i.e. on top of, or overlaying, all others can be modified at any one time. This, in effect, corresponds to a single application situation and requires the complete re-drawing of a viewport whenever it is given highest priority after it has previously been overlaid. An example of such a technique is described in European Patent Application No. 083301868.2. This application describes a multi-viewport system in which the writing of application data into overlapping viewports is controlled by a screen manager. The screen manager maintains a series of priority flags for each pixel (bit in the screen buffer) relating to the layers of the viewports, and a viewport order list. Only the current, or higher priority viewport is written into by an application. There is no provision for having more than one application writing into a lower priority viewport overlapped by the current viewport other than serially, i.e. writing to one viewport is completed before processing the next one. The main advantage of the present invention is that lower priority viewports may be written into requiring only a single pass over the data held in a data buffer, and it is able to handle the most complex of overlaid viewports. According to the invention there is provided a data display system in which a display screen may simultaneously display data relating to different applications in overlapping view ports having different priority levels characterised in that the system includes a pixel buffer (screen buffer) in which the picture data for all view ports is stored, a mask buffer having a plurality of bit positions equal to the total display screen pixels each one associated with a corresponding display screen pixel, means to set the contents of the mask buffer when an application sends data to an associated view port in accordance with the viewport areas having a high priority and logic means that uses the contents of the mask buffer to determine whether a pixel should be written during vector or character drawing. In order that the invention may be fully understood preferred embodiments thereof will now be described with reference to the accompanying drawings in which: FIG. 1 is a block schematic of a data processing configuration including a data display system incorporating the invention. FIGS. 2-4 illustrate multiple viewports on a display. FIG. 5 is a block screen schematic of a data display system. FIG. 6 illustrates the content of the mask buffer before drawing data to a view port. Until recently, a user has only been able to use a terminal for a single, interactive session at any one time. This session might be conducted with a host application, or with an application running in a stand-alone workstation. The range of applications available is very broad and includes word-processing, data base operations, communications and graphics design. These applications might be commercially written, or coded by the user. The growing complexity of users, applications and workstations, has brought about the requirement to interact with one or more applications at one time. Thus, while writing a letter, with a word-processing system, a user may wish to obtain information from a data base or perform some financial calculation with a spread-sheet application, and include this information in the letter. To handle these concurrent, multiple applications, the concept of the "messy-desk" has evolved. This concept allows a user to allocate a subarea, or viewport, of the workstation screen, to each of the concurrently running applications. In general, each application generates output to a conceptual presentation space, which is considered to be mapped onto the entire workstation screen. Each viewport provides a window onto the corresponding presentation space. The contents of the presentation space, contained within this window, are displayed on the screen viewport. While the viewport remains in a fixed position on the screen, the window may be moved, or scrolled, over the presentation space, under user control, thus allowing the whole of the presentation space to be accessed and viewed. For maximum flexibility in screen layout, the user may change the size of a viewport and its position on the screen. While the user is directly interacting with a particular application, one or more of the other applications may be corr,puting the results of a previous user request. Thus, for example, a communications application may be providing a continuous report on the movement of stocks and shares, or monitoring the status of a major power station; a data base application might be searching and reporting occurrences of a subject in a world wide collection of information systems. This multi-application system allows the user to retrieve information when it is needed, rather than when the current application has terminated. In the full "messy desk" concept, these viewports may overlap on the screen, just as several documents might overlap on someone's desk. They would be arranged, by the user, so that the portions of interest are visible, even if other viewports partially obscure them. Thus, while a user is interacting with one viewport, information, from other viewports, is immediately available for reference. However, unlike a document on a desk the content of these other viewports may be dynamically changing, depending on the corresponding applications. In the "messy desk" concept, the active viewport, with which the user is currently interacting, overlays the other viewports. The user can chose to interact with one of the other viewports, when it will "pop" to the top so that it overlays the others. The purpose of this invention is to provide a technique whereby an application, associated with an overlaid viewport, may dynamically update its entire presentation space, have this new data immediately displayed on the visible, non-overlayed, portion of the viewport, and yet not interfere with the overlaying viewports. FIG. 1 shows in schematic form a data processing system in which a host data processor 10 which can be a multi-processor such as an IBhi 3033 will process data relating to many application programs concurrently. The processor can support many display systems such as that through a link 12. The display system comprises a display terminal 14, a keyboard 16, a light pen 18 or interactive device such as a mouse or a tablet. The display system may be communicating with the host processor with data relating to up to four application programs at a time. A fifth application program may be running on a locally attached processor 20, such as an IBM Personal Computer. In the configuration shown in Figure 1 data-streaming may take place to one or more viewports other than the viewport with which the operator is currently interacting. In general, these lower priority viewports may be overlaid by the active viewport and possibly by one or more other viewports. When only a single viewport is in use, or when the viewport receiving alphanumeric or graphic data overlays all other viewports, for example viewport B in Figure 2 then output may be drawn directly, using normal clipping procedures within the viewport boundary. However, when output is to be drawn in viewport A, which is partially overlaid by viewport B, then the normal rectangular clipping algorithms become more complex. A simple scheme would be to sub-divide viewport A into two rectangles Al and A2 as shown in Figure 3. The alphanumeric and graphic data would be written twice, first clipping to the boundary of area Al and then a second time, clipping to the boundary of area A2. This involves two passes over the data which can be time consuming. In a more complex situation for example viewport D in Figure 4, the viewport would need to be split into five rectangular areas for the purposes of clipping requiring five passes over the data. In addition there is the complexity of determining the clipping boundaries in the optimum way for a general set of overlapping viewports. A preferred embodiment of the invention will now be described with reference to Fig. 5. Fig. 5 shows schematically the component parts of the display unit including a drawing order store 50 which receives data from up to four applications from the host processor 10 and one from the local processor 20 on lines 51. Graphic and alphanumeric data is received in the form of orders which may include a vector list. A formatter 52 transforms the order list to a form suitable for a raster scan and passes the rastered data to a bit plane logic device 54. A pixel buffer 56 includes bit positions one associated with each pixel on the display screen and is read out for each refresh cycle of the display unit. A mask buffer 58 is connected to the bit plane logic device 54 and together control the writing of raster formatted information into the pixel buffer. The display unit components are controlled by a control unit 60 which contains a microprocessor and its associated ROM and RAM stores with the microcode for controlling the operation of the unit. The actual picture data for all viewports is stored in the pixel buffer 56. Typically this buffer is made up of one or more bit planes. The mask buffer 58 comprises a single bit corresponding to each pixel of the main pixel buffer 56. Typically the mask buffer comprises an additional bit plane to those used for the pixel buffer. The logic of the bit plane logic 54 uses the content of the mask buffer 58 to determine whether a pixel should be written in the pixel buffer during character or vector drawing. The control unit 60 enables or disables the mask buffer so that when the mask buffer is disabled all pixels, including the mask buffer bit of the pixel may be written regardless of the current mask content. However, when in the enable mode a mask bit having a '1' value inhibits the writing into the associated pixel in the pixel buffer planes. Pixel data is written to the bit planes of the pixel and mask buffers under the control of the control unit 60. The bit plane logic device 54 includes a bit plane enable register which selects the bit planes that are to be updated. If a bit of the register is set, then the corresponding bit plane may be written. A bit for the mask buffer is included in the register. A single control bit enables the use of the mask buffer as an overall control of whether a particular pixel is actually updated. When enabled, data from the mask buffer is read by the update logic and used to determine whether the corresponding pixel is to be updated. The operation under the control of the control unit 60 of the embodiment is as follows. The area of the mask buffer corresponding to the viewport to be written is reset to zero. This allows pixel drawing anywhere within the viewport. This reset operation is implemented using normal 'area fill' methods simplified for speed by taking account of the rectangular viewport shape. Then for each higher priority viewport in sequence: 1. Set the Bit Plane Write Enable register so that writing only takes place to the mask buffer plane. 2. Turn on (set) each bit in the mask buffer corresponding to a pixel within the higher priority viewport. Again, a simplified, 'area fill' method may be used. Then the control unit enables the use of the mask buffer to control the writing of pixel data. The Bit Plane Write Enable register is set to allow writing to the pixel buffer, but not the mask buffer. The data is then written into the low priority viewport, but only into these pixels whose corresponding mask bit is zero. The operation is concluded by the disabling of the mask buffer to allow normal writing operations to the higher priority viewport. FIG. 6 illustrates the content of the mask buffer just before the start of writing data to viewport D of FIG. 4. It shows how the overlaid areas of viewport D are indicated by the mask of 'l's in the mask buffer and consequently inhibit the further moditications of pixels in these areas. Each '1' in the mask buffer inhibits pixel modification while viewport D data is being written. Normal clipping operation for the whole of viewport D will prevent pixels outside of the viewport being modified. The hardware implementation of the invention described above may be simulated in software. This second embodiment is applicable for display systems where the additional bit plane is not available, or where existing hardware cannot be modified to allow one of the existing bit planes to be used for the "mask" buffer. The algorithm used is similar to that described above for the hardware solution, except that no hardware assist is used. It is entirely a software solution. In this case, it is assumed that the system processor, or possible a second slave processor, is used to draw the vectors in a set of bit planes. A pseudo "mask" buffer is built-up in normal processor storage. It is used during drawing operations to determine whether a particular pixel is to be drawn in the bit planes as described for the hardware implementation. If a second processor is used to draw the actual vectors, storage within its own address space might be used to contain the "mask" buffer.

Claims: CLAIv 1. A data display system in which a display screen may simultaneously display data relating to different applications in overlapping viewports having different priority levels characterised in that the system includes a pixel buffer in which the picture data to be displayed on the screen is stored, a mask buffer having a plurality of bit positions equal to the total display screen pixels each one associated with a corresponding display screen pixel, means to set the contents of the mask buffer when an application sends data to an associated viewport in accordance with the viewport areas having a high priority and logic means that uses the contents of the mask buffer to determine whether a pixel in the pixel buffer should be written during vector or character drawing. 2. A data display system as claimed in claim 1 in which the pixel buffer comprises a plurality of bit planes, each plane having a number of bits equal to the number of pixels on the display screen and the mask buffer is a bit plane of an equal number of bits to the pixel bit planes. 3. A data display system as claimed in claim 1 or claim 2 in which the operation of the system is under the control of a control unit comprising a microprocessor and associated read only store and random access stores. 4. A data display system as claimed in any one of ciaims 1, 2 or 3 in which the operation of the mask buffer is simulated in a data processor. 5. A data display system in which a display screen may simultaneously display data relating to different applications in overlapping viewports having different priority levels including, a drawing order store for receiving commands relating to information to be displayed on a display screen from a plurality of application program sources, a formatter to convert drawing order information from a vector to a raster scan ofrm, a pixel buffer for storing raster scan information to be displayed on the display screen during each refresh cycle. a mask buffer having a bit position for each pixel of the display screen means to net the contents of the mask buffer when an application sends data to an associated viewport in accordance with the viewport areas having a high priority and logic means that uses the contents of the mask buffer to determine whether a pixel in the pixel buffer should be written during vector or character drawing.

Inventors: EASTON, COLIN J., IMPEY, ALAN A., POWELL, COLIN V., SIMMONS, JOHN
Applicants: INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1983
Main classification: G09G1
IPC codes: G09G5, G06F3