Abstract:
Character codes input from a keyboard are transmitted to a remote computer which transmits the codes back by way of acknowledgement. A local display does not await the acknowledgement before displaying the characters but, rather, displays them right away and erases them if the acknowledgement is not received within a set period.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to data transmission terminals. 
     2. Related Art 
     Such terminals commonly transmit characters entered by means of a keyboard, to a remote computer or other device. The remote computer acknowledges by echoing the transmitted character code and the terminal then displays the received character on a visual display screen. One problem that can arise with such an arrangement is that if the link between the terminal and the remote equipment is particularly slow (or the remote equipment is) there can be a long pause before keystrokes are echoed to the screen. This leads to users striking a key twice or more with obvious resulting problems. 
     Of course, it would be possible to echo the characters directly to the screen but the user then receives no feedback than his signals are reaching their intended destination. 
     SUMMARY OF THE INVENTION 
     According to the present invention there is provided a data communication terminal having a keyboard for input of characters, transmitter means for transmitting coded signals representing those characters, receiver means for receiving echoed characters as a form of acknowledgement, and visual display means operable to display characters, characterised by control means operable in response to an input signal from the keyboard to display the corresponding character on the visual display means and operable in the absence, within a defined time period, of receipt of a corresponding echoed character to erase the displayed character. 
     For example the terminal may include a buffer for storing characters input from the keyboard and not yet transmitted, the control means being operable in the event of the said absence of an echoed character to erase any characters stored in the buffer and their corresponding representations on the visual display means. Preferably the control means is arranged to inhibit transmission of a character until an echoed character corresponding to the immediately preceding transmitted character has been received. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Some embodiments of the invention will now be described by way of example, with reference to the accompanying drawings, in which: 
     FIG. 1 is a block diagram of a terminal apparatus according to one embodiment of the present invention; 
     FIGS. 2 to 4 are diagrams illustrating the operation of the apparatus of FIG. 1; and 
     FIG. 5 and 6 are flowcharts illustrating the operation of a second embodiment of the invention. 
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
     In the embodiment of FIG. 1, a keyboard 1 produces character codes on an output line 2 and indicates that a key has been pressed by means of a strobe signal on line 3, which serves to enter the character code into a first-in-first out buffer 4. The strobe signal is also connected to the write input of a display memory 5 where it is entered into an appropriate storage location. The display memory 5 has a location for each character position of a screen display, its contents being repeatedly read out by display control circuitry 6 to supply video signals to a video monitor 7. 
     A display memory address is held in a keyboard cursor register 8 and supplied to the display memory 5 via connections 9; after a character code from the keyboard has been entered into the display memory, the keyboard strobe signal on line 3 advances the address in the keyboard cursor register so that it holds the address for the next free character position on the display line. 
     A transmitter 10 receives character codes from the FIFO buffer 4 and transmits them in appropriately modulated form to a remote computer (not shown) via a line 11. The line 11 also forwards to a receiver 12 modulated character codes to be sent by way of acknowledgement by the remote computer. A code demodulated by the receiver 12 is passed to a comparator 13 which compares the received code with that present at the output of the FIFO buffer 4 (it being understood that, in this embodiment, the buffer 4 is not advanced until the acknowledgement has been received, so that a fresh character is not transmitted until the preceding character has been acknowledged). 
     In the event that a match is obtained, a &#34;Yes&#34; output signal is generated on a line 14. This signal serves: 
     (a) to remove the acknowledged code from the buffer 4; 
     (b) to signal to the transmitter 10 than it may read the next character from the buffer; 
     (c) (optionally) to signal confirmation to the display memory (see below); and 
     (d) to advance the address held in an acknowledgement cursor register 15. This contains a display memory address which lags that contained in the keyboard cursor register 8; it &#34;points&#34; to the display memory location containing the oldest unacknowledged character code. 
     (e) to reset a timer 16. The timer 16 is arranged to produce a timeout signal following a period set to be a safe margin in excess of the expected time between transmission of a character and reception of the corresponding acknowledgement signal. 
     If no acknowledgement is received, or alternatively the acknowledgement is received in corrupted form, the &#34;Yes&#34; signal is not produced and the timer 16 produces the timeout signal (on line 17). This is connected to an erase arrangement (described below) to remove the character code at the location indicated (via line 18) by the address contained in acknowledgement cursor register 15, and any subsequent locations, thereby erasing the corresponding characters from the screen display 7. The line 17 is also connected to a Clear input of the buffer 4 to clear any character codes queued for transmission. 
     To illustrate the operation thus described FIG. 2 shows a screen display after a user has typed the command &#34;LOGIN&#34; on the keyboard, with arrows (not part of the display) marking the positions pointed to by the keyboard cursor register and acknowledgement register assuming that the letters L and O have been acknowledged (shown here in bold type for clarity). Thus the acknowledgement cursor (arrow 50) is at the position of the `G`, the character currently awaiting acknowledgement whilst the keyboard cursor (arrow 51) is at the position immediately following the `N`--i.e. the next available screen position. (A screen cursor --is shown here--means for generating this are not shown in FIG. 1 as it is entirely conventional). The character code for G is present at the output of the buffer 4. When an acknowledgement of the G--in the form of the appropriate code--is received by the comparator 13, the &#34;Yes&#34; signal on line 14 clears the `G` from the buffer 4 (thereby making the `I` code available to the transmitter 10) and inputs this fact to the transmitter. The timer 16 is reset (for timing acknowledgement of the (`I`) and the acknowledgement cursor register 15 is advanced to point to the screen position occupied by the letter I, resulting in the display shown in FIG. 3. If, on the other hand, the `G` acknowledgement is not received within the set time period, the timer 16 produces the timeout signal on line 17 which clears the letters `GIN` from both the buffer 4 and the display memory 5. Additionally, line 17 is connected to a LOAD input of the keyboard register 8 so that it is reset (via a line 17) and loaded with the contents of the acknowledgement cursor register 15. The screen display (and cursor register contents) are then as shown in FIG. 4. 
     The erasure of the `lost` characters from the display memory 5 will now be described in more detail. 
     The requirement is to erase all characters from the location indicated by the acknowledgement cursor up to the location indicated by the keyboard cursor. The timeout signal on line 17 causes loading of an erase address register 19 with the contents of the acknowledgement cursor address 15. The output of the former register is supplied as a display memory address to the display memory 5 whilst the timeout signal also enables an AND gate 20 to pass clock pulses .O slashed. to the corresponding data input and to the erase address register to increment it for successive write cycles. The display memory&#39;s data input is hard-wired to the code for a space. This process is terminated by a comparator 21 which compares the contents of the erase address register 19 with those of the keyboard cursor register 8 and when these are equal, inhibits a third input of the AND gate 20. 
     In FIGS. 2 to 4 the letters `LO` are shown in bold type for the purposes of illustration. However, if desired, the acknowledged characters may be displayed in a different manner from those which remain unacknowledged. A facility for achieving this by means of different display echoing is provided in FIG. 1 by additional address, data and write inputs, which write only to a colour attribute portion of the addressed location and are fed with the acknowledgement cursor address, a code signifying &#34;yellow&#34; and the &#34;Yes&#34; signal respectively, so that the character being acknowledged, having initially been displayed in some other colour--perhaps green--is converted to yellow. 
     If required, the operation of clearing the buffer and unacknowledged screen characters may be signalled to a user by an audible warning such as a bell 22, as indeed may filling of the buffer 4. 
     If it is desired--for example in the case of particularly high delays in the send--acknowledge loop--not to delay transmission of each character until an acknowledgement of the preceding one has been received, then this may be achieved by a small modification to FIG. 1 in which the transmitter 10 receives character codes not from the buffer 4 but instead from an additional buffer in all respects similar to the buffer 4 except that it would not await the &#34;Yes&#34; signal on line 14 before passing further character codes to the transmitter 10. In this case the clearing operation (on both buffers) would involve erasing characters already transmitted and it would be wise to include provision for informing the remote computer that this has occurred. 
     Many of the functions of the apparatus may be implemented by a suitable sequence of programme instructions. A suitable flowchart is shown in FIGS. 5 and 6. 
     FIG. 6 shows that pressing a key generates an interrupt (101) following which the keypress is acknowledged to the user by displaying the corresponding character at the screen position indicated by the current keyboard cursor (102). The cursor is advanced to the next position (103). The character is then stored in the buffer (104), followed by a return from interrupt (105). 
     Referring to FIG. 5, assuming that the buffer contains a character to be sent (checked at 201) then the character is transmitted 202. The acknowledgement is checked at 203 and if it is received: the character at the current acknowledgement position is changed to yellow at 204, the acknowledgement cursor is advanced at 205 and the character is removed at 206 from the buffer. 
     The process then returns to repeat the process from 201 of the buffer is empty the process is suspended at 207 until a keyboard interrupt occurs. 
     If an acknowledgement is not received the loop consisting of the acknowledgement check 203 and a time check 208 times out, whereupon the buffer is cleared at 209 and the character pointed to by the acknowledgement cursor, and those to the right of it, are erased at 210. The process then awaits at (207) further keyboard input.