Casio fx-3400P

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: 1988  Display type: Numeric display  
New price:   Display color: Black  
    Display technology: Liquid crystal display 
Size: 5½"×3"×½" Display size: 10+2 digits
Weight: 2 oz    
    Entry method: Algebraic with precedence 
Batteries: 1×"V399" button cell Advanced functions: Trig Exp Hyp Lreg Ab/c Cmem BaseN Const 
External power: Solar   Memory functions: +/-/×/÷ 
I/O:      
    Programming model: Fully-merged keystroke entry 
Precision: 12 digits Program functions: Cond  
Memories: 7 numbers Program display:  
Program memory: 29 program steps Program editing:  
Chipset:   Forensic result:  

fx3400p.jpg (26445 bytes)These Casio calculators always made me wonder. When their designers gave them a whopping memory capacity of 29 program steps, exactly what kind of programs did they have in mind? When they decided to implement two conditional functions, [X>0] and [X<=M], both of which cause program execution to resume at the first program step, what kind of algorithms did they envision? These programming features make an otherwise pleasant scientific calculator singularly frustrating when one tries to put them to their intended use: that is, when one tries to use their programming capability to implement simple scientific or technical programs.

That said, it is actually possible to squeeze moderately complex algorithms into those 29 program steps. This is due, at least in part, to the fact that this family of Casio machines all offer a fully merged programming model: multikey instructions such as [SHIFT] [Min], or [Kin] [+] [1] all occupy a single location in program memory.

The following program neatly demonstrates this by implementing the logarithm of the Gamma function using Stirling's formula and a simple iteration to improve the accurace for small values. As a result, the program computes the Gamma function with six-digit accuracy for all positive arguments. That is a pretty decent result for a mere 29 program steps!

K3: 1/12 (0.0833333333333)
K4: 2×π  (6.2831853072)
+
ln
Kin+ 1
9
Min
1
=
x<=M
×
Kin 2
ln
-
Kout 2
+
Kout 4
÷
Kout 2
÷
ln
x-y
2
+
Kout 3
÷
Kout 2
-
0
x-K 1
=