EP0147542A2 - A multiple window display system - Google Patents

A multiple window display system Download PDF

Info

Publication number
EP0147542A2
EP0147542A2 EP84111872A EP84111872A EP0147542A2 EP 0147542 A2 EP0147542 A2 EP 0147542A2 EP 84111872 A EP84111872 A EP 84111872A EP 84111872 A EP84111872 A EP 84111872A EP 0147542 A2 EP0147542 A2 EP 0147542A2
Authority
EP
European Patent Office
Prior art keywords
screen
display
buffer
data
buffers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
EP84111872A
Other languages
German (de)
French (fr)
Other versions
EP0147542A3 (en
EP0147542B1 (en
Inventor
Harry Cheselka
Jeffrey Stuart Lucash
William Doosevelt Vincent
Joy Lynn Mann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US06/542,572 external-priority patent/US4653020A/en
Priority claimed from US06/542,376 external-priority patent/US4651146A/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of EP0147542A2 publication Critical patent/EP0147542A2/en
Publication of EP0147542A3 publication Critical patent/EP0147542A3/en
Application granted granted Critical
Publication of EP0147542B1 publication Critical patent/EP0147542B1/en
Expired legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/222Control of the character-code memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports

Definitions

  • the present invention is generally related to a multiple window display system and more particularly to hardware and software implementations that display multiple data windows on cathode ray tube (CRT), gas panel, liquid crystal displays (LCD) and other like displays commonly used in computer and data processing systems.
  • CTR cathode ray tube
  • LCD liquid crystal displays
  • the invention has its primary application in multi-tasking computer environments wherein each window displays data from a different one of the tasks.
  • FIG. 1 shows a typical implementation.
  • a CRT controller 10 is used to generate memory addresses for a display refresh buffer 12.
  • a selector 14, interposed between the controller 10 and the buffer 12, is used to provide an alternate source of addressing so that the contents of the refresh buffer can be modified.
  • the selector 14 may pass the refresh address from the controller 10 or an address on the system address bus to the display refresh buffer 12.
  • TDM time division multiplexing
  • the display refresh buffer usually contains storage for a character code point and associated attributes. The character code point is used to address the character pel generator 16.
  • Outputs from the character generator 16 are produced in synchronism with the scan line count output from the CRT controller 10. Attribute functions such as reverse video, blink, underscore, and the like are applied to the character generator outputs by the attribute logic 18, and the resultant pels are serialised to the video monitor.
  • a number of operating system (OS) programs and application programs allow a computer to carry on multiple tasks simultaneously.
  • a background data processing task might be carried on with a foreground word processing task.
  • Related to the background data processing task might be a graphics generation task for producing pie or bar charts from the data generated in the data processing task.
  • the data in all these tasks might be merged to produce a single document.
  • the multi-tasking operating may be performed by a single computer such as one of the more popular micro computers now on the market, or it may be performed by a micro computer connected to a host computer. In the latter case, the host computer generally carries out the background data processing functions, while the micro computer carries out the foreground operations.
  • the system shown in Figure 1 can also be used to display windows from multiple tasks. Each task is independent of the others and occupies non-overlapping space in the system memory. User-definable windows for the tasks resident in system memory can be constructed so as to display, within the limits imposed by the screen size, data from each of the tasks being processed.
  • Figures 2A and 2B illustrate this concept. From the user perspective, windows can be displayed as either non-overlapping, as shown in Figure 2A, or layered or overlapping, as shown in Figure 2B. It will be understood by those skilled in the art, however, that an overlapping display of the type shown in Figure 2B does not imply lost data in the system memory. On the contrary, it is necessary to preserve the data for each task so that as an occulting window is moved about the display screen or even removed from the display screen, the underlying display data can be viewed by updating the refresh buffer.
  • a multiple window display system including a repeatedly scanned display device, a screen buffer having display data element locations mapped directly onto the display areas of the display device and accessing means traversing the display data element locations in synchronism with the traverse of the display areas of the display device and a facility for compiling, from, potentially, a plurality of windows generated independently by individual respective users, an aggregate of data elements to be displayed, characterised in that the compiling facility is controlled by a picture matrix having compile control locations mapped directly onto the display areas of the display device and is directly responsive to the contents of the control locations to automatically filter the available data elements from the various windows, display area by display area.
  • task selection means couples the output of a single one of the buffers to video output at any given time.
  • the data displayed originates from a selected buffer appropriate to the over-all composition producing a screen picture compiled from more than one of the screen buffers.
  • the task selection means may be a separate task selection buffer and decoder, in which case the task selection buffer is synchronously addressed with the screen buffers and the decoder enables the read out of a single one of the screen buffers for any point on the display screen.
  • one of the screen buffers may be designated to perform the operation of the task selection buffer.
  • the display data in the designated screen buffer is non-transparent in the sense that it cannot, at a location corresponding to a given screen location, also be used for display data for that screen location, since that buffer location is loaded with unique selection code used to indicate one of the other buffers from which the data for that location is to be taken.
  • unique selection code used to indicate one of the other buffers from which the data for that location is to be taken.
  • the absence of one of these selection codes at the accessed non-transparent buffer location allows the data at that location to be displayed, as a default condition, at the corresponding screen location. In this way, it will be apparent how the display is compiled from data, in part, from the non-transparent buffer and, in part, from the other screen buffers.
  • the system memory provides presentation spaces for receiving application data for plural windows of the displayable area. Each window defines the whole or a subset of a corresponding presentation space.
  • a window priority matrix mapped to the display screen filters the data from the windows of the presentation spaces to the screen buffer to designate which of the data will be shown in corresponding positions of the display screen.
  • display data filtering can be performed both on loading a screen buffer and also on selective read out of the screen buffers where more than one such is provided
  • CRT displays are but one of many types of display, including gas panels and liquid crystal displays, to which the present invention may be applied. Therefore, those skilled in the art will understand that the mention of CRT displays is by way of example only. It follows therefore that the term refresh buffer, while having a particular meaning as applied to CRT displays, is fully equivalent to either a hardware or software screen buffer for storing data to be displayed.
  • the current refresh address from the CRT controller 10 is supplied to one of the operand inputs of adders 20 1 to 20 n .
  • the other operand input of each of these adders is supplied by corresponding offset registers 22 1 to 22 n .
  • An effective refresh address for any one of the refresh buffers is generated by adding the current address provided by the CRT controller 10 with a value previously stored in the associated offset address register 22 1 to 22 n . Because a common refresh address is used in the example shown in Figure 4, the width of the formatted data must be the same for all the refresh buffers.
  • a task selection memory 24 having a location for each screen display area so that the contents of the task selection memory can be referred to as a screen matrix, is also accessed in parallel, via its selector 26, using the CRT controller produced address, to enable the output of a single selected refresh buffer.
  • decoder 28 which responds to the contents, which are essentially codes, read out of the locations as they are scanned in synchronism with the screen buffers, and, of course, the display itself, to generate enable outputs 1 to n.
  • These enable outputs are provided to the corresponding refresh buffers 12 1 to 12 n so that at any given time only one of the refresh buffers is enabled to supply an output to the character generator 16 and attribute logic 18.
  • a simplified variation of the system shown in Figure 4 can be implemented as is shown in Figure 6.
  • the task selection memory 24 is eliminated by designating one of the refresh buffers to be non-transparent and effectively take the place of the task selection memory.
  • refresh buffer 12 1 is so designated.
  • the decoder 28 is retained and a gate 30 is added.
  • Unique filter codes, loaded into the non-transparent refresh buffer can then be used as the selection mechanism for the remaining transparent refresh buffers 12 2 to 12 .
  • the absence of of one of these selection 2 n buffer code points at the currently accessed location in buffer 12 1 , as detected by the decoder 28, causes the gate 30 to pass the data stored in that location, if any, to the character generator 16. This modification trades off a reduction in hardware against the performance loss caused by having one of the buffers non-transparent.
  • this implementation employs screen control blocks 32, window control blocks 34, presentation space control blocks 36, presentation spaces 38, and a screen matrix 40.
  • screen control blocks 32 There may be, for example, ten screen control blocks and ten sets of window control blocks, one each for each screen layout.
  • a given screen control block 32 points to a corresponding set of window control blocks 34.
  • Each presentation space 38 has at least one window per screen layout. The presentation spaces, but not the windows, are common to all screens.
  • the window control block 34 corresponding to a given presentation space 38 in that screen layout, defines the origin (upper left hand corner) of the window in the presentation space, the width and height of that window in the presentation space and the origin of the window on the display screen.
  • the screen matrix 40 is a map of the data to be displayed and, in one embodiment, maps, on a one-to-one basis by character, that which is to be displayed on the CRT screen, but the mapping could be on a pel or any other basis. All display output from the several tasks is directed to memory and, specifically, to the presentation spaces 38 rather than to the hardware refresh buffer.
  • a micro computer such as the IBM (R.T.M.) Personal Computer (PC)
  • a host computer such as an IBM 3270 computer via a controller such as an IBM 3274 controller.
  • the PC hardware buffer 12 2 acts as the PC presentation space.
  • Each presentation space is assigned an identification tag and has an associated window defined by the operator or an application program as to size and screen location.
  • the system builds an image in the screen matrix 40 consisting of the identifying tag aligned in the appropriate locations.
  • the matrix 40 may be created in a reverse order from that appearing on the CRT screen allowing overlapping windows to be built up by overwriting.
  • the matrix 40 can be created by beginning with the uppermost window and so on, down through the overlay.
  • the choice of the method of creating the matrix 40 is based on desired system performance.
  • the system directs display output to the refresh buffer by filtering all screen updates through the screen matrix 40, allowing a performance increment in an overlapped window system by only allowing those characters that actually need to be changed or displayed on the screen to reach the refresh buffer.
  • those characters that are not currently required,do not reach the refresh buffer will not cause an unnecessary redraw.
  • the absence of these unnecessary redraws removes the requirement for continual updates of all windows whenever the contents of one is altered.
  • the IBM 3274 controller, a supervisor application or the PC writes character code into presentation space 38 at locations designated by that presentation space's cursor value control block. No other updates are required. the new character will be displayed or not according to whether it falls within the window designated by the corresponding window control block 34 and the portion of that window designated for display by the screen matrix 40.
  • a window control block is established for the PC the same as any other window control block 34 including width, height, presentation space origin, and screen origin.
  • the screen matrix 40 is updated, and data from the window in the PC buffer defined by the window control block 34 will, to the extent allowed by the screen matrix 40, appear on the CRT screen.
  • Data within a window may be scrolled by decrementing or incrementing the X or Y value of the window origin. No other control updates are needed. Only the corresponding window in the screen buffer is rewritten or, if a PC window, the offset register is changed. A window can be relocated on the screen by changing the origin coordinates in the window control block 34 for that window.
  • the screen matrix 40 is updated, and the entire non-PC screen buffer is rewritten with data for non-PC tasks and codes (hexadecimal FF) for the PC.
  • the window control block 34 for that presentation space 38 is first updated by altering the width and/or height.
  • the screen matrix 40 is updated by over-writing window designator codes of the matrix, starting with the lowest priority window control block. Then, all windows to non-PC refresh buffer 12 are rewritten with data from the presentation space for the non-PC windows and the hexadecimal code FF for the PC window.
  • Figure 8 illustrates the general shape of the process for window updating.
  • the presentation space (PS) row is set to the first PS row needing update;
  • the screen row is set to the row on the display screen of the PS row;
  • the PS column is set to the first PS column needing update;
  • the screen column is set to the column on the screen of the PS column;
  • the number of rows is set to the number of PS rows to be updated;
  • the number of columns is set to the number of PS columns to be updated.
  • the procedure which follows is done for the number of rows to be updated.
  • the matrix 40 is checked to determine if the screen row and column is within the window to be updated. This is indicated by the decision block 44.
  • Figure 9 illustrates the general shape of the process for building the screen matrix 40.
  • the window is set to the bottom window as indicated in block 54.
  • the procedure indicated within block 58 is followed, and this procedure includes the procedure indicated within block 60 for the number of window columns.
  • the matrix row and column is set to the window identification as indicated in block 62.
  • the column is incremented as indicated by block 64.
  • the column is set to the first window column on the screen as indicated by block 66.
  • the row is incremented as indicated by block 68.
  • the window is incremented to the next window as indicated by block 70.
  • the function which draws the multiple window display is driven by any one of the following:
  • Application programs may cause the draw function to occur for cases 3 and 4 above by using the following functional calls:

Abstract

A multiple window display system is provided for displaying data from different applications in a multi-tasking environment. The display system includes plural screen buffers (12, to 12n) for storing character codes and attribute codes of data which may be displayed on the display screen. Task selection means (26) selectively couples the output of a single selected one of the plural screen buffers to the character generator (16) and attribute logic (18) at any given time. Address modification means (20, to 20n, 22, to 22n) permits changes to be made in the display windows. The software driver includes screen control blocks (32), window control blocks (34), presentation space control blocks (36), presentation spaces (38), and a screen matrix (40) in system memory. The presentation spaces (38) receive application data for plural windows of the displayable area. Each window defines the whole or a subset of a corresponding presentation space. The screen matrix (40) is mapped to the display screen and filters data from the windows of the presentation spaces to the screen buffer to designate which of the data will be shown in corresponding positions on the display screen.

Description

  • The present invention is generally related to a multiple window display system and more particularly to hardware and software implementations that display multiple data windows on cathode ray tube (CRT), gas panel, liquid crystal displays (LCD) and other like displays commonly used in computer and data processing systems. The invention has its primary application in multi-tasking computer environments wherein each window displays data from a different one of the tasks.
  • Generation of video data for a raster scanned CRT is well understood. Figure 1 shows a typical implementation. A CRT controller 10 is used to generate memory addresses for a display refresh buffer 12. A selector 14, interposed between the controller 10 and the buffer 12, is used to provide an alternate source of addressing so that the contents of the refresh buffer can be modified. Thus, the selector 14 may pass the refresh address from the controller 10 or an address on the system address bus to the display refresh buffer 12. By time division multiplexing (TDM) the refresh buffer bandwidth, interference between refresh and system accesses can be eliminated. For an alphanumeric character display, the display refresh buffer usually contains storage for a character code point and associated attributes. The character code point is used to address the character pel generator 16. Outputs from the character generator 16 are produced in synchronism with the scan line count output from the CRT controller 10. Attribute functions such as reverse video, blink, underscore, and the like are applied to the character generator outputs by the attribute logic 18, and the resultant pels are serialised to the video monitor.
  • A number of operating system (OS) programs and application programs allow a computer to carry on multiple tasks simultaneously. For example, a background data processing task might be carried on with a foreground word processing task. Related to the background data processing task might be a graphics generation task for producing pie or bar charts from the data generated in the data processing task. The data in all these tasks might be merged to produce a single document. The multi-tasking operating may be performed by a single computer such as one of the more popular micro computers now on the market, or it may be performed by a micro computer connected to a host computer. In the latter case, the host computer generally carries out the background data processing functions, while the micro computer carries out the foreground operations. By creating a composite display refresh buffer, the system shown in Figure 1 can also be used to display windows from multiple tasks. Each task is independent of the others and occupies non-overlapping space in the system memory. User-definable windows for the tasks resident in system memory can be constructed so as to display, within the limits imposed by the screen size, data from each of the tasks being processed. Figures 2A and 2B illustrate this concept. From the user perspective, windows can be displayed as either non-overlapping, as shown in Figure 2A, or layered or overlapping, as shown in Figure 2B. It will be understood by those skilled in the art, however, that an overlapping display of the type shown in Figure 2B does not imply lost data in the system memory. On the contrary, it is necessary to preserve the data for each task so that as an occulting window is moved about the display screen or even removed from the display screen, the underlying display data can be viewed by updating the refresh buffer.
  • While the implementation shown in Figure 1 is adequate for a class of use, it can become performance limited as the number of display windows and tasks is increased or as the display screen size is increased. As the time required to update the display refresh buffer significantly increases, system response time increases and therefore throughput decreases. Slower system response times can result from the following factors:
    • 1. The display refresh buffer must be updated each time a task updates a location within system memory being windowed to the display screen. Control software, usually the OS, must monitor and detect the occurrence of this condition;
    • 2. Scrolling data within one or more of the display windows requires the corresponding locations in the display refresh buffer to be updated. This may be better appreciated with reference to Figure 3 which shows the case of non-overlapping windows as in Figure 2A. Scrolling is accomplished by moving the viewable window within the system memory. A corresponding technique is used when scrolling data in overlapping windows as in Figure 2B; and
    • 3. Whenever window sizes or positions are changed, the display refresh buffer must be updated with the appropriate locations for the system memory.
  • It is therefore an object of the present invention to provide a multiple data window display on a computer display that does not adversely effect the system response times as the number of data windows is increased or, in other words, to provide a multiple data window display that is especially effective for use in multi-tasking environments.
  • The foregoing can be attained by providing a multiple window display system including a repeatedly scanned display device, a screen buffer having display data element locations mapped directly onto the display areas of the display device and accessing means traversing the display data element locations in synchronism with the traverse of the display areas of the display device and a facility for compiling, from, potentially, a plurality of windows generated independently by individual respective users, an aggregate of data elements to be displayed, characterised in that the compiling facility is controlled by a picture matrix having compile control locations mapped directly onto the display areas of the display device and is directly responsive to the contents of the control locations to automatically filter the available data elements from the various windows, display area by display area.
  • The term "user" is adopted to span task, processor or operator since to the display there is no apparent difference between these.
  • The above can be achieved by both hardware and software arrangements. With respect to hardware implementation, plural screen buffers are simultaneously read out in a cyclic manner, and task selection means couples the output of a single one of the buffers to video output at any given time. For any given point on the screen, the data displayed originates from a selected buffer appropriate to the over-all composition producing a screen picture compiled from more than one of the screen buffers. The task selection means may be a separate task selection buffer and decoder, in which case the task selection buffer is synchronously addressed with the screen buffers and the decoder enables the read out of a single one of the screen buffers for any point on the display screen. Alternatively, one of the screen buffers may be designated to perform the operation of the task selection buffer. The display data in the designated screen buffer is non-transparent in the sense that it cannot, at a location corresponding to a given screen location, also be used for display data for that screen location, since that buffer location is loaded with unique selection code used to indicate one of the other buffers from which the data for that location is to be taken. The absence of one of these selection codes at the accessed non-transparent buffer location allows the data at that location to be displayed, as a default condition, at the corresponding screen location. In this way, it will be apparent how the display is compiled from data, in part, from the non-transparent buffer and, in part, from the other screen buffers.
  • Software implementation makes extensive use of system memory. The system memory provides presentation spaces for receiving application data for plural windows of the displayable area. Each window defines the whole or a subset of a corresponding presentation space. A window priority matrix mapped to the display screen filters the data from the windows of the presentation spaces to the screen buffer to designate which of the data will be shown in corresponding positions of the display screen. In a hybrid version, display data filtering can be performed both on loading a screen buffer and also on selective read out of the screen buffers where more than one such is provided
  • The present invention will be described further by way of example with reference to various embodiments of the invention as described hereinafter and illustrated in some of the accompanying drawing, others of which illustrate the prior art arrangements. In the drawings:-
    • Figure 1 is a block diagram of a prior art raster scanned CRT display generator;
    • Figure 2, in sections A and B, illustrates the relationship of system memory to multiple window displays for non-overlapping and overlapping windows, respectively, as produced by the prior art raster scanned CRT display generator of Figure 1;
    • Figure 3 illustrates the technique for producing scrolling of data in a non-overlapping window display;
    • Figure 4 is a block diagram of one hardware embodiment of a raster scanned CRT display generator according to the present invention;
    • Figure 5 illustrates the buffer maps and resultant display of a simple case of a two task display with the screen divided vertically;
    • Figure 6 is a block diagram of an alternative hardware embodiment of the raster scanned CRT display generator according to the invention;
    • Figure 7 is a functional block diagram of one form of software driver for the raster scanned CRT display generator according to this invention;
    • Figure 8 is a sketch of a flow chart illustrating the process of updating the windows of the presentation spaces indicated in Figure 7; and
    • Figure 9 is a sketch of a flow chart illustrating the process of building the screen matrix shown in Figure 7.
  • The arrangements described, whether prior art or according to the present invention, are for use with a CRT display. However, CRT displays are but one of many types of display, including gas panels and liquid crystal displays, to which the present invention may be applied. Therefore, those skilled in the art will understand that the mention of CRT displays is by way of example only. It follows therefore that the term refresh buffer, while having a particular meaning as applied to CRT displays, is fully equivalent to either a hardware or software screen buffer for storing data to be displayed.
  • The problems of slow system response time for multiple display windows in a multi-tasking environment are overcome by utilising the implementation shown in Figure 4 wherein the same reference numerals designate the same or similar circuits as in Figure 1. Each task is given a dedicated refresh buffer which can be directly addressed by the task. However, those skilled in the art will understand that this does not logically preclude including these addresses within a system memory map. Thus, there are provided screen refresh buffers 121 to 12n, one for each task and directly loadable thereby. Each refresh buffer has a corresponding selector 141 to 14 n but the refresh address from the CRT controller 10 is not supplied directly to these selectors as in the prior art arrangement illustrated in Fig. 1. Instead, the current refresh address from the CRT controller 10 is supplied to one of the operand inputs of adders 201 to 20n. The other operand input of each of these adders is supplied by corresponding offset registers 221 to 22n. An effective refresh address for any one of the refresh buffers is generated by adding the current address provided by the CRT controller 10 with a value previously stored in the associated offset address register 221 to 22n. Because a common refresh address is used in the example shown in Figure 4, the width of the formatted data must be the same for all the refresh buffers. Those skilled in the art will recognise that by separately addressing each of the refresh buffers and providing additional hardware to maintain synchronism in the read out of the buffers, it is possible to have different widths of formatted data in each of the refresh buffers. This added flexibility is achieved at the expense of greater complexity, and for purposes of providing a better understanding of the invention, only the simpler case is described.
  • For display refresh purposes, all the refresh buffers are accessed in parallel. A task selection memory 24, having a location for each screen display area so that the contents of the task selection memory can be referred to as a screen matrix, is also accessed in parallel, via its selector 26, using the CRT controller produced address, to enable the output of a single selected refresh buffer. This is accomplished by means of decoder 28 which responds to the contents, which are essentially codes, read out of the locations as they are scanned in synchronism with the screen buffers, and, of course, the display itself, to generate enable outputs 1 to n. These enable outputs are provided to the corresponding refresh buffers 121 to 12n so that at any given time only one of the refresh buffers is enabled to supply an output to the character generator 16 and attribute logic 18. This means that the effect of the task selection memory and its screen matrix contents is to filter the display requirements of the various tasks by filtering the outputs of the corresponding task related refresh buffers.The operation may be better appreciated with reference to Figure 5 which shows the maps of the refresh buffers and task selection memory for the simple case of the display of two tasks with the screen divided vertically on a 16 row CRT with 16 characters per row. An 8-bit adder is assumed for this example. Refresh buffer 1 has numeric character data, while refresh buffer 2 has alpha character data. The offset register for refresh buffer 1 is loaded with the hexadecimal address F8'x', and the offset register for refresh buffer 2 is loaded with the hexadecimal address 10'x'. The task selection memory is mapped to display the data from task 2 in the left half of the screen and the data from task 1 in the right half of the screen. This produces the resultant CRT display illustrated.
  • The main features of this scheme may be summarise as follows:
    • 1. Each task is totally independent of the others.
    • 2. Refresh buffer updates are independently controlled solely by the corresponding tasks, thereby eliminating the need for separate refresh buffer rewriting each time any task wishes to create a display change.
    • 3. Scrolling, on a task basis, is simply accomplished by updating the value in the corresponding address offset register.
    • 4. Multiple window display with multi-layering is achieved through the use of the selection memory without affecting refresh buffer contents.
    • 5. The system memory bus utilisation is reduced.
  • A simplified variation of the system shown in Figure 4 can be implemented as is shown in Figure 6. The task selection memory 24 is eliminated by designating one of the refresh buffers to be non-transparent and effectively take the place of the task selection memory. In the case shown in Fig. 6, refresh buffer 121 is so designated. The decoder 28 is retained and a gate 30 is added. Unique filter codes, loaded into the non-transparent refresh buffer, can then be used as the selection mechanism for the remaining transparent refresh buffers 122 to 12 . The absence of of one of these selection 2 n buffer code points at the currently accessed location in buffer 121, as detected by the decoder 28, causes the gate 30 to pass the data stored in that location, if any, to the character generator 16. This modification trades off a reduction in hardware against the performance loss caused by having one of the buffers non-transparent.
  • In the implementation illustrated in Figure 7, only two discrete hardware buffers 121 and 122 are used, though extensive use of defined areas of homogeneous system memory is made and the filtering function, still determined by a screen matrix (referenced 40 and maintained in memory) is split between selection of what is loaded into one of the buffers, relatively speaking a "one-time-function" and which of the two buffers is to provide the current output to the screen, as in the previous embodiments. The effect is the same. Though more work is done in manipulating memory, this is offset by the reduction in the frequency at which it is performed.
  • In the specific case illustrated, a micro computer connected to a host computer is assumed with buffer 122 being the micro computer buffer, but it will be understood by those skilled in the art that the pre-buffer filtering under the control of the screen matrix can be applied also to a single computer with a single buffer, provided there is sufficient system memory available. As shown, this implementation employs screen control blocks 32, window control blocks 34, presentation space control blocks 36, presentation spaces 38, and a screen matrix 40. There may be, for example, ten screen control blocks and ten sets of window control blocks, one each for each screen layout. A given screen control block 32 points to a corresponding set of window control blocks 34. Each presentation space 38 has at least one window per screen layout. The presentation spaces, but not the windows, are common to all screens. The window control block 34, corresponding to a given presentation space 38 in that screen layout, defines the origin (upper left hand corner) of the window in the presentation space, the width and height of that window in the presentation space and the origin of the window on the display screen. The screen matrix 40 is a map of the data to be displayed and, in one embodiment, maps, on a one-to-one basis by character, that which is to be displayed on the CRT screen, but the mapping could be on a pel or any other basis. All display output from the several tasks is directed to memory and, specifically, to the presentation spaces 38 rather than to the hardware refresh buffer. In the arrangement illustrated in Fig.7, a micro computer, such as the IBM (R.T.M.) Personal Computer (PC), is assumed to be attached to a host computer such as an IBM 3270 computer via a controller such as an IBM 3274 controller. For this case, the PC hardware buffer 122 acts as the PC presentation space. Each presentation space is assigned an identification tag and has an associated window defined by the operator or an application program as to size and screen location. When the human operator or application program adjusts the windows relative to one another, the system builds an image in the screen matrix 40 consisting of the identifying tag aligned in the appropriate locations. The matrix 40 may be created in a reverse order from that appearing on the CRT screen allowing overlapping windows to be built up by overwriting. Alternatively, by using a compare function, the matrix 40 can be created by beginning with the uppermost window and so on, down through the overlay. The choice of the method of creating the matrix 40 is based on desired system performance. The system directs display output to the refresh buffer by filtering all screen updates through the screen matrix 40, allowing a performance increment in an overlapped window system by only allowing those characters that actually need to be changed or displayed on the screen to reach the refresh buffer.Those characters that are not currently required,do not reach the refresh buffer, will not cause an unnecessary redraw. The absence of these unnecessary redraws removes the requirement for continual updates of all windows whenever the contents of one is altered.
  • In order to write a character, the IBM 3274 controller, a supervisor application or the PC writes character code into presentation space 38 at locations designated by that presentation space's cursor value control block. No other updates are required. the new character will be displayed or not according to whether it falls within the window designated by the corresponding window control block 34 and the portion of that window designated for display by the screen matrix 40. To use the PC buffer 122, a window control block is established for the PC the same as any other window control block 34 including width, height, presentation space origin, and screen origin. The screen matrix 40 is updated, and data from the window in the PC buffer defined by the window control block 34 will, to the extent allowed by the screen matrix 40, appear on the CRT screen. Data within a window may be scrolled by decrementing or incrementing the X or Y value of the window origin. No other control updates are needed. Only the corresponding window in the screen buffer is rewritten or, if a PC window, the offset register is changed. A window can be relocated on the screen by changing the origin coordinates in the window control block 34 for that window. The screen matrix 40 is updated, and the entire non-PC screen buffer is rewritten with data for non-PC tasks and codes (hexadecimal FF) for the PC. To enlarge the visible portion of a presentation space without scrolling, the window control block 34 for that presentation space 38 is first updated by altering the width and/or height. This adds to the right or bottom of window only unless there is also a change in the origin of the window. Ordinarily, there is no change in the origin unless there is an overflow off the presentation space or screen, in which case, the corresponding origin is altered. Next, the screen matrix 40 is updated by over-writing window designator codes of the matrix, starting with the lowest priority window control block. Then, all windows to non-PC refresh buffer 12 are rewritten with data from the presentation space for the non-PC windows and the hexadecimal code FF for the PC window.
  • Figure 8 illustrates the general shape of the process for window updating. In block 42, the presentation space (PS) row is set to the first PS row needing update; the screen row is set to the row on the display screen of the PS row; the PS column is set to the first PS column needing update; the screen column is set to the column on the screen of the PS column; the number of rows is set to the number of PS rows to be updated; and the number of columns is set to the number of PS columns to be updated. Then, the procedure which follows is done for the number of rows to be updated. For the number of columns to be updated, the matrix 40 is checked to determine if the screen row and column is within the window to be updated. This is indicated by the decision block 44. A test is made for the PC, since hardware buffer 122 is the presentation space for the PC, and the hexadecimal code FF is used to denote the PC window. If the decision of block 44 is yes, then the screen row and column are set to the PS row and column as indicated by block 46, and the screen column and the PS column are incremented as indicated by block 48; otherwise, the screen column and PS column are incremented without setting the screen row and column to the PS row and column. When this process is complete for the number of columns to be updated, the PS column is updated to the first PS column needing update as indicated by block 50. Then, the PS row is incremented, and the screen row is incremented as indicated by block 52.
  • Figure 9 illustrates the general shape of the process for building the screen matrix 40. First, the window is set to the bottom window as indicated in block 54. Then for all windows not known to be hidden, the following procedure is performed. In block 56, the column is set to the first window column on the screen, and the row is set to the first window row on the screen. For the number of window rows, the procedure indicated within block 58 is followed, and this procedure includes the procedure indicated within block 60 for the number of window columns. In block 60, the matrix row and column is set to the window identification as indicated in block 62. Next, the column is incremented as indicated by block 64. Exiting block 60 but still within block 58, the column is set to the first window column on the screen as indicated by block 66. Then, the row is incremented as indicated by block 68. Now exiting block 58, the window is incremented to the next window as indicated by block 70.
  • The function which draws the multiple window display is driven by any one of the following:
    • 1. A PC cursor register update;
    • 2. A PC text/graphics node register update;
    • 3. A change in the window control block, screen control block, or presentation space control block; or
    • 4. A change in the presentation space data.
  • Application programs may cause the draw function to occur for cases 3 and 4 above by using the following functional calls:
    Figure imgb0001
  • These functional calls are set forth in detail below:
    Figure imgb0002
    Figure imgb0003
    Figure imgb0004
    Figure imgb0005
    Figure imgb0006
    Figure imgb0007
    Figure imgb0008
    Figure imgb0009
  • Those skilled in the art will realise that the invention has been described by way of example making reference to but one preferred embodiment while describing or suggesting alternatives and modifications. Other alternatives and modifications will be apparent to those skilled in the art. Various hardware and software trade-offs may be made in the practice of the invention without departing from the scope of the invention as defined in the appended claims. For example, in the system shown in Figure 7, the hardware buffer 122 could be eliminated by providing a presentation space in system memory for the PC. Also, while character box display buffers have been assumed in the example described, the principles of the invention are equally applicable to all points addressable (APA) buffers for support of graphical displays.

Claims (10)

1. A multiple window display system including a repeatedly scanned display device, a screen buffer (12) having display data element locations mapped directly onto the display areas of the display device and accessing means traversing the display data element locations in synchronism with the traverse of the display areas of the display device and a facility for compiling, from, potentially, a plurality of windows generated independently by individual respective users, an aggregate of data elements to be displayed, characterised in that the compiling facility is controlled by a screen matrix (24,40) having compile control locations mapped directly onto the display areas of the display device and is directly responsive to the contents of the control locations to automatically filter the available data elements from the various windows, display area by display area.
2. A display system as claimed in claim 1 wherein there are plural screen buffers (121-12n), traversed in synchronism with each other, with the display areas and with the screen matrix, available for assignment to individual users, the filtering in response to the picture matrix contents being performed on the outputs from the various buffers to the display device.
3. A display system as claimed in claim 2 including address generating means (141-14n) for simultaneously supplying addresses to each of said plural screen buffers, the address generating means including plural offset means (221 22n), one for each buffer, for modifying the addresses supplied to that buffer.
4. A display system as claimed in claim 3 wherein the task selection memory means is arranged to receive addresses in synchronism with addresses supplied to the plural screen buffers and further includes decoding means (28) for decoding codes generated by the task selection memory means in response to such addresses, the decoding means producing an enable signal for a selected one of the plural screen buffers at any given time.
5. A display system as claimed in claim 2 or claim 3 wherein the picture matrix is maintained in one of the buffers (121) and its compile control locations may contain either control codes or display data elements, but not both in any one location, the compiling facility being arranged to respond thereto by accepting the picture matrix data element, if stored in the currently accessed control location, or the data element from the indicated other buffer, if a control code is stored in the currently accessed control location in the picture matrix.
6. A display system as claimed in claim 2 or claim 3 including a character generator and wherein the task selection memory means includes one of the plural screen buffers (121) which is designated as a non-transparent screen buffer, such non-transparent screen buffer having stored therein unique code points which are used to select among the remaining screen buffers, the data in the plural screen buffers being read out in synchronism with refresh addresses supplied thereto,the task selection memory means further comprising decoding means connected to the output of the non-transparent screen buffer for decoding the unique code points and producing an enable signal for a selected one of the plural screen buffers at any given time in response to the decoding of the currently accessed code point and gating means connected to the output of the non-transparent screen buffer and responsive to the decoding means to pass the current output from the non-transparent screen buffer as a character code to the character generator when such output is decoded by the decoding means as not being a code point.
7. A display system as claimed in claim 1 including means (32,34) for establishing user associated presentation spaces (38) in homogeneous storage for receiving display data from the associated user and means for establishing windows in the respective presentation spaces, the compiling facility including control means, responsive to the picture matrix, for controlling the loading of the screen buffer by presentation space selection thus filtering the data from the various windows into the screen buffer and hence compiling the picture actually displayed on the display device.
8. A display system as claimed in claim 7 including at least one additional dedicated screen buffer (122) of immediate access to one user (PC), the picture matrix mapping, in addition to the data to be loaded into the one screen buffer, which screen buffer is to supply the current output to the display device, the control means enabling only one of the screen buffers for read out at any given time.
9. A display system as claimed in claim 8 in which the window control block means indicate the coordinates and dimensions of each of the windows and means, responsive to the window control blocks, are provided for creating and adjusting, in response to changes in the window control block configuration, the screen matrix and thereby establishing window priority at screen buffer locations.
10. A display system as claimed in claim 8 or claim 9 wherein each additional dedicated screen buffer stores display data for the associated user and constitutes the presentation space for that user.
EP19840111872 1983-10-17 1984-10-04 A multiple window display system Expired EP0147542B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US06/542,572 US4653020A (en) 1983-10-17 1983-10-17 Display of multiple data windows in a multi-tasking system
US06/542,376 US4651146A (en) 1983-10-17 1983-10-17 Display of multiple data windows in a multi-tasking system
US542376 1983-10-17
US542572 1995-10-13

Publications (3)

Publication Number Publication Date
EP0147542A2 true EP0147542A2 (en) 1985-07-10
EP0147542A3 EP0147542A3 (en) 1989-07-26
EP0147542B1 EP0147542B1 (en) 1991-10-02

Family

ID=27067019

Family Applications (1)

Application Number Title Priority Date Filing Date
EP19840111872 Expired EP0147542B1 (en) 1983-10-17 1984-10-04 A multiple window display system

Country Status (4)

Country Link
EP (1) EP0147542B1 (en)
DE (1) DE3485132D1 (en)
HK (1) HK88192A (en)
SG (1) SG93192G (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2179227A (en) * 1985-08-01 1987-02-25 Cadtrak Corp Graphics display system
EP0212563A2 (en) * 1985-08-14 1987-03-04 Hitachi, Ltd. Display control method for multi-window system
EP0223383A2 (en) * 1985-10-04 1987-05-27 Tektronix, Inc. Multiple process, windowed display system
EP0261463A2 (en) * 1986-09-24 1988-03-30 Hitachi, Ltd. Display control apparatus
EP0280582A2 (en) * 1987-02-27 1988-08-31 Axiom Innovation Limited Improvements in computer graphics systems
US4845644A (en) * 1986-06-16 1989-07-04 International Business Machines Corporation Data display system
GB2215956A (en) * 1988-03-23 1989-09-27 Benchmark Technologies Arbitrary shape clipper
US4890257A (en) * 1986-06-16 1989-12-26 International Business Machines Corporation Multiple window display system having indirectly addressable windows arranged in an ordered list
GB2226938A (en) * 1986-06-04 1990-07-11 Apple Computer Video display apparatus
GB2228164A (en) * 1989-02-08 1990-08-15 Sun Microsystems Inc Hardware implementation for providing raster offsets in a graphics subsystem with windowing
KR980700632A (en) * 1995-09-27 1998-03-30 로버트 에프. 도너후 Circuits, systems and methods for memory mapping and display control systems using them (CIRCUITS, SYSTEMS AND METHOOS FOR MEMORY MAPPING AND DISPLAY CONTROL SYSTEMS USING THE SAME)
US7463307B2 (en) 2004-04-02 2008-12-09 Mstar Semiconductor, Inc. Display controlling device capable of displaying multi-windows and related method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197590A (en) * 1976-01-19 1980-04-08 Nugraphics, Inc. Method for dynamically viewing image elements stored in a random access memory array
EP0055167A1 (en) * 1980-12-12 1982-06-30 TEXAS INSTRUMENTS FRANCE Société dite: Method and apparatus for displaying messages on a raster-scanned display system, e.g. a CRT screen, using a segmented memory
EP0099989A2 (en) * 1982-06-28 1984-02-08 Kabushiki Kaisha Toshiba Image display control apparatus
US4649377A (en) * 1983-05-24 1987-03-10 Hitachi, Ltd. Split image display control unit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197590A (en) * 1976-01-19 1980-04-08 Nugraphics, Inc. Method for dynamically viewing image elements stored in a random access memory array
US4197590B1 (en) * 1976-01-19 1990-05-08 Cadtrak Corp
EP0055167A1 (en) * 1980-12-12 1982-06-30 TEXAS INSTRUMENTS FRANCE Société dite: Method and apparatus for displaying messages on a raster-scanned display system, e.g. a CRT screen, using a segmented memory
EP0099989A2 (en) * 1982-06-28 1984-02-08 Kabushiki Kaisha Toshiba Image display control apparatus
US4649377A (en) * 1983-05-24 1987-03-10 Hitachi, Ltd. Split image display control unit

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2179227B (en) * 1985-08-01 1989-07-26 Cadtrak Corp Graphics display system with arbitrary overlapping viewports
US4812834A (en) * 1985-08-01 1989-03-14 Cadtrak Corporation Graphics display system with arbitrary overlapping viewports
GB2179227A (en) * 1985-08-01 1987-02-25 Cadtrak Corp Graphics display system
EP0212563A2 (en) * 1985-08-14 1987-03-04 Hitachi, Ltd. Display control method for multi-window system
EP0212563A3 (en) * 1985-08-14 1989-10-11 Hitachi, Ltd. Display control method for multi-window system
EP0223383A2 (en) * 1985-10-04 1987-05-27 Tektronix, Inc. Multiple process, windowed display system
EP0223383A3 (en) * 1985-10-04 1989-02-08 Tektronix, Inc. Multiple process, windowed display system
GB2226938B (en) * 1986-06-04 1991-05-08 Apple Computer Video display apparatus
GB2226938A (en) * 1986-06-04 1990-07-11 Apple Computer Video display apparatus
US4890257A (en) * 1986-06-16 1989-12-26 International Business Machines Corporation Multiple window display system having indirectly addressable windows arranged in an ordered list
US4845644A (en) * 1986-06-16 1989-07-04 International Business Machines Corporation Data display system
US5129055A (en) * 1986-09-24 1992-07-07 Hitachi, Ltd. Display control apparatus including a window display priority designation arrangement
EP0261463A3 (en) * 1986-09-24 1991-01-23 Hitachi, Ltd. Display control apparatus
EP0261463A2 (en) * 1986-09-24 1988-03-30 Hitachi, Ltd. Display control apparatus
GB2202115A (en) * 1987-02-27 1988-09-14 Caplin Cybernetics Planes of image memory have respective viewport controllers
GB2202115B (en) * 1987-02-27 1991-09-25 Caplin Cybernetics Improvements in computer graphics systems
EP0280582A3 (en) * 1987-02-27 1990-07-04 Caplin Cybernetics Corporation Ltd. Improvements in computer graphics systems
EP0280582A2 (en) * 1987-02-27 1988-08-31 Axiom Innovation Limited Improvements in computer graphics systems
GB2215956A (en) * 1988-03-23 1989-09-27 Benchmark Technologies Arbitrary shape clipper
GB2228164A (en) * 1989-02-08 1990-08-15 Sun Microsystems Inc Hardware implementation for providing raster offsets in a graphics subsystem with windowing
GB2228164B (en) * 1989-02-08 1993-11-17 Sun Microsystems Inc Hardware implementation for providing raster offsets in a graphics subsystem with windowing
KR980700632A (en) * 1995-09-27 1998-03-30 로버트 에프. 도너후 Circuits, systems and methods for memory mapping and display control systems using them (CIRCUITS, SYSTEMS AND METHOOS FOR MEMORY MAPPING AND DISPLAY CONTROL SYSTEMS USING THE SAME)
US7463307B2 (en) 2004-04-02 2008-12-09 Mstar Semiconductor, Inc. Display controlling device capable of displaying multi-windows and related method

Also Published As

Publication number Publication date
SG93192G (en) 1992-12-04
EP0147542A3 (en) 1989-07-26
EP0147542B1 (en) 1991-10-02
HK88192A (en) 1992-11-20
DE3485132D1 (en) 1991-11-07

Similar Documents

Publication Publication Date Title
US4651146A (en) Display of multiple data windows in a multi-tasking system
US4653020A (en) Display of multiple data windows in a multi-tasking system
US4890257A (en) Multiple window display system having indirectly addressable windows arranged in an ordered list
EP0329892B1 (en) Display system comprising a windowing mechanism
US5241656A (en) Depth buffer clipping for window management
JP2912419B2 (en) Dynamic control system for use with computer graphic devices
US5696540A (en) Display controller
EP0279229B1 (en) A graphics display system
JPS62276673A (en) Multiwindow display device
EP0147542B1 (en) A multiple window display system
US4706074A (en) Cursor circuit for a dual port memory
JPH0456316B2 (en)
KR970012084A (en) Graph display apparatus and method
JP2797435B2 (en) Display controller
JPH05232915A (en) Method and device for assigning memory space
US5559533A (en) Virtual memory hardware cusor and method
Bechtolsheim et al. High-performance raster graphics for microcomputer systems
US5561755A (en) Method for multiplexing video information
EP0145817A1 (en) A data display system
JP2861211B2 (en) Display device
JP2623592B2 (en) Display control device
JPS60173588A (en) Multiwindow display processing system
JPS62164175A (en) Picture display device
JPS63221386A (en) Crt display system
JPS62217378A (en) Multi-window display control system

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 19841123

AK Designated contracting states

Designated state(s): DE FR GB IT

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

AK Designated contracting states

Kind code of ref document: A3

Designated state(s): DE FR GB IT

17Q First examination report despatched

Effective date: 19900319

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE FR GB IT

ITF It: translation for a ep patent filed

Owner name: IBM - DR. ALFREDO BRAVI

ET Fr: translation filed
REF Corresponds to:

Ref document number: 3485132

Country of ref document: DE

Date of ref document: 19911107

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed
PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20011001

Year of fee payment: 18

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20011017

Year of fee payment: 18

REG Reference to a national code

Ref country code: GB

Ref legal event code: IF02

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20021004

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20021023

Year of fee payment: 19

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20021004

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20030630

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20040501