Skip to content

Register Operations

brickpool edited this page Apr 28, 2020 · 7 revisions

Machine Related Operations

Source: HP-45 Applications Book (HP 00045-90320 Rev. B Reorder 00045-66001, Dec 1974)


Register Operations

In the following eighteen routines, x, y, z, t and ra denote the contents of registers X, Y, Z, T and Ra, respectively. (a = A, B, …, Z)

1 Clear stack; retain all storage registers

    _.----> lost
t -'_|  .-> T
z -'_|  |-> Z
y -' /  /-> Y
x --'  /--> X
0 ----'
LINE DATA OPERATIONS DISPLAY REMARKS
1 +> CLEAR 5'STK XYZT → 0000
T t 0
Z z 0
Y y 0
X x CLSTK 0

2 Delete x

(Lower the stack.)

t ------.-> T
z ---._ '-> Z
y --._ '--> Y
x -._ '---> X
     '----> lost
LINE DATA OPERATIONS DISPLAY REMARKS
1 \CC + XYZT → yztt
T t t t
Z z z t
Y y y z
X x CLx 0 + y

3 Delete y

(Lower that part of the stack above X.)

t ------.-> T
z ---._ '-> Z
y --._ '--> Y
x ----)---> X
      '---> lost
LINE DATA OPERATIONS DISPLAY REMARKS
1 x<>y \CC + XYZT → xztt
T t t t t
Z z z z t
Y y x x z
X x x<>y y CLx 0 + x

4 Reverse the stack

t --.  .--> T
z --.\/.--> Z
y --'/\'--> Y
x --'  '--> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 x<>y R↓ R↓ x<>y XYZT → tzyx
T t t y x x
Z z z t y y
Y y x z t z
X x x<>y y R↓ x R↓ z x<>y t

5 Fetch t or roll up

(Bring t to X, keeping the other operands in the same order).

t -.   .---> T
z --\-' .--> Z
y ---\-' .-> Y
x ----\-'
       '---> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 +> R↑ XYZT → txyz
T t z
Z z y
Y y x
X x R↑ t

6 Fetch t to Y

(Bring t to Y, keeping the other operands in the same order).

t -.   .--> T
z --\-' .-> Z
y ---\-'
      '---> Y
x --------> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 +> R↑ x<>y XYZT → xtyz
T t z z
Z z y y
Y y x t
X x R↑ t x<>y x

7 Fetch z

(Bring z to X, keeping the other operands in the same order).

t --------> T
z -.   .--> Z
y --\-' .-> Y
x ---\-'
      '---> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 R↓ R↓ x<>y R↓ XYZT → zxyt
T t x y y t
Z z t x x y
Y y z t z x
X x R↓ y R↓ z x<>y t R↓ z

8 Copy x into Z and T

    __.---> lost
t -' /  .-> T
z --'  /--> Z
y ----/---> Y
x ---'
LINE DATA OPERATIONS DISPLAY REMARKS
1 ENTER ENTER R↓ R↓ XYZT → xyxx
T t z y x x
Z z y x y x
Y y x x x y
X x ENTER x ENTER x R↓ x R↓ x

9 Copy y into Z

(T is cleared).

0 ----.
    _.-\--> lost
t -' |  '-> T
z --'  .--> Z
y ----'---> Y
x --------> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 ENTER ENTER - R↓ XYZT → xyy0
T t z y y 0
Z z y x y y
Y y x x x y
X x ENTER x ENTER x - 0 R↓ x

10 Copy y into Z and T

    __.---> lost
t -' /  .-> T
z --'  /--> Z
y ----'---> Y
x --------> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 x<>y ENTER ENTER +> R↑ XYZT → xyyy
T t t z x y
Z z z x y y
Y y x y y y
X x x<>y y ENTER y ENTER y R↑ x

11 Copy y and x into Z and T, respectively

(Copy x and y in the reverse stack order, but this is the shortest way to save x and y in the stack).

    __.---> lost
t -' / .--> T
z --' / .-> Z
y ---/-'--> Y
x --'-----> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 ENTER ENTER 1 × R↓ XYZT → xyyx
T t z y y y x
Z z y x x y y
Y y x x x x y
X x ENTER x ENTER x 1 1 × x R↓ x

12 Copy y and x into T and Z, respectively

(Copy x and y in the same stack order to Z and T).

    __.---> lost
t -' / .--> T
z --' / .-> Z
y ---'-/--> Y
x ----'---> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 x<>y ENTER ENTER 1 × XYZT → xyxy
2 R↓ x<>y
T t t z x x x y y
Z z z x y y x x x
Y y x y y y y x y
X x x<>y y ENTER y ENTER y 1 1 × y R↓ y x<>y x

13a Swap x and ra (z into T)

(Exchange x and ra, t is lost), where a = A, B, …, Z.

     _.---> lost
t --'  .--> T
z ----'---> Z
y --------> Y
x ---._.--> X
ra --' '--> Ra
LINE DATA OPERATIONS DISPLAY REMARKS
1 RCL XYZT → ryzz
2 a x<>y +> STO a is an alpha and
3 a \CC + A ≤ a ≤ Z
T t z z z z z
Z z y y y y z
Y y x r r r y
X x RCL a r x<>y x STO a x \CC 0 + r

13b Swap x and ra

(Exchange x and ra, t is retained), where a = A, B, …, Z.

t --------> T
z --------> Z
y --------> Y
x ---._.--> X
ra --' '--> Ra
LINE DATA OPERATIONS DISPLAY REMARKS
1 <+ x≶ XYZT → ryzt
2 a a is an alpha and
  A ≤ a ≤ Z
T t t
Z z z
Y y y
X x x≶ a r

14 Swap y and z

t --------> T
z ---._.--> Z
y ---' '--> Y
x --------> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 R↓ x<>y +> R↑ XYZT → xzyt
T t x x t
Z z t t y
Y y z y z
X x R↓ y x<>y z R↑ x

15 Swap z and t

t ---._.--> T
z ---' '--> Z
y --------> Y
x --------> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 R↓ R↓ x<>y R↓ R↓ XYZT → xytz
T t x y y t z
Z z t x x y t
Y y z t z x y
X x R↓ y R↓ z x<>y t R↓ z R↓ x

16 Swap x and t

t --.   .--> T
z ---\-/---> Z
y ---/-\---> Y
x --'   '--> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 +> R↑ x<>y R↓ XYZT → tyzx
T t z z x
Z z y y z
Y y x t y
X x R↑ t x<>y x R↓ t

17 Swap x and z

(Reverse contents of X, Y, Z)

t ---------> T
z --.   .--> Z
y --->-<---> Y
x --'   '--> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 x<>y R↓ R↓ x<>y R↓ XYZT → zyxt
T t t y x x t
Z z z t y y x
Y y x z t z y
X x x<>y y R↓ x R↓ z x<>y t R↓ z

18 Swap y and t

(Reverse contents of Y, Z, T)

t --.   .--> T
z --->-<---> Z
y --'   '--> Y
x ---------> X
LINE DATA OPERATIONS DISPLAY REMARKS
1 R↓ x<>y R↓ R↓ x<>y XYZT → xtzy
T t x x z y y
Z z t t x z z
Y y z y t x t
X x R↓ y x<>y z R↓ y R↓ t x<>y x

Clone this wiki locally