Sinclair Enterprise 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
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:   Display type: Numeric display  
New price:   Display color: Red  
    Display technology: Light-emitting diode 
Size: 5½"×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: Partially merged keystroke 
Precision: 10 digits Program functions: Jump Cond  
Memories: 7 numbers Program display: Keycode display  
Program memory: 79 program steps Program editing: Overwrite capability  
Chipset:   Forensic result: 8.9911359  

entprg.jpg (14947 bytes)The last Sinclair programmable calculator (and one of the last Sinclair calculators ever made) is a surprisingly pleasant machine. The two previous programmables made by this famous British company, the Sinclair Cambridge Programmable and the Sinclair Scientific Programmable were both severely limited by design compromises and, let's admit it, outright design errors. Incredibly bad numerical accuracy, a very limited programming model, lousy keys and power switch, overall a low-quality construction characterized these machines.

The power switch is still less than perfect, but the Enterprise programmable excels in other regards. Despite its advanced age of more than 20 years, the machine I have still has snappy, bounce-free keys, a good, uniform display, and operates reliably. Numerical accuracy is good, with most algorithms yielding results accurate to within one or two units in the last digit. The 80 program steps are partially merged (i.e., the second function key is merged with the keystroke). During programming, the calculator always displays the most recently entered program step, making program editing that much easier.

Released at a time when cheaper yet capable imports from the Far East were becoming readily available, and continuous memory, liquid crystal display calculators were just around the corner, the Enterprise Programmable cannot be considered a great success. Yet it is a good calculator on its own right, a powerful programmable machine in a small, pleasing package. And it came with that Sinclair trademark, an extensive program library, containing literally hundreds of applications from many areas of discipline.

One application I was not able to find (then again, I am missing the Physics/Engineering volume of the software library) was an implementation of my favorite programming exercise, the Gamma function. No problem; it just gave me an opportunity to create my own, this time using a refined version of Stirling's formula, supplemented with a simple iteration that derives the function's value for small (or negative) arguments by evaluating the function for a larger argument instead. This solution has several advantages:  it uses only two memory registers, it fits well into the calculator's program memory, and it still yields results accurate to more than 7 digits most of the time.

01   F 22   STOn
02     61   0
03     51   1
04   F 22   STOn
05     51   1
06     42   5
07     44   -
08   F 23   RCLn
09     61   0
10     64   =
11   F 13   gin
12     52   2
13     32   8
14   F 23   RCLn
15     61   0
16     34   ×
17   F 23   RCLn
18     51   1
19     64   =
20   F 22   STOn
21     51   1
22     51   1
23   F 54   M+n
24     61   0
25     13   goto
26     61   0
27     43   6
28   F 23   RCLn
29     61   0
30     34   ×
31   F 51   lnx
32     44   -
33   F 23   RCLn
34     61   0
35     54   +
36     22   [(
37     52   2
38     34   ×
39   F 44   π
40     24   ÷
41   F 23   RCLn
42     61   0
43     23   )]
44   F 53   sqrt
45   F 51   lnx
46     54   +
47     22   [(
48     51   1
49     52   2
50     43   6
51     61   0
52   F 61   1/x
53     24   ÷
54   F 23   RCLn
55     61   0
56   F 62   x2
57     44   -
58     53   3
59     43   6
60     61   0
61   F 61   1/x
62     24   ÷
63   F 23   RCLn
64     61   0
65   F 62   x2
66     54   +
67     51   1
68     52   2
69   F 61   1/x
70     24   ÷
71   F 23   RCLn
72     61   0
73     23   )]
74     64   =
75   F 41   ex
76     24   ÷
77   F 23   RCLn
78     51   1
79     64   =

Here's an alternate ending to the program that allows you to calculate the natural logarithm of the Gamma function instead, greatly extending the function's range. Naturally, it only works for arguments for which the value of the Gamma function is positive; in other words, for negative arguments, the integer part of the argument has to be an odd number.

74     44   -
75   F 23   RCLn
76     51   1
77   F 51   lnx
78     64   =