Sunday, May 3, 2026

HP 65 Programs: Triangulation, Percentile, Roots of Unity, Partial Fractions

 HP 65 Programs: Triangulation, Percentile, Roots of Unity, Partial Fractions


Triangulation

(done with HP-65 Emulator for Windows, Bernhard Emese)



Given:

Side angle α

Side angle ß

r = Length of base

Find:

h = height which crosses the base line at right angles



Code:

23: LBL

12: B

35: g

41: DEG

33 01: STO 1

35 08: R↓

41: ENTER

41: ENTER

44: CLX

51: -

31: f

04: SIN

35 09: R↑

31: f

04: SIN

71: *

33: STO

71: *

01: 1

35 08: R↓

61: +

31: f

04: SIN

33: STO

81: ÷

01: 1

34 01: RCL 1

24: RTN



Example: ß = 50°, α = 30°, r = 10

Result: h ≈ 3.89


Source:

“Triangulation (surveying)” Wikipedia. https://en.wikipedia.org/wiki/Triangulation (surveying) (last edited October 24, 2025). Retried March 17, 2026


Percentile in a Range


The program calculates the percentile of x in the range [a, b].


percentile = (x – a) ÷ (b – a) * 100%


Stack:

Z: x

Y: a

X: b


23: LBL

11: B

35 07: x<>y

51: -

35 00: LSTx

35 07: R↓

51: -

35 09: R↑

81: ÷

02: 2

32: f^-1

08: LOG (10^x)

71: ×

24: RTN


Example: The range: [210, 470], x = 376

Stack: Z: 376, Y: 210, X: 470

Result: 63.85



Roots of Unity

(done with HP-65 Emulator for Windows, Bernhard Emese)


w^n = 1

Registers used: R1 = n, R8 = n (counter)


n [ A ]


Cycle:

root # [ R/S ]

real part [ R/S ]

imaginary part [ R/S ] (the cycle starts again)


Repeat the cycle until the display is flashing zeros (forced 1/0 error). Hit [ CLx ] to stop the flashing.


This program switches the mode to radians angle measurement.



Code:

23: LBL

11: A

33 01: STO 1

33 08: STO 8

35: g

42: RAD

23: LBL

00: 0 (LBL 0 - subroutine)

34 08: RCL 8

84: R/S (show root #)

35: g

02: π

71: ×

02: 2

71: ×

34 01: RCL 1

81: ÷

01: 1

32: f^-1

01: R->P (->rect)

84: R/S (show real part)

35 07: x<>y

84: R/S (show imaginary part)

35: g

83: DSZ (decrement R8 by 1)

22: GTO

00: 0 (GOTO LBL 0)

34 08: RCL 8

35: g

04: 1/x

24: RTN


Example (FIX 4):

w^3 = 1

#; R/S; real part; R/S; imaginary part

3; 1.0000; -0.0000

2; -0.5000; -0.8660

1; -0.5000; 0.8660

(flashing zeroes)




Partial Fractions

(w is the variable, and T, Z, Y, and X are the stack contents)

(Tw+Z) ÷ ((w+Y)(w+X)) → B÷(w+Y) + A÷(w+X)

Input Stack: T, Z, Y, X 

Output Stack: B, A


Code: 

23: LBL 

11: A 

35, 07: x<>y 

51: - 

35, 00: LST x 

35, 09: R↑ 

71: × 

35, 00: LST x 

35, 07: x<>y 

35, 09: R↑ 

35, 07: x<>y 

51: - 

35, 09: R↑ 

81: ÷ 

41: ENTER 

35, 08: R↓ 

51: - 

35, 09: R↑ 

35, 07: x<>y 

24: RTN



Example 1: 

(12*w + 28) ÷ ((w+2) * (w+3)) = 4 ÷ (w+2) + 8 ÷ (w+3) 

Input Stack: T: 12, Z: 28, Y: 2, X: 3 press [ A ] 

Output Stack: Y (B): 4, X (A): 8



Example 2: 

(33) ÷ ((w-5) * (w+6)) = 3 ÷ (w-5) + -3 ÷ (w+6) 

Input Stack: T: 0, Z: 33, Y: -5, X: 6 press [ A ] 

Output Stack: Y (B): 3, X (A): -3



Example 3: 

(2*w - 3) ÷ ((w-1) * (w+4)) = -0.2 ÷ (w-1) + 0.2 ÷ (w+4) 

Input Stack: T: 2, Z: -3, Y: -1, X: 4 press [ A ] 

Output Stack: Y (B): -0.2, X (A): 0.2





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, May 2, 2026

TI-84 Plus CE, HP 15C, and HP 12C: Decoding the Gradematic 100

TI-84 Plus CE, HP 15C, and HP 12C: Decoding the Gradematic 100





GPA as a function of grade



Last December, we have gave a spotlight on the Calculated Industries 100 from 1983. The Gradematic 100 was a specialty calculator that determines the GPA average for a student or a bunch of students in a class. We can either use numerical grades, where the maximum total score and the minimum passing grade (better than E (or F)) are set, or letter grades, where the letters are given an approximated. To see the review, click the link below:



https://edspi31415.blogspot.com/2025/12/spotlight-calculated-industries.html



Using the standard grade scale for a single assignment, with a perfect score being 100 and the minimum passing grade is 60, the following scores are given the GPA:



GRADE (0 – 100)

GPA

Letter Grade Given by Gradematic 100

0

0.00

E (can stand for F)

10

0.08

E (can stand for F)

20

0.16

E (can stand for F)

30

0.25

E (can stand for F)

40

0.33

E (can stand for F)

50

0.41

E (can stand for F)

55

0.45

E (can stand for F)

60

0.50

D-

65

1.00

D

70

1.50

C-

75

2.00

C

80

2.50

B-

85

3.00

B

90

3.50

A-

95

4.00

A

100

4.50

A+



Plot of values (using a TI-84 Plus CE):







As we can see, the plot consists of two line segments: one where grades value from 0 to 60, and one where grades value from 60 and higher. It is apparent that that the two parts makes a piece-wise function consisting of two lines.






Note: the graphs and statistics were done with the TI-84 Plus CE Python (will work with any TI-84 CE family). The piecewise function is from the math-math menu.



The Gradematic 100 distributes the GPA as:

E: 0.00 (or F)

D+: 1.33

C+: 2.33

B+: 3.33

A+: 4.33

D-: 0.66

C-: 1.66

B-: 2.66

A-: 3.66


D: 1.00

C: 2.00

B: 3.00

A: 4.00




Note: The distributed GPA scales will vary among the school districts and systems. However, we will assume the system that matches the default 60/100 system.



HP 15C and HP 12C: Find the GPA given numeric grade



HP 15C Code:

LBL C

001

42, 21, 13

6

002

6

0

003

0

x≤y

004

43, 10

GTO 1

005

22, 1

2

006

2

×

007

20

÷

008

10

RTN

009

43, 32

LBL 1

010

42, 21, 1

CL x

011

43, 35

1

012

1

0

013

0

÷

014

10

5

015

5

.

016

48

5

017

5

-

018

30

RTN

019

43, 32



HP 12C Code:



6

01

6

0

02

0

x≤y

03

43, 34

GTO 09

04

43, 33, 09

2

05

2

×

06

20

÷

07

10

GTO 00

08

43, 33, 00

CL x

09

35

1

10

1

0

11

0

÷

12

10

5

13

5

.

14

48

5

15

5

-

16

30

GTO 00

17

43, 33, 00



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 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.


HP 65 Programs: Triangulation, Percentile, Roots of Unity, Partial Fractions

  HP 65 Programs: Triangulation, Percentile, Roots of Unity, Partial Fractions Triangulation (done with HP-65 Emulator for Windows, Ber...