Texas Instruments TI-66

Datasheet legend
Ab/c: Fractions calculation
AC: Alternating current
BaseN: Number base calculations
Card: Magnetic card storage
Cmem: Continuous memory
Cond: Conditional execution
Const: Scientific constants
Cplx: Complex number arithmetic
DC: Direct current
Eqlib: Equation library
Exp: Exponential/logarithmic functions
Fin: Financial functions
Grph: Graphing capability
Hyp: Hyperbolic functions
Ind: Indirect addressing
Intg: Numerical integration
Jump: Unconditional jump (GOTO)
Lbl: Program labels
LCD: Liquid Crystal Display
LED: Light-Emitting Diode
Li-ion: Lithium-ion rechargeable battery
Lreg: Linear regression (2-variable statistics)
mA: Milliamperes of current
Mtrx: Matrix support
NiCd: Nickel-Cadmium rechargeable battery
NiMH: Nickel-metal-hydrite rechargeable battery
Prnt: Printer
RTC: Real-time clock
Sdev: Standard deviation (1-variable statistics)
Solv: Equation solver
Subr: Subroutine call capability
Symb: Symbolic computing
Tape: Magnetic tape storage
Trig: Trigonometric functions
Units: Unit conversions
VAC: Volts AC
VDC: Volts DC
Years of production: 1982-1985? Display type: Numeric display  
New price:   Display color: Black  
    Display technology: Liquid crystal display 
Size: 3½"×5"×½" Display size: 10(8+2) digits
Weight: 4 oz    
    Entry method: Algebraic with precedence 
Batteries: 2×"LR44" button cell Advanced functions: Trig Exp Lreg Cmem 
External power:   Memory functions: +/-/×/÷ 
I/O: Printer port     
    Programming model: Partially merged keystroke 
Precision: 13 digits Program functions: Jump Cond Subr Lbl Ind  
Memories: 64(0) numbers Program display: Mnemonic display  
Program memory: 512 program steps Program editing: Auto-insert program entry  
Chipset:   Forensic result: 9.000002294775  

ti66.jpg (26900 bytes)After the failure of the infamous TI-88 project, Texas Instruments was stranded without a product that could meet the challenge represented by Hewlett-Packard's amazing HP-41 calculator. The solution was to seek help from other manufacturers. The TI-66, an obvious successor to TI's hugely popular TI-58/TI-59 product line, is a calculator built by Toshiba, with Toshiba components inside. A less ambitious machine than the HP-41, the TI-66 was nevertheless a quite capable device. Like the HP-41, it offered an alphanumeric display; its programming model, however, is very similar to that of the TI-59. It lacked the HP-41's fabulous expandability, but it did have a proprietary serial port that allowed it to be connected to the PC-200 printer. (The same port appeared on the BA-55.)

Up to 512 program steps or 64 memories are enough for many complex problems. The machine contained numerous improvements over the TI-58C, which can be considered its closest predecessor with its continuous memory. In addition to the low power alphanumeric display, the calculator offered mnemonic display of program steps, a program entry mode that always showed the most recently entered step (as opposed to the next, usually blank, program step), and a pleasant shape and appearance in a small form factor. About the only drawback, when compared with the TI-58C, is the lack of a module port; gone were the solid state software modules that made the TI-58/TI-59 machines so versatile. (Then again, those modules were never as popular as they could have been, so perhaps TI had a solid reason for dropping this feature.)

Internally, these machines reflect the bold new age of extreme simplicity: a single circuit board that also serves as the keyboard backplate, with two surface mounted chips and a couple of discrete components. It was somewhat of a surprise to me when I realized that the machine's memory chip is an off-the-shelf component in a large, easy-to-solder DIP socket. However, this made it possible for me to repair one of my TI-66s that had a working processor but dysfunctional memory.

To demonstrate programming on the TI-66, here is my favorite programming example, an implementation of the Gamma function:

000   LBL
001   A
002   x-t
003   1
004   STO
005   00
006   LBL
007   x-t
008   0
009   x-t
010   x>=t
011   GTO
012   PRD
013   00
014   +
015   1
016   =
017   x-t
018   GTO
019   x-t
020   LBL
021   GTO
022   STO
023   01
024   .
025   1
026   8
027   0
028   0
029   9
030   1
031   7
032   2
033   9
034   4
035   +
036   7
037   6
038   =
039   ÷
040   (
041   RCL
042   01
043   +
044   1
045   )
046   -
047   (
048   .
049   5
050   0
051   5
052   3
053   2
054   0
055   3
056   2
057   9
058   4
059   +
060   8
061   6
062   )
063   ÷
064   (
065   RCL
066   01
067   +
068   2
069   )
070   +
071   (
072   .
073   0
074   1
075   4
076   0
077   9
078   8
079   2
080   4
081   8
082   3
083   +
084   2
085   4
086   )
087   ÷
088   (
089   RCL
090   01
091   +
092   3
093   )
094   -
095   (
096   .
097   2
098   3
099   1
100   7
101   3
102   9
103   5
104   7
105   2
106   5
107   +
108   1
109   )
110   ÷
111   (
112   RCL
113   01
114   +
115   4
116   )
117   +
118   (
119   .
120   2
121   0
122   8
123   6
124   5
125   0
126   9
127   7
128   3
129   9
130   +
131   1
132   )
133   ÷
134   1
135   0
136   0
137   0
138   ÷
139   (
140   RCL
141   01
142   +
143   5
144   )
145   -
146   5
147   .
148   3
149   9
150   5
151   2
152   3
153   9
154   3
155   8
156   5
157   ÷
158   1
159   0
160   0
161   0
162   x²
163   ÷
164   (
165   RCL
166   01
167   +
168   6
169   )
170   +
171   1
172   +
173   1
174   .
175   9
176   ÷
177   1
178   0
179   0
180   0
181   0
182   0
183   x²
184   =
185   ×
186   (
187   2
188   ×
189   π
190   )
191   √
192   ÷
193   RCL
194   01
195   =
196   lnx
197   +
198   (
199   RCL
200   01
201   +
202   5
203   .
204   5
205   )
206   lnx
207   ×
208   (
209   RCL
210   01
211   +
212   .
213   5
214   )
215   -
216   RCL
217   01
218   -
219   5
220   .
221   5
222   =
223   INV
224   lnx
225   ÷
226   RCL
227   00
228   =
229   RTN

As another, even more comprehensive programming example, Leonardo Galeone from Italy sent me his implementation of the famous Game of Life on the TI-66, making use of the PC-200 printer to show the playing field, as in this example: