Back to EveryPatent.com



United States Patent 5,247,663
Busboom ,   et al. September 21, 1993

Method and apparatus for constructing continued entry fields with multiple terminals

Abstract

A method and apparatus for displaying entry fields on a workstation display screen, wherein a single entry field may be constructed having selectively positionable segments, and wherein each of the segments are linked together for processing, so that an entry field modification made in any of the segments will result in processing all of the segments for accommodating the modification; the method and apparatus are practiced in a system having a host processor, at least one workstation control interface, and a plurality of workstations.


Inventors: Busboom; Leah J. H. (Oronoco, MN); Eagen; Stephen T. (Rochester, MN); Kiel; Harvey G. (Rochester, MN); Romon; Raymond F. (Oronoco, MN); Wenz; David G. (Rochester, MN)
Assignee: International Business Machines Corporation (Armonk, NY)
Appl. No.: 639505
Filed: January 9, 1991

Current U.S. Class: 707/4; 715/700
Intern'l Class: G06F 007/00
Field of Search: 364/DIG. 1 MS File,DIG. 2 MS File 395/144,155,600,700


References Cited
U.S. Patent Documents
3905022Sep., 1975Klosky et al.364/DIG.
4458311Jul., 1984Clements et al.364/DIG.
4704703Nov., 1987Fenwick364/DIG.

Primary Examiner: Heckler; Thomas M.
Attorney, Agent or Firm: Palmatier, Sjoquist & Helget

Claims



What is claimed is:

1. An apparatus for displaying entry field on workstation display screen panels in non-sequential panel locations, and linking said entry fields for processing as a single entry field, comprising:

a) means for defining separate entry field segments within a single entry field definition, and for defining linking field control words to associate the separate entry field segments as parts of the single entry field definition;

b) means for separately displaying the entry field segments on a workstation display screen panel in discontinuous positions; and

c) means for changing any part of an entry field segment, and means for changing all subsequent entry field segments which are associated by said linking field control words.

2. The apparatus of claim 1, wherein said means for defining separate entry field segments further comprises a host processor, having means for constructing a data stream for transmission to a workstation control interface, said data stream including position information for each of said entry field segments and said linking field control words.

3. The apparatus of claim 2, wherein said means for separately displaying said entry field segments further comprises a workstation control interface having means for receiving said data stream, and means for constructing a panel display command for positioning said entry field segments on a display panel, and means for transmitting said command to any of a plurality of workstations; and one of said plurality of workstations having means for receiving said command and means for constructing a display screen image.

4. The apparatus of claim 3, wherein said means for changing any part of an entry field segment further comprises a workstation control interface having means for receiving said change, and means for developing a further command to the workstation which initiated the change, said further command instructing said workstation to incorporate the change to the workstation display screen image; said workstation control interface further having means for developing still further commands to said workstation to change each subsequent entry field segment associated with the changed entry field segment.

5. A method of displaying separate entry field segments within a single entry field definition on a workstation display screen, comprising the steps of:

a) constructing a data stream in a host processor, said data stream including field control words defining respective entry field segments and identifying said segments as a part of a single entry field definition;

b) transmitting said data stream to a workstation control interface, wherein said workstation control interface is connected to a plurality of workstations, each of said workstations having means for displaying display panel screen images; and

c) storing, in said workstation control interface, said field control words defining respective entry field segments, and transmitting commands from said workstation control interface to a selected one of said workstations to display said separate entry field segments.

6. A method of changing data in a workstation display screen entry field when the entry field is comprised of a plurality of segments, comprising the steps of:

a) entering the changed data into one of the plurality of segments, and changing the remaining data in the segment to accommodate the changed data; and

b) changing each of the next subsequent segments by changing the data in each of the subsequent segments to accommodate the said changed one segment and thereby to create a continuous entry field comprising all of the segments.
Description



BACKGROUND OF THE INVENTION

The present invention relates generally to computer workstations which are connected for information interchange with host or mainframe computer systems; more particularly, the invention relates to a method and apparatus for controlling the displayed position of entry field data on certain computer workstations by processing keystroke operations at a workstation control interface without participation of the host processor to which the workstation is connected. Further, the invention enhances the user interface associated with certain types of entry fields displayed on workstations.

In any typical prior art system utilizing a host processor, workstation control interface, and workstations, wherein the workstations are utilized for user interaction and access and the host processor is utilized for running application programs, the host processor provides certain fundamental information. For example, the host processor may generate a data stream containing information to be displayed on a workstation screen, and information for controlling the presentation and position of the data on the screen. In the case of a programmable workstation (PWS), the host processor data stream is sent directly to the workstation and is processed internally in the workstation, which itself contains sufficient internal memory and program data to directly control the interaction with the display screen and keyboard. In the case of a dependent workstation (DWS), the host processor data stream is sent to a workstation controller (WSC), and the WSC provides the internal memory and control for directly controlling the display screen of the DWS. In either case, the host processor-constructed data stream is received by a workstation control interface (hardware and/or software), and the workstation control interface processes the data stream. The workstation controller may poll attached DWS workstations to determine whether a keystroke should be recognized or whether any of a predetermined number of commands from the workstation controller have been processed.

Although a PWS terminal is of considerably more sophisticated design than a DWS terminal, when it is used in an environment where a host processor executes applications programs and merely utilizes the PWS terminal for DWS-like operator/user interface, the PWS terminal suffers from most of the same limitations as a DWS terminal. For example, each time a display panel is to be changed on the screen of either type of terminal as a result of user interaction, the host processor creates the panel description, and presentation, and constructs a data stream for transmission to the terminal. For convenience herein, reference will be made primarily to DWS terminals throughout, it being understood that the uses and advantages of the invention are equally applicable to both types of terminals. Where reference is made herein to workstation controllers (WSC), it should be understood that such controllers are associated with DWS terminals, and PWS terminals do not utilize workstation controllers except for basic connectivity. PWS terminals communicate directly with the host processor through suitable I/0 communications controls, but PWS devices have internal logic which effectively performs the same workstation control interface functions as are performed by workstation controllers.

In the course of communicating with remote terminals via a workstation control interface, the host processor application program and/or display data manager program assembles data for transmission to the remote terminal for constructing display panel images. Among the display panel constructs which have been uniformly adopted is the entry field, which is understood to be a continuous field reserved for entry of information by the operator through the operator keyboard. The size and position of entry fields are defined by the host applications program and/or display data manager program, and entry fields are usually highlighted on the display screen by regions of underlining, to provide an indication to the operator concerning the position and width of an entry field. If an entry field is longer than the space available on a single line of panel display, the entry field will wrap to the next line of panel display to provide the necessary character columns deemed to be relevant to the particular entry field input information. A single panel display may have more than one or two entry fields, and each entry field may be accessed by cursor positioning to the initial character position of the entry field. For purposes of the present invention, it is convenient to define a variant form of entry field; namely, the "continued entry field." A continued entry field may occupy any position on a display panel, but when a continued entry field extends from one display line to the next display line it does not necessarily wrap to the leftmost position of the second display line. A continued entry field may contain a plurality of individual segments, wherein each segment may be uniquely positioned on the display panel, not necessarily in the form of a continuous line extending from the last column of one line and wrapping to the first column of the next subsequent line. The segments of a continued entry field are linked together according to the teachings of the present invention, and multiple continued entry field segments are processed as a single entry field rather than as a plurality of discontinuous entry fields.

SUMMARY OF THE INVENTION

The present invention provides a method and apparatus for constructing continued entry fields for displaying panel data within specified screen areas at a workstation, to better control the presentation of such entry fields, particularly in restricted display environments such as those created by windows. This is enabled by an extended data stream interface between the host processor and the workstation control interface, including data which defines each segment of a set of continued fields. The host application software uses data stream conventions to position and define each segment in the set of continued fields, and each continued entry field segment definition includes a new type of "field control word" that identifies it as a segment in a set of continued fields. The field segments can be arranged within a display panel as desired by the application software. The workstation control interface presents a display panel containing continued field segments in the same manner as it presents separate entry fields; however, the workstation control interface retains information about the location and length of the continued field segments in order to process editing of data within the fields, and processing associated with returning entry field data to the host.

The set of continued field segments are treated by the workstation control interface as a singular field when edit keys are actuated and the cursor is within the field. When any segment of a continued field is modified, the field data for the entire set of continued field segments is returned to the host processor for further action, even though only a single field segment may actually have been modified.

It is a feature of the present invention to enable the display data manager software within a host processor to be written so as to provide a consistent mechanism within the applications program interface for the definition of continued fields in all workstation environments.

It is another feature of the present invention to provide a storage area within the workstation control interface so as to enable the transmission of continued field segments in a conventional manner between the workstation control interface and host processor, and to include transmission of all continued field segments whenever any segment is modified by the user.

It is the principal object of the present invention to provide continued entry fields in systems including a host processor and a plurality of workstations, including a plurality of dependent workstations which are connected into a host processor via a workstation controller.

It is a further object of the present invention to enable a workstation controller to accept a data stream from a host processor which defines segments of continued fields, to enable the workstation controller to control the presentation of and editing within the field segments and to return the entire continued entry field to the host processor when any segment of the field is modified.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects and advantages of the invention will become apparent from the following specification, and with reference to the claims and the appended drawings, in which:

FIG. 1 shows a typical block diagram of a PWS;

FIG. 2 shows a typical block diagram of a DWS;

FIG. 3 shows a typical block diagram of a workstation controller;

FIG. 4 shows a typical block diagram of a plurality of DWS devices connected to a host computer via a WSC;

FIG. 5 shows a simplified diagram illustrating display data flow in a system having DWS terminals;

FIG. 6 shows an example panel with an entry field presentation according to the prior art;

FIG. 7 shows an example panel with continued field presentation according to the invention;

FIG. 8 shows an example of a panel presentation of a continued field in a window;

FIGS. 9A and 9B show a flow chart illustrating prior art host and workstation control interface processing for a panel;

FIG. 10 shows a flow chart of prior art keystroke processing;

FIG. 11 shows a flow chart of prior art keystroke processing; and

FIGS. 12A and 12B show a flow chart of host and workstation control interface processing for a panel according to the invention;

FIGS. 13A and 13B show a further flow chart of keystroke processing according to the invention; and

FIGS. 14A and 14B snow a further flow chart of keystroke processing according to the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Programmable Workstation

Referring first to FIG. 1, there is shown a typical block diagram of a programmable workstation (PWS); the circuits within the dotted outline 10 are generally found on one or more circuit boards within the PWS framework. The microprocessor is typically an Intel type 80286 or 80386, or equivalent microprocessors by other manufacturers. The microprocessor has an external bus which may communicate with a number of adapters which themselves are connectable to various internal and external devices.

The host processor communicates with the PWS via a communications line, identified as a "cable" in FIG. 1. A plurality of PWS devices may be connected to a host processor via such communications lines, wherein each PWS has an internal application program known as "Workstation Function," which enables the PWS to perform the same tasks as the combination of a DWS and workstation controller as hereinafter described. The host processor is not concerned with, nor does it require specific knowledge of, which of the several types of remote workstations it is communicating with. When the host processor determines that a display screen representation is to be transmitted to a remote workstation, it constructs a data stream having the content described above, which is known in the prior art as a "5250 data stream." The format of this data stream is identical for communications with a PWS and a WSC, for the Workstation Function software operating within the PWS enables the PWS to process the data stream in the same manner as a WSC would process the data stream. While the processing actions within a PWS differ from the processing actions within a WSC, the external interaction with a host processor is identical in both cases. Likewise, when the operator at a remote workstation makes a keystroke, the processing actions which pass to the host processor are identical in either case, although the internal processing within a PWS is different from the internal processing within a workstation controller.

The typical PWS will have a keyboard, and optionally a mouse, connected through adapters to the internal bus, a display monitor connected through an adapter to the internal bus, one or more disk or diskette adapters coupled to one or more disk or diskette drives and connected to the internal bus, and a communications adapter which is connectable to other systems via external cables. The RAM is typically a random access memory having 1-16 megabyte capacity, which is sufficiently large to store a complete operating system, an extensive work area for programmable calculations, a monitor screen buffer area and an area for executing application programs. The ROM is a read only memory which typically contains coding for initializing the machine, for performing diagnostic operations, and for controlling the basic I/O system; the ROM is typically 64-128 kilobytes in capacity. The PWS is therefore operable as a stand-alone computer system, or as an independent workstation which may be connected to a host computer via external cables. The capabilities of the PWS enable it to provide a wide variety of user enhancements, including a full range of cursor controls, instantaneous scrolling, and display screen modification. All of these enhancements are contained and controlled within the PWS itself, although when a PWS is connected to a host computer processor and is operated as a workstation, it receives its overall command and control from the applications software in the host processor. In the preferred embodiment, the PWS shown in FIG. 1 is an IBM Personal System/2 or equivalent, although another IBM personal computer, or equivalent design, could be used.

Dependent Workstation

FIG. 2 shows a typical block diagram of a DWS, wherein the circuits typically found within the framework are designated within dotted outline 20. The microprocessor is typically an Intel type 8088 or 8086 circuit device, or equivalent, and the microprocessor has an external bus which is connectable to several adapters for enabling communications with a limited number of external devices. For example, a keyboard adapter enables communications between the microprocessor and a keyboard, a display adapter enables information to be transferred to a display monitor, and a "communications" adapter enables communications to be made between the DWS and a workstation controller. The RAM is typically capable of 3-5 kilobytes of storage, for storing a screen buffer, and for providing a limited amount of memory work area for internal processing. The ROM is typically about 8 kilobytes in capacity, for storing coding relating to power-on processing, diagnostics, and character generation patterns and process communication protocols for communicating with a workstation controller. The DWS is incapable of any significant internal processing beyond that which is required to interface with the keyboard and display monitor, and to communicate via the communications adapter. Therefore, all of the information (except for diagnostics and set-up information from ROM) displayed on the display monitor must be provided via the communications adapter to the RAM, and the microprocessor will generate sufficient internal control to display the information on the display monitor. Similarly, all keystrokes from the keyboard are temporarily received in the RAM, subject to activation of the communications adapter for transmission of the keystroke information over the cable to the WSC. In the preferred embodiment, the DWS shown in FIG. 2 is an IBM 5250 family display, although other equivalent types of DWS could be used.

Workstation Controller

In typical systems, the function of a "workstation controller" is to provide information transfer and control to a plurality of remote DWS devices from a single host processor. This workstation controller function is usually performed by a hardware and software package which is uniquely identified and separate from the host processor hardware and software packages. The hardware for a workstation controller is typically contained on a circuit board package which is pluggable into a host processor card slot, and the software for a workstation controller is typically executed by the hardware independently of software which is executed by the host processor. However, in certain systems, the workstation control interface function of a "workstation controller" is entirely a software package function, the software being executed within the host processor hardware. Although the preferred embodiment of the present invention is disclosed with respect to the workstation controller concept which is physically separate from the host processor in both hardware and software details, the invention is applicable to the second type of workstation controller, wherein the functions are performed entirely by a software package residing in a host processor.

If a workstation controller is physically remotely positioned from the host processor, its communications with the host processor are made via communication lines, connected in a manner similar to the connection of various other remotely located devices. If the workstation controller is physically incorporated into the host processor mainframe as a pluggable card, the workstation controller may communicate with the host processor utilizing the normal channel connections associated with the host processor.

FIG. 3 shows a typical block diagram of a workstation controller, of the type which typically communicates with a plurality of DWS devices. The workstation controller has a number of circuits contained within a package designated by dotted outline 30, and a microprocessor which is typically an Intel type 80826 circuit chip, or equivalent. The WSC microprocessor is typically connected to a system bus adapter which itself may communicate with a host computer processor. The WSC also has an internal data bus and a RAM having a capacity of 0.5-2.0 megabytes, and a ROM having a capacity of about 16 kilobytes, containing coding for initializing the WSC and for diagnostics relating to the WSC. The internal data bus of the WSC is connected to a communications adapter, which is externally connected to a "fan-out" multiplexer for enabling a plurality of DWS devices to communicate with a single WSC. In a typical application, the fan-out circuits are connectable to up to 40 DWS devices. Keystroke signals from all of the DWS devices are received by the WSC and stored within the RAM, for subsequent communication to the host processor or for internal processing by the WSC. In the preferred embodiment the WSC of FIG. 3 is a "feature card" for an AS/400 computer system, wherein the microprocessor is suitably programmed.

FIG. 4 shows a typical block diagram of the system interconnections, wherein the host processor communicates with a WSC via an I/O bus, and a WSC communicates with up to 40 DWS devices via communications cables. Other devices and controllers may be connected to the I/O bus for communication with the host processor. In the preferred embodiment, the host processor is part of an AS/400 computer system.

Under typical operating conditions in the prior art, the host processor will construct a data stream for each of the terminals to which it is connected, the host processor will then transfer a data stream representative of each screen display and entry field definitions to the WSC, where entry field definitions are retained and the display screen data is temporarily retained within a section of RAM identifiable with each particular DWS. The WSC then transfers the screen display data to a specific DWS device. Each DWS device contains sufficient internal storage to retain the screen display data for purposes of presenting the display image to the user. If a DWS user makes a keystroke, the DWS signals the WSC that the DWS has keystroke data available. The WSC makes the transfer of this keystroke data when polling the DWS.

FIG. 5 shows a simplified diagram to illustrate the display data flow in a system having DWS terminals. The host processor executes application programs as a part of its normal operating function. These application programs communicate, from time to time, with the remote terminals connected in the system, either by processing keyboard data sent from the terminals or by generating display information to be transmitted to the terminals for display. When an applications program needs to communicate with a remote terminal it calls up an applications program interface routine, one form of which is identified as a "display data manager." When information is to be displayed at a remote terminal, the display data manager constructs a data stream according to a particular format, and transmits this data stream to a workstation controller. The workstation controller selectively interacts with all of the DWS devices, selectively activating the appropriate device and then passing the information to be displayed onto the selected DWS device.

An enhancement to predefined panel areas is the concept of "windows" which permits an application to present an overlay panel area which may include entry fields. Since the "windows" are typically relatively small areas of display, they present further and unique problems concerning the display and positioning of entry fields, and one of these problems is the focus of the present invention.

The specific programming requirements for communicating between a workstation control interface and a typical host computer processor, are described in IBM Publication No. SA21-9247-6, entitled "IBM 5250 Information Display System--Functional Reference Manual." This information is incorporated by reference herein, as a disclosure of the required programming formats and data interchange. However in addition to the disclosure therein, the present invention requires implementation of additional processes which may be incorporated into the software of the workstation control interface. In particular, the present invention is useful in solving entry field problems inherently related to the restricted size of windows, and improving the aesthetics in terms of user interaction with certain panel types.

FIG. 6 shows a typical prior art display panel presentation, wherein five entry fields are presented, each entry field having a field prompt message text associated therewith. Each of the entry fields is represented by a solid line, displaced by a predetermined distance from the field prompt text. The first and second entry fields are limited in length to less than the number of columns remaining in the respective panel rows. The third entry field is longer than the number of columns remaining in the panel row opposite the field prompt "Copy List," and the entry field wraps to the first column of the next row and extends partially across the next row. The fourth entry field is sufficiently long to wrap to two subsequent rows, and the fifth entry field is sufficiently long to wrap to a second row and to extend partially across the second row. Whenever an entry field wraps to one or more subsequent panel rows, it creates an unaesthetic appearance to the panel, for the entry field data and the field prompt text sometimes become difficult to distinguish; particularly in the case when an entry field has pre-filled data. Also, when text is entered into the entry field, words are sometimes split at the right edge of a row.

The problem illustrated by the example of FIG. 6 becomes compounded in the windowing environment. Since some windows may be small, average sized entry fields (about 40 characters long) seem extremely large inside a window. In practice, window width is often determined by the size of the largest entry field within the window, even though it is desirable to keep windows as small as possible so they do not cover a great deal of area of the underlying panel.

For purposes of the present invention, we have defined a new and special entry field parameter, called the "continued entry field," which will be hereinafter described. A continued entry field is made up of predefined "segments" which are initially defined by the host processor data manager software, and the information defining these segments is transferred to the workstation control interface by means of special indicators embedded in the 5250 data stream. When information is entered into a continued entry field from a terminal keyboard, or where previously entered data is modified at the terminal keyboard, the workstation control interface initially processes the entered information according to the segment of the continued entry field wherein the data was entered. This enables the workstation control interface to maintain control over the entry field display position, and to consistently display the entry field information according to the predefined segments. After entry of information into a panel has been completed, the workstation control interface transfers the contents of the entire continued entry field to the host processor together with any data from other entry fields.

FIG. 7 illustrates the panel representation of FIG. 6 when practiced according to the teachings of the present invention. In this example, each entry field has the same number of entry input positions as the corresponding entry fields of FIG. 6, but the width of each entry field has been controlled so as to provide a more aesthetically pleasing panel display (prompt text on the left, entry fields on the right, which is an ease-of-use enhancement). The continued entry field presentation of FIG. 7 is made possible by the use of the special entry field parameters, wherein the host application program defines a set of continued field segments and arranges them in the desired set of positions in the window or panel. The host application transmits its defined continued entry field information to the workstation control interface, using the preexisting data stream mechanisms as defined in the 5250 functions reference manual, including "set buffer address" and "start of field" orders, to position and define each segment in the set of continued fields. In addition, each segment definition includes a "Field Control Word" (FCW) that identifies it as a segment in a set of continued fields. The field segments can be arranged within the panel as desired, as in the rectangular arrangement shown in FIG. 7. The workstation control interface receives the individual continued field segments in the same manner as separate fields except for a new FCW for each segment; however, the workstation control interface retains the information concerning the location and length of the continued field segments in order to process editing of data within the fields.

The set of continued field segments are treated by the workstation control interface as a singular field when edit keys are activated when the cursor is within the field. Examples of edit keys are the "delete," "insert," "erase EOF" keys. For example, when the user depresses the "delete" key when the text cursor is positioned under a character in a segment of a continued field, the character becomes deleted and all data in the field segment after the deleted character is shifted to the left. The leftmost character in the next subsequent field segment is shifted into the rightmost position of the field segment of the previous row, and the remaining text characters in the next row field segment are all shifted to the left one position. A null character is written in the rightmost position of the last field segment.

If any character in a displayed continued entry field is modified by the user, the workstation control interface treats all field segments as modified when entry field data is to be returned to the host application, for example, after the user depresses an "enter" key. When a key requiring host processing is depressed, the field data for the entire set of continued field segments is returned to the host processor, even if only a single field segment has been modified.

The foregoing example illustrates a principal advantage of the present invention, which is that the workstation control interface is permitted to retain local control over the display images of continued entry fields, by independently controlling the display position of continued entry field information for each of the segments of the field. At the same time, the workstation control interface transfers the entire continued entry field data to the host processor in a conventional manner when host application processing is required. An inbound data stream contains a data stream escape followed by field coordinates and entry field data for each modified field. For a continued field, all data from all segments is returned after the coordinates of the first segment. The identity and position of each of the continued entry field segments is preserved in workstation control interface memory during this transmission. This is an advantage over the prior art, for in the prior art if a long field was broken into two or more separate fields, only those portions of the field that were modified would be returned to the host processor in response to a "Read Modified Fields" command. This increases the complexity of the applications software, because it then needs to keep track of the field data in each portion of a long entry field and reconnect the portions after the "Read Modified Fields" command is processed.

FIG. 8 is a further example of the advantages of the present invention, especially in connection with the display of "windows." In FIG. 8, the dotted outline illustrates a window having two entry fields, each of which are portrayed by solid lines within the window. The first entry field occupies only the number of character spaces provided for in the column width of the window. The second entry field is a continued entry field having three segments, each segment being predefined to have a width limited to the window size displayed on the screen. The number of choices available for entry in the first entry field are limited to the numerical choices "1." through "24.", therefore the first entry field is more than adequate to accommodate the available choices. The choices available for entry into the second entry field are also limited to the total size of the entire continued entry field, although for display purposes the entry choices are further limited to the continued entry field segment widths. If an entry is made which exceeds the width of the first segment, the entry is continued into the second segment and, if necessary, is continued into the third segment. Each of the segments are indicated by a special field control word which defines the segment as first, middle or last. When the entries are processed by the host application software, the identities of the continued field segments are preserved, so that further display images will adhere to the same continued entry field definitions. In the "windows" environment it is apparent that the present invention permits the presentation and display of a multi-row entry field within a window, and this flexibility permits the host application software to build a smaller window than might otherwise be possible. The same presentation could occur if the host application software created multiple separate entry fields within the window, but the editing of field data would not be continuous, and field data read processing would become much more complicated.

FIGS. 9A and 9B are flow charts illustrating host and workstation control interface processing of a panel according to the prior art. For purposes of the flow charts illustrated in FIGS. 9A and 9B, and for the subsequent flow charts illustrated herein, it is presumed that the overall computer system is organized according to the diagram of FIG. 5. In other words, a host processor controls the execution of one or more applications programs, and the applications programs are executed in concert with display data manager software for purposes of communicating with a plurality of terminals. The terminals may be located at positions which are remote from the host processor, and the communication takes place via cables connected between all of the terminals and a workstation controller or workstation control interface, which is connected to communicate with the host processor. The vehicle for communication between the display data manager program and the workstation control interface is a 5250 data stream, which is constructed and transmitted according to techniques which are well known in the prior art. A feature of the 5250 data stream is that it incorporates not only the identification and control signals required for activating any of the connected remote terminals, but also that it conveys the necessary keyboard and/or display information which is associated with specific remote terminals. Transmissions from the remote terminals back to the host processor are also conveyed via 5250 data streams, which are constructed within the workstation control interface. A feature of the workstation control interface in the prior art is that, whereas it serves as a communications interface between host processors and remote terminals, it performs very few independent logical control and decision making functions. Therefore, many keystrokes from a user at any of the plurality of terminals are passed via the workstation control interface to the host processor for recognition and response, and a display message created within the host processor is communicated via the workstation control interface to the remote terminal selected. The present invention enables the workstation control interface to perform more of the logical and decision making functions relating to each of the display screens to which it is connected, and to assist in the editing functions performed by the user at any of the remote terminals to which it is connected.

FIG. 9A shows the flow chart for prior art processing within the host processor. The display data manager program receives an inbound 5250 data stream from the workstation control interface. This inbound data stream may include information relating to recent keystrokes made by the user at a remote terminal; the inbound data stream is transferred into memory locations within the host processor. The display data manager program and the host application program then analyze the inbound data stream to process the information contained therein, by examining the data associated with each of the display screen entry fields, and processes the information according to the particular application software being executed. As a result of this processing, the host application program defines a list of panel elements and the display data manager program constructs a new output data stream which includes data for each display panel element affected by the received inbound data. After the host application program has defined all of the panel elements, and the display data manager program has completed the necessary processing steps, it stores the newly-constructed 5250 data stream in a transmission buffer, and activates a transmission of this data stream to the workstation control interface.

FIG. 9B illustrates the prior art processing activities which occur within the workstation control interface. An output 5250 data stream which has been transmitted from the host processor to the workstation control interface is initially stored in memory locations within the workstation control interface. The workstation control interface then constructs a format table to define display entry fields (field start and end locations), screen images, etc., and stores this information in its memory; it then loads the formatted screen images into a transmission buffer and activates a transmission to the selected workstation terminal. The workstation terminal processes this information according to techniques well known in the art, with a result that the terminal display screen receives a new or modified image as dictated by the host application program.

When an operator keystroke is made, the workstation terminal transmits this keystroke information to the workstation control interface, which stores it in memory. The workstation control interface then makes an initial determination whether the keystroke requires processing by the host application software. If it does not, the workstation control interface performs the processing according to the flow charts shown in FIG. 10 and FIG. 11. If the keystroke requires further processing by the host application software the keystroke information is loaded into an inbound data stream buffer. If the keystroke information does not contain entry field data required to be sent to the host processor, the information is immediately transmitted to the host processor. If the keystroke information does require included entry field data, the workstation control interface will "read" the display screen information contained at the remote terminal by sending a "read" command to the remote terminal. The remote terminal returns the requested display screen data; the workstation control interface stores this "read" data in a temporary buffer for processing. The workstation control interface examines this data to process all entry fields found on the display screen. After all the entry fields have been examined and modified entry field data loaded into an inbound data stream "buffer," the workstation control interface activates a transmission to the host, so that the host application software may receive all entry field information for its own processing needs.

FIG. 10 and FIG. 11 are flow charts of prior art keystroke processing which may be performed within the workstation control interface, for certain keystroke operations. For example, if a keystroke operation is a data key keystroke the flow chart of FIG. 11 applies; if the keystroke was not a data key the flow chart of FIG. 10 applies, and it determines whether the keystroke was a delete key. If the keystroke was not a delete key, the workstation control interface next determines whether the keystroke was an "erase end of field" (erase EOF) key. If not, the workstation control interface processes the keystroke according to prior art techniques. If erase EOF, the workstation control interface generates a command to the workstation terminal to cause the terminal to erase the character at the current cursor position, and to erase all subsequent characters to the end of the entry field. If the workstation control interface determines that the keystroke was a delete key, it issues a command to the workstation terminal to cause the terminal to delete one character at the cursor position, and to left-shift all subsequent characters to the end of the entry field. The display-to-workstation control interface is a serial interface (versus row/column interface); therefore a "delete" key in a single multiple row entry field will cause all entry field data to be shifted left.

FIG. 11 shows the flow chart for processing keystrokes which are data key keystrokes. The workstation control interface first determines whether the workstation is in an insert mode. If it is, it examines the last position of the field to determine whether a null character exists at that position by issuing a "read" command to the workstation and waiting for the returned data byte. If there is no null character the workstation control interface commands the workstation screen to display an operator error message, which indicates "insert" is not allowed. If there is a null character at that position, the workstation control interface issues a command which causes the workstation to insert the keyed character at the cursor location, and to shift all subsequent characters to the end of the field one position to the right.

If the workstation control interface determines that the workstation is not in an insert mode, it issues a command to cause the workstation to write the keyed character on the display screen. It next determines whether the newly-written character occupies the last position of an entry field; if it does not, it issues a command to move the display screen cursor ahead by one position. If the displayed character does occupy the last position of an entry field, the workstation control interface issues a command to cause the display screen to move the cursor to the first position of the next entry field.

The foregoing illustrations, with reference to FIGS. 9-11, illustrate the types of keystroke processing which may occur within a prior art workstation control interface. The present invention simplifies and enhances the interaction between the host application program and the display terminal, particularly with reference to entry fields, to provide an enhanced degree of control and display function with respect to these fields. This enhancement will be described with reference to FIGS. 12-14.

FIG. 12A shows a flow chart for processing within the host processor, according to the teachings of the present invention. The display data manager program receives an inbound 5250 data stream from the workstation control interface. This inbound data stream may include information relating to recent keystrokes made by the user at a remote terminal; the inbound data stream is transferred into memory locations within the host processor. The display data manager program and host application program then analyze the inbound data to process the information contained therein, by examining the data associated with each of the display screen entry fields. The application program defines the panel elements for the next display screen and the display data manager program constructs the output data stream. With respect to each element of data being examined, the host display data manager program determines whether a continued entry field is being processed. If it is not, the data is processed according to prior art teachings; if it is a continued entry field, the host display data manager program defines and distinguishes the continued field segments, so that these segments are defined in a suitable output data stream.

It should be recognized that, when the host application program constructs a first output data stream for an initial display at a remote terminal, the continued fields and the continued field segments must be wholly defined, and appropriate markers inserted into the data stream in order that the continued field segments may be identified in the workstation control interface when the data stream is disassembled.

After the host processor has assembled a data stream, either in response to an incoming keystroke or as a result of initially constructing a data stream for a remote terminal screen display, it stores the output data stream in a transmission buffer, and activates transmission of the data stream to the workstation control interface. This data stream incorporates data stream orders not only indicating the end points of entry fields, but also contains data stream orders indicating the end points of the continued entry field segments.

FIG. 12B illustrates the processing activities which occur within the workstation control interface according to the teachings of the present invention. An output 5250 data stream which has been transmitted from the host processor to the workstation control interface is initially stored in memory locations within the workstation control interface. The workstation control interface then constructs a format table to define display entry fields (entry field start-and-end locations, and segment identifiers), screen images, etc., and stores this information in its memory; it then constructs linking for the continued field segments in the format table, and loads the formatted screen images into a transmission buffer, and activates the transmission to the workstation terminal. The workstation control interface performs some validation checking on a continued field where first and last segments are required, with optional middle segments between. The remote terminal processes the information according to techniques well known in the art, with the result that the terminal display screen receives a new or modified panel as dictated by the host application program, and this panel includes the continued entry field segments positioned according to the layout determined by the host application program.

When an operator keystroke is made, the workstation terminal transmits this keystroke information to the workstation control interface, which stores it in memory. The workstation control interface then makes an initial determination whether the keystroke requires processing by the application software. If it does not, the workstation control interface performs the processing according to the flow chart shown in FIG. 13A. If the keystroke requires further processing by the host application software, the keystroke information is loaded into an inbound data stream buffer. If the keystroke information does not contain entry field data required to be sent to the host processor, the information is immediately transmitted to the host processor. If the keystroke information does include entry field data, the workstation control interface will "read" the display screen information contained at the remote terminal, which it does by sending a read command to the remote terminal; the remote terminal returns the requested display screen data; the workstation control interface stores this data in a temporary buffer for processing. In determining whether all entry fields displayed have been processed, the workstation control interface examines each entry field to determine whether it is a continued field; if it is not, the modified entry field data is copied into a buffer and the next entry field is examined. If it is, and any segment is modified, all segments of the continued entry field are copied into the buffer following the field coordinates of the first segment of the continued field and next entry field is examined. After all entry fields have been processed, the workstation control interface activates a transmission to the host processor, as before.

FIG. 13A illustrates a flow chart of keystroke processing which may be performed within the workstation control interface, for certain keystroke operations. This processing is similar to that described with respect to the prior art, although the processing requires the further step of examining whether the keystrokes were made in a continued field. For example, if a data key keystroke is in a continued entry field the processing proceeds as illustrated in FIG. 14A. If a delete key is in a continued entry field, the workstation control interface determines whether the cursor is located in the last segment of the field; if it is not, the workstation control interface issues a command to the display terminal to delete one character at the cursor position and to shift all subsequent characters in the segment one position to the left, and to proceed with processing as shown in FIG. 13B. If the cursor is in the last segment, the workstation control interface issues a command to the display terminal to delete one character at the cursor position and to shift all subsequent characters in the segment one position to the left, and add a null in the last position, and to exit to the process.

If the cursor was determined to not be in the last segment, after issuing the command to the display terminal to delete one character at the cursor position and left shift subsequent characters in the segment, the flow chart of FIG. 13B indicates that the workstation control interface initializes a pointer to the segment where the cursor is positioned. Next, the workstation control interface issues a command to the display terminal to copy one character from the first position of the next segment to the last position of this segment. Next, the workstation control interface changes the pointer location to point at the next segment. Next, the workstation control interface issues a command to the display terminal to delete one character from the first position of this segment, and to shift all subsequent characters in this segment one position to the left. The determination is next made whether this is the last segment, and if it is the process is discontinued after adding a null in the last position of the last segment. If it is not, the process continues to repeat the steps of copying and shifting and deleting characters until all segments of the continued field have been processed.

Referring back to FIG. 13A, if the workstation control interface determines that the keystroke is not a delete key, it next determines whether the keystroke is an erase EOF key in a continued field. If it is not, the processing is accomplished according to the prior art. Except, some keystrokes act somewhat differently when depressed within a continued field; for example, the "field exit" key acts much like an "erase EOF" key as described herein, but the cursor moves to the first position of the next entry field, and a "field advance" key depression in a continued field moves the cursor to the first position of the next entry field.

If the keystroke is an "Erase EOF" keystroke in a continued field, the workstation control interface issues a command to the display terminal to erase all characters from the cursor position to the end of the segment. Next, the workstation control interface determines whether this is the last segment, and if it is the process is exited. If it is not, a pointer is changed to the next segment, and the entire next segment is erased. This process of examining the segment, pointing to the next segment, and erasing the entire segment is repeated until the last segment is processed.

FIG. 14A illustrates a flow chart of processing operations if a data key keystroke has been activated by the operator. In this case, the workstation control interface first determines whether the cursor is in a continued field; if it is not, processing takes place according to prior art teachings. If it is, the workstation control interface next determines whether the workstation is in an insert mode. If it is, the last position of the last segment is examined to determine whether there is a null character by issuing a read command to the workstation and waiting for the one byte of data. If not, a command is issued to the display terminal to indicate an operator error. If there is a null character, it is next determined whether the cursor is currently positioned in the last segment. If the cursor is positioned in the last segment, a command is issued to the display terminal to right shift all subsequent characters in the segment by one position, and to insert the keyed character at the cursor location. If the cursor is not in the last segment the flow chart of FIG. 14B indicates that a pointer is initialized to point to the last segment, and a determination is made whether the cursor is in the segment which is being pointed to. If not, a command is issued to the display terminal to read the last character from the previous segment into workstation control interface memory and to right shift all subsequent characters in the segment by one position, and insert the previously read character at the first position of the pointed to segment. The pointer is then changed to the previous segment and the operation is repeated until it is determined that the pointer is now pointing to the segment wherein the cursor is positioned. When this occurs, a command is issued to the display terminal to right shift all subsequent characters in the segment one position, and insert the keyed character at the cursor position.

Referring back to FIG. 14A, if the workstation control interface determines that the display terminal is not in the insert mode, a command is issued to the display terminal to write the character directly to the display screen. Next, it is determined whether the cursor is in the last position of a continued field segment. If it is not, a command is issued to the display terminal to move the cursor ahead by one position. If it is, a determination is made as to whether the cursor is in the last segment of the continued field. If it is not, a command is issued to the display terminal to move the cursor to the first position of the next segment. If the cursor is in the last segment, a command is issued to the display terminal to move the cursor to the first position of the next entry field.

In operation, the present invention enables an application program to not only define entry fields according to the well-known teachings of the prior art, but to further define continued entry fields, wherein the entry field is broken into predefined segments. The position and width of each of the entry field segments may be precisely dictated by the host application software, and all of this information is embedded into the 5250 data stream which is normally transmitted to the workstation control interface, and the remote terminal screen subsequently updated. The workstation control interface is able to utilize the position information relating to continued entry fields and segments so as to preserve entry field and segment position even in cases wherein the workstation control interface engages in some keystroke processing operations. When the user undertakes certain keystroke operations within a continued entry field (for example, data key or delete), the workstation control interface will process the keystrokes in the method described herein. For keystrokes requiring host processing the entire entry field is sent back to the host processor for further operations, while at the same time preserving the position information relating to the continued entry fields and segments. The overall effect of the invention is to permit significantly greater control over the positioning of entry fields on a display screen, particularly in the case wherein the host application program utilizes "windows." The precise positioning and control over entry field width becomes extremely important in the windows applications, because it is always desirable to display a window of the smallest size that is practicable for the information content within the window. The present invention enables the presentation of entry fields within windows, and more particularly, the presentation of precisely controlled multi-line entry fields within a window. Overall, the invention not only improves the efficiency and presentation of information being displayed on a remote terminal screen, but also improves the aesthetic appearance of such displayed information. Because the workstation control interface takes a vital part in the overall processing operations associated with the continued entry fields, it makes these functions possible.

In some cases, a workstation controller or PC running a host-based application using the same data stream described herein, the workstation controller or PC may have a dedicated screen buffer (for a workstation controller, the workstation controller would have a screen buffer for each DWS). In these cases, the read commands sent to the remote terminal as described herein are not required; instead, the workstation controller or PC uses the dedicated screen image buffer directly.

The present invention may be embodied in other specific forms without departing from the spirit or essential attributes thereof, and it is therefore desired that the present embodiment be considered in all respects as illustrative and not restrictive, reference being made to the appended claims rather than to the foregoing description to indicate the scope of the invention.


Top