US3757097A - Ediate arithmetic results extra bit for floating decimal control and correction of false interm - Google Patents

Ediate arithmetic results extra bit for floating decimal control and correction of false interm Download PDF

Info

Publication number
US3757097A
US3757097A US00129100A US3757097DA US3757097A US 3757097 A US3757097 A US 3757097A US 00129100 A US00129100 A US 00129100A US 3757097D A US3757097D A US 3757097DA US 3757097 A US3757097 A US 3757097A
Authority
US
United States
Prior art keywords
register
order
bit
digit
calculator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US00129100A
Inventor
H Kuijsten
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SCM Corp
Original Assignee
SCM Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SCM Corp filed Critical SCM Corp
Application granted granted Critical
Publication of US3757097A publication Critical patent/US3757097A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/02Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators

Definitions

  • FIG.10 A C PATENTED E 41975 3.757. 097
  • This invention relates to a calculating device and particularly to a very small electronic calculator, able to perform the four basic arithmetic operations of addition, subtraction, multiplication, and division.
  • An important feature of the invention is its incorporation of a special fifth bit for each digit in each of the registers.
  • This fifth bit is used for two main purposes: (1) location and indication of the decimal points and (2) for carrying and borrowing from one digit to the next.
  • the use of this fifth bit has unexpected consequences in enabling considerable simplification of the calculating circuits.
  • decimal points Another problem concerned with decimal points is that universally met in multiplication and division, where the decimal point must be properly relocated instead of merely being aligned and retained in align ment, as in addition and subtraction. Such relocation in the past has required special counters, for instance, hence the invention is directed to simplification of that problem also.
  • decimal point the means by which it is entered, the means by which it is stored, and the means by which the decimal point is properly located after multiplication and division.
  • Other important features of the invention relate to the use of the same fifth bit position for carrying and borrowing from one digit to the next and, in combination with (though not limited to) an excess-three system of binary coding, relate to correction of each modified digit after each addition or subtraction to retain the proper code structure.
  • the invention incorporates for each digit of each register five binary bits, instead of the four bits which are sufi'icient for any digit in the decimal system.
  • the fifth bit has dual use: it is used to store a l when a decimal point is to appear immediately to the right of that digit in the display; it is used for carrying and borrowing, in conjunction with an excess-three system of coding (or other binary coded decimal system), which the fifth bit makes feasible.
  • Simplified circuits can be obtained by the five-bit per digit system which would not be obtainable with a four-bit system, and the result is that, while there is an additional bit at each digit, there are actually fewer total circuit elements for doing the same number of tasks.
  • An auxiliary feature of the invention is that if the operator enters no decimal point, because the number is intended to be integer, the machine automatically enters a decimal point at the extreme right digit. This, of course, is important in alignment of integral numbers with numbers that include decimal fractions, and it is also important for obtaining the correct location of the decimal point in a product or quotient.
  • the operation is entirely electronic and may employ complex integral circuits or circuit chips to give very great miniaturization with adequate speed and complete accuracy.
  • the operation is as follows: During a first cycle of an adding or subtracting operation, the digit carry-borrow signal is recorded in the fifth bit, while the uncorrected sum or difference is stored in the normal four hits for each digit, the term uncorrected" is used because the combination of two binary coded decimal (or other) digits results in a false value in many instances, a value not corresponding to the code and thus requiring correction. During a second adder cycle, this correction of each digit is performed according to the value of the fifth bit. This scheme is exceptionally useful in combination with the excess-three code because than the digit carry and the carry out of the sum of the fourth bits are identical, but it will be obvious that it could be used with other four-bit codes, though perhaps not as simply.
  • the use of the fifth bit for carry storage in the accumulator renders that position unavailable for decimal storage; however, during an accumulation this is no problem, for the decimal value is available in the register containing the addend (or subtrahend, as the case may be), the contents of the two registers having been aligned before the addition (subtraction) could take place and so the decimal point can be dropped from one register and still be available from the other for ultimately properly pointing off the corrected sum or difference.
  • decimal point location based on entry of markers in the fifth bit of one digit position permits simple implementation of the necessary controls.
  • FIG. 1 is a top plan view of a miniature electronic calculator embodying the principles of the invention, including a keyboard and visual display (printed output could be provided, of course), the keyboard having the digit and decimal point entry keys on the left side and the function keys on the right side;
  • a keyboard and visual display printed output could be provided, of course
  • the keyboard having the digit and decimal point entry keys on the left side and the function keys on the right side;
  • FIGS. 2A,B is an explanatory diagram of a five-bit digital system of this invention, with an excess-three binary coded digital circuit applied to the four bits of one digit and with the presence or absence of a decimal point applied to the fifth bit of that digit; this figure also shows the relation between each digit key and its corresponding binary code in the excess-three system;
  • FIGS. 3A,B is a block diagram of timing signal generation for each bit of an eight digit system according to the invention, together with some particular signals used generally therein; 7
  • FIG. 4 is a simplified diagram of one register of the device, namely, the keyboard register, or entering register;
  • FIG. 5 is a flow diagram of the entry routine embodied in the present invention.
  • FIG. 6 is a generalized logic diagram of the entry of a digit or decimal point
  • FIG. 7 is a flow diagram of the addition-subtraction routine embodied in the present invention.
  • FIG. 8 is a logic diagram of the other three registers of the calculator and related control elements.
  • F IG. 9 is a logic diagram of the control elements employed in arithmetic operations according to the present invention. 7
  • FIGS. 10A,B,C is a flow diagram of the multiplication and division routines embodied in the present invention.
  • FIG. 11 is a logic diagram showing the decimal control elements for multiplication
  • FIG. 12 is a logic diagram of the elements for generation of sequence control signals utilized in the decimal controls of FIG. 11;
  • FIG. 13 is a logic diagram showing the decimal controls for division.
  • the boxes represent sequence states in which the indications actions take place under the conditions given, while a diamond represents branch points controlling the sequence path according to the truth of the indicated condition, and inverted triangles represent performance of the indicated action during transition from a given state.
  • the hemispheres represent gates, an internal dot signifying an AND gate, an internal plus signifying an OR gate, a tangential circle on the input or output side of a gate indicating signal inversion (a NOR or NAND gate) and a large arrowhead with a circle at the tip indicating an inverter.
  • Stream Selectors comprise Mutually Exclusive combinations of gates, the simplest form being a NOR gate and an AND gate having separate data inputs and a common control and their outputs connected to another NOR gate (Exclusive OR" gates also select), such that only one data input will be permitted to pass, others being blocked.
  • AND gates, marked S, of the stream selector are shown separately from the stream selector, for ease of explanation.
  • a calculator 20 embodying the principles of the invention can be quite small, not much larger than its illustration in FIG. 1.
  • Its keyboard 21 may have, at the left, a separate key 23 for each digit and a key 24 for the decimal point.
  • a key 23 for each digit
  • a key 24 for the decimal point.
  • At the right side of the keyboard 21 are seven keys 25a-g that govern functions namely, a: plug," b: minus, e: multiply, f: divide, d: equals, g: total and a clear key 25c, so that one can clear off a previous result and start on a completely new problem.
  • the basic operation is performed by (l) entering a first number one digit at a time, beginning with the leftmost digit, and (2) depressing the plus key 25a. If another number is to be entered, its digits are next keyed in successively and the plus key 25a is again depressed. After entry of the last number to be added, the total key 253 is depressed, and the result then appears on the display 22, in place of the last number entered. Though not visible to the operator, each digit entered will be stored internally in excess three binary-coded decimal form, five bits being provided in each order but the digit requiring only four of these and the fifth being available for decimal point storage or correction control during arithmetic processing, as will be seen.
  • the number (subtrahend) to be subtracted from the first one is entered, and the minus key 25b depressed.
  • Mixed addition and subtraction can continue, with the total key 25g giving the result after entry of any series of numbers.
  • this total sum may be used as a sub-total (by depressing the plus key 25a to re-enter the quantity displayed), and addition or subtraction can be continued by entering another number followed by the plus or minus key 25a (or b).
  • a first number (multiplicand) is entered, the multiply key 25e is depressed, a second number (multiplier) is then entered, and the equals key 25d is depressed to obtain the product.
  • the operation for division is similar, with the first number (dividend) being entered, the divide key 25f depressed, the second number entered, and then the quotient obtained by depressing the equals key 25d.
  • the only key on the left side of keyboard 21 which can effect an entry in the fifth bit is the decimal point key 24, depression of which changes the fifth bit of the last-entered digit from a 0 to I, if (and only if) that is the first time the decimal point key 24 has been depressed during entry of a number. If key 24 is not pressed at all, a decimal point will appear automatically at the extreme right of the last digit entered upon depression of a function key 25a, b or d-g, the clear key 25c removing the decimal point from the display 22 and showing only a zero in the least significant digit position of display 22.
  • the decimal point is displayed at the right of the digit following which the decimal" key 24 is depressed, although in the logic diagrams (which follow conventional practice), the fifth bit position occurs at the left of the bits of each digit.
  • the conventional diagram showing the bits reads from right to left with the fifth or decimal point" bit at the left and the four data bits on the right.
  • the display of the decimal point is nonetheless at the right of that digit having a 1" in its fifth bit storage position, and the arithmetical operations are carried on with the decimal point treated as being at the right of the digit after which it was entered.
  • each binary code is modified by addition of a binary three to it.
  • binary 0000 instead of zero being represented by binary 0000, it is coded as binary 001 1.
  • depressing the "zero" key 23 on the keyboard 21, for ihstance actuates both the El and E2 gates in FIG.
  • the Registers The calculator in which the invention is embodied has four internal registers, as follows:
  • K Register or keyboard register, in which all entries are made and which is the only register with contents read out to the display 22;
  • Each register is a dynamic shift register (static shift registers could also be used, obviously) and has a fixed number of digits, preferably the same number. By way of example, it will be assumed that each register has eight digits, though there may be more or fewer.
  • Y1, Y2, Y3, Y8 herein respectively refer to the first ordinal digit, the second ordinal digit, the third ordinal digit, the eighth ordinal digit of a given register Y," each digit having five bits, as previously mentioned, so YlBl means bit one of the first digit, and Y8B5 means bit 5 of the eighth digit of register Y.”
  • each bit of each digit is timed to take place successively in a bit-serial, digit-serial number.
  • bits for the first, least significant, digit are read out and re-entered in serial order, at times DlBl, DlB2, D185, and then the same bits for the next digit are read out and re-entered serially at times D231, D282, D285 and so on through all the digits to D8135, eight digits being used in the embodiment though there could be more or fewer.
  • the digit and bit time signals are developed by appropriate gating of signals from corresponding counters 32 an 28, which are timed by a clock generator 26, as shown in FIG. 3A. At D885 time all entries for one cycle have been made, and a number of things happen at that time, as will be described.
  • Timing is important in the circuit, as in all electronic calculators, and there is one bit of delay at each bit of each digit, so that D corresponds to the fifth bit of delay after initiation of a memory cycle, i.e., just before D281, and D885 corresponds to the fortieth bit of delay.
  • KN81, KNB2, KN83, KNB4, KNBS represent specifically the five bits in the Nth K register digit, and so on.
  • a bit of delay is indicated in the drawing by the Greek Letter: capital delta (A); so A means five bits of delay, and 35A means 35 bits of delay.
  • the bit delay or delta may also be defined as unit clock time delay, the output of generator 26, and this can be obtained in various ways (a two-phase system in MOS technology, for example).
  • the desk calculator uses four flip-flops (not shown, but referred to as S1 S4 and being weighted according to the 1-2-4-8 code) to distinguish in known fashion the various conditions of operation. These four flipflops are so interconnected as to identify sixteen possible states, but not all of these states are needed.
  • the desk calculator performs its operations by means of routines which involve progression through a succession of states, each identified by a particular combination of settings of the four flip-flops and each transition to a new state involving a change in the setting of one or more of the flip-flops.
  • the routines also include branches or loops and most routines share steps in a progression. Each routine'is controlled by a signal initiated upon depression of one of the keys in keyboard 21 or upon turning on power to the calculator (unnumbered switch at upper right in FIG. 1).
  • the digit 3 (0110) shifts to the second order (D2 time) of K Reg and the 2 (0101) appears at the first order or digit position (D1 time).
  • the 3 (01 I0) is shifted to the third order of K Reg
  • the 2 (0101) shifts to the second order of K Reg
  • the 6 appears in the first order of that register, coded as 1001.
  • the decimal point will appear if the key 24 is depressed or automatically when a function key 25a, b, dg is depressed (the clear key clears the display of any decimal point).
  • K Reg the series of data signals K In goes to the input of the K register 40, hereinafter referred to as K Reg, comprising an initial 35 bit dynamic shift register portion having an output tap KRS 38 for right shift of data emerging from the dynamic memory.
  • This signal and the (Enter Digit) D885 signal (described subsequently in directly to stream selectors 44,60 and thence to the input of shift register 40, K In.
  • K Out may also go (through a logic circuit 45 where 0 digits are also inserted when the left shift is accompanied by a clearance, such as in digit entry) to another five-bit dynamic shift register 46 (as will be explained later), and thence to the stream selector 44 (which has further inputs and control signals used in other routines).
  • the other registers are substantially identical to K Reg in structure, but have different stream selectors and no means for direct digit entry via keyboard 21, of course.
  • K Reg information circulated in K Reg can be shifted left and, in particular, that if depression of a digit key 23 causes a left shift in a cycle prior to entry of the bits of that digit into the buffer register 42, then all previously entered digits will be to' the left of the latest entry and the zero en- I tered into the right-most digit position of K Reg will connection with the details of digit entry) go to a gating element 41 and from there to a further five-bit dynamic shift register 42, comprising the remaining five bits of the forty needed for storage of eight five-bit digits.
  • Reglater 42 is also tapped in parallel (FIG. 6) to give appropriate data signals such as K181, K182, etc.
  • the serial output data signals may pass through an increment/decrement circuit 43. Normally, there will be neither incrementation or decrementation and the resulting K Out signal goes provide the necessary space for entry of this next digit, as expressed in the Entry Routine of FIG. 5.
  • box 19 which corresponds to the state X3 of Sequence Controls 35 of FIG. 38, that K Reg 40 and the decimal point flip-flop DP in FIG. 4) are cleared (reset) in that state on depression of any digit key 23 (FIG. 1) or the decimal point key 24 corresponding to the first digit of a new number.
  • FIG. 6 is an expansion of the elements 27, 41, and 42 inFIG. 4. Five points of entry are shown, one for each bit of the digit and one for the decimal point, together with six outputs (used also for control purposes) are shown for reference namely, K Out, K181, K182, K183, K184, and KRS (or its invert). Between K181 and K Out, there is a unit clock time delay 51 (or bit of delay). Between K181 and K182 are an AND gate 53 and a bit of delay 54. Between K182 and K183 are an AND gate 56, a bit of delay 57, and an OR gate 58. Betweek K183 and K184 are a bit of delay 61, and an OR gate 62. Preceding K184 are a bit of delay 64, a NOR gate and a NOR gate 65.
  • K183 and K184 are normally zeros when K Reg is clear, as it is during entry, so the respective AND gates 68 and 69 for entering the E3 and E4 bits of the code for the digit key depressed are enabled upon Enter Digit" at D885 time to send the proper signal to a respective OR gate 58 or 62, if the corresponding bit of the new digit is a 1.
  • the Enter Digit signal is provided upon depression of any key 23 by means of the Digit" OR gate 17 (FIG. 2A) which then gives an output supplied to a four-input AND gate 52 (FIG. 6) having the state X2, a Not Clearance signal (CLR) and the D885 signal for timing, in known fashion.
  • D885 is provided by the eight-stage digit counter 32, FIG. 3A, which advances from one stage to another at the end of each fifth bit, together with an AND gate 33 having the eighth stage and B5 as inputs.
  • the AND gate 53 receives its input from the bit delay 54 and from a NAND gate 66 which has a true output except when E1 is zero (i.e., E1 1) combined with presence of the signal (ENTER DIGIT) D885 on line 50. In the latter case, AND gate 53 will be closed and will not pass a 1 bit. Similarly, on Enter Digit and D885, when E2 is zero, a blocking input is fed to AND gate 56 through a NAND gate 67.
  • the decimal point entry is somewhat more complex. It incorpoates a decimal point flip-flop 70, the purpose of which is to make sure that only one decimal point is entered per number. Once a decimal point has been entered, no other decimal point can be or will be entered, either manually or automatically, relative to any other digit of the number. As stated previously, if no decimal point is entered at all, there will be an automatic entry at the right-most digit upon depressionof a function key, but this must be suppressed if manual entry has already occurred.
  • an AND gate 71 is fed by four signals, the first of which is the D885 signal, the second of which may be called First Active State (state X3 in FIG. 5, to be explained later), this being a circuit that is activated by the depression of any key including a digit key 23 and remains activated (i.e., in the l state) for one cycle such that preclearance, if needed, can be completed.
  • the next element feeding AND gate 71 is an OR gate 77 to which are fed two circuits, one activated by depression of any digit key 23 and the other by depression of the Clear" key 250. In order for AND gate 71 to pass a signal, this OR gate 77 must give a signal, which indicates after passage through an inverter 72 that neither a digit key not a clear key wa depressed.
  • the fourth input to AND gate 71, DP is an enabling signal obtained by inversion of the output of decimal point flip-flop 70, described below, the purpose of which is to permit entry of a fifth bit only in one digit position during entry of the related numbers.
  • F lip-flop 70 comprises a two-input NOR gate 73 which receives the output of AND gate 71 along with a feedback signal which is to be recirculated in dynamic flipflop 70.
  • NOR gate 73 Following NOR gate 73 is a bit of delay 74 and another NOR gate 75, output of this last going to a feedback line 88 (connected to NOR gate 73, as mentioned above) and to an inverter 76, which supplies the signal back to AND gate 71.
  • this decimal point flip-flop is maintained in its given state by recycling of the output on line 88.
  • the second NOR gate 75 is fed not only by the delayed output from the first NOR gate 73 of flip-flop 70, by also by an Initial Clearance signal (line 36) which operates in known fashion to clear all registers and reset all flip-flops as soon as the machine is turned on, and by another circuit described next.
  • K Reg 40 is required upon the first depression of a digit key 23 (or decimal point key 24) after depression of a function key 25a, b, or d-g.
  • Such depression of a digit key 23 signals that a new number is being entered and not only that the previous factor or result must first be cleared, but also that the decimal point flip-flop must be reset.
  • gate 75 which circuit includes OR gates 77 (previously described) and 55, fed by depression of any digit key 23 or Clear key 25c or decimal point key 24.
  • OR gates supply an AND gate 78, the output of which effects the desired clearance of K Reg 40 and resetting of flip-flop 70.
  • gate 78 In order to be activated, gate 78 requires a true signal from the first active state, X3, mentioned before, and from the inverted output side of a New Entry" flipfiop 79.
  • This flip-flop is of the Sample and Hold type and its purpose is to prevent more than one preclearance of K Reg 40 during entry of a number.
  • flip-flop 70 is set, according to the previous description, upon depression of the decimal key 24 or automatically upon depression of a function key 25a, 12, or d-g, yet only one AND gate 71 is shown as sufficient for the purpose.
  • the reason for this is that the inverted output of OR gate 77 is true whenever the state X3 is associated with a routine initiated by depression of a key other than a digit key 23 or a clear key 250, i.e., it is true on depression of a function key 25a,b,dg or the decimal point key 24.
  • flipflop 79 it will be noted that the signal for resetting the flip-flop is generated by depression of the clear key 25c, yet setting occurs on a signal through OR gate 55 coming from ORgate 77 which gives an output whenever clear key 25c is pressed. This causes no problems because the reset input dominates, as can be seen by looking at the structure of flip-flop 70, which is also a dynamic flip-flop although having a different mode of operation (Set-Rest," rather than Sample and Hold).
  • the invention employs three of the four registers previously mentioned, namely: the keyboard register, K Reg, the working register W Reg, and the accumulator register, A Reg, this last merely storing the results of additions or subtractions.
  • the W Reg is substantially identical to K Reg in structure and is the register in which sums or differences are temporarily stored, as will be seen.
  • shift register 90 is by-passed in the circulation, there will be a shift of the contents to the right by one position in each machine cycle (eight digits in the embodiment described).
  • register 92 is included in the circulation, there will be a shift of the contents to the left by one position in each machine cycle.
  • Stream selector 93 has applied to it other data and control signals, in addition to W Out. These include the A Out signal on lien 93a and signals on lines 93b,c from several unnumbered AND gates which air actually part of stream selector 93. To one AND gate is applied a signal (X,+ X and a signal from another stream selector 95, these relate to addition/subtraction and will be dealt with shortly.
  • the output of stream selector 93 goes to a further stream selector 94, the output of the latter being the W In data line connected to the input of W Reg 96.
  • Stream selector 94 chooses between the output of selector 93 or a special input W on line 101.
  • the W In signal from stream selector 94 omes selectively from a number of sources, goes to the 35 bits of delay in W Reg 96, and produces the abovementioned WRS signal that is normally passed through the five-bit delay 90, delay 90 thus comprising part of the complete W register 96, insofar as normal circulation is concerned.
  • the A Reg 131 is much simpler than either K Reg 40 or W Reg 96, as it has no provisions for either left or right shifting.
  • the input to A Reg 131 appearing in FIG. 8 shows a stream selector 130 with a W In signal under control of a signal Transfer from W Reg to A Reg as one input and also a feedback of the A Out" signal as the input for normal circulation.
  • the stream selector 130 feeds to 40 bits of delay, output of which is termed the A Out signal. This last signal is not only fed back to stream selector 130 for normal circulation, but also goes to the stream selector 93 of W Reg, to which we have previously referred.
  • Stream selector 93 operates to transfer the contents of A Reg to W Reg during the rest state Xll, so that both store the same information at all times except during the computation routines. This simplifies the structure because circuitry for transferring from W Reg to K Reg (the sole register connected to display means) already exists for other reasons (shifting in multiplication), hence special gating for control of transfer from A Reg to K Reg during a Total" operation is obviated.
  • the addition-subtraction sequence can be seen from FIG. 7, a flow diagram. From the rest state X1, the machine goes to state X3 (box 82) at the next occurrence of D885 time on depression of any key, 23, 24, or 25a-g. There a decimal point will be injected at the- K185 location, if the decimal point key 24 was the key depressed or if the key depressed was a function key 25a, b, or d-g. If there had already been a decimal point injection in the same number or if the latest key to be pressed was a digit key 23, the machine returns to state X0 to await key relase, and returns from there to state X1 when the key is released.
  • the machine goes to state X2 at box 83.
  • the state X2 first causes a trial arithmetic operation, a magnitude addition (or subtraction) for detection of potential overflows or overdrafts, as discussed subsequently.
  • the trial is performed while also determining whether the figures to be added or subtracted have been placed in alignment or are already aligned, that is, if the decimal point is in the same location in both figures. As shown in FIG. 7, it is first necessary for the decimal points of each pair of numbers to be pre-aligned before the actual arithmetic operation. The pre-alignment is accomplished in a way giving the greatest degree of accuracy.
  • the calculator goes to the X5 state, box 84.
  • W Reg is shifted one place to the left if the W8 digit is a zero.
  • K Reg is shifted one place to the right if W8 is not zero.
  • K Reg has its decimal point located to the right of that in W Reg, K Reg is shifted to the left.
  • W Reg is shifted to the right if K8 is not zero.
  • this logic automatically assures that the least significant digit is dropped, not the most significant digit, as would be true if alignment always employed a left shift.
  • an arithmetic operation is performed in each cycle of X2. Whether the operation is a magnitude addition or magnitude subtraction is dependent upon the signs of the register contents to be accumulated, and the nature of the key depressed. If a minus key 25b has been depressed, a minus flip-flop

Abstract

A floating decimal calculator with controls for decimal location and for correction of falsely-coded sums or differences developed during any of the four basic arithmetic operations, these controls being based on utilization of a fifth bit position at each digit location in the registers of the calculator for these two purposes.

Description

Ute States Patent 1 1 [111 3,757,097 Kuijsten 1 Sept. 4, 1973 EXTRA BIT FOR FLOATING DECIMAL 3,521,043 7 1970 "srliliom sos 235/170 T] N F FALSE 3,539,790 10/1970 imabu urO 235/159 (:{ESULTS 3,548,180 12/1970 Angelov et a1 235/159 3,571,582 3/1971 Kelling 235/170 [75] Inventor: Han Kuijsten, Oakland, Calif. 3,621,219 11/1971 Washizoka 235/170 [73] Ass1gnee: SCM Corporation, New York, Primary Examiner Eugene G. Botz [22] Filed: Mar. 29, 1971 Assistant ExaminerDavid H. Malzahn {2H Appl 129 100 Att0rney-Armand G. Guibert 57 ABSTRACT [52] U.S. Cl. 235/159, 235/170 l 51 1111. C1 G061 7/50, G06f 7/54 A declmal calculiitor Wlth controls for declmal 581 Field of Search 235/159, 170, 169 9 and correct")? of falsely-Coded Sums 9 dlfferences developed durmg any of the four baslc [56] References Cited arithmetic operations, these controls being based on UNITED STATES PATENTS utilization of a fifth bit position at each digit location 3 39l 391 7/1968 S S 3 5 in the registers of the calculator for these two purposes.
impson, r. 3,454,750 7/1969 Shimabukuro 235/159 36 Claims, 17 Drawing Figures u. E (n he ll 55 Q5 a (L B wt m3:
"3 a: Q m I m m m C O Y\ i a Q o 0? m 0 m Qua 2 m m \a: m X30 x u. x cnxxu INVENTOR HAN KUIJSTEN PATENTEDSEP 4815 I saw user 13 INVENTOR. KUI JSTEN umn m 5o H N 1 r 5n A wx L/ mmmo 96 A Eu w Ex mmx PAIENIEusEP'Mm sum as at 13 INVENTOR. HAN KUIJSTEN PATENTED 41915 3.757.097
sum mar 13 1/2 RS(WR,KR)- (KR,WR) /2/6 -FNB5+KNB5 0N (cps-cm) 1 (AFTER SHIFT) N0 22/ FIG. ma
' YES 7 YES N0 CF6= 1? YES 226 YES YES 228 1- K8B5 N0 x1135 1? 2 9 YES l-bCF6 FIG.10 A C PATENTED E 41975 3.757. 097
saw 13 HF' 13 INVENTOR. HAN KUI JSTEN EXTRA BIT FOR FLOATING DECIMAL CONTROL AND CORRECTION OF FALSE INTERMEDIATE ARITHMETIC RESULTS BACKGROUND OF THE INVENTION This invention relates to a calculating device and particularly to a very small electronic calculator, able to perform the four basic arithmetic operations of addition, subtraction, multiplication, and division.
While electronic calculating machines are well known, many of them are very large devices, taking up far too much room to enable their use on the top of a desk. Even the smaller electronic calculators that can fit on a desk tend to be cumbersome and quite expensive, due to the number of circuit elements required. This invention relates particularly to features that reduce circuit complexities and enable practical production of a very small desk calculator taking up less than a square foot of space and less than 2 inches thick, yet electronically operated either by batteries or by cord power, and rapid and versatile.
An important feature of the invention is its incorporation of a special fifth bit for each digit in each of the registers. This fifth bit is used for two main purposes: (1) location and indication of the decimal points and (2) for carrying and borrowing from one digit to the next. The use of this fifth bit has unexpected consequences in enabling considerable simplification of the calculating circuits.
Others have used ordinally located bits for decimal points, but heretofore when this has been done (U.S. Pat. Nos. 2,141,597; 2,853,696 2,947,748 and 3,391,391 German Pat. No. 1,112,744), the extra bit has been usable for nothing else. Also, the circuits required in conjunction with the decimal point have been either unduly complicated or less versatile than desired.
Another problem concerned with decimal points is that universally met in multiplication and division, where the decimal point must be properly relocated instead of merely being aligned and retained in align ment, as in addition and subtraction. Such relocation in the past has required special counters, for instance, hence the invention is directed to simplification of that problem also.
Thus, some of the most significant parts of the invention relate to the decimal point, the means by which it is entered, the means by which it is stored, and the means by which the decimal point is properly located after multiplication and division. Other important features of the invention relate to the use of the same fifth bit position for carrying and borrowing from one digit to the next and, in combination with (though not limited to) an excess-three system of binary coding, relate to correction of each modified digit after each addition or subtraction to retain the proper code structure.
BRIEF SUMMARY OF THE INVENTION The invention incorporates for each digit of each register five binary bits, instead of the four bits which are sufi'icient for any digit in the decimal system. The fifth bit has dual use: it is used to store a l when a decimal point is to appear immediately to the right of that digit in the display; it is used for carrying and borrowing, in conjunction with an excess-three system of coding (or other binary coded decimal system), which the fifth bit makes feasible. Simplified circuits can be obtained by the five-bit per digit system which would not be obtainable with a four-bit system, and the result is that, while there is an additional bit at each digit, there are actually fewer total circuit elements for doing the same number of tasks. An auxiliary feature of the invention is that if the operator enters no decimal point, because the number is intended to be integer, the machine automatically enters a decimal point at the extreme right digit. This, of course, is important in alignment of integral numbers with numbers that include decimal fractions, and it is also important for obtaining the correct location of the decimal point in a product or quotient. The operation is entirely electronic and may employ complex integral circuits or circuit chips to give very great miniaturization with adequate speed and complete accuracy.
There are advantages in this five-bit system during shifting operations, for the decimal is shifted with the register contents without special additional hardware and without more shifting equipment than would be necessary to shift the digits. In more conventional storage, of the floating decimal type such as that in US. Pat. No. 2,538,636, for example a separate set of bit positions contains th decimal point information as a binary code of value, and each shift has to be accompanied (either concurrently or at conclusion of all shifts) by unit incrementation or decrementation in the coded value. The use of a fifth bit position for decimal storage is known, as mentioned previously, but its implementation according to this invention yields further advantages in simplicity and, therefore, low cost.
Presence of the fifth bit position simplifies addition/- subtraction. In a binary coded decimal machine, with a bit serial, digit serial memory organization, addition introduces four bits of delay as it is necessary to wait until all four bits have been added to determine what the correction should be. As most commands exist only for one machine cycle, this delay for correction creates a problem requiring advance knowledge of the operation to be performed, and register taps to allow early connection of the adder, or delay of the command and additional register inputs to allow late storage of information. In either case, the adder circuitry is more complex, requiring two full adders and a carry flip-flop. By postponing correction to a larger register cycle, the above-mentioned complexities are not required, but a memory is required with one bit per digit capacity for storage of carry-borrow information. The fifth bit is ideally suited to serve this purpose.
Briefly, the operation is as follows: During a first cycle of an adding or subtracting operation, the digit carry-borrow signal is recorded in the fifth bit, while the uncorrected sum or difference is stored in the normal four hits for each digit, the term uncorrected" is used because the combination of two binary coded decimal (or other) digits results in a false value in many instances, a value not corresponding to the code and thus requiring correction. During a second adder cycle, this correction of each digit is performed according to the value of the fifth bit. This scheme is exceptionally useful in combination with the excess-three code because than the digit carry and the carry out of the sum of the fourth bits are identical, but it will be obvious that it could be used with other four-bit codes, though perhaps not as simply. In normal BCD, for instance, the digit carry is not always accompanied by a fourth bit carry. Thus, in the most common BCD (l-2-4-8 binary coded decimal system), 9 1 10 is coded as 1001 plus 0001 equals 1010 with no carry, the same being true for any digit pairs whose sum is 10 to 15, and gating being required to detect these particular combinations and generate a carry together with a correction. In the excess-three system, it is coded as 1100 plus 0100 equals a carry and 0000, correction to excessthree code always being necessary, but the actual process being dependent on the presence or absence of the carry.
During the add operation, the use of the fifth bit for carry storage in the accumulator renders that position unavailable for decimal storage; however, during an accumulation this is no problem, for the decimal value is available in the register containing the addend (or subtrahend, as the case may be), the contents of the two registers having been aligned before the addition (subtraction) could take place and so the decimal point can be dropped from one register and still be available from the other for ultimately properly pointing off the corrected sum or difference.
During multiplication and division, a new decimal point has to be calculated, as three registers are involved in these algorithms and only one register is needed for the correction storage, no problem is presented and decimal point location based on entry of markers in the fifth bit of one digit position permits simple implementation of the necessary controls.
BRIEF DESCRIPTION OF THE DRAWING In the drawing:
FIG. 1 is a top plan view of a miniature electronic calculator embodying the principles of the invention, including a keyboard and visual display (printed output could be provided, of course), the keyboard having the digit and decimal point entry keys on the left side and the function keys on the right side;
FIGS. 2A,B is an explanatory diagram of a five-bit digital system of this invention, with an excess-three binary coded digital circuit applied to the four bits of one digit and with the presence or absence of a decimal point applied to the fifth bit of that digit; this figure also shows the relation between each digit key and its corresponding binary code in the excess-three system;
FIGS. 3A,B is a block diagram of timing signal generation for each bit of an eight digit system according to the invention, together with some particular signals used generally therein; 7
FIG. 4 is a simplified diagram of one register of the device, namely, the keyboard register, or entering register;
FIG. 5 is a flow diagram of the entry routine embodied in the present invention;
FIG. 6 is a generalized logic diagram of the entry of a digit or decimal point;
FIG. 7 is a flow diagram of the addition-subtraction routine embodied in the present invention;
FIG. 8 is a logic diagram of the other three registers of the calculator and related control elements;
F IG. 9 is a logic diagram of the control elements employed in arithmetic operations according to the present invention; 7
FIGS. 10A,B,C is a flow diagram of the multiplication and division routines embodied in the present invention;
FIG. 11 is a logic diagram showing the decimal control elements for multiplication;
FIG. 12 is a logic diagram of the elements for generation of sequence control signals utilized in the decimal controls of FIG. 11; and
FIG. 13 is a logic diagram showing the decimal controls for division.
In the flow diagrams, the boxes represent sequence states in which the indications actions take place under the conditions given, while a diamond represents branch points controlling the sequence path according to the truth of the indicated condition, and inverted triangles represent performance of the indicated action during transition from a given state. In the logic diagrams, the hemispheres represent gates, an internal dot signifying an AND gate, an internal plus signifying an OR gate, a tangential circle on the input or output side of a gate indicating signal inversion (a NOR or NAND gate) and a large arrowhead with a circle at the tip indicating an inverter. The particular elements chosen for the embodiment described herein were selected for simplicity of explanation, it being recognized that equivalent results can be obtained by inversion of signals and use of NOR/NAND logic where it suits a designers needs under restrictions of cost, size, etc. The blocks labeled Stream Selectors comprise Mutually Exclusive combinations of gates, the simplest form being a NOR gate and an AND gate having separate data inputs and a common control and their outputs connected to another NOR gate (Exclusive OR" gates also select), such that only one data input will be permitted to pass, others being blocked. In some cases, AND gates, marked S, of the stream selector are shown separately from the stream selector, for ease of explanation.
DESCRIPTION OF A PREFERRED EMBODIMENT The Keyboard (FIG. 1)
A calculator 20 embodying the principles of the invention can be quite small, not much larger than its illustration in FIG. 1.
Its keyboard 21 may have, at the left, a separate key 23 for each digit and a key 24 for the decimal point. At the right side of the keyboard 21 are seven keys 25a-g that govern functions namely, a: plug," b: minus, e: multiply, f: divide, d: equals, g: total and a clear key 25c, so that one can clear off a previous result and start on a completely new problem.
Before going into the details of the invention, a short description of the operation of the calculator will be given as an aid to understanding the subsequent detailed material.
When adding, the basic operation is performed by (l) entering a first number one digit at a time, beginning with the leftmost digit, and (2) depressing the plus key 25a. If another number is to be entered, its digits are next keyed in successively and the plus key 25a is again depressed. After entry of the last number to be added, the total key 253 is depressed, and the result then appears on the display 22, in place of the last number entered. Though not visible to the operator, each digit entered will be stored internally in excess three binary-coded decimal form, five bits being provided in each order but the digit requiring only four of these and the fifth being available for decimal point storage or correction control during arithmetic processing, as will be seen.
For subtraction, after additive entry of the first number (minuend), the number (subtrahend) to be subtracted from the first one is entered, and the minus key 25b depressed. Mixed addition and subtraction can continue, with the total key 25g giving the result after entry of any series of numbers. As will be seen, this total sum may be used as a sub-total (by depressing the plus key 25a to re-enter the quantity displayed), and addition or subtraction can be continued by entering another number followed by the plus or minus key 25a (or b).
In multiplication, a first number (multiplicand) is entered, the multiply key 25e is depressed, a second number (multiplier) is then entered, and the equals key 25d is depressed to obtain the product. The operation for division is similar, with the first number (dividend) being entered, the divide key 25f depressed, the second number entered, and then the quotient obtained by depressing the equals key 25d.
The only key on the left side of keyboard 21 which can effect an entry in the fifth bit is the decimal point key 24, depression of which changes the fifth bit of the last-entered digit from a 0 to I, if (and only if) that is the first time the decimal point key 24 has been depressed during entry of a number. If key 24 is not pressed at all, a decimal point will appear automatically at the extreme right of the last digit entered upon depression of a function key 25a, b or d-g, the clear key 25c removing the decimal point from the display 22 and showing only a zero in the least significant digit position of display 22. Thus, if one wishes to enter the number 326 and depresses serially the 3 key, the 2 key, and the 6 key and then presses a function key 25, whether plus, minus, multiply, or divide, the depression of the function key results (in a manner to be explained subsequently) in the appearance of a decimal point at the right of the 6 in the display (a 1 being entered in the fifth bit position adjacent the four bits of the code for the digit 6).
The decimal point is displayed at the right of the digit following which the decimal" key 24 is depressed, although in the logic diagrams (which follow conventional practice), the fifth bit position occurs at the left of the bits of each digit. To repeat this point, the conventional diagram showing the bits reads from right to left with the fifth or decimal point" bit at the left and the four data bits on the right. The display of the decimal point is nonetheless at the right of that digit having a 1" in its fifth bit storage position, and the arithmetical operations are carried on with the decimal point treated as being at the right of the digit after which it was entered.
The Excess-Three System Briefly Explained (FIGS. 2A,2B)
In the device, the excess-three" system is used. The principles are well known (see, for instance, Chapter 6 of Arithmetic Operations in Digital Computers, by R. K. Richards, D. Van Nostrand Co., Inc., 1955) and shown in FIGS. 2A, 28 where the logic used for entry and the code for each digit are both shown. Basically, each binary code is modified by addition of a binary three to it. Thus, instead of zero being represented by binary 0000, it is coded as binary 001 1. In other words, depressing the "zero" key 23 on the keyboard 21, for ihstance, actuates both the El and E2 gates in FIG. 2A and enters what would ordinarily be called 3 in the binary system, but the machine will treat it as the proper entry for a zero, will display it as a zero, and will always correct to the excess-three code after any arithmetic operation. All of the digits of the decimal number are coded similary, FIG. 28, each iwth a 3 added to it, so that the machine might be said to operate from 3 to 12, or from 001 l to l for each of the four-bit digits, instead of operating from 0 to 9 or 0000 to 1001.
Since each digit is always entered with the excessthree, it is apparent that any sum of two digits will give rise to a falsely coded result and that any sum which would (as entered) produce 10 (or more), will in this excess-three binary system produce 16 (or more) and thus give a falsely coded result and a carry. Thus, instead of adding 8 and 4 to get 12, the machine is really adding 11 and 7 to get 18, with the carry going into the fifth bit, and the false result then being corrected according to the binary value in the fifth bit (as will be subsequently explained).
The Registers The calculator in which the invention is embodied has four internal registers, as follows:
1. the K Register, or keyboard register, in which all entries are made and which is the only register with contents read out to the display 22;
2. the W Register, or working register, where the results of arithmetical operations are obtained;
3. the A Register, or accumulator register, which is used to store the results obtained in the W Register in addition and subtraction, so long as the A Register capacity is not exceeded; and
4. the F Register, or factor register, which is used in conjunction with the W Register and the K Register in multiplication and Division, and which stores the multiplicand and the divisor, respectively during these operations.
Each register is a dynamic shift register (static shift registers could also be used, obviously) and has a fixed number of digits, preferably the same number. By way of example, it will be assumed that each register has eight digits, though there may be more or fewer. Broadly speaking, Y1, Y2, Y3, Y8 herein respectively refer to the first ordinal digit, the second ordinal digit, the third ordinal digit, the eighth ordinal digit of a given register Y," each digit having five bits, as previously mentioned, so YlBl means bit one of the first digit, and Y8B5 means bit 5 of the eighth digit of register Y." 1 Timing (FIG. 3A)
In the embodiment of the invention, the appearance of each bit of each digit is timed to take place successively in a bit-serial, digit-serial number. Thus, first the bits for the first, least significant, digit are read out and re-entered in serial order, at times DlBl, DlB2, D185, and then the same bits for the next digit are read out and re-entered serially at times D231, D282, D285 and so on through all the digits to D8135, eight digits being used in the embodiment though there could be more or fewer. The digit and bit time signals are developed by appropriate gating of signals from corresponding counters 32 an 28, which are timed by a clock generator 26, as shown in FIG. 3A. At D885 time all entries for one cycle have been made, and a number of things happen at that time, as will be described.
Timing is important in the circuit, as in all electronic calculators, and there is one bit of delay at each bit of each digit, so that D corresponds to the fifth bit of delay after initiation of a memory cycle, i.e., just before D281, and D885 corresponds to the fortieth bit of delay. KN81, KNB2, KN83, KNB4, KNBS represent specifically the five bits in the Nth K register digit, and so on. A bit of delay is indicated in the drawing by the Greek Letter: capital delta (A); so A means five bits of delay, and 35A means 35 bits of delay. The bit delay or delta may also be defined as unit clock time delay, the output of generator 26, and this can be obtained in various ways (a two-phase system in MOS technology, for example).
Description of Sequence Controls (FIG. 38)
The desk calculator uses four flip-flops (not shown, but referred to as S1 S4 and being weighted according to the 1-2-4-8 code) to distinguish in known fashion the various conditions of operation. These four flipflops are so interconnected as to identify sixteen possible states, but not all of these states are needed. The desk calculator performs its operations by means of routines which involve progression through a succession of states, each identified by a particular combination of settings of the four flip-flops and each transition to a new state involving a change in the setting of one or more of the flip-flops. The routines also include branches or loops and most routines share steps in a progression. Each routine'is controlled by a signal initiated upon depression of one of the keys in keyboard 21 or upon turning on power to the calculator (unnumbered switch at upper right in FIG. 1).
Entry of Digits (FIGS. 2, 4, and 6) The entry of digits via keyboard 21, as shown broadly in FIGS. 2 and 4 and more specifically in FIG. 6, is always into the K register. Each digit of a number is immediately'transferred into K Reg upon pressing-a digit key 23. Thus, a number such as 326;" displayed as in FIG. 1, will be entered as read from left to right: first, entry of the digit 3, followed by entry of the digit 2, followed by the entry of the digit 6. The digit 3 will initially be stored in the first order or digit position (D1 time) of K Reg and will be coded there in the excessthree system, that is, it will appear as 01 10. Upon entry of the digit 2, the digit 3 (0110) shifts to the second order (D2 time) of K Reg and the 2 (0101) appears at the first order or digit position (D1 time). Upon entry of the digit 6, the 3 (01 I0) is shifted to the third order of K Reg, the 2 (0101) shifts to the second order of K Reg, and the 6 appears in the first order of that register, coded as 1001. The decimal point will appear if the key 24 is depressed or automatically when a function key 25a, b, dg is depressed (the clear key clears the display of any decimal point).
Before discussing the actual entry, consider the keyboard memory circulation, shown in FIG. 4. There, the series of data signals K In goes to the input of the K register 40, hereinafter referred to as K Reg, comprising an initial 35 bit dynamic shift register portion having an output tap KRS 38 for right shift of data emerging from the dynamic memory. This signal and the (Enter Digit) D885 signal (described subsequently in directly to stream selectors 44,60 and thence to the input of shift register 40, K In. For left shift, K Out may also go (through a logic circuit 45 where 0 digits are also inserted when the left shift is accompanied by a clearance, such as in digit entry) to another five-bit dynamic shift register 46 (as will be explained later), and thence to the stream selector 44 (which has further inputs and control signals used in other routines). The other registers are substantially identical to K Reg in structure, but have different stream selectors and no means for direct digit entry via keyboard 21, of course.
From the foregoing, it will be evident that information circulated in K Reg can be shifted left and, in particular, that if depression of a digit key 23 causes a left shift in a cycle prior to entry of the bits of that digit into the buffer register 42, then all previously entered digits will be to' the left of the latest entry and the zero en- I tered into the right-most digit position of K Reg will connection with the details of digit entry) go to a gating element 41 and from there to a further five-bit dynamic shift register 42, comprising the remaining five bits of the forty needed for storage of eight five-bit digits. Reglater 42 is also tapped in parallel (FIG. 6) to give appropriate data signals such as K181, K182, etc. at D885 time for control purposes. The serial output data signals may pass through an increment/decrement circuit 43. Normally, there will be neither incrementation or decrementation and the resulting K Out signal goes provide the necessary space for entry of this next digit, as expressed in the Entry Routine of FIG. 5. There it will be noticed from box 19, which corresponds to the state X3 of Sequence Controls 35 of FIG. 38, that K Reg 40 and the decimal point flip-flop DP in FIG. 4) are cleared (reset) in that state on depression of any digit key 23 (FIG. 1) or the decimal point key 24 corresponding to the first digit of a new number. Similarly, from box 19 of FIG. 5, corresponding to state X2, it is seen that in state X2 there is first a left-shift of K Reg contents (LSKR) and then entry of the code into the K1 position after the shift, if the key depressed was a digit key 23. A New Entry flip-flop NE (79 in FIG. 6), used to mark the fact that a digit forms part of a new entry, is also set in this state provided the key depressed was one of the digit keys 23 or the decimal point key 24. If one of the function keys 2Sa-g is depressed, flipflop 79 will be reset in state X2, in preparation for detection of the first digit of the next number entered, which must be accompanied by a preclearance in state X3, as remarked above. The actual entry elements will now be discussed in greater detail with respect to FIG. 6.
Entry of a Digit (FIG. 6)
FIG. 6 is an expansion of the elements 27, 41, and 42 inFIG. 4. Five points of entry are shown, one for each bit of the digit and one for the decimal point, together with six outputs (used also for control purposes) are shown for reference namely, K Out, K181, K182, K183, K184, and KRS (or its invert). Between K181 and K Out, there is a unit clock time delay 51 (or bit of delay). Between K181 and K182 are an AND gate 53 and a bit of delay 54. Between K182 and K183 are an AND gate 56, a bit of delay 57, and an OR gate 58. Betweek K183 and K184 are a bit of delay 61, and an OR gate 62. Preceding K184 are a bit of delay 64, a NOR gate and a NOR gate 65.
It will be recalled that K183 and K184 are normally zeros when K Reg is clear, as it is during entry, so the respective AND gates 68 and 69 for entering the E3 and E4 bits of the code for the digit key depressed are enabled upon Enter Digit" at D885 time to send the proper signal to a respective OR gate 58 or 62, if the corresponding bit of the new digit is a 1. The Enter Digit signal is provided upon depression of any key 23 by means of the Digit" OR gate 17 (FIG. 2A) which then gives an output supplied to a four-input AND gate 52 (FIG. 6) having the state X2, a Not Clearance signal (CLR) and the D885 signal for timing, in known fashion. D885 is provided by the eight-stage digit counter 32, FIG. 3A, which advances from one stage to another at the end of each fifth bit, together with an AND gate 33 having the eighth stage and B5 as inputs.
It will also be recalled that there will be 1's in K181 and K132 when K Reg is clear, hence these must be passed along unless the code for the digit being entered has a in these bit positions. Accordingly, the AND gate 53 receives its input from the bit delay 54 and from a NAND gate 66 which has a true output except when E1 is zero (i.e., E1 1) combined with presence of the signal (ENTER DIGIT) D885 on line 50. In the latter case, AND gate 53 will be closed and will not pass a 1 bit. Similarly, on Enter Digit and D885, when E2 is zero, a blocking input is fed to AND gate 56 through a NAND gate 67. The need for inversion of the E1 and E2 signals explains the presence of the inverters 47 and 48 between E2 and El and their respective NAND gates 67 and 66. It might appear that the second and third bits are entered at almost the same point, but the significant thing to be noted here is the presence of the bit of delay 57 between the points of entry.
The decimal point entry is somewhat more complex. It incorpoates a decimal point flip-flop 70, the purpose of which is to make sure that only one decimal point is entered per number. Once a decimal point has been entered, no other decimal point can be or will be entered, either manually or automatically, relative to any other digit of the number. As stated previously, if no decimal point is entered at all, there will be an automatic entry at the right-most digit upon depressionof a function key, but this must be suppressed if manual entry has already occurred. As part of the decimal point entry system, an AND gate 71 is fed by four signals, the first of which is the D885 signal, the second of which may be called First Active State (state X3 in FIG. 5, to be explained later), this being a circuit that is activated by the depression of any key including a digit key 23 and remains activated (i.e., in the l state) for one cycle such that preclearance, if needed, can be completed.
. The next element feeding AND gate 71 is an OR gate 77 to which are fed two circuits, one activated by depression of any digit key 23 and the other by depression of the Clear" key 250. In order for AND gate 71 to pass a signal, this OR gate 77 must give a signal, which indicates after passage through an inverter 72 that neither a digit key not a clear key wa depressed. Finally, the fourth input to AND gate 71, DP, is an enabling signal obtained by inversion of the output of decimal point flip-flop 70, described below, the purpose of which is to permit entry of a fifth bit only in one digit position during entry of the related numbers.
When a signal passes through AND gate 71 it goes to the decimal point entry at a NOR gate 65, and also goes to the decimal point flip-flop 70, a dynamic flip-flop. F lip-flop 70 comprises a two-input NOR gate 73 which receives the output of AND gate 71 along with a feedback signal which is to be recirculated in dynamic flipflop 70. Following NOR gate 73 is a bit of delay 74 and another NOR gate 75, output of this last going to a feedback line 88 (connected to NOR gate 73, as mentioned above) and to an inverter 76, which supplies the signal back to AND gate 71. During entry of any number, this decimal point flip-flop is maintained in its given state by recycling of the output on line 88. The second NOR gate 75 is fed not only by the delayed output from the first NOR gate 73 of flip-flop 70, by also by an Initial Clearance signal (line 36) which operates in known fashion to clear all registers and reset all flip-flops as soon as the machine is turned on, and by another circuit described next.
As mentioned in connection with FIG. 5, a preclearance of K Reg 40 is required upon the first depression of a digit key 23 (or decimal point key 24) after depression of a function key 25a, b, or d-g. Such depression of a digit key 23 signals that a new number is being entered and not only that the previous factor or result must first be cleared, but also that the decimal point flip-flop must be reset. This is accomplished through the other circuit connected to gate 75, which circuit includes OR gates 77 (previously described) and 55, fed by depression of any digit key 23 or Clear key 25c or decimal point key 24. These OR gates supply an AND gate 78, the output of which effects the desired clearance of K Reg 40 and resetting of flip-flop 70. In order to be activated, gate 78 requires a true signal from the first active state, X3, mentioned before, and from the inverted output side of a New Entry" flipfiop 79. This flip-flop is of the Sample and Hold type and its purpose is to prevent more than one preclearance of K Reg 40 during entry of a number. Subsequent depression of keys 23 (or 24, if not depressed initially) for the second and further digit entries must not be accompanied by a clearance of K Reg, obviously, so this is prevented in known fashion by setting flip-flop 79 upon entry of the first digit of the number and resetting it upon depression of a function key 25a, b, or d-g, preclearance being performed in state X3 and being permitted only when flip-flop 79 is in reset condition and a key 23,24 is depressed, as shown by the inptus to AND gate 78.
Returning to consideration of flip-flops 70 and 79, it should be noted that there are some points which need explanation with respect to setting of the former and resetting of the latter. Flip-flop 70 is set, according to the previous description, upon depression of the decimal key 24 or automatically upon depression of a function key 25a, 12, or d-g, yet only one AND gate 71 is shown as sufficient for the purpose. The reason for this is that the inverted output of OR gate 77 is true whenever the state X3 is associated with a routine initiated by depression of a key other than a digit key 23 or a clear key 250, i.e., it is true on depression of a function key 25a,b,dg or the decimal point key 24. As to flipflop 79, it will be noted that the signal for resetting the flip-flop is generated by depression of the clear key 25c, yet setting occurs on a signal through OR gate 55 coming from ORgate 77 which gives an output whenever clear key 25c is pressed. This causes no problems because the reset input dominates, as can be seen by looking at the structure of flip-flop 70, which is also a dynamic flip-flop although having a different mode of operation (Set-Rest," rather than Sample and Hold).
The Addition and Subtraction Routines (FIG. 7)
Before beginning the discussion of the routines, brief consideration of further elements involved may be helpful.
In the operations of addition and subtraction the invention employs three of the four registers previously mentioned, namely: the keyboard register, K Reg, the working register W Reg, and the accumulator register, A Reg, this last merely storing the results of additions or subtractions. The W Reg is substantially identical to K Reg in structure and is the register in which sums or differences are temporarily stored, as will be seen.
A W right shift output, WRS, obtained on line 98 (FIG. 8) from a 35-bit delay shift register forming the main part of W Reg 96, passes through a five-bit shift register 90 to give the normal output, W Out on line 97. This last then goes alternatively either directly to a stream selector 93 or through a further five-bit shift register 92 for a left shift, if that should be needed. Clearly, if shift register 90 is by-passed in the circulation, there will be a shift of the contents to the right by one position in each machine cycle (eight digits in the embodiment described). Similarly, if register 92 is included in the circulation, there will be a shift of the contents to the left by one position in each machine cycle. The position vacated by the shift in either direction has a zero inserted in it through appropriate gating in known fashion. Stream selector 93 has applied to it other data and control signals, in addition to W Out. These include the A Out signal on lien 93a and signals on lines 93b,c from several unnumbered AND gates which air actually part of stream selector 93. To one AND gate is applied a signal (X,+ X and a signal from another stream selector 95, these relate to addition/subtraction and will be dealt with shortly. The output of stream selector 93 goes to a further stream selector 94, the output of the latter being the W In data line connected to the input of W Reg 96. Stream selector 94 chooses between the output of selector 93 or a special input W on line 101. Thus it is evident that the W In signal from stream selector 94 omes selectively from a number of sources, goes to the 35 bits of delay in W Reg 96, and produces the abovementioned WRS signal that is normally passed through the five-bit delay 90, delay 90 thus comprising part of the complete W register 96, insofar as normal circulation is concerned.
The A Reg 131 is much simpler than either K Reg 40 or W Reg 96, as it has no provisions for either left or right shifting. The input to A Reg 131 appearing in FIG. 8 shows a stream selector 130 with a W In signal under control of a signal Transfer from W Reg to A Reg as one input and also a feedback of the A Out" signal as the input for normal circulation. The stream selector 130 feeds to 40 bits of delay, output of which is termed the A Out signal. This last signal is not only fed back to stream selector 130 for normal circulation, but also goes to the stream selector 93 of W Reg, to which we have previously referred. Stream selector 93 operates to transfer the contents of A Reg to W Reg during the rest state Xll, so that both store the same information at all times except during the computation routines. This simplifies the structure because circuitry for transferring from W Reg to K Reg (the sole register connected to display means) already exists for other reasons (shifting in multiplication), hence special gating for control of transfer from A Reg to K Reg during a Total" operation is obviated.
The addition-subtraction sequence can be seen from FIG. 7, a flow diagram. From the rest state X1, the machine goes to state X3 (box 82) at the next occurrence of D885 time on depression of any key, 23, 24, or 25a-g. There a decimal point will be injected at the- K185 location, if the decimal point key 24 was the key depressed or if the key depressed was a function key 25a, b, or d-g. If there had already been a decimal point injection in the same number or if the latest key to be pressed was a digit key 23, the machine returns to state X0 to await key relase, and returns from there to state X1 when the key is released. If the latest key to be pressed is a plus key 25a or a minus key 25b, then once the decimal entry has been taken care of, (meaning, either that a new decimal point is injected at the far right, or that the machine has found that a decimal point had already been injected in that number previously by decimal point key depression) the machine goes to state X2 at box 83.
In this routine (addition-subtraction), the state X2 first causes a trial arithmetic operation, a magnitude addition (or subtraction) for detection of potential overflows or overdrafts, as discussed subsequently. The trial is performed while also determining whether the figures to be added or subtracted have been placed in alignment or are already aligned, that is, if the decimal point is in the same location in both figures. As shown in FIG. 7, it is first necessary for the decimal points of each pair of numbers to be pre-aligned before the actual arithmetic operation. The pre-alignment is accomplished in a way giving the greatest degree of accuracy. The rule followed by this machine is (l) find out whether any shift is necessary, i.e., is DK DW?; (2) if a shift is necessary, shift the smaller number to the left unless doing so would lose a significant digit, that is, if there is a digit other than zero in the left-most digital position so that a shift would push it out of the machine; and (3) if it is necessary to shift and a left shift would lose a significant digit of the number that would oridinarily be shifted left, then shift the other number to the right.
lf,however, the decimal points are not aligned, then the calculator goes to the X5 state, box 84. At that point, if the decimal point in W Reg is to the right of the decimal point in K Reg, W Reg is shifted one place to the left if the W8 digit is a zero. Whereas, K Reg is shifted one place to the right if W8 is not zero. On the other hand, if K Reg has its decimal point located to the right of that in W Reg, K Reg is shifted to the left. Whereas, W Reg is shifted to the right if K8 is not zero.
In other words, this logic automatically assures that the least significant digit is dropped, not the most significant digit, as would be true if alignment always employed a left shift.
There is, of course, the possibility that in both registers the 8th positions (K8 and W8) are occupied after alignment. If this is true, then as shown by line 89 if the sum developed in a trial addition during X2 results in a carry beyond. W8, there is no digit position in which the 1" could be stored; so when such a carry is detected the routine goes back to the shifting box 84 and both numbers are shifted one place to the right, unless K1B5 l, i.e., the decimal point in K Reg 40 is in the least significant digit position. In such case, the flipflop OVF is set and the machine goes back to state X0. It is a purpose of the trial addition to detect the overflow and cause the above-described right shift before the actual addition is performed (in state X4, as described subsequently).
As mentioned earlier, an arithmetic operation is performed in each cycle of X2. Whether the operation is a magnitude addition or magnitude subtraction is dependent upon the signs of the register contents to be accumulated, and the nature of the key depressed. If a minus key 25b has been depressed, a minus flip-flop

Claims (36)

1. A calculator of the digital type including in combination: a pair of data registers, each having a plurality of orders for storing digital data, each order having n+1 bits, n of said bits as a group expressing a digit and including a least significant bit and a most significant bit, means for storing a radix point in each register as a predetermined binary value in the remaining bit of the order in which there is stored the digit associated with said radix point, operation initiating means. means for radix point alignment of the data in said pair of registers in response to said initiating means, means for performing arithmetic operations on the data in said pair of registers in response to said initiating means and subsequent to said alignment, said operations involving interdigit carries or borrows and the results of said operations being stored in a particular one of said pair of registers in the form of false n-bit groups for each result digit, and said arithmetic operations means comprise means for performing said interdigit carries or borrows through the remaining bit of each order, said carry or borrow being effective between the most significant bit of the digit in a given order and the least significant bit of the digit in the next higher order, and for recording said carry or borrow as a binary value in said remaining bit of said given order, means for correction if each false n-bit group after a said arithmertic operation, according to the value in the remaining bit of each order in said particular register, and means responsive to the remaining bits in each order of the other of said pair of registers for recording identical values in the remaining bits of said particular register after correction of said false n-bit groups.
2. A calculator as defined in claim 1 wherein said remaining bit is the most significant in a sequence of (n+1) bits.
3. A calculator as defined in claim 2, wherein said calculator is of the binary-coded decimal type, each order of said registers comprising five binary bits, four bits of which are used to express a decimal digit; said radix point being a decimal point stored as a ''''1'''' in the fifth bit of said order storing the associated digit; and said binary value for an interdigit carry or borrow being recorded over said stored decimal point in response to occurrence of said carry or borrow in the order where said decimal point is stored.
4. A calculator as defined in claim 3, wherein the binary-coded digits are stored in excess-three code, and said correction means comprise means enabled during an addition; And operable to add a three to a false bit group if there was an interdigit carry and for subtracting a three if there was not.
5. A calculator as defined in claim 3, wherein the binary-coded digits are stored in excess-three code, and said correction means comprise means enabled during subtraction and operable to subtract a three from a false bit group if there was an intergidit borrow and for adding a three if there was not.
6. A calculator as defined in claim 3, wherein said means for performing said interdigit carries or borrows further include means enabled during an addition and storing a particular one of the binary values in said fifth bit of a respective order if there was a carry from that order, and the other of said binary values if there was not; and means enabled during subtraction and storing the other of said binary values in said fifth bit of a respective order if there was a borrow propagated from that order, and the particular one of the binary values if there was not.
7. A calculator as defined in claim 3, wherein said means for performing said interdigit carries or borrows further include means enabled during an addition and storing a ''''1'''' in said fifth bit of a respective order if there was a carry in that order, and a ''''0'''' if there was not; and means enabled during subtraction and storing a ''''0'''' progated from said fifth bit of a respective order if there was a borrow in that order, and a 1'''' if there was not.
8. A calculator as defined in claim 3, wherein said operation initiating means include a set of manually depressible function keys and said radix point storing means include a manually depressible decimal point key, and further including means for automatically entering a decimal point at the order storing the rightmost digit of an entered number upon depression of a function key of said set, and means disabling said automatic decimal point entry means upon depression of said decimal point key prior to depression of a function key of said set.
9. A calculator of the binary-coded digital type including in combination: a set of registers for storing coded digits in a plurality of orders, each order having five binary bits, four of said bits being used to express a coded digit, means for entering coded digits in one of said registers, means for entering a radix point in said one register following entry of any one said digit of a number, said radix point being entered as a ''''1'''' in the remaining bit of the order wherein said one digit is stored, means for performing arithmetic operations on digits of said one register, said operations involving intergit carri or borrows and the result digits obtained from said operation being stored in an other of said registers in the form of f four-bit codes, and said arithmetic operations means comprise means for performing said interdigit carries or borrows through the remaining bit of each order, said carry or borrow being effective between the most significant bit of the digit code in any given order and the least significant bit of the digit code in the next higher order, and a binary value being recorded in said remaining bit of the given order as an indication of each carry or borrow, means for correction of each false code after a said arithmetic operation, according to the binary value in the remaining bit of each order in said other register, and means responsive to the radix point information in the remaining bits in the orders of said one register for storing a radix point relative to said result digit codes in said other register subsequent to correction of the false codes.
10. A calculator as defined in claim 9, wherein each binary code identifies a decimal digit, said remaining bit is the fifth bit of each order, and the radix point is a decimal point stored as a 1'''' in the fifth bit of the order storing said one digit, and further including means effective subsequent to sAid correction and said storing of a radix point relative to said result digit codes, and responsive to the data in said other register for displaying the result digits with said decimal point properly located.
11. A calculator as defined in claim 9, wherein the binary-coded digits are stored in excess-three code, and said correction means comprise means enabled during an addition and operable to add a three to a said false code if there was an interdigit carry and for subtracting a three if there was not.
12. A calculator as defined in claim 9, wherein the binary-coded digits are stored in excess-three code, and said correction means comprise means enabled during a subtraction and operable to subtract a three from a said false code if there was an interdigit borrow and for adding a three if there was not.
13. A calculator as defined in claim 9, wherein said means for performing said interdigit carries or borrows further include means enabled during an addition and storing a particular one of the binary values in said fifth bit of a respective order if there was a carry from that order, and the other of said binary values if there was not; and means enabled during subtraction and storing the other of the binary values in said fifth bit of a respective order if there was a borrow propagated from that order, and said particular one of the binary values if there was not.
14. A calculator as defined in claim 9, wherein said means for performing said interdigit carries or borrows further include means enabled during an addition and storing a ''''1'''' in said fifth bit of a respective order if there was a carry from that order, and a ''''0'''' if there was not; and means enabled during subtraction and storing a ''''0'''' in said fifth bit of a respective order if there was a borrow propagated from that order, and a ''''1'''' if there was not.
15. A calculator of the digital type including in combination: two factor registers and a working register, each said register having a plurality of orders for storing digital data, each order having (n+1) bits, n of said bits as a group expressing a digit, means for entering said digital data in said registers, means for storing a radix point in each register as a predetermined binary value in the remaining bit of the order in which there is stored the digit associated with said radix point, means for performing a multiplication of the data in a first of said factor registers by the data in the second of said factor registers, partial products being developed in said working register, means to transfer said partial products to said first factor register during said multiplication, first means sensing values in the remaining bits in said first factor register to determine the location of said radix point relative to the data therein, second sensing means responsive to the location of the radix point in the second factor register, means responsive to said first sensing means and operable to enter said predetermined binary value as a marker in the remaining bit of a selected order of said first factor register, said order selection being controlled by said second sensing means, and means responsive to the sensing of said marker by said first sensing means and operable to store said predetermined binary value in a particular order of said first factor register, to place thereby a true radix point in proper relation to said transferred partial product.
16. A calculator as defined in claim 15, wherein said multiplication means include means for shifting the contents of said working register and first factor register, and said first sensing means comprise gating which passes a first signal upon sensing that said predetermined value has been shifted into the remaining bit of a given order of the first factor register, said marker entry means being responsive to said first signal and effective to enter said marker in the remaining bit of An order identical to that order wherein a radix point is stored in said second factor register; said gating passes a second signal when the marker is in turn shifted into the remaining bit of the given order; and said true radix point storing means is responsive to the second signal.
17. A calculator as defined in claim 16, wherein said given order is the least significant order of the first factor register and said particular order is the most significant order of that register.
18. A calculator as defined in claim 15, and further including means to erase said marker in response to sensing thereof by said first sensing means.
19. A calculator of the binary-coded decimal type including in combination: a set of digit keys, a decimal point key, a multiplication key, and an ''''equals'''' key, a keyboard register, a working register and a factor register, each of said registers having first and second ends and containing a plurality of orders for storing digits, each order having five binary bits, four bits of which are used to express a decimal coded digit, means responsive to a pressed digit key to enter the corresponding binary code in the keyboard register, means for entering a decimal point in the keyboard register upon pressing the decimal point key subsequent to entry of any one digit of a number, the decimal point being entered as a predetermined binary value in the fifth bit of the keyboard register order where said one digit is stored, means for transferring a first-entered number from the keyboard register to the factor register upon depression of the multiplication key, whereby a second number can be entered in the keyboard register while the first-entered number is stored in the factor register, means for coupling the working register as an extension to the keyboard register, means for performing a multiplication upon depression of the ''''equals'''' key, comprising successive additions of the factor register contents to the working register contents according to the value of the digit at one extreme in the keyboard register, then shifting the contents of the coupled working and keyboard registers by one order so that the next-to-extreme digit near said first end of the keyboard register becomes a new extreme digit of the keyboard register, and the corresponding extreme digit in the working register enters an order at said second end of the keyboard register; and again performing additions of the factor register to the working register, as before, governed by the value of the new extreme digit of the keyboard register, means for detection of shifting the fifth bit binary value out of the keyboard register, means for inserting said predetermined binary value into the keyboard register as a marker at the fifth bit of the order corresponding to the location of the decimal point in the factor register, said insertion occurring in response to detection of said shifting out, and means for inserting said binary value in the fifth bit of a particular position of the keyboard register as a true decimal point relative to the product, in response to detection of the shifting out of the marker binary value.
20. A calculator as defined in claim 19, wherein said first and second ends are right and left ends, respectively, and said additions depend on the value of the digit at the extreme right in said keyboard register, said shifting occurs to the right, said marker insertion is made when the original keyboard register decimal point has just been shifted out to the right, and said particular position for insertion of the true decimal point is the extreme left digit poisition of the keyboard register.
21. A calculator of the binary-coded decimal type including in combination: a set of digit keys, a decimal point key, a division key, and an ''''equals'''' key, a keyboard register, a working register and a factor register, each of said registers having right and left ends and containing a plurality of dIgit storage orders, each order having five binary bits, four bits of which are used to express a decimal coded digit, means responsive to a pressed digit key to enter a corresponding binary code in the keyboard register, means for entering a decimal point in the keyboard register upon pressing the decimal point key subsequent to entry of any one of the digits of a number, the decimal point being entered as a ''''1'''' in the fifth bit of the order where said one digit is stored, means for transferring a first-entered number from the keyboard register to the factor register upon depression of the division key, whereby a second number can be entered upon the keyboard register while the first-entered number is stored in the factor register, means for interchanging the factor and keyboard registers upon pressing the ''''equals'''' key after entering said second number when performing division, said interchange placing the dividend in the keyboard register and the divisor in the factor register, means for coupling the working register as an extension to the left of the keyboard register, means for performing a division after said interchange comprising successive subtractions of the factor register contents from the working register contents whenever and for as long as the number in the working register is greater than the number in the factor register and entering the number of such subtractions at the extreme right of the keyboard register, then shifting the coupled registers to the left and repeating the process to generate successive quotient digits, there being at least as many left shifts as there are orders in the keyboard register, means for detecting of the shifting of the fifth bit binary value out of the keyboard register upon a said left shift, means for inserting said predetermined binary value as a marker in the fifth bit of the extreme right order of the keyboard register in response to detection of said shifting out, means providing a signal upon sensing that the marker is in corresponding to the location of the decimal point in the factor register, means responsive to said signal and effective to erase the inserted marker, and to insert a true decimal point in the fifth bit of a particular position of the keyboard register.
22. A calculator as defined in claim 21, wherein said marker inserting means insert additional markers in said extreme right order of the keyboard register at every left shift subsequent to said shift out controlled insertion, said sensing-means are responsive to detecting that the first marker has reached the same location as the decimal point in the factor register, and said erasing means remove all the inserted markers except the latest one inserted in response to detection by said sensing means that said first marker is in the order corresponding to the location of the demical point in the factor register and means responsive to the bits of information stored in the keyboard register orders, including said fifth but, subsequent to said removal of all but one marker and effective for displaying the final quotient with the decimal point properly located in the display.
23. A calculator of the binary-coded decimal type including in combination: a set of digit keys, a decimal point key, and a pair of function keys for controlling addition and subtraction, a keyboard register and a working register, each of said registers containing a plurality of digit storage orders and each order having five binary bits, four bits of which are used to express a decimal coded digit, means responsive to depressions of a digit key to enter a corresponding code in the keyboard register, means for entering a decimal point in the keyboard register upon pressing the decimal point key subsequent to entry of any one of the digits of a number, the decimal point being entered as a ''''1'''' in the fifth bit of the keyboard register order where said one digit is stored, means operable in response to depression of either one of said pair of function keys and automatically aligning each newly entered number in the keyboard register with a previously-entered number in the working register so that their decimal points are in the same location, by shifting one of the two numbers if they are not so aligned upon entry of the newly entered number, means operable subsequent to said alignment and combining the number from the keyboard register albegraically with whatever number is in the working register upon depression of either of said pair of function keys said combination producing a result with proper sign, said sign being determined in part by whether said newly-entered number was followed by depression of the function key controlling addition or that key controlling subtraction, but with said result having false codes for each digit thereof, and said combining means comprising means for carrying and borrowing between the fourth bit of any one order and the first bit of the next higher order, said carrying and borrowing being effected through the fifth bit of said one order and a binary value being recorded in said fifth bit as an expression of said carry or borrow, means for correction of the false coded digit in each order of the working register after an addition or subtraction, according to whether said combination resulted in a carry or borrow in the respective order and the binary value expression in the fifth bit of the respect order, and means responsive to the fifth bit information in said keyboard register for recording identical information in the fifth bits of said working register subsequent to correction of said falsely coded digits.
24. A calculator as defined in claim 23, further including a totaling key and an accumulator register, means for transferring to the accumulator register the number appearing in the working register after correction and insertion of the decimal point information, means for copying the number in the accumulator register into the working register, and means actuated upon pressing the totaling key for transferring the sum from the working register to the keyboard register, and displaying the algebraic sum.
25. A calculator of the digital type including in combination: a pair of data registers, each having a plurality of orders for storing digital data, each order having n + 1 bits, n of said bits as a group expressing a digit and including a least significant bit and a most significant bit, means for performing arithmetic operations on the data in said pair of registers, said operations involving interdigit carries or borrows and the results of said operations being stored in a particular one of said pair of registers in the form of false n-bit groups for each digit, and said arithmetic operations means comprise means for performing said interdigit carries or borrows through the remaining bit of each order, said carry or borrow being effective between the most significant bit of the digit in any one order and the least significant bit of the digit in the next higher order, and for recording said carry or borrow as a binary value in said remaining bit of said one order, and means for correcting each false n-bit group after a said arithmetic operation, according to the value in the remaining bit of each order in said particular register.
26. A calculator as defined in claim 25 wherein said remaining bit is the most significant in a sequence of (n+ 1) bits.
27. A calculator as defined in claim 26, wherein said calculator is of the binary-coded decimal type, each order of said registers comprising five binary bits, four bits of which are used to express a decimal digit, and said interdigit carry or borrow being recorded as a predetermined binary value in the fifth bit.
28. A calculator as defined in claim 27, wherein the binary-coded digits are stored in excess-three code, and said correction means comprise means enablEd during addition, and operable to add a three to a said false n-bit group if there was an interdigit carry and for subtracting a three if there was not.
29. A calculator as defined in claim 27, wherein the binary-coded digits are stored in excess-three code, and said correction means comprise means enabled during subtraction, and operable to subtract a three to a said false n-bit group if there was an interdigit borrow and for adding a three if there was not.
30. A calculator as defined in claim 27, wherein said means for performing said interdigit carries or borrows further include means enabled during an addition and storing a particular one of the binary values in said fifth bit position of a respective order if there was a carry from that order, and the other of said binary values if there was not; and means enabled during subtraction and storing the other binary value in said fifth bit of a respective order if there was a borrow propagated from that order, and the particular binary value if there was not.
31. A calculator as defined in claim 27, wherein said means for performing said interdigit carries or borrows further include means enabled during an addition and storing a ''''1'''' in said fifth bit of a respective order if there was a carry from that order, and a ''''0'''' if there was not; and means enabled during a subtraction and storing a ''''0'''' in said fifth bit of a respective order if there was a borrow propagated from that order, and a ''''1'''' if there was not.
32. In a calculator of the binary-coded decimal type, the combination of a keyboard having digit keys, a decimal point key, and a set of function keys, a pair of factor registers and a working register, each of said registers having a plurality of orders for storing digits and each order having (n + 1) bits, n of said bits being used to express a decimal coded digit, means to enter a binary value in the remaining one of said bits at a respective order of each said register to represent respective decimal point information, means for performing arithmetic operations on the data in a pair of said registers, the arithmetic operations being effected with said working register, and the results being placed in one of said pair of registers with displacement of the data therein, means responsive to the displaced decimal point information of said one register and operable to enter said binary value as a marker in the remaining one bit at a particular order of the one register, means for detecting appearance of said marker in a discrete order of said one register upon said displacement, and means operable to enter said binary value in the remaining one bit at a selected order of said one register as the true decimal point relative to the results placed in said one register in response to said means detecting appearance of the marker.
33. A calculator is defined in claim 32, wherein each register has first and second ends, the working register and said one register are coupled to form a single register, the arithmetic operation is a multiplication, partial products being developed by repeat addition of the contents of the other of said pair of registers to the contents of said working register according to the value of successive digits in said one register, the partial product corresponding to each digit being successively shifted by one order into said one register with simultaneous displacement of the information therein; said means responsive to the decimal point in the one register comprise means to detect a first appearance of said binary value in the remaining one bit of a first end order of said one register and means responsive to said detection and operable to enter said binary value as the marker in the remaining one bit at an ordinal position of the one register corresponding to the ordinal position of the decimal point in said other register; said means to detect said marker and enter the trUe decimal point comprise means defining detection of a second appearance of said binary value in the remaining one bit of said first end order of the one register, and said selected order is the second end order of said one register.
34. A calculator is defined in claim 33, said orders further including a rightmost and a leftmost order, and wherein there are five bit positions per order, said decimal point information being stored as a ''''1'''' in the fifth bit, and said first end order and second end order are the rightmost and leftmost orders of the one register, respectively.
35. A calculator as defined in claim 32, said orders further including a right most order and wherein the working register and said one register are coupled to form a single register; the arithmetic operation is division, quotient digits being developed by counting the number of successful subtractions of the contents of the other of said pair of registers from the contents of said working register as the contents of said one register are left-shifted into the working register one order at a time, each said quotient digit being stored in the rightmost order of the one register, vacated on each shift; said means responsive to the decimal point in the one register comprise means responsive to left-shifting of said binary value of the one register into the rightmost order of the working register and operable to enter said binary value as a marker in the remaining one bit of said rightmost order of the one register; said marker detection means are responsive to the left-shifting of the marker into the remaining one bit of an order of the one register corresponding to the order of the other register having the binary value stored in the remaining one bit thereof; and the true decimal point entering means are operable to enter the binary value in the remaining one bit of the rightmost order of the one register and to remove the marker.
36. A calculator as defined in claim 35, wherein there are five bits per order, said decimal point information being stored as a ''''1'''' in the fifth bit.
US00129100A 1971-03-29 1971-03-29 Ediate arithmetic results extra bit for floating decimal control and correction of false interm Expired - Lifetime US3757097A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12910071A 1971-03-29 1971-03-29

Publications (1)

Publication Number Publication Date
US3757097A true US3757097A (en) 1973-09-04

Family

ID=22438454

Family Applications (1)

Application Number Title Priority Date Filing Date
US00129100A Expired - Lifetime US3757097A (en) 1971-03-29 1971-03-29 Ediate arithmetic results extra bit for floating decimal control and correction of false interm

Country Status (4)

Country Link
US (1) US3757097A (en)
DE (1) DE2215079A1 (en)
FR (1) FR2131693A5 (en)
IT (1) IT952407B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3875393A (en) * 1971-12-21 1975-04-01 Omron Tateisi Electronics Co Digital serial arithmetic unit
US3876863A (en) * 1973-02-12 1975-04-08 Jack M Boone Inventory taking utilizing tone generation
US3955074A (en) * 1972-10-30 1976-05-04 Hewlett-Packard Company General purpose calculator having keys with more than one function assigned thereto

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3875393A (en) * 1971-12-21 1975-04-01 Omron Tateisi Electronics Co Digital serial arithmetic unit
US3955074A (en) * 1972-10-30 1976-05-04 Hewlett-Packard Company General purpose calculator having keys with more than one function assigned thereto
US3876863A (en) * 1973-02-12 1975-04-08 Jack M Boone Inventory taking utilizing tone generation

Also Published As

Publication number Publication date
FR2131693A5 (en) 1972-11-10
DE2215079A1 (en) 1972-10-26
IT952407B (en) 1973-07-20

Similar Documents

Publication Publication Date Title
EP0976027B1 (en) ARITHMETIC PROCESSOR combining finite field arithmetic and modular integer arithmetic
US5631859A (en) Floating point arithmetic unit having logic for quad precision arithmetic
US5184318A (en) Rectangular array signed digit multiplier
EP0040279B1 (en) Binary divider
EP0464493A2 (en) High-radix divider
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5023827A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US5144576A (en) Signed digit multiplier
JPH05250146A (en) Arithmetic operation circuit executing integer involution processing
US4065666A (en) Multiply-divide unit
US3757097A (en) Ediate arithmetic results extra bit for floating decimal control and correction of false interm
US3641331A (en) Apparatus for performing arithmetic operations on numbers using a multiple generating and storage technique
GB1111960A (en) Data processing machine
US5317531A (en) Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division
US3319057A (en) Parallel division with separate carry storage
US3417236A (en) Parallel binary adder utilizing cyclic control signals
US4047011A (en) Modular apparatus for binary quotient, binary product, binary sum and binary difference generation
US7243119B1 (en) Floating point computing unit
US3254204A (en) Digital divider for integer and remainder division operations
US3787672A (en) Electronic calculating device having arithmetic and error-checking operational modes
US3813623A (en) Serial bcd adder
SU943709A1 (en) Arithmetic-logic device
US3297861A (en) Digital multiplication and division arrangement
SU758146A1 (en) Arithmetic device
GB1239225A (en)