Radio Shack EC-4024

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: Black  
    Display technology: Liquid crystal display 
Size: 5½"×3"×½" Display size: 10+2 digits
Weight: 4 oz    
    Entry method: Algebraic with precedence 
Batteries: 1×"399" button cell Advanced functions: Trig Exp Hyp Lreg Ab/c Cmem BaseN Const Eqlib 
External power: Solar   Memory functions: +/-/×/÷ 
    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: Casio fx-50F?   Forensic result:  

ec4024.jpg (24839 bytes)OK, so it's only 29 program steps in this calculator. Only seven memory registers. Apart from a conditional return-to-start capability, no other control transfer instructions. How utterly useless, right?

Wrong, as it was recently demonstrated by a few programs sent to me by a fellow calculator enthusiast, Herman van Elburg.

Herman's programs were actually written for the Casio fx-3600P (a close relative to the EC-4024, which itself is an OEM Casio machine) which has a slightly higher program capacity; but one of his programs uses only 25 program steps, so it fits nicely into the more limited program memory of the EC-4024.

What program? Well, my favorite programming example of course, the Gamma function. Or, in this case, the incomplete Gamma function which of course nicely approximates the "real" Gamma function if you choose a sufficiently high integration limit (Herman recommends x=2a+25). This is absolutely stunning; I never expected to be able to fit that algorithm into this calculator's limited program memory. Then again, until I received Herman's first e-mail, I didn't realize that this machine not only had four-function memory arithmetic on its six K-registers, but these memory arithmetic instructions were stored in memory in a fully merged form. Nice!

Herman's program is actually a set of two programs; the first one initializes variables, the second calculates the value of the incomplete Gamma function iteratively. For instance, if you wish to calculate the incomplete Gamma function of 5 with an integration limit of 35, you'd need the following keystrokes:

    35 P1 5 RUN P2

With most reasonable arguments, the function's value is calculated in about a minute or so.

P1-1   Kin 2   INV Kout 2   store x
P1-2 xy INV ×  
P1-3 ENT RUN enter a
P1-4 Kin 1 INV Kout 1  
P1-5 ÷    
P1-6 Kout 2   recall (z+n)
P1-7 ex INV ln  
P1-8 =    
P1-9 Kin 3    
P2-1 1    
P2-2 X<->K 1 INV x2 1  
P2-3 Kin + 1 INV Kout + 1 First time, it's K3/a; second time K3×n/a(a+1)
P2-4 Kin ÷ 3 INV Kout ÷ 3  
P2-5 Kout 3    
P2-6 +    
P2-7 Kout 2    
P2-8 Kin × 3 INV Kout × 3  
P2-9 Kout 4    
P2-10 -    
P2-11 X<->K 4 INV x2 4  
P2-12 =    
P2-13 x>0 INV [(--- Loop up if a not done
P2-14 +/-    
P2-15 x>0 INV [(---  
P2-16 X<->K 4