The Museum of HP Calculators

This article is Copyright © 1974 by Hewlett-Packard and is used by permission. The article was originally published in the May 1974 issue of the Hewlett-Packard Journal. If errors crept in during the scanning process, please contact Dave Hicks

The "Personal Computer": A Fully Programmable Pocket Calculator

This 11-ounce battery-powered marvel has the computing power of an advanced scientific pocket calculator and is programmable as well, so it can adapt to any number of specialized uses.

by Chung C. Tung

AN ENGINEER OR SCIENTIST in need of an on-the-spot answer in the laboratory, a pilot making an in-flight course correction, a surveyor running a traverse in the field, a businessman estimating returns-on-investment during a conference, a physician evaluating patient data--it isn't difficult to think of everyday examples of people whose professions require certain types of calculations over and over again. Were one available, a computer or programmable calculator would obviously be of great assistance to such people. Unfortunately, you can't carry one of those around in your pocket, can you?

You can't, unless it's battery-powered, weighs only 312 grams, and measures only 8.1 x 14.7 x 3.4 cm, like the HP-65 Pocket Calculator. This new computing device is a combination of electronic calculator and general-purpose small computer. It offers the convenience and easy operation of a calculator, but its programmability makes it versatile enough to fit the needs of a wide variety of disciplines, including science, engineering, finance, statistics, mathematics, navigation, medicine, surveying, and many others.

Although the HP-65 is designed to operate in a logical, easy-to-learn way, it is capable of sophisticated computations. It has 51 built-in mathematical functions and data-manipulation operations, a four-register operational stack, nine addressable data registers, and five user-definable keys. It can run programs that have as many as 100 steps. There are two program flags and four comparison tests for program branching.

Perhaps most significant is that with its small package the HP-65 contains a tiny magnetic card reader and recorder. Users can store their programs on magnetic cards for later use, or they can take advantage of hundreds of preprogrammed cards containing programs commonly used in various disciplines.

The HP-65 inherits its size and shape from its ancestor, the HP-35. However, its keyboard layout is quite different. Thirty-five keys control more than eighty operations.

In the interests of logical operation and simplicity, many different techniques were used in designing the keyboard layout. Keys of the same nature are grouped into clusters. Some nomenclature has been placed on the lower side of the keys to reduce busyness. Nomenclature for multiple-keystroke operations is color-coded to make the keystroke sequences associative. All functions are classified as immediate (+,-,x,÷), direct, inverse, or miscellaneous, and are grouped and color-coded accordingly. Key sizes, colors, value contrast, and nomenclature have all been chosen to guide the user.

Arithmetic operations (+,-,x, ÷) and data entry keys are in the same locations as on the HP-35. Data entry keys include the digits 0 through 9, the decimal point, the Enter key used for entering values into the four-register operational stack, and the EEX (enter exponent) and CLx (clear display) keys.

Keys in the top row, labeled A, B, C. D, and E, stand for user-definable functions or subroutines. In the second row, the GTO (go to), LBL (label), RTN (return), and SST (single step) keys are used for programming. The DSP (display) key is used for formatting the display. Numbers can be displayed either in fixed-point notation or in scientific notation with a selected number of digits after the decimal point.

Keys in the third row, labeled f, f-1, STO, RCL, and g, are all prefix keys. They have to be followed by one or two more keystrokes to complete a command.

At the lower right corner of the HP-65 keyboard is the R/S (run/stop) key. Pressing it begins program execution. Execution of a running program halts if an R/S step is encountered in the program.

User-Definable Keys

When power is first applied to the HP-65 the top-row keys (A,B,C,D,E) call for the functions 1/x, sqrt, yx, x<>y, and Rv (roll down the operational stack). However, the functions of these keys can be changed, either by keyboard programming or by inserting a previously recorded magnetic card into the HP-65's reader slot. The new functions of the keys can be written on the card and the card inserted into the window above the top row of keys to show the new functions.

With the five definable keys, the user can readily change the HP-65 into a specialized calculator tailored to his needs. For example, Standard Pac program 11A, a compound interest program, changes these keys to n (number of periods), i (interest rate), PV (present value), FV (future value), and COMPUTE, similar to keys on the HP-80 financial calculator (see Fig.). Standard Pac 06A, a PI-network impedance-matching program, converts the HP-65 into an electrical engineer's calculator. Given input and output resistance, frequency, and Q, the program computes the values of the two shunt capacitors and the series inductor (see Fig.).

For more information on HP-65 keys and programming, see the article beginning on page 8.

Magnetic-Card Reader/Writer

The HP-65's built-in magnetic card reader/recorder uses mylar-based ferrite-oxide-coated cards 0.95 cm wide and 7.1 cm long. Each card can store 100 program steps or 600 bits of information. A two-track self-clocking recording scheme is used to maximize the system's tolerance to head skew and motor speed variations (see below).

When the right-hand switch just below the display is in the RUN position, insertion of a card into the reader slot in the right side of the calculator triggers the motor and read circuits. All 100 program steps on the card are read into the calculator's memory.

When the same switch is in the W/PRGM position, insertion of a card triggers the motor and writing circuits, and the contents of the calculator's memory are written on the card. A card that has the file-protect tab (upper left corner) clipped off will not trigger the writing circuits; the program on the card is thereby protected against accidental erasure.

More information on the design of the tiny card reader is contained in the article beginning on page 15.

A Self-Clocking Two-Track Recording Technique

When the HP-65 records a program on one of its small magnetic cards, it places two side-by-side tracks of varying magnetic flux on the card. One track represents the logical 1's in the binary data stream coming from the program memory, and the other track represents the logical 0's. The 1 track contains a flux reversal for each 1 in the data sequence and no flux change for each 0. The 0 track contains a flux reversal for each 0 and no flux change for each 1. The diagram shows an example.

The technique is self-clocking because there is a flux transition for each bit. Thus no separate clock track is needed.

The scheme also maximizes the system's tolerance to head skew and motor speed variations. The data can be recovered correctly even if a transition in one track almost overlaps a transition in the other. By contrast, other two-track schemes usually have one clock track and one data track, and may misread data when there is only minor misalignment of clock and and data transitions.

System Organization

Like its ancestor, the HP-35, the HP-65 contains an arithmetic and register circuit, a control and, timing circuit, and three read-only-memory (ROM) circuits. In the HP-65, each ROM is actually a quad ROM containing the equivalent of four single ROMs. Like its more recent predecessor, the HP-45, the HP-65 also has a data-register circuit. New in the HP-65 are a program storage circuit, a card-reader control circuit, and a card read/write circuit. (See Block diagram.)

The data register circuit is made up of ten addressable data registers of 56 bits each, enough to store 14 digits each. Data register 0 is used to implement a LSTx (last x) function and always contains the previously displayed number. Registers 1 through 9 are addressable from the keyboard. Addresses and data are transferred between the data register circuit and the arithmetic and register circuit by way of a bidirectional BCD bus.

The program storage circuit stores the user's program. Each program step is stored as a six-bit word. There are 100 words of storage.

The program memory is designed to act like a carousel. The memory is implemented in a dynamic shift register. Program words, a pointer, and a beginning-of-memory marker circulate continuously in this register, a complete circulation taking approximately 3.5 milliseconds. The pointer always points to the next program word and can move freely within the memory. Thus program steps can be inserted into the program or deleted from it at any point, without re-keying the other steps. Addressing is symbolic rather than absolute, and label-searching hardware is built into the program storage circuit.

When the calculator is in use, every keystroke places a corresponding keycode on the IA (instruction address) bus. This code is stored in the buffer of the program storage circuit. If the calculator is in W/PRGM mode, the code is then inserted into the program memory. If the calculator is in RUN mode, the keystroke is executed.

When a stored program is executed, the pointer points to the next executable memory word and the buffer contains a copy of that word. The buffer contents are decoded and placed on the IS bus as a microinstruction that causes the calculator to enter a subroutine in the ROM to service the key that was pressed.

Card Reader Circuits

The card-reader control circuit and the program storage circuit together form a complete memory circulation path. When the HP-65 is used as an ordinary calculator the card-reader control circuit merely short-circuits the data-in and data-out lines of the program storage circuit.

When a card is being read, the card-reader control circuit places the outputs of the head sense amplifier onto the data-in line of the program storage circuit. When a card is being written the card-reader control circuit takes the memory words in sequence and transforms them into recording signals for the head write amplifiers.

When two unsynchronized sequential memories like the program memory and the magnetic card are working together, timing and control are critical. Therefore, during reading or writing the card-reader control circuit assumes control of the program memory and controls the movement of the pointer. Thus only limited handshaking is needed between the card-reader control circuit and the program storage circuit.

The magnetic-card read/write circuit is a bipolar LSI (large-scale-integrated) circuit. It serves as the interface between the magnetic read/write head and the card-reader control circuit. There are two identical channels on the chip, each consisting of a read amplifier, a threshold detector, a latch, and a write amplifier.

The read amplifier takes a one-millivolt signal from the head, amplifies it approximately 200 times and feeds it into the threshold detector. The detector removes noise and triggers the latch to provide a logic signal to the card reader control circuit. The write amplifier takes logic information from the card reader control circuit and transforms it into a recording current that flows through the inductive head and generates the flux that magnetizes the card.

The read/write circuit also provides a dc motor control circuit that regulates the widely varying battery voltage so the card-reader motor runs at constant speed.


The HP-65 is the creation of a large number of people who contributed their efforts with great enthusiasm and engineering professionalism. The support of the IC departments of the Loveland and Santa Clara Divisions, and of the Loveland hybrid circuit department, was indispensable. Special acknowledgments are due Bill Hewlett for his encouragement; Tom Whitney and Paul Stoft for their direction and help in administration and coordination between a number of departments; Tom Osborne for valuable discussions and suggestions; Allen Inhelder, Darrel Lauer, and Ed Liljenwall for industrial design--their consistent human engineering consideration is particularly valuable to a simple, elegant keyboard design; Dave Cochran for card read/write circuit design Rich Whicker for the design of the card-reader control circuit; Bob Schweizer for valuable suggestions on the design of the read/write principle and circuits and for help on system breadboarding and simulator design; Clarence Studley and Bernie Musch for packaging and mechanical part design; Bob Taggart for his creative design of the card reader mechanism, with the able assistance of Dick Barth; John Bailey for help on the motor and head switches; Bill Boller for his close liaison with Manufacturing Division; Homer Russell and his team for applications software support. Special thanks are also due the tool designers of Manufacturing Division, whose creative, outstanding tools made the state-of-the-art plastic parts for the HP-65 possible.

Chung C. Tung

Chung Tung received his BSEE degree from National Taiwan University in 1961 and his MSEE degree from the University of California at Berkeley in 1964. As a member of HP Laboratories from 1965 to 1972, he was involved in the design of the 9100 Calculator and the HP-35 and HP-45 Pocket Calculators. He subsequently joined the Advanced Products Division as manager of the HP-65 project and is now engineering section manager there. Chung has done work towards his PhD degree at Stanford University, although he isn't presently enrolled there. He is married, has a son and a daughter, and lives in Santa Clara. California. Music, reading, and table tennis are his principal modes of relaxation.


HP-65 Programmable table Pocket Calculator











Go back to the HP Journal library
Go back to the main exhibit hall