| +Home | Museum | Wanted | Specs | Previous | Next |
Texas Instruments SR-60 Programmable Scientific Desktop Calculator
Updated 5/27/2001
The Texas Instruments SR-60 is unique among TI's successful line of electronic calculating machines. In the mid-to-late '70's, TI traditionally kept themselves involved in being highly competitive in the handheld calculator market, including very capable handheld programmable calculators to compete with Hewlett Packard's handhelds. During those years, TI also had a successful line of 'basic' and business-oriented desktop calculators, but generally, TI tended to stay out of the high-end programmable desktop calculator market, which was dominated by Hewlett Packard. Along with this, during the late '70's, the advances in IC technology had effectively made the differences in capabilities and capacity between handheld and traditional desktop calculators a moot point, and desktop calculators were becoming more and more like computers, with the HP 9825 as an example from this era. The SR-60 was a machine that broke all of the rules...a machine built at a time when the market for such machines was dramatically changing, and in a general area outsite of the strengths of its maker. This is part of the reason why the SR-60 is rather hard to find today.
TI SR-60 Insides
The SR-60 was introduced in early 1976, with this particular machine likely built in the mid-1977 timeframe. IC's in the machine have date codes ranging from as early as the 4th week in 1976, through the 6th week in 1977.
The SR-60 has all of the typical components found on high-end programmable calculators; A large display (20 character 5x7 dot-matrix LED capable of displaying both numbers and alpha and special characters), a 20-character per line alphanumeric thermal dot-matrix printer, a magnetic card reader for loading and saving programs and data, and a comprehensive set of scientific math and programming functionality.
Keyboard Detail
The SR-60 is a very capable machine. It has a large compliment of scientific functions built in, and all are directly accessable via the 95(!) key keyboard that takes up the majority of the real estate of the machine. In fact, the size of the machine is dictated pretty much due to the space required by the keyboard. The keyboard uses full-travel keys, with high quality plastic key faces with moulded-in nomenclature to prevent the legends on the keys from wearing off over time. Each key is made of a plastic-encased module which houses the key stalk, a return spring, a magnet at the base of the key stalk, and a small magnetic reed switch. The keys are nicely organized into functional groups, with keycap color helping the user to easily find the key they are looking for.
The compliment of math functions include: square, square root, log10, loge, 10x, ex, trig functions (with arguments in degrees or radians), including hyperbolic variants, degree/radian conversion, degrees-minutes-seconds/decimal conversion, rectangular/polar conversion, nth root, yx, return integer portion of number, factorial, reciprocal, delta percent, and percent functions.
The SR-60 also has an impressive array of memory functions, all of which can address the 100 available memory locations (numbered 00 through 99) directly. These include the normal "STORE" and "RECALL" functions, along with "EXCH", which exchanges the content of the display with a memory register, "SUM", which adds the content of the display to a memory register and puts the result in the memory register, "PROD", which does the same thing as SUM except the number in the display is multiplied by the content of the memory register, and the result added to the memory register (useful for sum-of-products), and a "CLEAR MEM" key which clears all of the memory registers in one fell swoop.
The Display Board
A close-up of the TMC0253 "Display Controller" and display driver chips
The SR-60 operates using pure algebraic logic (e.g., problems are presented to the machine as they would be written on paper). The SR-60 has parenthesis keys which are used to define the order of operation, and can be nested up to ten levels deep. The machine calculates and displays results to ten significant digits, and always formats the display to provide maximum accuracy. If a number can't be displayed in ten digit form, the display switches to scientific notation, with ten digits for the mantissa, and two for the exponent, making the maximum capacity of the machine 9.999999999X1099. It appears that calculations are carried out to at least 12 significant digits internally, but only ten are displayed. The additional two digits serve as guard digits to improve the accuracy of the machine.
Main Board (mounted on bottom side of keyboard)
The calculator is based on a CMOS CPU chip, TI part number TMC0501, mounted on the main board. This chip communicates with other parts of the calculator (display, printer, mag-card reader) via a serial data bus. The CPU chip is the same chip used in many of TI's handheld scientific/programmable calculators. Most of the glue IC's in the machine are CMOS, with common devices such as CD4050, CD4001, CD4000, etc. There are also a couple of 74C-series CMOS devices in the machine. This particular SR-60 benefits from optional add-on memory. There is a cover on the bottom panel of the machine which is secured with two hex-head screws which, when removed, exposes two small daughter boards populated with TI TMC0599 chips. There are a total of eight chips on the two daughter boards, one board with five chips, and one with three. The daughter boards circuit boards themselves are identical, with the only difference between the two daughter boards being a jumper and the number of chips populated on the board. The TMC0599 chips are RAM (Random Access Memory) chips which are special in that they communicate to the CPU via a serial bus rather than the regular parallel access mode of most RAM. There are another five TMC0599 chips on the main board that the daughter cards plug into, which I are 'standard' RAM, with the daughter cards making up the expansion RAM option. It is interesting to note that the TMC0599 chips can be 'piggy backed' on top of each other and are individually accessed via serial streams which activate the appropriate chip. This piggy-backing of the RAM chips is done on the main board, where are two cases where TMC0599 chips are stacked on top of each other with their pins soldered together, and plugged into a single 16-pin socket. Most all IC's in the machine are plugged into sockets rather than soldered directly to the board, for easy service replacement. Another socket for memory expansion on the main board exists, which has a notation etched on the circuit board next to it saying "3K EXPAN".
View of Display in "LEARN" mode, showing a "HALT" instruction at step 0019
As mentioned above, the SR-60 exhibited here is equipped with optional memory, expanding the base memory of the machine to 100 memory registers (00-99), and up to 1920 steps for program memory. The standard memory of the SR-60 provides 40 memory registers and 480 program steps. The SR-60 does not provide keycode merging like on later HP calculators. When in LEARN mode, each key press consumes one step in program memory.
Programming functionality includes labels (allows branching without having to know the memory address of a step), indirect addressing, direct address GOTO, ten flag bits which can be set and conditionally branched upon, test/branch for zero and positive number on the display, as well as a test/branch on error condition. Subroutines are also supported, but appear to only allow one level - nested subroutines do not seem to be supported.
The SR-60 nicely supports program editing, and an "INSRT" key which moves the current and all following instructions 'down' one step so a new step can be inserted at the current location, and a "DLETE" key which deletes the current step and moves all following steps 'up' to fill the gap. Although convenient, the program editing functions are quite slow, taking up to 3 seconds to perform a delete or insert operations.
A "PAUSE" instruction updates the display and pauses execution for one second to allow results to be posted and observed by the user. The "READ" key fires up the mag-card reader to read programs in from cards (which can be done inside a program), and the "WRITE" key writes programs (and possibly memory registers, don't know for sure) out to the mag-card. The "ALPHA" key switches the display to alphanumeric mode, so that human readable strings can be displayed as prompts for input. The "STEP" and "BSTEP" (back step) keys are used for incrementing or decrementing the currently displayed step when in programming mode (toggled by the "LEARN" key), and the "STEP" key can be used to single-step through program instructions when in normal (calculator) mode. The "RESET" key resets the program counter (current step) to 0000. The "AUX" key appears to be used to provide access special functions (perhaps control of peripheral devices). The "QUE" key is used for prompting purposes inside program to pause the program and wait for any of five special "prompt answer" keys to be pressed by the user. The five prompt answer keys are "YES", "NO", "NOT KNOWN", "NOT APPLY", and "ENTER". Depending on which key the user responds with, the calculator with take one of five different branches to process the user's response. This feature makes interactive programs much more user-friendly, especially in cases where non-numeric input is required. For example, the "QUE" instruction can be used for the user to apply an answer to a question, such as "PRINT RESULT?", and the user could press "YES" to indicate that they want the result printed, and "NO" if they don't. Branches in the program could handle pressing of the other answer keys by simply re-stating the question, or displaying a "PRESS YES OR NO" message.
When in "LEARN" mode, the display (as shown above) displays the current step number (0000-1919) and a mnemonic code for the keycode stored in that location. A "TRACE" mode causes each step of a program and the results of executing that step to be printed on the printer. When not running programs, trace mode causes the printer to make a record of operations performed, just like a regular printing calculator. A "PRINT" function prints the current content of the display on the printer.
The SR-60's Printer
The SR-60 utilizes a thermal dot-matrix printer that is both fast, and quiet. The printer can print upper case alphanumerics under program control. The printer can print 20 columns. Though the printer is relatively fast, it is possible to get 'ahead' of it, but it is apparently buffered to a fairly deep level, and handshaked to the operation of the CPU, so it's impossible to 'lose' output.
The SR-60's Mag-Card Reader
For offline storage of programs, the SR-60 features a magnetic card reader. Cards are 'fed' into a slot on the front of the machine under the display, and the "READ" or "WRITE" key pressed. A motor draws the card through the machine, exiting behind the display panel. I do not have specifications for the mag-card unit, but assume that the entire content of program memory, and perhaps the content of memory registers, can be written or read to/from the card.
Close-up View of 5X7 LED Matrix Display and Driver IC's
Standard Numeric Display
Scientific Notation Numeric Display
The display subsystem is quite interesting. The machine uses individual 5x7 dot-matrix LED display units, each with its own TI SN27882 display driver IC. It isn't clear if the display driver IC's provide actual character generation capability, or if they just serve as a 35-bit register to hold the dot pattern for each character, with the CPU generating the characters under firmware control, and shifting the bits into the display registers. I tend to believe that it is the latter of these possibilities, based on the way the display update gets 'jumpy' during certain operations. The display shows "9.999999999 +99 ?" on an overflow condition, which can be cleared using the "CE" key. Other error conditions result in a single "?" being posted after the number on the display.
The SR-60's Power Supply
The SR-60 uses rather complex combination linear and switching power supplies. Most of the chips appear to run on +5V generated by the linear part of the power supply. The switching part of the power supply has to generate quite a few other voltages to run the motors in the printer and card reader, as well as operating the thermal printhead. In situations like this where a number of different voltages are required, switching supplies lend themselves well.
When doing calculations, the SR-60 is quite fast, with most all operations providing results nearly instantaneously. The computationally intensive function 69 factorial (the largest factorial within the calculating range of the machine) takes less than 2 seconds to calculate. The calculator has a "LIMITED PRECISION" button, which when activated, appears to cause the calculator to perform calculations even faster, however, with significantly reduced accuracy. While a fast calculator, program functions on the SR-60 execute unusually slowly. A program with nothing but 99 steps of the digit '0', followed by a HALT instruction takes just over 12 seconds to execute -- a program execution speed which is easily bested by the Hewlett Packard 9100B -- a calculator almost 9 years older than the SR-60.