Sharp EL-512H

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: 6"×3"×½" Display size: 10+2 digits
Weight: 4 oz    
    Entry method: Formula entry 
Batteries: 2×"LR44" button cell Advanced functions: Trig Exp Hyp Lreg Cmem 
External power:   Memory functions: +/- 
I/O:      
    Programming model: Formula programming 
Precision: 12 digits Program functions: Jump Cond  
Memories: 13 numbers Program display: Formula display  
Program memory: 256 program steps Program editing: Formula entry  
Chipset:   Forensic result:  

el512h.jpg (26801 bytes)The EL-512H is a recent programmable calculator from Sharp. Unlike some other models like the EL-5020, this calculator has true program capability, including the ability to execute instructions conditionally or implement simple loops.

In the absence of a visible step number or user-defined labels, an interesting, innovative solution was used for loops. The \(\hookrightarrow\) key is used to mark the beginning of a loop; later in the program, the \(\Lsh\) key is used to cause execution to continue at the spot marked by the \(\hookrightarrow\) key. It appears these loops can actually be nested. (Lacking a manual, I don't know how if there are any limitations concerning this behavior.)

The calculator has storage for 256 program steps, divided among four program areas. However, it seems that a single program cannot contain more than 160 steps. Since steps are unmerged (each keystroke counts as a separate step) this amount of memory is somewhat limited. However, it is still possible to implement non-trivial algorithms, as the following, fairly accurate implementation of the Gamma function demonstrates:

f(X)=
1⇒G
\(\hookrightarrow\)X>0•N→[
    G÷X⇒G
    X+1⇒X
\(\Lsh\)]
G√2π÷X×
  (1+76.18009173÷(X+1)–86.50532033÷(X+2)+
   24.01409824÷(X+3)–1.23173957÷(X+4)+
   1.20865E-3÷(X+5)–5.4E-6÷(X+6))
  (X+5.5)Yx(X+.5)×ex-(X+5.5)