HP 35s

Encyclopedia

The

and programmable calculator

s. Although it is a successor to the HP 33s

, it was introduced to commemorate the 35th anniversary of the HP-35

, Hewlett-Packard's first pocket calculator (and the world's first pocket scientific calculator

).

The HP 35s uses either Reverse Polish Notation (RPN) or Infix notation as input.

Other features of the HP 35s include:

Although the HP 35s has far more functions, processing power, and memory than the original HP-35 which it commemorates, Hewlett-Packard has attempted to give the HP 35s the look of the original HP-35 and other HP calculators of that era. It also features the sloped-front keys for which HP calculators (although not the original HP-35) are well known.

The physical appearance and keyboard layout of the HP 35s is very different than that of its immediate predecessor, the HP 33s, but the two calculators are functionally almost identical. The primary differences are:

and the restrictive single-letter naming of programs and variables. Several firmware bugs

have also been reported, which are not known to have been fixed as of 2011.

, meaning that it can remember and later execute sequences of keystrokes to solve particular problems of interest to the user. These keystroke programs, in addition to performing any operation normally available on the keyboard, can also make use of conditional and unconditional branching and looping instructions, allowing programs to perform repetitive operations and make decisions.

Even with indirect jumping removed, the HP 35s still supports indirect addressing, with which it is still possible to implement a Universal Turing machine

; and therefore the programming model of the HP 35s can be considered Turing complete.

As in normal operation, programming can be done in either in RPN or in D.A.L.

RPN mode programs are usually smaller and faster, while D.A.L. is better suited for interactive use and easier to use for those who are not used to RPN.

**HP 35s Scientific Calculator**is, as of 2007, the latest in**Hewlett-Packard's**

long line of non-graphing scientificHewlett-Packard

Hewlett-Packard Company or HP is an American multinational information technology corporation headquartered in Palo Alto, California, USA that provides products, technologies, softwares, solutions and services to consumers, small- and medium-sized businesses and large enterprises, including...

Scientific calculator

A scientific calculator is a type of electronic calculator, usually but not always handheld, designed to calculate problems in science, engineering, and mathematics...

and programmable calculator

Programmable calculator

Programmable calculators are calculators that can automatically carry out a sequence of operations under control of a stored program, much like a computer. The first programmable calculators such as the IBM CPC used punched cards or other media for program storage...

s. Although it is a successor to the HP 33s

HP 33s

The Hewlett-Packard Co. markets the hp 33s calculator. Main features:* RPN or traditional semi-algebraic , user selectable* Two-line LCD display...

, it was introduced to commemorate the 35th anniversary of the HP-35

HP-35

The HP-35 was Hewlett-Packard's first pocket calculator and the world's first scientific pocket calculator . Like some of HP's desktop calculators it used reverse Polish notation. Introduced at US$395, the HP-35 was available from 1972 to 1975.Market studies at the time had shown no market for...

, Hewlett-Packard's first pocket calculator (and the world's first pocket scientific calculator

Scientific calculator

A scientific calculator is a type of electronic calculator, usually but not always handheld, designed to calculate problems in science, engineering, and mathematics...

).

The HP 35s uses either Reverse Polish Notation (RPN) or Infix notation as input.

Other features of the HP 35s include:

- Two-line alphanumeric LCD display
- 26 memory registers
- Scientific and statistical functions
- Operation in decimal, binary, octal, hexadecimal
- Equation solver with arbitrary variable isolation (first seen on the HP-18CHP-18CThe HP-18C was a Hewlett-Packard business calculator which was quickly followed by the very similar but greatly improved HP-19B. The HP-18C was HP's first RPL-based calculator even though this model was not user programmable...

) - Numerical integration (first seen on the HP-34CHP-34CPart of the series of HP calculators. HP-34C Continuous Memory Calculator was an Advanced Scientific Programmable calculator that was differentiated by the fact that programs and storage were maintained in memory when the calculator was turned off , unlike most calculators of that time...

) - Support for input and display of fractions
- Complex number and vector calculations
- Unit conversions and table of physical constants
- Approximately 30 kilobyteKilobyteThe kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...

s of memory for programs and/or data

Although the HP 35s has far more functions, processing power, and memory than the original HP-35 which it commemorates, Hewlett-Packard has attempted to give the HP 35s the look of the original HP-35 and other HP calculators of that era. It also features the sloped-front keys for which HP calculators (although not the original HP-35) are well known.

The physical appearance and keyboard layout of the HP 35s is very different than that of its immediate predecessor, the HP 33s, but the two calculators are functionally almost identical. The primary differences are:

- The HP 35s allows both label and line number addressing in programs. The HP 33s had only label addressing. With only 26 labels, it was difficult to write programs making use of the entire 30KB of memory.
- The memory in the HP 35s is also usable for data storage, in the form of up to 801 numbered memory registers.
- Support for vector operations is new in the HP 35s.
- Indirect branching, which allows the contents of a memory register to be used as the target of a branching instruction (GTO or XEQ) is available in the HP 33s, but was omitted from the HP 35s.

## Design and manufacture

The HP 35s was designed by Hewlett-Packard in conjunction with Kinpo Electronics, Inc. The latter company manufactures this calculator for HP.## Reception

The 35s has been welcomed by reviewers as a return to the best HP professional calculator traditions, in contrast to their more recent advanced calculators which were seen as feature-packed and heavily styled for the student market, but in some cases poorly designed and built. Particular mention has been made of the solid construction and the traditional HP feel of the keyboard with a big Enter key back in its traditional place. Shortcomings which have been identified include the lack of any facility for communication with a computerComputer

A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...

and the restrictive single-letter naming of programs and variables. Several firmware bugs

Software bug

A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...

have also been reported, which are not known to have been fixed as of 2011.

## Programming

Unlike the original HP-35, the HP 35s is keystroke programmableKeystroke programmable

Keystroke programming describes a specific way of programming by which each keystrokes on a device or application is recorded in some way and then played back so that the recorded key-presses can be repeated multiple times...

, meaning that it can remember and later execute sequences of keystrokes to solve particular problems of interest to the user. These keystroke programs, in addition to performing any operation normally available on the keyboard, can also make use of conditional and unconditional branching and looping instructions, allowing programs to perform repetitive operations and make decisions.

Even with indirect jumping removed, the HP 35s still supports indirect addressing, with which it is still possible to implement a Universal Turing machine

Universal Turing machine

In computer science, a universal Turing machine is a Turing machine that can simulate an arbitrary Turing machine on arbitrary input. The universal machine essentially achieves this by reading both the description of the machine to be simulated as well as the input thereof from its own tape. Alan...

; and therefore the programming model of the HP 35s can be considered Turing complete.

As in normal operation, programming can be done in either in RPN or in D.A.L.

RPN mode programs are usually smaller and faster, while D.A.L. is better suited for interactive use and easier to use for those who are not used to RPN.

### Programming example

Here is a sample program that computes the factorial of an integer number from 2 to 69. There are two versions of the example: one for algebraic mode (LBL A) and one for RPN mode (LBL R). Even in this small example the algebraic version is 14 bytes (56%) larger.#### Algebraic version

(entered while in algebraic mode)Step | Instruction | Comment |
---|---|---|

A001 | Start of program A | |

A002 | Switch to algebraic mode | |

A003 | Store displayed value in N | |

A004 | Store 1 in F | |

A005 | Store N*F in F | |

A006 | Decrement N and if not zero ... | |

A007 | ... go back to step A005 | |

A008 | End of program - result is displayed | |

Summary: LN=39 |

#### RPN version

(entered while in RPN mode)Step | Instruction | Comment |
---|---|---|

R001 | Start of program R | |

R002 | Switch to RPN mode | |

R003 | Store x (stack) into I (memory) | |

R004 | Start with 1 | |

R005 | Recall I (memory) and multiply with x (stack) | |

R006 | Decrement I and if not zero ... | |

R007 | ... go back to step R005 | |

R008 | End of program - result is in x (stack) | |

Summary: LN=25 |