US005420965A
[75] Inventor: | W. Daniel Barker, III, Atlanta, Ga. |
[73] Assignee: | Software Projects, Inc., Atlanta, Ga. |
[21] Appl. No.: | 893,724 |
[22] Filed: | Jun. 5, 1992 |
[51] Int. CL.{6} | G06F 15/00 |
[52] U.S. Cl. | 385/114; 395/101; 358/296 |
[58] Field of Search | 395/114, 112, 101, 102, 395/115; 358/296; 400/122; 364/514, 200, 900 |
[56] References Cited
U.S. PATENT DOCUMENTS | |||
---|---|---|---|
4,587,633 | 5/1986 | Wang et al | 364/900 |
4,620,289 | 10/1986 | Chauvel | 364/521 |
4,750,137 | 6/1988 | Harper et al | 364/514 |
4,805,135 | 2/1989 | Ochi et al | 364/900 |
4,928,234 | 5/1990 | Kitamura et al | 364/200 |
4,942,390 | 7/1990 | Do et al | 395/114 |
5,129,061 | 7/1992 | Wang et al | 395/200 |
5,185,853 | 2/1993 | Cheng et al | 395/115 |
5,191,430 | 3/1993 | Sudoh et al | 358/296 |
5,195,174 | 3/1993 | Kagawa | 395/102 |
5,207,517 | 5/1993 | Ito | 400/121 |
5,208,676 | 5/1993 | Inui | 358/296 |
5,222,200 | 6/1993 | Callister et al | 395/112 |
FOREIGN PATENT DOCUMENTS | |||
59-89056 | 5/1984 | Japan | H04L 11/00 |
Primary Examiner - Mark R. Powell
Assistant Examiner - Steven P. Sax
Attorney, Agent, or Firm - Jones & Askew
A process for compressing data sent to command driven remote video terminals is disclosed. A command string representation of the current contents of the remote terminal's video buffer is maintained locally at the host computer. This command string representation is a sequence of commands, in the terminals command language, that will write the contents of the screen in a manner as expected by the application that originated the transmitted data, if the sequence were sent to the terminal device following an erase/write command. Incoming current command strings are sorted by buffer address order and analyzed and merged with the command string representation of the buffer contents via a very efficient single pass process that provides a new expected state representation, an erase/write command string, and a write command string which expresses only the differences between the current terminal buffer contents and the desired presentation. The shorter of the erase/write or write command strings is then physically sent over the data link to the remote terminal and the new expected state representation becomes the command string representation. Additioaally, a method of representing and implementing an algorithmic state machine is shown in which the state table itself is the compilable code. Each state name is a valid label. At each label, the same multi-argument function is called, which takes a test, a procedure, and at least one branching destinations expressed as other state labels as arguments.
Abstract
Claims
Figure 1 is a block diagram of a host computer system with a plurality of local and remote video terminals, which system constitutes the normal environment in which the present invention is used.
Figure 2A is a block diagram showing the flow of data between an application and the VTAM software running on a host computer and a terminal controller.
Figure 2B is a block diagram showing the flow of data among an application, the VTAM software module, and a program embodying the present invention, all running on a host, and a terminal controller.
Figure 3A is a diagram of a command string representation, a set of current command strings, and the three output objects produced by the preferred embodiment.
Figures 3B and 3C show screen outputs before and after processing of the set of current command strings that are shown on Figure 3A.
Figure 4 is a flow chart of the overall program logic of the one pass compressor of the preferred embodiment.
Figure 5 is a flow chart showing the merge and split logic that follows sorting of string descriptors for the current command string, prior to analysis and merger with the current command string representation.
Figure 6 is a state diagram for the lowest order states of the preferred implementation of the preferred embodiment of the present invention.
Figure 7A and Figure 7B illustrate state diagrams for the state 100 state submachine of the preferred embodiment.
Table 1 - Contiguous fields