摘要 |
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. Additionally, 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.
|