# HP-20S

The HP-20S (F1890A) is an algebraic programmable scientific calculator produced by Hewlett-Packard from 1987 to 2000.
A member of HP's Pioneer series, the 20S was a low cost model targeted at students, using the same hardware as the HP-10B business calculator. Compared with the higher-end 32S and 42S scientific calculators, the 20S includes much more basic functionality. As a student calculator, it also uses infix notation rather than the Reverse Polish notation found in more well-known models of the series.
Despite these limitations, the 20S is keystroke programmable, supporting up to 99 program lines of fully merged instructions and ten memory registers.

## Hardware

Introduced at the 1989 Consumer Electronics Show, the HP 20S had an initial retail price of 50 USD. Introduced simultaneously was the HP-10B, based on the same hardware but targeting the business calculator market. The retail price set a new bar for HP, who credited their delivery of a low-price product to tight integration between their research, development and manufacturing departments.
The 20S has the same physical form factor and 37-key keypad as other models in the Pioneer series. The CPU is an HP Saturn (Bert) chip clocked at 640 kHz. With only 256 bytes of RAM, the 20S is at the bottom end of the HP Pioneer range.
While higher end scientific models in the Pioneer series were fitted with dot-matrix displays that allowed their functionality to be organized into menus (the 22S, 32S and 42S being examples), the 20S has only a more primitive 12-digit seven-segment display. Advanced functionality is therefore accessed by a pair of shift keys, with almost every key on the keypad assigned secondary and tertiary functions.
The initial design used blue and orange shift keys, but a visual refresh in 1999 changed the color scheme to green and purple.

## Critical evaluation

A 1994 evaluation of contemporary calculators criticized some of the features and quirks of the HP 20S. Some points of criticism included:
* The fact that using the calculator's statistics functions will overwrite several recall registers that are reused for statistics functions.
* Calculating large factorials can cause an overflow that produces the wrong result.
* Only limited support for complex numbers; while a built-in program is included for complex number manipulation, performing a more basic operation such as ${\sqrt {-1}}$ produces an error.
Despite these criticisms, the same source had praise for the calculator's accuracy (rounding errors produced by other calculators did not occur), and for the quality of the HP 20S user manual.

## Program library

The 20S contained six preloaded programs in ROM for common mathematical operations. These programs could be loaded to RAM and used and edited as user programs.
* A- [ROOT] finder, finds a root of f(x)=0
* B- [INT] integral, calculates definite integral using Simpson method
* C- [CPL] complex numbers manipulations
* D- [3 by 3] matrix manipulations and line equations solver
* E- [qUAD] quadratic equation solver
* F- [fit] curve fitting, using exponential, logarithmic and power functions
The program library was used by HP as a key feature for advertising the 20S.

## HP-21S

The HP 21S is a variant of the 20S designed specifically for statistical calculations. HP's stated goal in releasing the 21S was to eliminate the need for statistics tables, just as the HP-35 had previously eliminated for trigonometric and log tables.
The majority of the features of the 20S are still present, including keystroke programming support and the typical trigonometric, logarithmic and exponential functions found on most scientific calculators. However, the 21S has several features specifically to support statistical analysis:
* Probability and distribution: factorial, permutation and combination functions.
* Two variable statistical calculations
* Random number generation
* The built-in library contains statistical programs that differ to the programs included with the 20S.
To accommodate the extra functionality, the 21S sacrifices some of the 20S's functionality; specifically it does not support base arithmetic and unit conversions, along with hyperbolic functions.

### Libraries

* A - [1-StAt]: One Sample Test Statistics
* B - [2-StAt]: Two Sample Test Statistics
* C - [Lr-StAt]: Linear Regression Test Statistics
* D - [CHI-2]: Chi-Square Test Statistics
* E - [bin]: Binomial Probability Distribution
* F - [FinAnCE]: Time value of money