## Sinclair Cambridge Programmable

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
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
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: Display type: Numeric display New price: Display color: Red Display technology: Light-emitting diode Size: 4½"×2"×1" Display size: 8(5+2) digits Weight: 4 oz Entry method: Algebraic Batteries: 1×9V alkaline Advanced functions: Trig Exp External power: Sinclair Mains Adapter Memory functions: I/O: Programming model: Keystroke entry Precision: 8 digits Program functions: Jump Cond Memories: 1 numbers Program display: Keycode display Program memory: 36 program steps Program editing: Overwrite capability Chipset: Forensic result:

*Built-in scientific functions are highly inaccurate, some yielding only 4 significant digits

Okay, so perhaps the Cambridge Programmable is not the smallest programmable calculator in the world. I don't know; it is definitely the smallest programmable calculator I've ever seen. I didn't even realize how small it is until I actually held one in my hands. When Clive Sinclair said small, he obviously meant it!

Small can be beautiful, and that is certainly true for this little calculator; it is a sleek little beauty, despite its age of over 20 years.

Smallness, however, should be no excuse for sloppy design. But what else can explain the incredible inaccuracy of some of this machine's calculations? Take, for instance, the cosine of π/3, which should be 0.5 of course. Not according to the Cambridge Programmable: it says 0.5002651. Even such a simple operation as taking the square root of a number yields questionable results: the square root of 2 is 1.414213 (instead of 1.4142135) on this calculator. This is worse than the Novus Scientist PR, the most inaccurate calculator I've seen to date!

The quality of the calculator's documentation is in stark contrast with its design shortcomings. A set of four application program books contains an extensive set of programs from a variety of areas ranging from finance to relativistic physics.

A mere 36 program steps and a single memory register don't provide for a very versatile programming model. No Gamma function on this little beast! Still, the presence of a conditional jump instruction makes it possible to implement iterative algorithms. For instance, here's a little program that calculates the factorial. Note the little trick involving brackets that's used to preserve the number in the display while storing another in the calculator's memory:

```00    sto   2
01    -     F
02    #     3
03    2     2
04    +     E
05    v     A
06    gin   1
07    2     2
08    2     2
09    #     3
10    1     1
11    ×     .
12    (     6
13    ×     .
14    rcl   5
15    ÷     G
16    sto   2
17    )     6
18    v     A
19    goto  2
20    0     0
21    1     1
21    =     -
23    rcl   5
24    stop  0
25    v     A
26    goto  2
27    0     0
28    0     0```

Or we can sacrifice accuracy (not that it matters much, in comparison with the lack of accuracy of built-in scientific functions) and have an implementation of Stirling's formula, yielding the natural logarithm of the extended factorial for any positive real arguments greater than one, with a precision of at least three significant digits:

```00    sto   2
01    +     E
02    #     3
03    .     A
04    5     5
05    ×     .
06    (     6
07    rcl   5
08    ln    4
09    )     6
10    -     F
11    rcl   5
12    +     E
13    #     3
14    .     A
15    9     9
16    1     1
17    8     8
18    9     9
19    4     4
20    +     E
21    (     6
22    #     3
23    1     1
24    2     2
25    ÷     G
26    ÷     G
27    rcl   5
28    +     E
29    #     3
30    1     1
31    =     -
32    ln    4
33    )     6
34    =     -
35    stop  0```