The Museum of HP Calculators
A simple program is essentially just the keystrokes you would press to solve the program manually. The calculator remembers a sequence of keys and executes them in order at the touch of a key. In the simplest programs, there are no additional steps required at all.
To enter a program, slide the PRGM-RUN switch to PRGM. Then press f PRGM to clear program memory and to set the calculator to the beginning.
With the PRGM-RUN switch set to PRGM (program) the number you see on the left side indicates the step number. As keystrokes are entered, their row/column codes will be displayed on the right. Step 00 is really just a placeholder. The first keys you press will go into step 01.
Enter the program below to compute the area of a circle:
g x2 These three instructions g π are just the normal keystrokes × for computing the area given the radius in X
There is no need to "end" your program because when the program memory is cleared with f PRGM, it is filled with GTO 00s. (These display as 13 00.)
Now set the PRGM-RUN switch to RUN and set the program counter by pressing GTO 00 or f PRGM or g RTN (your choice). To run the program, key in a radius and press R/S. After the display stops flashing, the area is displayed. The program can be run as many times as you like by entering new values and pressing R/S. For many simple programs, that's all you need to know!
Many programs only require data to be entered at the beginning as the one above did. Remember that you can use the stack and store values in registers before execution. You can also enter R/S instructions into the program to allow additional data to be entered. The user can enter the data and then press R/S to resume. If you create a program that runs for too long (possibly due to an infinite loop) you can stop it by pressing R/S and if necessary, resume it by pressing R/S again. If you press R/S in the middle of a program, you can see where the program is executing by pressing and holding SST (see below) or switching to PRGM mode.
The following commands are used to edit or step through programs and are not recordable.
GTO nn can be used in run mode to position the calculator to step nn. The calculator can then be switched to PRGM mode for editing at that step. Unlike the instructions above, this one is recordable so the position of the PRGM-RUN must be properly set.
Entering an instruction causes the new instruction to be placed after the instruction displayed and overwriting the following instruction. To replace a single instruction, display the instruction before the error and key in the correct instruction which will replace the error. If you find that you need to add instructions to a program, you can either rewrite it from the point of the error on down, or you can insert a GTO or GSB nn at the point where the new instructions would be needed, perform the new steps elsewhere and use a GTO or RTN to go back to the step after the first GTO. Remember to include the instruction that was overwritten by the first GTO in your new block of code. For example:
... 10 - 11 STO 1 Oops! Need to square x and take the log before storing! 12 RCL 2 ...
... 10 - 11 GTO 40 Overwrite STO 1 with a jump to some unused memory 12 RCL 2 ... 40 g x2 The new steps 41 f log 42 STO 1 The step overwritten by GTO 40 43 GTO 12 Return to the normal program flow
The HP-33 uses step addressing allowing you to jump to any line.
The program below adds 1 to the X register, displays it for a second and then does it again "forever". Key it in after switching to PRGM mode and pressing f PRGM:
1 top of the loop + f PAUSE display for a second GTO 01 loop
Now switch to RUN mode, press GTO 00, enter a number and press R/S. When you get tired of it, press R/S again to stop it. (Note that you really didn't have to press GTO 00 in this case because when you left PRGM mode, you left the calculator on a GTO 01 instruction. Had you pressed R/S, it would have started by jumping to step 01 and working normally anyway. Still, it's a good idea to get in the habit of pressing GTO 00 or f PRGM after switching to RUN mode.)
The program below calculates the volume of a cylinder by calling a program that calculates the area of a circle as a subroutine. Key in the circle routine after pressing f CLEAR PRGM:
01 g x2 These three instructions 02 g π are just the normal keystrokes for 03 × computing the area given the radius in X 04 g RTN (return) Finishes the program or subroutine
Now add the cylinder program:
05 GSB 01 Call the area routine at step 01 06 × Multiply by the length 07 g RTN Finish the program
Now switch to RUN mode, type the cylinder length, press ENTER, then type the cylinder radius and press GSB 05 to display the volume. The program uses the radius in X and calls the subroutine at 01 to determine the area of the circle. When the subroutine returns, the area is in X and the length is still in Y so X and Y are multiplied to calculate the volume. If you need to calculate just an area, enter the radius and press GSB 01.
The HP-33 has instructions for comparing X to Y and X to 0. If the comparison is true the calculator executes the next instruction. If the comparison is false the calculator skips the next instruction.
The next instruction is most commonly a GTO or GSB like:
g x=0 GTO 15 Go to step 15 if X is equal to zero STO 2 The line above is skipped and execution continues here if x is not zero.
This example computes the arc sine of a value in X (-1 ≤ x ≤ 1). If the result is less than zero, it adds 360 to the angle. Switch to PRGM mode, press f PRGM and then enter:
g SIN-1 Calculate arc sine g x≥0 Compare to zero GTO 00 If greater than zero, display result and stop 3 6 0 + Otherwise add 360 to result
Switch to RUN mode, press f PRGM so the calculator goes to step 00 and press g DEG to set degrees mode. Now press .5 R/S to see a result of 30 and .5 CHS R/S to see a result of 330.
R/S can be used as an instruction or pressed from the keyboard. If a program is stopped, pressing R/S starts it. If the program is running, pressing R/S stops it. An R/S can also be inserted into a program to allow the user to input or record data.
For example, this program accepts the length and radius of a cylinder. It computes the area of the base and stops to allow the answer to be recorded. When the user restarts it, it computes the volume.
g x2 Radius squared g pi × Area of the base R/S Allow user to record it × Multiply by length still on the stack
Slide the PRGM-RUN switch to RUN, press f PRGM, key in a length and press ENTER. Then key a radius and press R/S. After the area is displayed press R/S again to display the volume.
The HP-33 has an f PAUSE instruction which can be used to display the X register for a second and then automatically continue.