Citizen SRP-145
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/log 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: Li-ion rechargeable battery Lreg: Linear regression (2-var. stats) mA: Milliamperes of current Mtrx: Matrix support NiCd: Nickel-Cadmium recharg. batt. NiMH: Nickel-metal-hydrite rech. batt. Prnt: Printer RTC: Real-time clock Sdev: Standard deviation (1-var. stats) 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 |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Citizen SRP-145
Having worked with several Citizen calculators lately that all had a reasonably sophisticated programming model (namely, a programming model that allowed for conditional execution), I was somewhat disappointed when I got my hands on an SRP-145. This calculator belongs to the "barely programmable" category; a limited 40-step program memory, no conditional execution, and that blasted "feature" of erasing the X-register when entering program mode characterize that operation.
About this "feature": the sample programs presented here must have made obvious my preference for programming solutions that accept the number on the display as an input argument, as opposed to requiring the user to enter the argument separately. Unfortunately, there are many algorithms (including most solutions for the Gamma function) that do not accept a null argument. On calculators like this SRP-145, it is therefore necessary to employ extra tricks, in order to simply be able to enter a program.
By way of example, let's say you want to write a program that computes the 2-base logarithm of a number. This is most easily computed by taking the natural logarithm of said number, and dividing it by the natural logarithm of true. But if you think you can enter the program, LN, ÷, 2, LN, you are sadly mistaken. As soon as you switch to program mode, the displayed result is erased, and the LN operation fails. It is therefore never entered into program memory. This doesn't happen when you're running programs, so this simple 4-step program would actually work fine, but there's absolutely no way that I know of that would let you enter it into the calculator's program memory.
Sometimes, I really wonder: are designers of calculator chips intentionally trying to make their machines hard to use?
Oh well. It is still possible to create a moderately accurate implementation of my favorite calculator exercise, the Gamma function. Or rather, to be precise, the generalized factorial; as the Gamma function itself is not defined at zero, it is not possible to enter a program for it into this machine.
x-M 1 M+ ÷ MR ÷ 1 2 - 3 6 0 1/x / MR / MR x^2 + 1 = × MR xy MR ÷ MR ex × ( 2 × π ÷ MR ) √ =