Patent GB-1403710-A (GB)
Title: Programmable calculator
IPC: G06F15/02
Filed: 1972-06-15
Abstract: 1403710 Calculators HEWLETT-PACKARD CO 15 June 1972 [15 June 1971] 28012/72 Heading G4A An electronic calculator (Figs. 1, 3A, 3B) includes additional plug-in memory units 92 to increase the number of functions that the calculator may perform. General features.-The calculator comprises a memory unit 46 including read/write memory 78 and a read-only memory 80, a register unit 114 including A, B, E, P and Q registers, a central processing unit 48 including a microprocessor 120 and an arithmetic logic unit operating on binary or binary coded decimal data and an input/output controller 44 connected to a keyboard 12, magnetic card reader/recorder 14, printer 20, display 18, indicator lights 19 and other peripherals 28 which may be plugged into the back of the calculator (Fig. 2, not shown) via an interface unit 30. Additional read-only memory storage modules 92 are inserted into receptacles 94 on the top of the calculator these being associated with keys 91 of the keyboard unit 12. Key operation.-Operations performed by the calculator are controlled or initiated by the keyboard input unit and/or by key codes from for example the magnetic card reading/recording unit. The calculator operates in its manual mode by pressing a "1" mode key. With a PRGM mode key depressed, key codes entered on the keyboard are stored as programme steps in the programme storage section of the read/write memory 78 under the control of the P register 126 which acts as a programme counter and is initially set to a start address by depressing a "GO TO" key followed by the desired decimal digit key. In the "run" mode, operation of "INSERT" and "DELETE" keys enables a programme step to be inserted into or deleted from a series of steps stored in the read/write memory. Operation of a "FIND" key followed by a further key results in the address of the programme step corresponding to the further key being fed to the read/write memory. When a "key log" mode key is depressed with the calculator in the manual mode the output printer operates in a first mode to print an octal numeric representation of each keyboard operation and, if an alpha read-only memory module is plugged in, a mnemonic representation is also printed. A permanent record of all entered programme steps is obtained with the printer operating in a second mode by depressing the "key log" mode key when the printer is in its programme entering mode. Operation of a "load" programme key when the calculator is in the first key log printing mode or manual operating mode results in programme steps recorded on magnetic card 16 being stored in the programme storage section of the memory 78. Conversely with a "record" programme key depressed stored data is recorded on the magnetic cards. A "pause" key may be depressed to enable partial results to be displayed during execution of a stored programme. The calculator stores all numbers and performs all calculations in floating decimal point format but data may be displayed in fixed or floating point format by operation of a "fix" key. The decimal digit keys enter data into a four word working register X which together with Y and Z registers form part of the data storage section of the read/ write memory 78, these registers being cleared on depression of a "clear" key. Data may be transferred between the registers by operating appropriate keys. In arithmetic operations the contents of the X and Y registers are used as operands with the result being stored in the Y register, the contents of the X register remaining unchanged. Interchange with four word storage registers a, b may also be carried out. The contents of for example the X register may also be stored in a storage register designated by the contents of for example the a register when an indirect key is operated. Indirect arithmetic operations may also be effected. By the additional operation of for example the plus key the contents of the X register may be added to the contents of the designated register. Multiple level indirect addressing may also be affected. Keys are provided to perform square rooting, squaring, forming the reciprocal of, truncating and inverting the contents of the X register. Programme control keys.-The programme control keys include four "IF" keys for conditioning branching, IF X < Y, IF X = Y, IF X > Y, IF flop. If the condition is met the next programme step is automatically executed. If not the next four steps are skipped. The first three IF keys result in the two numbers in the X, Y register being rounded before the test is made. A sub return key is used to transfer to a sub routine and to transfer back from it. Sub routines may be nested to a depth of 5, returns being made on a last in-first out basis. Depression of a FMT key followed by a record key results in any programme entered from the keyboard or magnetic card being stored as a secure programme which cannot be changed, edited or recorded. Definable and redefinable keys.-Keys 91 enable the calculator to be tailored to the needs of the user and operation of these keys is defined by the plug in read-only memory modules in use. An overlay 192 is associated with each module, and comprises a thin metal template fitting over the keys. With the mathematics module plugged in trigonometric functions and logs of the number in the X register may be computed and angles specified in decimal form may be converted to angles, minutes and seconds (and vice versa). The polar co-ordinates of rectangular co-ordinates X, Y in the X, Y registers may be computed and vice versa. With the statistics module plugged in the summations of variables, cross products and squares needed in a variety of statistical analysis may be computed. In particular keys in the associated overlay may be operated to define the number of variables to be used and the operation to be performed, e.g. linear regression, correlation, variance, and generation of pseudo random numbers. With the typewriting read-only memory module plugged in three basic operations are effected by in interfaced typewriter, typing of the data in the X register, typing of alphanumeric messages and control typewriter functions and listing of programmes. Numbers are typed right-justified under the control of two entered numbers, w, specifying the field length and d, specifying the number of digits to the right of the decimal point. With either the typewriter module or the alpha module plugged in, nonalphabetic keys of the keyboard may be redefined as alphabetic keys. Basic instruction set.-Every routine and sub routine of the calculator comprises a sequence of 71 basic 16 bit instructions of which 14 are memory reference group instructions (e.g. ADA mI-add the contents of memory location m to the A register and store in A), 8 are shift-rotate instructions (e.g. SAR n-shift contents of register A right n places), 16 are alter-skip group instructions (e.g. SZAn-if A is zero, skip to location n), 7 are complement and special purpose instructions (e.g. CMA-complement A), 11 are input/output instructions, (e.g. OT* <SC> HC-output A or B, holding/clearing the flag flip-flop, the SC code specifying, e.g. the number of bits to be loaded) and 16 are MAC instructions (e.g. FXA-fixed point addition). Micro processor.-The micro processor 120 includes a bipolar read-only memory comprising seven chips organized into 256 (28 bit) words. It selectively issues two micro instructions on lines 172 to input/output control 60, six micro instructions on line 174 to memory 46, six micro instructions on lines 176 to register unit 114 and 5 micro instructions to the arithmetic unit 116 on lines 178, each with a four bit clock code to clock decoder 158. The 71 basic instructions are implemented by one or more of these micro instructions. The micro processor executes a stored diagnostic routine in response to a control signal from the power supply which, if successful, results in the logic unit 116 issuing a control signal so that the micro processor enters the basic machine operating loop. Memory unit.-The read/write memory unit 78 is made up of 1024 p channel MOS chips using silicon gate techniques, 32 cells being refreshed at a time by refresh amplifiers. The read only memory is an n channel MOS matrix with 6 input buffers being used to select one of 64 vertical lines. Two 8 out of 32 select decoders choose 16 of 64 horizontal lines. Two output buffers are controlled to select 4 out of 8 selected lines to give a read out of 8 bits. Input/output control unit.-The input/output control unit comprises two printed circuit boards-"a control and system clock" board and "an input/output register and gate interface" board together with third board for connecting four external interface circuits for connection to indirectly addressable external peripheral devices. (a) Input/output control and system clock section.-If an instruction read from the memory unit into the Q register is an input/ output instruction, control is transferred by the micro processor to this section. Bits 5-8 from the Q register representing the instruction code are gated to input-output address flip-flops controlling a decoder to derive a signal on one of sixteen lines representing the starting address. Input-output instructions involving transfer of data between the I/O and CPU require 16 passes through the same state, this being effected by reloading the starting bit until a counter has been decremented to zero. (b) Input/output register and gate interface section.-This includes a 16 bit input-output register 56 which may be used in parallel in/out mode using buses 62, 64 or serial in/out mode using buses T and S, information being entered in three ways:-(a) A service request controlled by a service inhibit flip-flop in which the micro processor interrupts its current task and loads the starting address for the service routine into register 82. (b) Request from CPU for data from the peripheral and (c) Giving the input/output in