Compucorp 326 Scientist

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: 1975-? Display type: Numeric display  
New price: USD 1300.00?   Display color: Orange  
    Display technology: Plasma fluorescent display 
Size: 9"×5½"×3" Display size: 10+2 digits
Weight: 4 lbs    
    Entry method: Algebraic 
Batteries: 4×"D" alkaline Advanced functions: Trig Exp Tape Units 
External power: 7VDC 1.3A   Memory functions: +/-/×/÷/^ 
I/O: Tape interface     
    Programming model: Partially merged keystroke 
Precision: 13 digits Program functions: Jump Cond Subr Lbl  
Memories: 12 numbers Program display: Keycode display  
Program memory: 160 program steps Program editing: Insert/delete capability  
Chipset:   Forensic result: 8.999998638082  

cc326.jpg (53719 bytes)The Compucorp 326 Scientist is the last in a line of fabulous calculators, made by the legendary Compucorp division of the long defunct Computer Design Corporation. It was also the only 300-series Compucorp machine with an advanced programming model that included conditional and unconditional branching, labels, and subroutines.

These machines are simply beautiful. Despite their large size, they have a graceful appearance; they look like oversize pocket calculators, in fact, but designed with a perfect sense of aesthetic proportions.

The Compucorp 326 has 160 partially merged program steps (many multi-keystroke instructions are merged into a single keycode.) A standard accessory to this calculator is the Compucorp 392 tape drive, which could record programs to standard cassettes, or specially manufactured endless cassettes made by Compucorp.

The Compucorp 326 displays program steps using a screen format that, until now, I thought was unique to Russian calculators like the B3-21. In addition to the current program step, the preceding and succeeding steps are also shown. So for instance, if your program consists of the steps 7 8 9, and the program counter is at step 2, you'd see the following when the RUN/STEP/LOAD switch is in the LOAD position:

007 .002  008  009

To demonstrate the more advanced programming model of the 326, I decided to use the incremental Gamma function as an example; rather than merely evaluating a complex formula, this program actually uses an iterative method to approximate a result with great accuracy. The program can also be used to calculate the Gamma function of an argument, by simply specifying a high enough integration limit.

Invoking the program is a bit unusual. To calculate the incomplete Gamma function for a=5, x=30, use the following keystrokes: 5 × 30 START. (Use JUMP 0 to position the program counter at the beginning of the program if necessary.) This method made it possible to create a program with no embedded STOP instructions, and it also made it possible to create a program that can be used from within another calculation. For instance, the keystrokes 6 + ( 5 × 30 START ) = will calculate the sum of 6 and the incomplete Gamma function for a=5, x=30.

.001	200	LABEL 0
.002	300	STn
.003	001	1
.004	001	1
.005	020	=
.006	300	STn
.007	002	2
.008	310	RCLn
.009	001	1
.010	025	ax
.011	310	RCLn
.012	002	2
.013	024	÷
.014	310	RCLn
.015	002	2
.016	020	=
.017	300	STn
.018	003	3
.019	300	STn
.020	004	4
.021	201	LABEL 1
.022	310	RCLn
.023	003	3
.024	023	×
.025	310	RCLn
.026	001	1
.027	024	÷
.028	001	1
.029	301	ST+
.030	002	2
.031	310	RCLn
.032	002	2
.033	021	+
.034	300	STn
.035	003	3
.036	310	RCLn
.037	004	4
.038	022	-
.039	320	EXCH
.040	004	4
.041	020	=
.042	351	JUMP+
.043	001	1
.044	310	RCLn
.045	004	4
.046	024	÷
.047	310	RCLn
.048	001	1
.049	160	ex
.050	020	=
.051	033	STOP
.052	350	JUMP
.053	000	0