Patent GB-1453607-A (GB)
Title: Adaptable programmed calculator
IPC: G06F15/02
Filed: 1973-12-20
Abstract: 1453607 Calculators HEWLETT-PACKARD CO 20 Dec 1973 [26 Dec 1972] 59038/73 Heading G4A An electronic calculator comprising a keyboard unit 12 (Fig. 1), a memory unit, processing unit and output unit also has a modular keyboard section 20 including a read-only memory containing routines and sub-routines of instructions to provide a user with additional keyboard functions. As described each key of the modular keyboard which engages a receptacle 18 in the calculator is associated with a particular function or programme contained in a plug-in readonly memory 22. The output unit includes an 18 column printer 16 and an optional plug-in 15 digit light emitter diode display 14. The calculator operates on 56 bit words in serial mode. Keyboard input.-The three most significant bits of a system counter (52, Fig. 6, not shown) are decoded in a 1 out of 8 decoder to sequentially select keyboard row lines. The three least significant bits are decoded in a 1 out of 5 decoder to select a column line, the state of the counter being transferred to a key code buffer (66) if contact is made at an interception point. Two leading zero bits are added by hardware and the resulting 8 bit count is transferred to a read only memory address buffer (68). General control.-The buffer (68) forms part of a 28 bit shift register (68, 72, 70) circulating through an adder/subtractor where an address is incremented during bit times b 47 -b 54  and transmitted over an instruction address line, except for branch or jump sub-routines when the contents of a further address buffer (78) holding the address field of an instruction are substituted. Status register (72) contains 12 flag bits keeping track of events such as the use of the minus sign, decimal point, &c. Address register (70) allows one level of sub-routine call with the return address being held in the register. A 4-bit pointer (54) permits a specified digit or group of digits to be operated on. Arithmetic and register circuit (Fig. 9, not shown).-This contains seven 14 digit (10 mantissa, 1 mantissa sign, 2 exponent, 1 exponent sign), registers (A-F, M) and a serial binary-coded decimal adder/subtractor (82), the registers being arranged in two stacks (A-C, D-F), the seventh register (M) communicating with the other registers only through register (C). The registers are MOS type which are refreshed when no instruction is being executed. The holding register (84) is included in the adder circuitry to permit correction of a binary coded decimal sum if necessary. When an arithmetic and register instruction is detected (coded by 1 0 in the two least significant bits) the five most significant bits are decoded into one of 32 instructions. Two of the registers (A, B) hold display information, the first holding the digits in the proper order and the second being used as a masking register having a digit 2 inserted at the decimal point location. Read only memory circuits.-A group of eight MOS/LSI read only memory circuits (34, Fig. 3, not shown) store the sub-routines necessary for executing various functions in the calculator. Each contains 256 ten bit words, one of the circuits being enabled to read out serially an instruction when an 8 bit serial address is applied to all the circuits. Input/output processor.-This serves as a binary arithmetic logic, drives the printer unit and controls instruction flow between the arithmetic unit and read only memories (34). A LED indicates when the calculator cannot accept keyboard commands. A register (116, Fig. 22A, not shown) in input/output circuit (110, Fig. 21, not shown) converts a serial instruction to parallel form for decoding. A binary processor (140, Fig. 22B, not shown) serves as an arithmetic logic unit for performing basic binary operations on the contents of a 56 bit register (124). A 14 bit register (132) operates as a programme counter. Coded signals on two lines (C19, C20) control a printer unit, data for the unit being fed either from register (124) or from the arithmetic and register circuit to a shift register for comparison with the current position of the printer drum. Display unit.-The display unit comprises an anode driver (192, Fig. 29, not shown) and three 5 digit LED clusters (196), the extra digit being for a decimal point. When the display decoder (92) in the arithmetic and logic circuit indicates a decimal point by a signal on lines (B, E, Fig. 30, not shown) the anode driver (192) excites the decimal point and the remaining digits are displayed shifted one position. Each digit is displayed by selective energization of seven segments, an inductive circuit method being employed involving the use of the time required for current to build up in an inductor to limit current rather than using a resistor. Plug-in read-only memories.-Each plug-in unit comprises four 256 bit read-only memories, a decoder selecting one on the basis of the two most significant bits of the address. A transistor switch pulls the latch input of the I O circuit (110) down to allow data for the memories to be loaded. Programme listing is inhibited if the stored programme is proprietary, this being detected by a logic gate. Additional plug-in data storage may also be provided. Instructions.-All calculator functions are implemented by sequences of 10 bit instructions belonging to one of two sets and stored in the read-only memories (34, Fig. 3, not shown), the keyboard function block (20) which similarly comprises eight read-only memories, the optional plug-in data storage unit or input/output interface cards. Included in the first instruction set are arithmetic type instructions for clearing, interchange of the contents of the registers, comparison of the contents of the registers with each other, 0 or 1, incrementing/decrementing, complementing, shifting, adding/subtracting, and conditional branching. Further instructions control setting of the pointer, a carry flip-flop being set when the pointer is at a number indicated by an interrogate instruction. The instructions of a second set are those executed by the input/output circuit to control for example the printer. Calculator operation.-All numbers entered are stored in a first register and after depression of an equals key results are also placed in this register. The store and recall keys control transfer to and from the C register. The four basic arithmetic operations are performed by entering the first operand, pressing the operation key, entering the second operand and actuating the equals key. Negative numbers are entered by first keying in the number and then changing its sign. They are printed in red. By using left and right parenthesis operators may be grouped as in conventional mathematical notation with stacking up to five levels. A percent key used after the multiplier key gives a percentage result and a percent may be discounted by using a subtract key before a percent key. On switching on the calculator, the print and display formats are automatically set to round two mode so that two digits are indicated to the right of the decimal point. This format may be adjusted for actuating the round key followed by any number from 0 to 6. An auto decimal point key may be used to automatically place the decimal point at a specified position in each number (for example if dollars and cents are being entered). Some keys represent dual functions, distinguished by previous actuation of the shift key. For example the exponent key operated after the shift key results in the reciprocal of the contents of the entry register being calculated.