Sunday, April 26, 2026

Retro Review: HP 65

Retro Review: HP 65







Quick Facts



Company: Hewlett Packard

Years: 1974 - 1977

Type: Scientific, RPN (Reverse Polish Notation)

Memory: 9 memory registers, 100 steps



Batteries: originally Ni-Cad, there are battery packs that can use AAA batteries (Ebay seller: waterhosko, https://www.ebay.com/usr/waterhosko)



DISCLAIMER:  I am not page for referring the website on eBay, nor I do not guarantee that inventory is available.



The HP 65 is first programmable calculator. I recently purchased a HP 65 from Persnickity Antiquity in Pomona, California. I saw that HP 65 a year earlier. What got me to purchase was it was for two reasons, (1) I have a HP 67 and fell in love with the classical HP calculators and (2), it had the AAA battery pack (see waterhosko above).Originally the HP 65 is ran with rechargeable Ni-Cad batteries.



Format Settings



The HP 65 has two format settings:



Scientific Format: [ DSP ] # (0-9)

Fixed Format: [ DSP ] [ . ] # (0 – 9)





Modifier Keys



There are three modifier keys: two orange shifts [ f ] and [ f^-1 ] and one blue shift [ g ]. The label for the orange shift is above the key and the label for the blue shift is below the key.



Inverse Key Table

[ f ]

[ f^-1 ]

LN

e^x

LOG

10^x

√x

SIN

SIN^-1

COS

COS^-1

TAN

TAN^-1

R→P (to polar)

P→R (to rectangular)

D.MS+

D.MS-

→D.MS (decimal, minute, seconds)

D.MS→ (decimal)

→OCT (to octal base)

→DEC (to decimal base)

INT (integer part)

FRAC (fractional part)

SF 1/SF 2 (set flag 1 or 2)

CF 1/CF 2 (clear flag 1 or 2)

TF 1/TF 2 (is flag 1 or 2 set?)

TF^-1 1/TF^-1 2 (is flag 1 or 2 clear?)





Programming



Program Steps



In program mode, the HP 65 displays only the key code. The key code is usually two digits, the first is the row (top-down), second is column (left-right). The exception is the digit keys where they would be labeled in the format 0#.



Editing is limited to SST (single step forward) and delete key ([ g ] [ Clx ] (DEL)).



Partially Merged Steps



The first programmable calculator holds up to 100 steps. Steps are partially merged. The program commands that are merged are:

STO # (1 – 8)

* does not include storage arithmetic

Swap X and Y: x<>y

Comparisons: x≠y, x=y, x≤y, x>y

RCL # (1 - 8)

Roll Down: R↓

All but STO/RCL are followed by the [ g ] shift key.

NOP (No operation)

Roll Up: R↑






Memory Registers



The HP 65 has nine memory registers R1 through R9. There is no R0 (register zero), which would be added in later calculators.



Two registers are used for specific purposes:

R8: Register 8 is used the counter in the DSZ command (Decrement and Skip if Zero command).

R9: Register 9 is used as a temporary register from trigonometric function calculations, rectangular/polar conversions, and for comparison tests, R9 is used as a Last X register.



R8 and R9 can be used for general use, but would be subject to change.



Comparisons and Labels



The HP 65 has four comparisons (x = y, x ≠ y, x ≤ y, x > y) and the DSZ command operate somewhat like most RPN calculators: if the test is true, the next step is executed. However, if the result is false, the next two steps are skipped. That’s right, the next two steps.



Example:

x > y

[ if true, x > y, execute this step; if false, x ≤ y, skip this step ]

[ also skip this step if x ≤ y ]

[ third step ]



Why two steps? The goto (GTO) command takes two steps on the HP 65. The HP 65 has 15 labels, 0 – 9 and A – E. If both steps are not needed, one can be filled by the NOP (No Op (Operation)) command.



Subroutines and Instant Labels



The labels A through E (A, B, C, D, E) are user programs that can be accessed by keys. They are the only labels act as subroutines. There is no XEQ/GSB command, subroutines are automatically called by pressing the corresponding key. Only one subroutine can be called at a time.



One quirk for the HP 65, if there is a program without a label A, then pressing [ A ] in run mode, execution starts from the first step.



The HP 65 loads five short default programs every time the calculator is turned on, which function is printed above the key in white:

[ A ] 1/x

[ B ] √x

[ C ] y^x

[ D ] R↓

[ E ] x<>y





Non-Continuous Memory



The memory on the HP 65 is not continuous. When the calculator is turned off, all memory is lost. The only way to save the memory registers and the steps require the use of thin memory cards and the built-in card reader. Each card can hold 100 steps.



I love the classic RPN HP calculators from the early 1970s. I have three of them now, the HP 45 (1973), HP 65 (1974), and HP 67 (1976).








Sources


“HP 65” The Museum of HP Calculators (MoHPC). https://www.hpmuseum.org/hp65.htm Retrieved April 1, 2026.


“HP-65 Programming” The Museum of HP Calculators (MoHPC). https://www.hpmuseum.org/prog/hp65prog.htm Retrieved April 1, 2026.


Hewlett-Packard. HP-65 Owner’s Handbook. Cupertino, CA. July 1974.



Eddie


All original content copyright, © 2011-2026. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.


Saturday, April 25, 2026

TI-84 Plus CE: Beam Pattern for Uniform Array

TI-84 Plus CE: Beam Pattern for Uniform Array




Introduction



The following formula calculates an antenna’s normalized beam response in decibels given the following:



* the number of sensors of an antenna

* the wavelength of the beam pattern

* the angle incident of the wavelength from the ground, in degrees.

* the steering angle of the array, in degrees; which is measured from the zenith, starting directly upwards with the angle going downwards.



The program calculates the response in from a range of incident angles.



R(ΘI) = [ sin(180 * n * d * (sin(ΘI) – sin(ΘS) ÷ λ ] ÷ [ n * sin(180 * d * (sin(ΘI) – sin(ΘS) ÷ λ ]

If the denominator is 0, then the response is 0 dB.



Variables:

n = number of sensors

d = spacing between sensors

λ = wavelength

ΘI = incident angle

ΘS = steering angle



TI-84 Plus CE Code: BEAMPTN



ClrHome

Degree

Disp “BEAM PATTERN”, “BY STEPHEN A HERTZ”, “(HP 67 ANTENNAS)”

Input “NO. SENSORS? “, N

Input “INTERIOR SPACING? “, D

Input “WAVELENGTH? “, L

Input “STEERING Θ°? “, S

Input “STARTING ΘI? “, I

Input “NO. PTS? “, K

Input “CHG Θ°? “, J

For(Θ, I, I+K*J, J)

180 * D / L → A

sin(Θ) – sin(S) → B

N * sin(A * B) → R

If R=0

0 → R

Else

sin(N * A * B) / R → R

20 * log(abs(R)) → R

End

ClrHome

Disp “ΘI=”, Θ, “R (DB)=”, R

Pause

End



Example



Input:

n = 6

d = 36 ft

λ = 100 ft

ΘS = 0° (steering angle)

Range: ΘI = starting at 0°, 5 calculations, in increments of 5°



Results:

K =

ΘI =

R(ΘI) =

0

0

0

1

5

-0.4983317822

2

10

-2.056358346

3

15

-4.9617921711

4

20

-9.809670689



The negative response signifies that there is a reduction of signal strength.



Source



Hertz, Stephen A. “Beam Pattern for Uniform Array” HP-67/HP-97: Users’ Library Solutions: Antennas. Hewlett Packard. Corvallis, OR. Rev. D. April 1979. pp. 24-27




Eddie


All original content copyright, © 2011-2026. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

Sunday, April 19, 2026

Spotlight: Casio Mini CM-605

Spotlight: Casio Mini CM-605









Quick Facts



Model: CM-605

Company: Casio

Type: Four Function

Power: 4 x AA

Case: Leather Case

Memory: No memory registers

Years in Production: Starting in 1974

Display: 6 digits

Operating Mode: Chain



Shout out to Monrovia Vintage in Monrovia, California.



A Display of Six Digits (with a Surprise)



The Casio Mini (CM-605) is a vintage calculator from 1974. The calculator has the four arithmetic functions (+, -, ×, ÷). Operations are carried out as they are entered.



The zeroes in the CM-605 are shown as small zeroes. Hence, 4000 would be shown as 4ooo.



One limitation is that we can only enter numbers up to six digits. If the number is less than 1, we can only enter 5 digits after the decimal point as the leading zero is inserted automatically.



But there is a secret. It turns out that Hewlett Packard isn’t the only one to have calculators with a SHOW function. This CM-605 has a show key, [ ►], when held, it will show up to six additional digits.



From the short time that I have worked with the CM-605:



* Integers and integer parts can be shown up to 12 significant digits.

* Fractional parts can be shown up to six significant digits.



I think I can best show the power of the show key [ ► ] by a few examples:



4 ÷ 7 ≈ 0.571428

Keystrokes: [ AC ] 4 [ ÷ ] 7 [ = ]

Display: o.57142 hold [ ► ] 8ooooo



4329 × 9277 = 40160133

Keystrokes: [ AC ] 4329 [ × ] 9277 [ = ]

Display: 4o16o1 hold [ ► ] 33.oooo



5.7 ÷ 4.95 ≈ 1.15151

Keystrokes: [ AC ] 5.7 [ ÷ ] 4.95 [ = ]

Display: 1.15151 hold [ ►] oooooo



0.975 × 6.37 ÷ 8 ≈ 0.776343

Keystrokes: [ AC ] 0.975 [ × ] 6.37 [ ÷ ] 8 [ = ]

Display: o.77634 hold [ ► ] 3ooooo



Because there is no square root function, here are some mathematical constants to five digits:



ln 2 ≈ 0.69315

Ï€ ≈ 3.14159

e ≈ 2.71828

√2 ≈ 1.41421

√3 ≈ 1.73205

√5 ≈ 2.23607



Final Thoughts



I love collecting calculators made in the 1970s, especially with classic LED digits. The six-display with the show button is unique for Casio calculators. This calculator is a great showpiece.




Source


“CASIO MINI-CM-605 (A)” Casio Ledudu. June 15, 2011. https://casio.ledudu.com/pockets.asp?type=872&lg=eng Retrieved March 31, 2026.



Eddie


All original content copyright, © 2011-2026. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.



Saturday, April 18, 2026

DM41X: Interest Rate of a Forward-Forward Agreement

DM41X: Interest Rate of a Forward-Forward Agreement



A Future Interest Contract: Forward-Forward Agreement


A forward-forward agreement (yes, forward-forward is not a typo, that is what’s really called) is a financial transaction which starts on a forward date and ends on another forward date. An example transaction involves one party borrowing a sum amount to be paid back, only at the same time to deposit such amount in another short-term investment. The forward-forward rate, which I designate as FFR, is combined interest rate taking both transactions at the same time. The FFR is calculated as such:


FFR = [ (1 + IL * DL ÷ 365) ÷ (1 + IS * DS ÷ 365) – 1 ] * (365 ÷ (DL – DS))


IL: interest rate for the longer period, in decimal

DL: length of the long period

IS: interest rate for the shorter period, in decimal

DS: length of the short period

365: number of days in a year. It gets replaced with 360 if a 30/360 year is used.


If the loan lasts longer, the FFR represents the interest cost.

If the deposit lasts longer, the FFR represents the interest earned.



DM41X and HP 41C Code: FFR


01 LBL T^FFR

02 ^T FWD-FWD RATE

03 AVIEW

04 PSE

05 ^T LONG TRM DYS?

06 PROMPT

07 STO 01

08 STO 06

09 ^T LONG TRM %?

10 PROMPT

11 STO 02

12 %

13 365

14 /

15 1

16 +

17 STO 05

18 ^T SHORT TRM DYS?

19 PROMPT

20 STO 03

21 ST- 06

22 ^T SHORT TRM %?

23 PROMPT

24 STO 04

25 %

26 365

27 /

28 1

29 +

30 ST/ 05

31 RCL 05

32 1

33 -

34 365

35 *

36 RCL 06

37 /

38 2

39 10↑X

40 *

41 STO 07

42 ^T FFR=_

43 ARCL 07

44 AVIEW

45 RTN


Notes:

^T: It starts an alpha string.

Line 42: ^T FFR+_: The underscore is used as a space

Alpha strings are abbreviated in attempt for the message to fit the screen without scrolling.

Periods are assumed to be one year or less, and a 365-day year is assumed.


Examples


Example 1:

Longer Period (borrow): 49 days, 11%

Shorter Period (deposit): 30 days, 8%

Result: FFR= 15.6340


Example 2:

Longer Period (borrow): 63 days, 10.2%

Shorter Period (deposit): 31 days, 11.1%

Result: FFR= 9.2410


Source


Steiner, Bob. Mastering Financial Calculations. Second Edition. Prentice Hall: Financial Times. 2007. ISBN 978-0-273-70444-7. pp. 68-70



Eddie


All original content copyright, © 2011-2026. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

Sunday, April 12, 2026

Numworks: Text Demos with a Poem and Rolling Screen Credits

Numworks: Text Demos with a Poem and Rolling Screen Credits 


The two scripts, which developed in Numworks:



nwtext1.py: Displaying a poem one line at a time.

nwtext2d.py: Presenting the credits in a classic TV show format.



They can be downloaded here:

https://drive.google.com/file/d/1IEDbLV4-mz9kngj0bBOkvBLrgKYg_5ha/view?usp=sharing



Display a Poem: newtext.py



Code:


# nwtext1.py

# Text Animation Demo 1

# Numworks

# Edward Shore, 2/18/2026



# import modules

from math import *

from kandinsky import *

from time import *



# Screen: 320 x 220 pixels



# list of text

t=['Roses are red','violets are blue','Nuwmorks is great','and so are you!']

# list of colors: red, violet, amber, ghost white

c=[(255,0,0),(178,0,237),(255,191,0),(245,245,245)]

# black background

fill_rect(0,0,320,220,(0,0,0))



# list the text

# each line is 20 pixels

for i in range(len(t)):

  # draw the string for each line

  # must include the black background

  # draw_string assumes white background if second color

  # is left off

  draw_string(t[i],60,60+20*i,c[i],(0,0,0))

  # time module's sleep

  sleep(1)



Notes:

1. Modules used: math, kandinsky, time. Math was entered by default every time a new script is started in Numworks. The kandinsky and time modules are specific to Numworks. The kandinsky module includes the drawing commands fill_rec and draw_string while the time module has the command sleep.

2. The line fill_rect(0,0,320,220,(0,0,0)) gives the drawing screen a black background.

3. The syntax for kandinsky’s draw_string is: draw_string(string of text, x y, text color, background color). The colors are optional, with the default set at black text color and white background. Since we have a black background for the entire screen, the background color (0,0,0) must be included.

4. To give readability I estimate that each line has a height of 20 pixels.



TV Screen Credits: nwtext2d.py





Code:

# nwtext2d.py

# Text Animation Demo 2

# Numworks

# Edward Shore, 2/19/2026



# Goal: give a classic TV style flashing of credits



# import modules

from math import *

from kandinsky import *

from time import *



# Screen: 320 x 220 pixels



# lists of text

# I'm not going to worry about center justification on this demo



# unicode for pi is u\03C0



# top line

t0=['CREDITS','Programmer','Supervisor','Directed By','Studio','Written By','A Pisces','']

# bottom line

t1=['','PI MAN','MS. SQUARE ROOT','PYTHAGOREAN THEOREM','SINE STUDIOS','PI MAN','Python Production 2026',':) \u03C0']

# black background in the loop, see comments





# roll credits

# each line is 20 pixels

for i in range(len(t0)):

  # draw a string for each line

  # text is in emerald green

  # background is black, must be included

  # since text is being replaced, we must refresh the      screen every time

  fill_rect(0,0,320,220,(0,0,0))

  draw_string(t0[i],40,60,(80,200,120),(0,0,0))

  draw_string(t1[i],40,100,(80,200,120),(0,0,0))

  # delay by 2 seconds

  sleep(2)



Notes:

1. Modules used: math, kandinsky, time. Math was entered by default every time a new script is started in Numworks. The kandinsky and time modules are specific to Numworks. The kandinsky module includes the drawing commands fill_rec and draw_string while the time module has the command sleep.

2. The line fill_rect(0,0,320,220,(0,0,0)) gives the drawing screen a black background.

3. The syntax for kandinsky’s draw_string is: draw_string(string of text, x y, text color, background color). The colors are optional, with the default set at black text color and white background. Since we have a black background for the entire screen, the background color (0,0,0) must be included.

4. In attempt to vertically center the credits, I put the top line at y = 60 and the bottom line at y = 100. In this demo, I did not worry about center justification, only choosing to left justify all the lines. The strings for the top line are stored in the list t0 while the strings for the bottom line are stored in the list t1.



I hope you enjoy these programs as I did making them,



Eddie

All original content copyright, © 2011-2026. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.



Saturday, April 11, 2026

TI-95 PROCALC Programs

TI-95 PROCALC Programs



Here’s to another year with blog! Thank you everyone for your support.








Volume and Surface Area of a Cylinder



volume = π * r^2 * h

surface area = 2 * π * r * (h + r)



Program name: CYL (064 bytes)

‘RADIUS?’ BRK STO R

x^2 * ‘HEIGHT?’ BRK STO H

* PI = STO V ‘VOL=’ COL 16 MRG V BRK

2 * PI * RCL R * (RCL R + RCL H ) = STO A

‘AREA=’ COL 16 MRG A HLT



Example:

Example 1: RADIUS = 18.88, HEIGHT = 19.09

Result: VOL= 21377.64107, AREA= 4504.249671



Example 2: RADIUS = 17, HEIGHT = 9

Result: VOL= 8171.282492, AREA= 2777.167906



Engine Displacement of a Single Cylinder (automobile engine)



displacement = Ï€ ÷ 4 * bore^2 * stroke



Program: DSP (32 bytes)

‘BORE?’ BRK x^2 *

‘STROKE?’ BRK * PI / 4 =

‘DISP=’ COL 16 MRG = HLT



Example:

Example 1: BORE = 3.5 in; STROKE = 1.9 in

Result: DISP = 18.28014225 in^3



Example 2: BORE = 3 in; STROKE = 2.4 in

Result: DISP = 16.96460033 in^3



Magnetic Force



F = I * B * L * sin(Θ)



I: current in amps

B: density in Telsa

L: length of the conductor in meters

Θ: angle of the field in degrees

F: magnetic force in Newtons



Program: MGF (32 bytes)

INV DRG ‘ANGLE?’ BRK SIN *

‘L?’ BRK * ‘B?’ BRK * ‘I?’ BRK =

‘F=’ COL 16 MRG = HLT



Examples:

Example 1: Θ: 30°, L: 1.2 m, B: 0.7 T, I: 4 A

Result: F: 1.68 N



Example 2: Θ: 24°, L: 1.8 m, B: 0.7 T, I: 4.4 A

Result: F: 2.254947949 N



Note: INV DRG sets Degree mode



Signal to Noise Ratio



This program calculates signal to noise ratio based on the units used:



Decibels: SNR = S – N

Watts: SNR = 20 * log(S ÷ N)

Voltage: SNR = 10 * log(S ÷ N)



Program: SNR (120 bytes)

‘SIGNAL-NOISE’ PAU CLR

‘S?’ BRK STO S

‘N?’ BRK STO N

‘UNITS?’

DFN F1:DB @ 01

DFN F2: W @ 02

DFN F3: V @ 03

HLT

LBL 01 RCL S – RCL N = GTL 00

LBL 02 ( RCL S / RCL N ) LOG * 20 = GTL 00

LBL 03 ( RCL S / RCL N ) LOG * 10 = GTL 00

LBL 00 ‘SNR=’ COL 16 MRG = DFN CLR HLT



Notes:

Function labels have three characters, add spaces when necessary.

The colon and at sign are added automatically.



Examples:

Example 1: S: -20 db, N: -70 db

Result: SNR = 50



Example 2: S: 128 W, N: 25 W

Result: SNR = 14.18539922



Example 3: S: 76 V, N: 3.5 V

Result: SNR = 13.36745548



Eddie


All original content copyright, © 2011-2026. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.


Retro Review: HP 65

Retro Review: HP 65 Quick Facts Company: Hewlett Packard Years: 1974 - 1977 Type: Scientific, RPN (Reverse Polish Notation) Mem...