hp-11c.jpg hp-11cb.jpg

first row | second row | third row | fourth row
description | stack | registers | modes | errors | programming

first row
keystroke label stack effect run mode programming mode
42,11 A net effect of program run run program starting at label A. Error 4 if label not found
11 [[$ \sqrt{x} $]] (x -- [[$ \sqrt{x} $]]) square root IRMI
43,11 x2 (x -- x2) square IRMI
42,12 B net effect of program run run program starting at label B. Error 4 if label not found
12 ex (x -- ex) natural antilogarithm IRMI
43,12 LN (x -- LN) natural logarithm IRMI
42,13 C net effect of program run run program starting at label C. Error 4 if label not found
13 10x (x -- 10x) antilogarithm base 10 IRMI
43,13 LOG (x -- LOG) logarithm base 10 IRMI
42,14 D net effect of program run run program starting at label D. Error 4 if label not found
14 yx (y x -- yx) power IRMI
43,14 % (y x -- y %) [[$ \frac{ x \cdot y }{100} $]] IRMI
42,15 E net effect of program run run program starting at label E. Error 4 if label not found
15 1/x (x -- 1/x) reciprocal IRMI
43,15 Δ% (y x -- y Δ%) [[$ \frac{x - y}{y} \times 100 $]] IRMI
42,16 π (t z y x -- z y x π) pushes pi onto the stack IRMI
16 CHS (x -- CHS) change sign IRMI
43,16 ABS (x -- ABS) absolute value IRMI
42,17,[0-9] FIX none set display precision. After pressing FIX, press a number between 0 and 9. Numbers will be displayed in fixed notation with the selected number of decimals if possible
7 7 number entry enters 7 IRMI
43,17 DEG none set angle mode to degrees. SIN, COS, and TAN will interpret their arguments as degrees. SIN-1, COS-1, and TAN-1 will return values in degrees
42,18,[0-7] SCI none set display precision. After pressing SCI, press a number between 0 and 6. Pressing 7 through 9 is the same as pressing 6. Numbers will be displayed in scientific notation with the selected number of decimals
8 8 number entry enters 8 IRMI
43,18 RAD none set angle mode to radians. SIN, COS, and TAN will interpret their arguments as radians. SIN-1, COS-1, and TAN-1 will return values in radians
42,19,[0-7] ENG none set display precision. After pressing ENG, press a number between 0 and 6. Numbers will be displayed in scientific notation with an exponent that is a multiple of 3
9 9 number entry enters 9 IRMI
43,19 GRD none set angle mode to gradians. SIN, COS, and TAN will interpret their arguments as gradians. SIN-1, COS-1, and TAN-1 will return values in gradians
42,20 xy none none
20 ÷ (y x -- ÷) y ÷ x IRMI
43,20 x<0 none none execute the following instruction if the x register is less than zero, otherwise skip to subsequent instruction
second row
keystroke label stack effect run mode programming mode
42,21,LBL LBL none none when followed by the keys A, .. E, 0, .., 9, .0, ..., .9 inserts a label instruction
21 SST none none move the current line ahead by one
43,21 BST none none move the current line back by one
42,22 HYP (x -- HYP) used as prefix key with SIN, COS, and TAN to invoke the hyperbolic sine [[$ \frac{e^x - e^{-x}}{2} $]] hyperbolic cosine [[$ \frac{e^x + e^{-x}}{2} $]] and hyperbolic tangent [[$ \frac{e^x - e^{-x}}{e^x+e^{-x}} $]] IRMI
22,LBL GTO none error prefix key to insert instruction to execute instruction at following label next
43,22 HYP-1 (x -- HYP-1) used as prefix key with SIN, COS, and TAN to invoke the inverse hyperbolic sine, inverse hyperbolic cosine, and inverse hyperbolic tangent IRMI
42,23 x≷(i) none none execute the following instruction if the x register does not equal the value in the register indicated by I, otherwise skip to subsequent instruction
23 SIN (x -- SIN) sine IRMI
43,23 SIN-1 (x -- SIN-1 arcsine IRMI
42,24 (i) ( -- (i)) push contents of register referrenced by absolute value of integer portion of I register onto the stack. Error 3 if the value does not refer to a register IRMI
24 COS (x -- COS) cosine IRMI
43,24 COS-1 (x -- COS-1) arccosine IRMI
42,25 I ( -- I) push contents of I register onto stack
25 TAN (x -- TAN) tangent IRMI
43,25 TAN-1 (x -- TAN-1) arctangent IRMI
42,26 →R (θ r -- y x) convert polar coordinates to rectangular coordinates
26 EEX number entry enter exponent of number IRMI
43,26 →P (y x -- θ r) convert rectangular coordinates to polar coordinates
42,27 x≷I none none execute the following instruction if the x register does not equal the value in register I, otherwise skip to subsequent instruction
4 4 number entry enters 4 IRMI
43,27,[01] SF none when followed by 0 or 1 sets corresponding flag. Other values cause Error 6
42,28 DSE subtract YY from NNNNN, where I register is NNNNN.XXXYY
5 5 number entry enters 5 IRMI
43,28,[01] CF none when followed by 0 or 1 clears corresponding flag. Other values cause Error 6
42,29 ISG none add YY to NNNNN, where I register is NNNNN.XXXYY
6 6 number entry enters 6 IRMI
43,29,[01] F? none none execute the following instruction if the flag provided as an argument (0 or 1) is set, otherwise skip to subsequent instruction. Other values cause Error 6
42,30 x>y none none execute the following instruction if the x register is greater than the y register, otherwise skip to subsequent instruction
30 × (y x -- ×) multiplies y and x IRMI
43,30 x>0 none none execute the following instruction if the x register greater than zero, otherwise skip to subsequent instruction
third row
keystroke label stack effect run mode programming mode
42,31 PSE none executes programming mode instruction, though effect is not useful inserts instruction to pause for 1 second while x register is displayed
31 R/S none if no programming is running, runs the program starting from current line number. If program is running, stops it. inserts an instruction to stop the program
43,31 P/R none enter programming mode enter run mode
42,32 CLEAR Σ none clears the statistical registers R0 through R5 IRMI
32,LBL GSB stack effect of subroutine runs subroutine at specified label. Error 4 if no such label. Can be used to run programs at numeric labels inserts instruction to go to label. When RTN is encountered, execution will continue on instruction after GSB
43,32 RTN none none insert an instruction to set current line number to 000 and stop running. If instruction is encountered in a subroutine, returns to line after GSB
42,33 CLEAR PRGM none clears all programming instructions
33 R↓ (t z y x -- x t z y) rotate stack IRMI
43,33 R↑ (t z y x -- z y x t) rotate stack IRMI
42,34 CLEAR REG none sets all registers to zero IRMI
34 x≷y (y x -- x y) swap the values of the x and y registers IRMI
43,34 RND (x -- RND) round off the x register so that it is exactly what is in the display IRMI
42,35 CLEAR PREFIX none abort a partial keystroke entry. While held the full mantissa of the x register is displayed
35 varies during number entry removes the last digit entered. Otherwise sets the x register to zero like CL X. removes the current instruction
43,35 CL x (x -- 0) sets the x register and the display to zero
42,36 RAN # ( -- #) random number between 0.0 and 1.0. The STO key can be used to set the seed, which is set to zero at initial power up or when the continuous memory is reset.
36 ENTER number entry if in the middle of number entry, causes number entry session to stop so a new number can be entered. If not in a number entry session, pushes the value in the x register onto the stack
43,36 LST x (t z y x -- z y x lx) pushes the contents of the x register before the last x register consuming operation onto the stack. IRMI
42,37 P y,x (y x -- P y,x) number of arrangements of x items taken from a group of y items IRMI
1 1 number entry enters 1 IRMI
43,37 C y,x (y x -- C y,x) y choose x IRMI
42,38 →H.MS (x -- H.MS) convert hours in decimal format to hours in H.MS format. The first two digits after the radix will be the minutes, and the third and fourth digits will be the seconds IRMI
2 2 number entry enters 2 IRMI
43,38 →H (x -- H) conver hours in H.MS format to hours in decimal format IRMI
42,39 →RAD (x -- RAD) convert x register value in degrees to corresponding value in radians IRMI
3 3 number entry enters 3 IRMI
43,39 →DEG (x -- DEG) convert x register value in radians to corresponding value in degrees IRMI
42,40 x≠y none none execute the following instruction if the x register does not equal the y register, otherwise skip to subsequent instruction
40 (y x -- diff) subtracts x from y IRMI
43,40 x≠0 none none execute the following instruction if the x register is zero, otherwise skip to subsequent instruction
fourth row
keystroke label stack effect run mode programming mode
41 ON none turns calculator on or off turns calculator on or off. No instruction is entered. If hit twice when in programming mode, the calculator will come back on in run mode.
42,KEY f none prefix key used to access orange functions listed above the keys. IRMI
43,KEY g none prefix key used to access teal functions on the bottom bezel of the keys. IRMI
42,44 FRAC (x -- frac) the fractional portion of x. What x would be if all digits to the left of the radix point were set to zero. Has same sign as x. IRMI
44,REG STO none puts contents of x register into register subsequently entered. Use {{STO}} RAN # to store the x register as the random number seed. IRMI
43,44 INT (x -- int) closest integer to x between x and zero. The truncation of x IRMI
42,45 USER none toggles USER mode. When in USER mode, it is not necessary to use the f prefix to run programs A through E. The normal functions of the keys can be accesses with the f prefix. same behavior as when in run mode
45,REG RCL (t z y x -- z y x reg) pushes contents of register subsequently entered onto the stack IRMI
43,45 MEM ( -- ) show the number of free programming instruction slots, not counting registers. Show the highest available register that is not being used to store programming instructions same behavior as in run mode
42,47 x! (x -- x!) factorial of x. For non-integer values returns Γ(x+1) IRMI
0 0 number entry enters 0 IRMI
43,47 [[$ \bar{x} $]] ( -- [[$ \bar{y}\;\;\bar{x} $]]) pushes the average of the y values and x values onto the stack IRMI
42,48 [[$ \hat{y},r $]] (x -- r [[$ \hat{y} $]]) linear estimate for y given x and correlation. The correlation is a number from -1 to +1 describing how well the linear regression fits the data. +1 is a perfect fit. IRMI
48 . number entry enters a decimal point IRMI
43,48 s ( -- [[$ \sigma_y\;\;\sigma_x $]]) standard deviation of x and y IRMI
42,49 L.R. ( -- slope intercept) linear regression of intercept data IRMI
49 Σ+ (y x -- y n) adds y and x register values as a statistic. Replaces x register with the number of statistics which just increased by one IRMI
43,49 Σ- (y x -- y n) removes y and x register values as a static. Replaces x register with the number of statistics which just decreased by one IRMI
42,50 x=y ( -- ) none insert test to skip next instruction unless values in x and y registers are equal
50 + (y x -- sum) adds x to y IRMI
43,50 x=0 ( -- ) none insert test to skip next instruction unless x register contains zero
_____________ ___________ ________________ ______________________ _______________________

IRMI

IRMI stands for "Inserts Run Mode Instruction". It describes keys whose programming mode behavior is to insert an instruction which behaves like the run mode behavior of the key.

Description

The HP-11C is a programmable, reverse Polish notation calculator. The only data type is the floating point number. (Flags, instructions?) The floating point numbers have a mantissa with 10 decimal digits and an exponent with 2 decimal digits, both which can be signed. The amount of precision may be greater than what is displayed. Holding the PREFIX key will show the entire mantissa for the number in the x slot.

The stack effect of a number key depends on the previous key. If it was also a number key, then the value of the x slot is modified by appending the new digit to the representation. If the last key was not a number key then the new digit is pushed onto the stack as an integer.

If EEX is pressed during number entry, numbers before the EEX press become the mantissa and numbers after become the exponent. If more than two digits are pressed after the EEX only the last two are used for the exponent. EEX can also initiate number entry in which case the mantissa is one.

Stack effect notation describes how an operator alters the stack. The stack operator uses the slots listed on the left as arguments and replaces them with the values listed on the right. If there is one fewer values than arguments, other values in the stack will move down a slot and the t value will be duplicated. If there is one more values than arguments, other values in the stack will move up a slot and the t value will be discarded.

The Stack

The HP-11C has a stack with 4 slots. These are the slot names.

t
z
y
x

Push and pop happen at the bottom of the stack. Thinking of the stack with x on the bottom explains how the stack rotation keys work: R↑ and R↓

When a number is pushed, the value in the t slot is lost. When a number is popped, the all the values move down one slot. The value that was in the t slot gets duplicated, so that it is now in both the t and z slots.

Registers

These are the names of the 21 registers that are not part of the stack:

0 1 2 3 4 5 6 7 8 9 .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 I

The STO key is used to put the value in the x register into one of the above registers. After pressing the STO key, enter the name of the register. The f prefix must be used to enter I. After a value is entered in a register with the STO key, the previous value is lost.

The RCL key pushes the value in a register onto the stack. The name of the register is entered after pressing the RCL key.

The registers can all be set to zero with CLEAR REG. All registers except for the I register can be appropriated for programming instructions. Attempting to store a number or recall a number from an appropriated register results in Error 3. The registers are appropriated in the reverse of the order listed above; that is starting with .9 and ending with 0. Pressing and holding the MEM key will show the highest available register available for use. Pressing CLEAR PRGM in programming mode removes all programs and frees all registers for use.

Registers 0 through 5 are the statistics registers. If any of them are appropriated, an Error 3 will result if the Σ+, Σ-, or CLEAR Σ key is pressed. As described on the back of the calculator, the registers contain these values when used for statistics:

R0 number of entries
R1 sum of x
R2 sum of x2
R3 sum of y
R4 sum of y2
R5 sum of xy

Modes

run/programming

display mode

angle mode

user mode

Errors

  • Error 0: division by zero
  • Error 3: attempted to store a value in a register that was being used for programming instructions
  • Error 4: attempted to enter a programming instruction when the memory was full
  • Error 6: a flag other than 0 or 1 was provided to CF, SF, or F?

Programming

Describe keystroke notation here.

Programming notation with line number.

Keystroke notation.

Number of program instructions: 63 (203 using registers)

The HP-11C hex table

Number of registers: 21 including I

Numer of flags: 2

Gosub: stack nestable 4 deep

Other

To change the punctuation used for the radix mark, turn of the calculator. Press the ON key and hold it. Press the . key and hold it. Release the ON key, followed by the . key. The radix mark can be toggled between a . and a ,. The thousands separator will change correspondingly to a , or .

To reset the continuous memory and return the calculator to its initial factory state, turn the calculator off. Press the {{ON}} key and hold it. Press the {{}} key and hold it. Release the {{ON}} key, followed by the {{ key. Hit any key to clear the Pr Error message.