PC-1211, PC-1250, etc. TVM - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: Not HP Calculators (/forum-7.html) +--- Forum: Not remotely HP Calculators (/forum-9.html) +--- Thread: PC-1211, PC-1250, etc. TVM (/thread-16565.html) PC-1211, PC-1250, etc. TVM - Dave Britten - 03-30-2021 04:58 PM In light of all the recent Sharp enthusiasm, here's my attempt at a TVM solver for the PC-1211, and compatible models like the PC-1250, and no doubt many others (and their corresponding Tandy/Radio Shack versions). The math is based largely on the 17BII manual's formulas, this TVM program for serveral different HPs, and some of the mathematical notes found here. The PC-1211 and PC-1250 don't have hyperbolic functions for easy, accurate calculation of e^x-1 for |x| close to zero, but using the infinite series for ln(1+x) does offer some accuracy improvement. Usage is fairly straight-forward. On the PC-1211, you'll need to switch to DEF mode. On other models like the PC-1250, there's a dedicated DEF key that you press instead of Shift. Set B=1 for begin mode, otherwise set B=0. These are the key assignments - for storing variables, first enter the value into the display, then press the appropriate key: Shift Z: Store n Shift X: Store i% Shift C: Store PV Shift V: Store PMT Shift B: Store FV Shift A: Compute n Shift S: Compute i% Shift D: Compute PV Shift F: Compute PMT Shift G: Compute FV Code: ```1 "Z":AREAD N 2 PRINT "N=";N:END 3 "X":AREAD I 4 PRINT "I%=";I:END 5 "C":AREAD P 6 PRINT "PV=";P:END 7 "V":AREAD M 8 PRINT "PMT=";M:END 9 "B":AREAD F 10 PRINT "FV=";F:END 11 "A":GOSUB 100:N=LN ((MK/J-F)/(MK/J+P))/LN (1+J):GOTO2 21 "S":IF I=0LET I=.01 22 GOSUB 28:IF Y=0GOTO 4 23 V=I:I=I+.01:GOSUB 28 24 T=I:I=I-(I-V)Y/(Y-W):V=T:GOSUB 28 25 IF (Y<>0)*(Y<>W)GOTO 24 26 GOTO 4 28 W=Y:GOSUB 100:Y=P+KMU+FS:RETURN 31 "D":GOSUB 100:P=-KMU-FS:GOTO 6 41 "F":GOSUB 100:M=(-FS-P)/K/U:GOTO 8 51 "G":GOSUB 100:F=-(MKU+P)/S:GOTO 10 100 J=.01I:S=(1+J)^-N:U=(1-S)/J:K=1+JB:RETURN Alternative lines for greater accuracy at the cost of speed: 100 J=.01I:IF ABS J>=1 LET L=LN (1+J):GOTO 105 101 S=J:C=2:X=-J:Z=X 102 Z=Z*X:L=S-Z/C:IF L=S GOTO 105 103 C=C+1:S=L:GOTO 102 105 S=1/EXP (NL):U=(1-S)/J:K=1+JB:RETURN``` Results are generally pretty good, and don't seem to differ by more than a few thousandths of a penny in the few sample problems that I tried. I'm not sure if the Sharps use binary rather than decimal, but I did notice that solving for PMT in a problem where FV=0, then immediately solving for FV could yield small non-zero values on the order of 1E-5. RE: PC-1211, PC-1250, etc. TVM - robve - 03-30-2021 05:07 PM Thanks for sharing! (03-30-2021 04:58 PM)Dave Britten Wrote:  I'm not sure if the Sharps use binary rather than decimal, but I did notice that solving for PMT in a problem where FV=0, then immediately solving for FV could yield small non-zero values on the order of 1E-5. FYI. SHARP pocket computers use 10 digits BCD to display values and store values in variables and 12 digits internally to evaluate expressions. For example (SQR is sqrt): SQR 2 * SQR 2 2 X=SQR 2 X*X 1.999999999 There is a small penalty to use variables to store (temporary) results. It is sometimes beneficial to "inline" expressions to preserve or increase accuracy. - Rob RE: PC-1211, PC-1250, etc. TVM - Dave Britten - 04-01-2021 04:44 PM (03-30-2021 05:07 PM)robve Wrote:  Thanks for sharing! (03-30-2021 04:58 PM)Dave Britten Wrote:  I'm not sure if the Sharps use binary rather than decimal, but I did notice that solving for PMT in a problem where FV=0, then immediately solving for FV could yield small non-zero values on the order of 1E-5. FYI. SHARP pocket computers use 10 digits BCD to display values and store values in variables and 12 digits internally to evaluate expressions. Good to know! Interestingly, I tested the same TVM program on the EL-5500III that I received in the mail today (this model supports two-character variable names, so explicit * had to be inserted in most of the implied multiplications), and it seems to have better accuracy. Example: N=360 I=4.75/12 (3.958333333E-01) PV=141000 FV=0 Solve for PMT, on both machines: PMT=-735.5227446 Then immediately solve for FV without entering anything else. PC-1250A (Tandy PC-3): FV=3.731560805E-05 EL-5500III: FV=0. RE: PC-1211, PC-1250, etc. TVM - robve - 04-01-2021 05:50 PM (04-01-2021 04:44 PM)Dave Britten Wrote:  Example: N=360 I=4.75/12 (3.958333333E-01) PV=141000 FV=0 Solve for PMT, on both machines: PMT=-735.5227446 Then immediately solve for FV without entering anything else. PC-1250A (Tandy PC-3): FV=3.731560805E-05 EL-5500III: FV=0. I also get FV=0 with a PC-1350 with PMT=-732.6227796 reported for DEF-V. This value is also computed with the alternative 100-105 lines. The S-BASIC interpreter and the CPU on the EL-5500III and PC-1350 are (almost) the same, the forensics: http://www.rskey.org/~mwsebastian/miscprj/results.htm see also http://basic.hopto.org/basic/manual/basic-compare.pdf The BASIC of the PC-1211 is an earlier S'-BASIC. The PC-1250 is derived from that early version, see: https://sharppocketcomputers.com/#basic - Rob