DATA ENTRY TERMINAL AND PROCESS

Abstract: A data entry terminal (10) having a display (18) and a keyboard (14) containing ten numerical keys and three function keys (16) is provided with the capability of entering alphabetical and other characters and of editing displayed data. A plurality of clusters (46-1 to 46-6) ten characters, each cluster being arranged in an array corresponding to the ten keys on the keyboard (14), is displayed. Any selected one of the clusters (46-1 to 46-6) may be highlighted e.g. by reverse video display, the highlighted cluster indicating the characters which will be entered into the terminal (10) when corresponding keys on the keybord (14) are operated. The clusters (46-6 to 46-6) are successively selected in a left-to-right or a right-to-left direction by operating a corresponding one of two function keys (16-R, 16-L). Certain ones of the characters enable editing functions and movement of a cursor (84), whereby displayed messages may be changed.

Description: DATA ENTRY TERMINAL AND PROCESS Technical Field This invention relates to data entry terminals of the kind for entering characters from a predetermined number of characters/ including a display and a keyboard having a predetermined number of character entry keys arranged in a first array and also having a predetermined number of function keys, said predetermined number of character entry keys being less than said predetermined number of characters. The invention also relates to processes of the kind for entering characters from a predetermined number of characters using a data entry terminal having a display and a keyboard having a predetermined number of character entry keys arranged in a first array and a predetermined number of function keys, with said predetermined number of character entry keys being fewer in number than said predetermined number of characters. Background Art A known data entry terminal can be utilized to enter alpha-numeric data on a numeric keyboard by utilizing one of a plurality of associated function keys along with one of the keys on the numeric keyboard to enter one of the alphanumerics. This method requires that two keys be actuated at the same time by an operator. In the English language, there are about sixty alphanumerics used in a typical application, counting 26 uppercase letters, 10 numbers, and about 24 characters for punctuation and other marks. If there are only ten data entry keys, at least six separate function keys would be required to enter any one of the sixty alphanumerics mentioned by the two- key-entry method illustrated. This method of operation requires, generally, that the numeric keys be marked in some way to indicate their multi¬ character functions. Such a system of entering data is cumbersome and is not considered "user-friendly". A user-friendly terminal is one which was designed so as to minimize the problems which a not-too- sophisticated user of the terminal would encounter. U.S. Patent No. 4,313,108 discloses an electronic calculator having a data display, twenty input keys, and a pair of mode changing keys. The input keys are associated with a liquid crystal key symbol display unit which displays key symbols. The key symbols are located beneath and are observed through the input keys or alternatively may be located near the corresponding input keys. In response to the operation of a mode changing key, a different set of key symbols is displayed. Thus, only a single set of key symbols is displayed at any given time. The known calculator provides the possibility of displaying any of three different sets of key symbols. Disclosure of the Invention It is an object of the present invention to provide a data terminal of the kind specified, having the capability of entering a relatively large number of characters using a relatively small number of keys, yet which is relatively simple for an operator to use. Therefore, according to the present invention, there is provided a data entry terminal of the kind specified, characterized by: presenting means adapted to present on said display a plurality of clusters of characters, each said cluster containing fewer than said predetermined number of characters, each said cluster of characters being presented on said display in a second array; first coupling means which couple said function keys to said presenting means to enable the selection of that one of said clusters of characters which contains the character to be entered on said data entry terminal; and second coupling means adapted to couple said character entry keys with said presenting means to enable selection of said character to be entered from the selected cluster by actuating that one of said character entry keys whose position in said first array bears a predetermined relationship to the position in said second array occupied by said character to be entered. According to another aspect of the invention, there is provided a process of the kind specified characterized by the steps of: presenting on said display a plurality of clusters of characters to be selected, with each said cluster containing fewer than said predetermined number of characters, each said cluster being presented on said display in a second array; selecting via one of said function keys that one of said clusters of characters containing the character to be entered via said terminal; and actuating that one of said character entry keys whose position in said first array bears a predetermined relationship to the position in the second array occupied by the character to be entered from said selecting step to thereby enter said last named character. One known data terminal, the NCR 5062 terminal, is a terminal which is manufactured by and currently available from the NCR Corporation of Dayton, Ohio. The NCR 5062 terminal is a consumer or customer-activated electronic funds transfer (EFT) terminal which can be located in grocery supermarkets and financial institutions, for example. This terminal provides a low-cost way of effecting financial functions such as financial account inquiries and transfers from one account to another. The NCR 5062 terminal has only a ten-key keyboard for entering numbers 0-9, and it also has only three function keys thereon, namely "clear", "cancel", and "enter". In the NCR 5062 terminal, certain alphanumeric messages are displayed on the cathode ray tube (CRT) or display of the terminal. Some of these messages are instructional, providing lead-through instructions for operating the terminal, and other messages are promotional. A data terminal according to the present invention has the advantage of permitting the changing of promotional messages, for example, on the display, by using the existing numeric keyboard and a few function keys. It will be appreciated that a data entry terminal according to the invention can be regarded as a user-friendly terminal and has the further advantage of avoiding the problem of having to actuate two keys simultaneously in order to enter a character. Brief Description of the Drawings One embodiment of the present invention will now be described by way of example with reference to the accompanying drawings, in which: Fig. 1 is a general view, in perspective, showing a data terminal according to the invention having a ten-key, numeric keyboard and three function keys, and also having a display for providing communication with a user of the terminal; Fig. 2 is a general schematic diagram, in block form, of the terminal shown in Fig. 1; Fig. 3 is a general flow chart showing the process for controlling the operation of the data terminal shown in Fig. 1; Fig. 4 is an enlarged view of " the display associated with the terminal shown in Fig. 1; this display shows clusters of characters which can be selected using a ten-key keyboard associated with the terminal; Fig. 5 is an enlarged, schematic showing of the keyboard shown in Fig. 1; Fig. 6 is a flow chart showing the general steps included in the "Perform edit loop" step shown in Fig. 3; Fig. 7 is a flow chart showing a portion of a data editing routine; Fig. 8 is a flow chart showing additional steps included in the data editing routine; Fig. 9 is a flow chart showing additional steps included in the data editing routine; Fig. 10 is a flow chart showing additional steps included in the data editing routine; and Fig. 11 is a schematic diagram showing certain data on the terminal's display during a cer¬ tain time during an editing operation. Best Mode for Carrying Out the Invention Fig. 1 is a general, perspective view of a data terminal 10. The terminal 10 includes: a magnetic card reader 12 which is used to identify the user of the terminal and the user's account number, etc.; a 10 key numeric keyboard 14 with a group of function keys 16 thereon; a display 18 such as a cathode ray tube (CRT) for.communicating with the user; and a printer 20 for printing receipts and printing on financial "passbooks," for example. The terminal 10 displayed is a customer-activated, elec¬ tronic-funds-transfer terminal of the type mentioned earlier herein; however, this invention is applicable to any terminal which has a numeric keyboard, a few function keys, and a display, and it is desired to enter alphanumerics from a ten-key keyboard. In a broader aspect, this invention is applicable to data terminals wherein it is desired to display or print a number of characters which is greater than the number of keys which exist on the associated input device or keyboard. As seen from Fig. 2, which shows the data terminal 10 in block form, the terminal 10 includes the card reader 12, keyboard 14 (which includes the function keys 16 shown in Fig. 1), display 18, and printer 20 which have been discussed in relation to Fig. 1. The operating system for the terminal 10 may reside in the read only memory (ROM) 22 or it may be loaded daily into the random access memory (RAM) 24 as is typically done. The terminal 10 also includes a processor 26 (which is typically a microprocessor) which is coupled to all the elements shown in Fig. 2 by conventional interface and control logic 28 to enable the processor 26 to execute the instructions in the operating system shown as 30 and to enable the terminal 10 to function as what is referred to as an intelligent terminal. The terminal 10 also has an interface 32 which enables the terminal 10 to communi¬ cate with a host system 34. The terminal 10 may also have an input device 36, such as a tape cassette reader, which enables certain data, instructions, etc. to be entered into the terminal, or the input device may be an input jack which couples the terminal 10 to an external cassette reader. The terminal 10 may also have an encryptor 35 which utilizes the National Bureau Standards/Data Encryption Standard (NBS/DES) for encrypting data as is typically done. Those elements which have been described so far in relation to Fig. 2 represent known elements; therefore, further discussion of these elements is not deemed necessary. Certain lead-through messages appear on the display 18 (Fig. 1) to instruct the user as to how to operate the terminal 10, and, also, certain promotion¬ al messages appear on the display 18 when the terminal is not in active use as previously mentioned. Although, when changes are to be made in the promotional messages, for example, the changes could be entered into the terminal 10 from the host system 34 or from the input device 36, for example, the present embodiment of the data terminal 10 enables such messages to be changed using the numeric keyboard 14 and the function keys 16. The data terminal 10 utilizes an operating system 30 which may be provided when the terminal is manufactured, and may utilize application programs which could be supplied on a magnetic tape, for example. Thereafter, the contents of the magnetic tape would be transferred to the terminal 10 via the input device 36; generally there are sufficient residual programs within the operating system 30 of the terminal 10 to enable the terminal 10 to handle the data received and to place the combined program in the RAM 24. As previously stated, the preferred embodiment of the data terminal 10 performs electronic funds transfer and answers inquiries with regard to check verification and credit authorization, for example. In this regard. Fig. 3 shows a general flow chart or process 40 illustrating the operation of the data terminal 10. The process 40 (Fig. 3) includes a block 42 which represents the application processing which is typically performed on the terminal as previously described. Block 44 represents the initialization procedures which are performed under program control to terminal 10. The initialization procedures referred to in block 44 (Fig. 3) include the following steps: 1. Define the array for the data to be edited. 2. Define the key string. 3. Define the key cluster and function key display data. 4. Define and initialize video attribute bytes and attribute array. Some explanation of each of the steps 1-4 in the initialization procedures referred to in block 44 appears appropriate. Step 1 refers to promotional messages which are displayed on the display 18 of the terminal. For example, if the terminal 10 is located in a grocery store, these promotional messages can be displayed when the terminal is not in active use by a customer. For example, assume that the particular message displayed is "Ground Round - $1.79", which means "Ground round steak is $1.79 per pound". If there is a price change, for example, or a change in the meat to be put on special, the manager of the grocery store in which the terminal is located may edit this message as will be described hereinafter. Of course other messages can be displayed or printed. Step 2 of the initialization procedures associated with block 44 (Fig. 3) refers to the characters in the clusters of characters which are shown on the display 18, and Fig. 4 shows an enlarged, diagrammatic view of the display 18. In the particu¬ lar embodiment described, the display 18 has a capaci¬ ty for displaying forty columns and 16 rows of data although this could be changed for different applica¬ tions. Notice that there are six clusters of charac¬ ters (which are generally identified as 46) which are displayed on the lower portion of the display 18, with these clusters being specifically identified as 46-1, 46-2, 46-3, 46-4, 46-5 and 46-6. Notice also that Fig. 5 shows an enlarged, diagrammatic, plan view of the keyboard 14 and the function keys 16 associated with the terminal 10. Notice also that the cluster 46-1 corresponds to the layout of the keys 0-9 on the keyboard 14. This facilitates the entry of data as will be described hereinafter. When looking at Fig. 4, one can see that the numbers 0 to 9 comprise the cluster of characters 46-1; the mark < and letters A through I comprise the cluster 46-2; the mark > and letters J through R comprise the cluster 46-3; etc. The particular arrangement of characters in the clusters 46 was designed to facilitate the use of certain symbols which are used for editing; this aspect will be discussed in more detail hereinafter. Step 3 of the initialization procedures associated with block 44 (Fig. 3) refers to defining the key clusters and function keys displayed in the bottom six lines or rows 11-16 of information on the display 18 (Fig. 4). A message termed "Keyboard In Effect" is displayed in row 11 of the display 18. This message means that at a particular time only one of the clusters 46 of characters shown on the display 18 will be active. To indicate what particular cluster 46 of characters is active, a high-lighting technique is used, and in the embodiment described, a "reverse video" technique is used for this purpose although a "flashing attribute" technique could also be used. This is shown in Fig. 4 by making the background of the selected or active cluster 46-1 of characters darker than the remaining five clusters which are not active. Thus, it will be appreciated that the display 18 is used to highlight or feature that cluster 46 of characters which is active on the keyboard. For example, when the cluster 46-1 of characters is highlighted, it means that when the key #5 on the keyboard 14 is actuated, the number 5 will be entered into the terminal 10. Correspondingly, when the cluster 46-2 of characters is highlighted or "active" on the display 18, it means that the character "E" will be entered into the terminal 10 when the key #5 on the keyboard 14 is actuated. For the moment, it is sufficient to state that the "clear" key, 16-R (Fig. 5), is used to select the cluster of characters by shifting the "keyboard in effect" to the right by one cluster position, and correspondingly, the "cancel" key, 16-L (Fig. 5), is used to select the cluster of characters by shifting the "keyboard in effect" to the left by one cluster position. Continuing with the example being described in which the cluster 46-2 of characters is active, if one wished to enter the letter "K" as the next charac¬ ter, one would have to make the cluster 46-3 of char¬ acters active because it contains the desired "K"; this is accomplished by actuating the clear key 16-R (Fig. 5) which "moves the active cluster to the right" or highlights -the cluster 46-3 of characters. With cluster 46-3 active, one would then actuate key #2 (Fig. 5) because it corresponds to the position which is occupied by the letter "K" in cluster 46-3. Continuing with a discussion of the initialization procedure associated with block 44 (Fig. 3), step 4 of this procedure relates to initializing video attribute bytes and the attribute array. Basically, step 4 relates to the technique employed to highlight the appropriate cluster, like 46-1. Thus, the various attribute array elements are included in the strings of data and screen address information contained in the program. The value of the elements at the time the screen data is displayed determines which parts of the string are to be "light on a dark background" or "dark on a light background". Because some displays may not be capable of producing "reverse video", characters to be highlighted could be "flashed". Having described those steps included in the initialization represented by block 44 in Fig. 3, the process 40 is continued by depicting the terminal 10 as idle, as at block 45. At this time, a manager, for example, of the store in which the terminal 10 is located, may wish to change some of the promotional messages which appear on the terminal's display 18. In order to prevent a casual user of the terminal 10 from changing the promotional messages in the example described, the person who is authorized to change the messages is given a special card which enables him to change promotional messages. The authorized person or manager, in the example described, passes the special card through the card reader 12 as represented by block 48 (Fig. 3). If the card which is read (block 50) is a typical customer's card, the process 40 proceeds to routine processing (as represented by block 52) in which the usual transaction processing is performed. If the card read is a special card, the manager must enter on the keyboard 14 an identification number (ID) or code as shown by block 54. After the manager has been identified, access to the message change procedure is gained. The first step in the procedure after access thereto is gained is to display a manager's menu as represented by block 56 in Fig. 3. If the manager wishes to exit at this point in the process 40 (block 57) he may do so and the process returns to the terminal idle status shown by block 45; however, assume that he wishes to continue. The manager's menu represents a plurality of different functions or options which can be selected by the manager. For example, the Manager's Menu may consist of items like: (1) "Transaction limit override", (5) "Enter Store Specials," and other items listed at lines 21300 through 21400 of the program listing. In the example being described, the manager may wish to select item (5) which is used for entering store specials; this is represented by block 58 in Fig. 3. The manager then actuates key #5 on the keyboard 14 to make the selection. After the selection is made, the next step (Fig. 3) in the process 40 is to set parameters for making changes as represented by block 60. The set¬ ting of parameters is effected by program steps which define the column in which the message is going to be displayed, the length of the line in the display 18, the row in which the line will be displayed, the first element of the array of data to be edited, the last element of the array of data to be edited. These parameters locate the message to be edited, for example, on the display 18. Because the editing may involve more than one entry in the message list in the program an edit message loop represented by block 61 (Fig. 3) was created. The edit message loop 62 shown as block 61 in Fig. 3 is shown in more detail in Fig. 6. Basically, the function of the edit message loop 62 is to enable one to progress through the list of selections on the manager's menu (block 56 in Fig. 3). The first step in the edit message loop 62 (Fig. 6) is to initialize a loop counter (as repre¬ sented by block 64) to the number of the first element in the list to be edited. In the example described, the first number is 0 which causes the display of the first line of data to be edited. The next step is to perform the data editing routine as represented by block 70; this editing routine will be described hereinafter. After this data edited using the data editing routine, the number 2 is added to a row counter as represented by block 68 in Fig. 6; two is added to a row counter to get the next line of data to be edited to appear two lines under the prior entry. The loop counter is then incremented by one, as represented by block 71, to get the next line of data to appear for editing. The loop counter is examined to determine whether or not the count on it is greater than the last element number in the listing to be edited as shown by block 72. In the embodiment described, the last element number is 3. If the evaluation results in a "No" at block 72, the routine proceeds to the data editing routine shown by block 66. If the evaluation (block 72) results in a "Yes", the routine 62 proceeds to reset the display screen attribute characters to the initial value as repre¬ sented by block 74. From block 74, the routine 62 returns to the opening menu as shown by block 56 of Fig. 3. The editing routine represented by block 70 in Fig. 6 is shown in Figs. 7, 8, 9, and 10. A first portion of the editing routine 70 is shown in Fig. 7, and this first portion is designated generally as 70- 1. Second, third, and fourth portions of the editing routine 70 are shown, respectively, in Figs. 8, 9, and 10, and they are designated, respectively, as 70-2, 70-3, and 70-4. Starting with the first portion 70-1 of the editing routine 70 shown in Fig. 7 and continuing with the example being described, it should be recalled that the message, "Enter Promotional Messages Below," appears on the display 18. Also, the clusters 46 of characters appear on the lower portion of the display 18 as shown in Fig. 4. From block 64 in Fig. 6, it should also be recalled that the loop counter men¬ tioned therewith is initialized or set to a "zero." This means that the first line, which is, "Today's Specials", will be displayed on the upper part of the display 18; however, before being displayed, it is taken from storage in memory (RAM 24) of the terminal 10 and is placed in a working area or buffer associated with the RAM 24. This last step mentioned is shown as block 75 in Fig. 7. The next step (block 76) relates to setting the current column to the initial column (for the lefthand margin on the display), and the next step (block 78) relates to displaying the data with trailing periods. At this point in the description being given, the following line would be shown on the display 18: **TODAY ' S SPECIALS** The trailing periods in the above line give an indica¬ tion of the character spaces yet available-as an aid in editing. A cursor is displayed at the current column and at a row below the data to be edited as indicated by block 80 in Fig. 7. In other words, the cursor is displayed at the left hand margin, indicat¬ ing the particular character location on the display 18 where editing can be effected if desired. The first portion 70-1 of the routine then looks for a keyboard entry as indicated by block 82. At this point, it should be mentioned that if one wanted to perform editing on an entry which is further down on the list of "Today's Specials", one would simply actuate the enter key 16-E several times. Each time the key 16-E is actuated at this point in the description, the next lower line of data is presented. As an example, actuating the key 16-E twice would bring to the display 18, the line of data, FRESH CORN - $.25/EAR. When a keyboard entry is made (block 82 in Fig. 7), the first portion 70-1 examines it and re¬ sponds thereto in different ways depending on the particular key which is depressed. In the embodiment described, there are ten numeric keys on the keyboard 14 and three function keys 16-R, 16-L, and 16-E as shown in Fig. 5, although there may be a greater or fewer number of function keys. As a general explanation, the clear key 16-R moves the selection of a cluster of characters (Fig. 4) one position or cluster to the right, while the cancel key 16-L (Fig. 5) moves the selection of a cluster of characters one position or cluster to the left, as viewed in Fig. 4. The enter key 16-E is used to bring up a new line for editing as previously explained. The notations for the keys 16-R, 16-L, and 16E shown in Fig. 5 are included in the bracket 79 on the display 18 (Fig. 4). And finally, the keys 0-9 of the keyboard are used to enter an alphanumeric character depending upon which cluster of the clusters 46 of keys is active. Having described, generally, how the editing routine 70 (Figs. 7-10) responds to actuation of the numeric keys and the function keys 16-R, 16-L, and 16- E (Fig. 5), it is useful to describe how one uses these keys in an editing function. In this regard, Fig. 11 shows the display 18 with the message, "GROUND ROUND - $1.79" being displayed; this corresponds to the data on line 5100 of the program listing as previously alluded to. Assume that the manager (in the example described) wants to lower the price of the ground round meat to $1.69 per pound. The display 18 is provided with row and column designations to facilitate an explanation of the editing process. In editing the entry shown in row 3 of the display 18 (Fig. 11) in the example described, the manager wants to change the $1.79 to $1.69. The manager notices that when the message in row 3 first appears on the display 18, the cluster of characters which is active is always the left-most cluster which is cluster 46-1, and the cursor 84 (Fig. 11) is located under the left-most column which is column #5 as previously described. In order to effect the desired change, the manager has to move the cursor 84 several columns to the right until it is located in column 23, under the numeral "7". The cursor 84 indicates that location on the display 18 which is active for data entry as is typically done. The cursor 84 is moved to the right (as viewed in Fig. 11) by initially making the cluster 46- 3 of characters active, and correspondingly, the cursor 84 is moved to the left by initially making the cluster 46-2 of characters active. Continuing with the example being described, to make the cluster 46-3 of characters active with the situation presented in Fig. 11, one has to actuate the clear (Shift) key 16-R two times, thereby making cluster 46-3 active, al¬ though it is not portrayed as being active in Fig. 11. Notice that cluster 46-3, in row 15 and column 14, contains the mark (>) which indicates cursor movement to the right and that cluster 46-2, in row 15 and column 9, contains the mark (<) which indicates cursor movement to the left. Row 15 also contains hyphens in columns 10 and 13 which are displayed on display 18 to make the marks (<) and (>) look more like arrows; however, these hyphens are not used in controlling the cursor movement. With the cluster 46-3 (Fig. 11) now active, and with the cursor 84 under the letter "G" of the word "Ground" on the display 18, one can now move the cursor 84 to point to the number 7 in "$1.79" to effect the change to "$1.69" in the example being described by repeatedly actuating the "0" key on the keyboard 14. One actuation of the "0" key moves the cursor 84 one column to the right in the example described. When the cursor 84 (Fig. 11) is under the number 7 in "$1.79" in the example described, the number 7 can be changed to the number 6 to make "$1.69" by simply overwriting the number 7. This is effected by using cluster 46-1 as the active cluster. The cluster 46-1 is made active by actuating the cancel (shift) key 16-L (Fig. 5) two times. There¬ after, the number 6 on the keyboard 14 is actuated to thereby overwrite "6" in the space occupied by "7" to complete the editing to produce "$1.69" in the example described. Thereafter, the enter key 16-E (Fig. 5) is actuated (block 86 in Fig. 7), and the revised or edited data is transferred from the buffer memory section of RAM 24 to its stored location therein as represented by block 88. Some additional points need clarification with regard to the editing technique just described. Notice that row 15 of the display 18 (Fig. 11) in¬ cludes a delete mark ( ) in column 19 of cluster 46- 4; it includes an insert mark ( /) in column 24 of cluster 46-5; and it also includes a clear mark ( " S, ) in column 29 of cluster 46-6. These marks in row 15 of each of the clusters 46 represent functions to be performed except for the "0" in cluster 46-1. The (<-) and (->) marks in clusters 46-2 and 46-3 move the cursor 84 as previously explained; the delete mark ( ) deletes the character positioned at the cursor 84; the insert mark ( /\) inserts a blank space at the position of the cursor; and the clear mark (\ ) erases the entire line positioned above the cursor 84. From what has been described, editing of the data on the display 18 can be accomplished by using the functions represented by the symbols in row 15 of the clusters 46-2 through 46-6 when the associated cluster is' active and the key "0" on the keyboard 14 is actuated. Notice that any of the numbers or characters included in the clusters 46-1 through 46-6 can be accessed by this technique. If one wants to enter the letter "K," for example, cluster 46-3 is made the active cluster by the technique described, and thereafter numeral "2" on the keyboard 14 is actuated. Correspondingly, if one wants to enter the "%" sign, cluster 46-5 is made the active cluster, and thereafter, numeral "5" on the keyboard 14 is actuated. The periods extending to the right of the price "$1.79" shown on Fig. 11 indicate the length of the space available for entry. Having discussed the general process by which the editing routine 70 is effected, it seems appropri¬ ate to continue with the description associated with the first portion 70-1 of the editing routine 70 starting in Fig. 7. It should be recalled that the detailed description of the first portion 70-1 was momentarily postponed at blocks 82 and 86 in Fig. 7 in order to provide a general description of the editing routine 70. Figs. 8, 9, and 10 contain additional steps of the editing routine 70, showing how it re¬ sponds to the actuation of the various numeral keys on the keyboard 14 and the function keys 16-R, 16-L, and 16-E shown in Fig. 5. Continuing with the first portion 70-1 of the editing routine 70 (Fig. 7), if the key which is actuated at block 82 is not an enter key 16-E, the first portion 70-1 proceeds to determine whether or not the actuated key is a cancel (shift) key 16-L as represented by block 90. If a cancel key (block 90) has been actuated, it means that the user wishes to "move the active cluster to the left". The next step (block 92) is to turn off the reverse video byte pointed to by the current element of the video attrib¬ ute array because a new cluster is to be "highlighted" subsequently. Earlier herein it was stated that at the beginning of the editing routine 70, the cluster 46-1 of characters is highlighted (by reverse video) as shown by the dark background around this cluster as shown in Fig. 11. Assuming that cluster 46-1 is the cluster or element which is currently active, a "yes" output would occur from the logic activity represented by block 94. The routine 70 is provided with a "wrap¬ around" technique in that if cluster 46-1 is active and the user wants cluster 46-6 (Fig. 11) to become active, he actuates the cancel (shift) key 16-L to "move the active cluster to the left using the wrap¬ around" to arrive at cluster 46-6 (Fig. 11) being active; this is effected by setting the current ele¬ ment (cluster) to 6 as represented by block 96. If the cluster of characters which is 'currently active is not equal to 1 (i.e. cluster 46-1), then the current element is decremented by 1 as represented by block 98 in Fig. 7. In effect, this action shifts sequentially the active cluster one cluster position to the left. From the steps represented by blocks 96 and 98, the first portion 70-1 of editing routine 70 proceeds to point 2 shown at the top of Fig. 8. The steps represented by blocks 100, 102, 104, 106 and 108 in Fig. 8 correspond to the steps represented by blocks 90, 92, 94, 96, and 98 in Fig. 7, except that the steps in Fig. 8 are used to select the cluster which is to be active by "moving the active cluster one position to the right" in response to an actuation of the clear (shift) key 16-R (Fig. 5). Notice that if the cluster 46-6 is active (cur¬ rent element=6) and one wishes to make cluster 46-1 active, the current element is set to one as shown by block 106 in Fig. 8. This provides wrap-around in the right direction as viewed in Fig. 11. Notice that if the clear (shift) key 16-R is not actuated (block 100), the second portion 70-2 of the routine 70 progresses to the state represented by block 110 in Fig. 8; the portion 70-2 also progresses to this state from what has been described relative to blocks 106 and 108. If the clear (shift) key 16-R or the cancel (shift) key 16-L have been actuated, it means that the active cluster of characters has been changed, and the newly-selected cluster is now high¬ lighted by "reverse video" as represented by block 112. From the state represented by block 112, the second portion 70-2 progresses to point "C" in Fig. 7. Notice, that in determining what key was actuated in a keyboard entry from block 82 in Fig. 7, through block 90 in Fig-. 7, through block 100 in Fig. 8, and through block 110 in Fig. 8, if a function key is not actuated, then what's left is one of the keys 0-9 from the keyboard 14 as represented by block 114 in Fig. 8. If one of the numeric keys 0-9 is not actuated, the second portion 70-2 progresses to point "C" in Fig. 7; actuation of any other key at this point (block 114) is ignored. If, however, one of the numeric keys 0-9 from keyboard 14 is actuated, that particular key actuated is translated into an effective character as represented by block 116 in Fig. 8. The program listing includes a line containing the string of characters which are representative of the clusters 46 of characters. This string of characters corresponds to the clusters 46 of characters shown in Fig. 4, for example. The first ten characters (0-9) in the string correspond to the first cluster 46-1 of characters, the second ten characters (<AB...I) in the string correspond to the second cluster 46-2 of characters, etc. As another example, if the second cluster 46-2 of characters is active, and the numeral key 5 on keyboard 14 is actu¬ ated, the character "E" becomes the effective charac¬ ter or the character to be entered. Notice that at this stage (block 116) in the routine 70-2, the effec¬ tive character could be one of the characters which initiates a function as shown by the characters shown in row 15 and included in the clusters of characters 46-2 through 46-6 (Fig. 4); consequently, a check is made of these characters. The first part of the check mentioned (block 118 in Fig. 8), is to determine whether or not the effective character is a clear function represented by the (\ ) character in row 15 (Fig. 4) of cluster 46-6. If it is, the second portion 70-2 of the routine 70 proceeds to point "D" in Fig. 7. It should be re¬ called that the clear ( \ ) character means that the entire line should be deleted; this is effected by setting the work area (buffer memory) to a null string as represented by block 120 in Fig. 7. If the effec¬ tive character is not a clear character (\), the second portion 70-2 proceeds to point 3 in Fig. 9 showing the third portion 70-3 of the editing routine 70. Continuing with an examination of the effective characters, the third portion 70-3 of rou¬ tine 70 (Fig. 9) determines (block 122) whether or not the effective character (EC) is an insert { f\ ) charac¬ ter. If an insert i \ ) character is determined (block 122), the third portion 70-3 proceeds to determine whether or not the message length is less than the limit as indicated at block 124. It should be re¬ called that the message length in the example de¬ scribed is 32 columns, as shown in row 3 of the dis¬ play 18 (Fig. 11). If the message length is less than the limit, a space is inserted in the message where the cursor 84 is located, as represented by block 126 (Fig. 9). If the message length is greater than the limit, a space is inserted at the position of the cursor 84 (as represented by block 128), and the right-most character of the message is deleted; as an example, for row 3 in Fig. 11, the period shown in column 32 would be deleted because the entire message in row 3 would be shifted to the right one column to enable a space to be entered in column 5 which was occupied by the letter "G" . From the steps represent¬ ed by blocks 126 and 128, the third routine 70-3 of the routine 70 proceeds to point "E" in Fig. 7. Continuing with an examination of the effective characters, the third portion 70-3 of the routine 70 (Fig. 9) determines (block 130) whether or not the effective character is a delete ( ) symbol or character. If it is, the character which is located at the cursor 84 (Fig. 11) is deleted as represented by block 132, and thereafter, the third portion 70-3 proceeds to point "E" in Fig. 7. Continuing with an examination of the effective characters, if the effective character is not a delete character (block 130), the third portion 70-3 of the routine 70 proceeds to determine whether or not it is a cursor shift (<) character (shift to left) as represented by block 134 in Fig. 9. If the effective character is a cursor shift (<) character, another evaluation (block 136) is made to determine whether or not the cursor 84 points to the start of a line on the display 18. If it does, the current column for the cursor 84 (Fig. 11) is set (block 138) to point to the end of the line (column 32 in the example described) ; this is analogous to the "wrap¬ around" technique mentioned earlier herein. If the cursor 84 does not point to the start of the line (block 136), one is subtracted from the current posi¬ tion (block 140) of the cursor 84 to shift it one column position to the left. From the steps repre¬ sented by blocks 138 and 140 in Fig. 9, the third portion 70-3 of the routine 70 proceeds to point "G" in Fig. 7. If the determination (block 134) indicates that the effective key is not a cursor shift (<) character, the third portion 70-3 proceeds to point 4 in Fig. 10. Continuing with the examination of the effective characters, if the effective character is not a cursor (<) shift character, the fourth portion 70-4 of the routine 70 (Fig. 10) proceeds to determine whether or not it is a cursor shift {>) character (shift to right) as represented by block 142. If the effective character is a cursor shift (>) character, another evaluation (block 144) is made to determine whether or not the cursor points to the end (right side) of the line on the display 18. If it does, the current column for the cursor 84 (Fig. 11) is set (block 146) to point to the start of the line; this is analogous to the "wrap around" technique already mentioned. If the cursor 84 does not point to the end of the line, "one" is added to the current column position of the cursor 84 (block 148) to shift it one position or column to the right. From the steps represented by blocks 146 and 148, the fourth portion 70-4 proceeds to point "G" in Fig. 7. Continuing with the fourth portion 70-4 of the editing routine 70, (Fig. 10), if the effective character is not a cursor shift (>) character (block 142), then i must be a non-function character like 0- 9, A-Z, etc. However, before inserting the effective character into the data string, an evaluation (block 150) is made to determine whether or not the cursor 84 points past the data. If it does, then the data string is padded on the right with space up to the cursor 84 as represented by block 152. The padding is necessary to prevent the insertion of a character into the data string when the cursor 84 points beyond the end of a data string. A BASIC programming error would be generated if such a condition were allowed to exist. If the cursor does not point past the data (block 150 in Fig. 10), the fourth portion 70-4 of the editing routine 70 proceeds to the step represented by block 154 in which the effective character is inserted into the data string. In the example being described, it means that the effective character (depending on a particular cluster of keys and numeric key) is insert¬ ed into the data string shown in row 3 of Fig. 11 and line 5100 of the program listing. The particular effective character is then displayed (block 156) at the cursor position, and "one" is added (block 158) to the current column to cause the cursor 84 to shift one column position to the right as viewed in Fig. 11. Thereafter, the cursor is displayed on the display 18 as represented by block 80 in Fig. 7. To summarize, a line of data like that shown in row 3 of Fig. 11, has just been edited, and the editing routine returns from point G in Fig. 10 to point G in Fig. 7. The editing routine 70 now waits for a keyboard entry again (block 82). Actuating the enter key 16-E at this time will bring the next line for editing on the display 18. The remaining steps in the editing routine 70 can be repeated as needed. It will be appreciated that the data entry terminal 10 has the capability of entering characters from a predetermined number of characters. In the embodiment described, there are sixty characters displayed in the clusters 46-1 through 46-6, and these sixty characters are selected using the display 18, numeric keys 0-9, and three function keys 16-R, 16-L, and 16-E. Naturally, other amounts of characters and keys could be used depending upon particular applications. The terminal 10 (Fig. 2) includes also a means 160 for presenting characters on the display 18, a first coupling means 162 which couples the function keys 16-R, 16-L, and 16-E to the presenting means 160, and a second coupling means 164 for coupling the character entry keys 0-9 of keyboard 14 with the presenting means 160. The presenting means 160, the first coupling means 162, and the second coupling means 164 are shown as separate entries in Fig. 2; however, these means involve the program stored in the RAM 24 or ROM 22. The presenting means 160 is embodied in the display 18 and the stored program, with the actual display of clusters 46 of characters being shown in Fig. 4, for example. The first coupling means 162 couples the function keys 16-R and 16-L to the presenting means 160 to enable the selecting of that one of the clus¬ ters 46 of characters which contains the character to be entered on the terminal 10. This is portrayed, for example, in the steps associated with blocks 90-96 (Fig. 7) and blocks 100-112 (Fig. 8) " . The second coupling means 164 couples the character entry keys 0-9 of keyboard 14 with the presenting means 160 to enable the selecting of a character to be entered from the cluster of -charac¬ ters, like 46-4 which cluster was selected by the function keys 16-R and 16-L. The character to be selected from the selected cluster of characters is selected by actuating that one of the entry keys 0-9 of keyboard 14 whose position on the array of the keyboard 14 corresponds to the character to be se¬ lected from the array of the cluster of characters on the display 18 as previously explained. Translating a particular key (on the keyboard 14) which is actuated into the effective character was already discussed with regard to step 116 (for example) of Fig. 8.

Claims: CLAIMS 1. A data entry terminal for entering characters from a predetermined number of characters, including a display (18) and a keyboard (14) having a predetermined number of character entry keys arranged in a first array and also having a predetermined number of function keys (16), said predetermined number of character entry keys being less than said predetermined number of characters, characterized by: presenting means (160) adapted to present on said display (18) a plurality of clusters of characters (46-1 to 46-6), each said cluster (46-1 to 46-6) containing fewer than said predetermined number of characters, each said cluster of characters being presented on said display (18) in a second array; first coupling means (162) which couple said function keys (16) to said presenting means (160) to enable the selection of that one of said clusters of characters which contains the character to be entered on said data entry terminal (10); and second coupling means (164) adapted to couple said character entry keys with said presenting means (160) to enable selection of said character to be entered from the selected cluster (46-1 to 46-6) by actuating that one of said character entry keys whose position in said first array bears a predetermined relationship to the position in said second array occupied by said character to be entered. 2. A data entry terminal according to claim 1 characterized in that said keyboard (14) is a ten key numeric keyboard and in that each of said clusters of characters (46-1 to 46-6) contains ten characters. 3. A data entry terminal according to claim 1 or claim 2, characterized in that said first and - second arrays are identical. 4. A process for entering characters from a predetermined number of characters using a data entry terminal (10) having a display (18) and a keyboard (14) having a predetermined number of character entry keys arranged in a first array and a predetermined number of function keys (16), with said predetermined number of character entry keys being fewer in number than said predetermined number of characters, characterized by the steps of: presenting on said display (18) a plurality of clusters of characters (46-1 to 46-6) to be selected, with each said cluster (46-1 to 46-6) containing fewer than said predetermined number of characters, each said cluster (46-1 to 46-6) being presented on said display (18) in a second array; selecting via one of said function keys (16) that one of said clusters of characters (46-1 to 46-6) containing the character to be entered via said terminal (10); and actuating that one of said character entry keys whose position in said first array bears a predetermined relationship to the position in the second array occupied by the character to be entered from said selecting step to thereby enter said last named character. 5. A process according to claim 4, characterized in that said first and second arrays correspond to each other and said actuating step is effected by selecting that one of said character entry keys in said first array which occupies the same position in said first array as the character to be entered occupies in said second array corresponding to the cluster (46-1 to 46-6) selected in said selecting step. 6. A process according to claim 5, characterized in that said selecting step is effected by shifting an active condition for said clusters (46- 1 to 46-6) sequentially through said clusters (46-1 to 46-6) by utilizing said one of said function keys, until the desired cluster is rendered active. 7. A process according to claim 6, characterized in that said selecting step is effected by shifting said active condition sequentially through said clusters (46-1 to 46-6) selectively in a first direction utilizing a first one of said function keys (16) or in a second direction utilizing a second one of said function keys (16). 8. A process according to claim 4, characterized in that at least one of said clusters of characters (46-1 to 46-6) includes editing characters for editing information displayed on said display (18). 9. A process according to claim 8, characterized in that a first one of said editing characters provides a function of moving a cursor to the left along a line of characters on said display (18); a second one of said editing characters provides a function of moving said cursor to the right along said line of characters on said display (18); a third one of said editing character provides a function of deleting a character shown on said line of characters on said display (18); a fourth one of said editing characters provides a function of inserting a space in said line of characters on said display (18); and a fifth one of said editing characters provides a function of clearing said line of characters on said display (18). 10. A process according to claim 9, characterized in that said presenting step is effected using at least first, second, third, fourth, fifth and sixth said clusters of characters (46-1 to 46-6) with ten numeric characters included in said first cluster and with said first, second, third, fourth and fifth editing characters being included in said second, third, fourth, fifth and sixth said clusters (46-2 to 46-6) .

Inventors: DAVIS WILLIAM N II, NASH RUTH E, DAVIS, WILLIAM, N., II, NASH, RUTH, E.
Applicants: NCR CO, NCR CORPORATION
Application year: 1985
Main classification: G06F3
IPC codes: G06F3, G06Q40, H03M11