Extended Numerical
Keyboard with Structured DataEntry Capability Excerpts taken from the text of US Patent 5,623,433 


An extended numerical keyboard (10) provided with four additional numberentry keys: three structure keys (11) and one swap key (12), located next to the matrix of ten digit keys and decimal point key found in conventional numerical keyboards, able to implement a structured input number operation in a way consistent with the oral expression of the number; a decoding method to convert a symbolic representation of the verbal expression of a number into a number; and a coding method to convert a number into a symbolic representation of the verbal expression of the number. 
BACKGROUND OF THE INVENTION
Field of the Invention The present invention relates to an improvement in the numberentry keys of numerical keyboards used in electronic calculators and other number input devices with the addition of three structure keys, one swap control key and a method to enter numbers in a way consistent with the oral expression of the number. Description of the Prior Art Numerical keyboards used in electronic calculators have two categories of keys: numberentry keys and function keys. Numberentry keys are used to enter a number into an input register during a number input operation. Function keys are used to end the number input operation and start a sequence of procedures to process the number stored in the input register. All numerical keyboards have a basic set of 10 numberentry keys corresponding to the "0" to "9" digit keys. Most numerical keyboards also have a decimal point key ".". Examples of other numberentry keys are the sign key "+/" used to change the sign of the number, the delete key "del" used to delete the last digit or decimal point entered in the number, and the exponential key "EE" used to start entering the power of ten of a number expressed in scientific notation. Keyboards of some specialized electronic calculators also have multizero numberentry keys "00" and "000" to simplify the number input operation by depressing them once instead of depressing the digit key several times. All numerical keyboards used in electronic calculators have a set of seven function keys: "+", "", "x", "/", "=", "CE", and "C" to perform the four arithmetic operations by using the number stored in the input register and a number previously stored in an accumulator register as operands, display the result in the display device, clear the contents of the input register or clear the contents of all registers; conventional calculators also have memory function keys "M+", "M", "MR", and "MC" to perform operations on the memory register; specialized calculators have many other function keys to perform more complex operations including the capability to program the sequence of operations to be performed on the input register number and/or other registers included in the device. Another example of function keys are the stop "*" and enter "#" keys used in telephone keyboards to indicate the end of a number input operation used to enter an extension or pin number. As described above, most of the enhancements and special features on electronic calculators and other number input devices are related with the function keys. The conventional numberentry keys and number input procedure are always the same even in most advanced calculators and number input devices. A number is entered by depressing a sequence of digit keys and a decimal point key (if required) until a function key is depressed. An enhancement to the conventional number input procedure is described in U.S. Pat. No. 3,764,791 to Kashio (1973) where depressing a multizero numberentry key also generates a carry signal that ends one number input operation and starts a new dataentry operation until a function key is depressed; at this point the number input procedure is ended and the function is performed sequentially on all the numbers entered during the number input procedure. Nevertheless all number input procedures heretofore known have several disadvantages: (a) as shown in the Appendix included at the end of this specification, numbers are structured entities whose structures are closely related with the way the number is expressed orally; conventional number input procedures require the number to be converted by a mental operation into a decimal numeral (string of single digits) before the number input procedure can be started; (b) numbers with simple structures, for example, one million five, require depressing many times the digit numberentry keys, for example, 1000005; (c) conventional number input procedures are not consistent with the way numbers are orally expressed and, therefore, with the way the mind conceives numbers; this inconsistency increases the chances of dataentry errors; (d) enhanced conventional number input procedures based on the use of multizero keys are limited to avoid depressing the "0" digit key several times when entering numbers representing consecutive orders, for example, 1000 or 500; this holds true even in cases where the multizero key generates a carry signal to end a partial number input operation. 
SUMMARY OF THE INVENTION
It is an object of the present invention to provide an
extended numerical keyboard which, when implemented in electronic calculators or other
number input devices, would allow the use of a structured number input procedure in
addition to the conventional number input procedure. Several objects and advantages of the
present invention are: (a) to provide a way to convert the verbal expression of a number into a decimal numeral as part of the number input procedure; (b) to reduce, in many instances, the number of keystrokes required to enter a number, for example, the number one million five can be entered by two keystrokes as opposed to the seven keystrokes required by the conventional and enhanced number input procedures; (c) to provide a structured number input procedure consistent with the way numbers are orally expressed and, therefore, with the way the mind conceives numbers; (d) to enhance the functionality of the multizero numberentry keys by allowing them to enter number structures rather than just a sequence of zeroes during a dataentry operation. Still further objects and advantages will become apparent from a consideration of the ensuing description and drawings. In order to achieve the objects of the present invention, there is provided an extended numerical keyboard according to the present invention including: an extended numberentry key matrix with at least 10 digit keys "0" to "9", one "hundred" structure key "H", one "thousand" structure key "T", one "million" structure key "M", and one swap key "«"; a key buffer to store the code generated by depressing a key; a key decoder to analyze the code stored in the key buffer; a control unit to control the operation of the memory and other components of the system; a program RAM to store the sequential instructions to be executed by the control unit in correspondence with the code received from the key decoder; a set of verbal registers to store the sequence of digits and/or structure codes entered during the same number input operation; a number register comprising a set of control registers to store the value of the input number and the parameters related with number input operation; this set of control registers may contain a dataentry mode register, a dataentry error register, a level register, a number size register, a dot position register and an input number register; and a display device to display the number stored in the input register, and the status of the dataentry mode register; optionally, this device could emit a "beep" signal whenever the dataentry error register has an error status. With the above arrangement, to input a number the user can either enter the corresponding sequence of digits as in any conventional numerical keyboard or enter a combination of smaller numbers and structures in the same manner as the number is expressed orally. For example, to enter the number, "twentythree million one thousand two hundred and seven" the user can enter the sequence of digits "23001207" or a combination of smaller numbers and structures as follows: "23M1T2H7". Notice that when using the structured method, the structure keys "H", "M", and "T" are used to replace the words "hundred", "million", and "thousand" during the number input operation. Each time the user enters a keystroke, the intermediate decimal representation of the number is displayed by the device. The sequence of keystrokes illustrated in the structured procedure of above example will modify the displayed number as follows:
As in oral language, a structure pronounced immediately after pronouncing a shorter structure serves the purpose of extending the size of the shorter structure as in the case of "hundred thousand." On the other hand, the use of a structure before a number or after pronouncing a larger structure may imply a default reference to the number "one" preceding the structure (this is particularly true in Spanish language where defaults are used as a rule). For example, a reference to the number "thousand" may imply a reference to the number "one thousand" although the number "one" was not explicitly pronounced. As another example, the use of the words "five thousand hundred" may be interpreted as "five thousand one hundred." A similar approach is applied in the structured procedure. If a structure key is pressed at the beginning of the dataentry operation or immediately after pressing a larger structure key, the process defaults to the number one inserted before the corresponding structure. For example, the sequence "T6" yields the number "1006" and the sequence "5TH" yields the number "5100". Notice that because of this, the number illustrated above could also be entered as "23MT2H7". The use of the structured procedure does not preclude the use of the nonstructured procedure during the course of the same number input operation. In fact, the method described in this invention accepts nonstructured sequences of keystrokes within a structured number. In the example illustrated above, the same result could be obtained by any of the following sequences:
Although it is semantically possible to describe the decimal fraction of a number in terms of substructures like "hundredths", "thousandths", etc., it is not normal practice to use such an approach because of the added complexity in correctly pronouncing the decimal portion in structured mode. Nonetheless, a procedure could be easily implemented, using an approach similar to the one described in this invention, to enter the decimal portion in structured mode. However, the embodiment described in this patent automatically disable the structured mode when a decimal point is entered. After a decimal point is entered, the structure keys will behave as conventional multizero keys. For example, the keystrokes sequence "3H.5H1" will yield "300.5001". The sequence of the digits and/or structure symbols used to represent or enter a number in structured mode is called a verbal numeral. Verbal numeral codes are stored in the verbal registers and used by a conversion algorithm loaded in program RAM to update the number stored in the input number register. The contents of the input number register is displayed after each keystroke during the number input operation. Pressing the dot or the swap key clears the verbal registers and changes the entry mode from structured to conventional. The verbal registers are not used in conventional mode because the structure keys act as conventional multizero keys and no conversion algorithm is required. Pressing the swap key while in conventional mode before entering a decimal point activates another conversion algorithm which uses the number stored in the input number register to fillin the verbal registers with the corresponding sequence of verbal numeral codes resuming the structured dataentry mode. Pressing a function key ends the number input operation and passes thecontrol to the function processor of the device attached to the extended numerical keyboard. 
DRAWING FIGURES
FIG. 1 is a layout showing a preferred arrangement of the
numberentry keys required to implement the structured number input procedure according to
the embodiment of the present invention. FIG. 2 is a block diagram showing an arrangement of the circuits, process and storage elements required to support the numberentry keys described in FIG. 1. FIGS. 3 to 6 are flow charts for explaining the operation of the extended numerical keyboard according to the embodiment of the present invention. 
SUMMARY, RAMIFICATIONS, AND SCOPE
Numerical keyboards with structure keys able to build
numbers by using verbal numerals will give users greater flexibility in number input
operations. The structured dataentry method described in this patent simplifies the dataentry process, especially when entering large numbers with several zeroes, and has several advantages over the conventional nonstructured method: * it eliminates the need to mentally convert a number into a sequence of digits before entering the number by permitting users to enter a number in the same way as the number is orally expressed; * it allows users to simultaneously enter a number as the number is dictated by another person (as is the practice in some dataentry arrangements). This is not possible when using the traditional nonstructured procedure because the person entering the number must wait for the entire number to be dictated before being able to mentally construct the sequence of digits to be entered; * it reduces the number of keystrokes required to enter a number that has several embedded zeroes or a simple structure; * it increases the flexibility of a number input operation by providing several alternative ways to enter the same number; * it reduces the possibility of typing errors by validating the consistency of the verbal numeral before accepting a new digit or structure. For example, in a conventional dataentry operation, if a user meaning to enter the number "one hundred sixtyfive" by accident presses the digit "4" after entering the number, the user will end with number "1654" and may not even be aware of this, however, using the structured procedure, the sequence of keystrokes "H654" will yield the number "165" followed by a signal advising that the structure "hundred" cannot accept additional digits; * it allows the simultaneous use of the structured and nonstructured procedure during a number input operation without the need for the user to toggle the swap key between modes. Note that the swap key, if pressed, only toggles the mode for the current number input operation; * it allows users to enter sequences of nonstructured zeroes when a structure key is pressed after a decimal point or at any time if the mode is changed to conventional by pressing the swap key; in this mode, the structure keys behave in a way similar to the conventional multizero keys found in some specialized keyboards. 
Claim 1. A decoding method for converting
a verbal numeral into a number, wherein said verbal numeral is the symbolic representation
of the verbal numerical expression of said number, wherein said symbolical representation
comprises a sequence of decimal numerals and structure symbols representing the values
100, 1,000 and 1,000,000, wherein said sequence maintains a one to one correspondence with
the components of said verbal numerical expression; said decoding method comprising the
steps of: (a) finding the order structure of said verbal numeral, wherein said order structure is the rightmost structure symbol with the largest absolute value in said verbal numeral; (b) determining the order value of said verbal numeral, wherein said order value is the absolute quantity represented by said order structure; (c) determining the factor of said verbal numeral, wherein said factor is the number represented by the left verbal numeral, wherein said left verbal numeral is 1 or the sequence of all symbols located at the left side of said order structure when said sequence exists; (d) determining the module of said verbal numeral, wherein said module is the number represented by the right verbal numeral, wherein said right verbal numeral is zero or the sequence of all symbols located at the right side of said order structure when said sequence exists; (e) finding the value of said number by multiplying said factor by said order value, and adding to the result the value of said module. Claim 2. A coding method for converting a number larger than 99 into a verbal numeral, wherein said verbal numeral is the symbolic representation of the verbal numerical expression of said number, wherein said symbolical representation comprises a sequence of small decimal numerals and structure symbols representing the values 100, 1,000 or 1,000,000, wherein said sequence maintains a one to one correspondence with the components of said verbal numerical expression; said coding method comprising the steps of: (a) determining the order of said number, wherein said order is the absolute value of the largest of said structure symbols with values less than or equal to the value of said number; (b) determining the factor of said number, wherein said factor is the integer part of the result obtained by dividing said number by said order; (c) determining the module of said number, wherein said module is the result obtained by subtracting the product of said factor by said order from said number; (d) obtaining the verbal numeral of said factor when said factor is greater than 99 by recursively applying steps (a) through (h); (e) obtaining the verbal numeral of said module when said module is greater than 99 by recursively applying steps (a) through (h); (f) appending the symbolic representation of said order to said factor, or appending the symbolic representation of said order to the verbal numeral of said factor when said factor is greater than 99; (g) when the module is greater than zero, appending to the sequence of symbols obtained in step (f) said module, or appending to the sequence of symbols obtained in step (f) the verbal numeral of said module when said module is greater than 99. 