Essentially all the early programmable calculators were keystroke programmable. These calculators sported a standard calculator keyboard; in programming (or "learn") mode, they memorized the sequence of keystrokes entered by the user, which they were able to replay later.
These early programmable calculators are distinguished, in addition to their memory capacity, by their programming and program editing features. These include:
- Viewing a program by listing program steps, each represented by a keycode (typically, a numerical identifier that denotes the location of the key on the calculator's keyboard)
- Editing a program by overwriting previously entered program steps, or possibly inserting/deleting steps
- Optimizing program storage through the "merging" of common key sequences (e.g., storing STO 1 as a single program step)
- Unconditional and conditional control transfer instructions
- Labels, subroutines, loops, and indirect operations
The programming model of keystroke programmable calculators was dictated by engineering constraints, not ergonomics. That said, keystroke programming proved to be a surprisingly ergonomic method for automating simple calculating exercises.
By the late 1970s, calculators with greater memory capacity began to appear. Another important development was the liquid crystal display (LCD), which not only allowed the development of calculators with low power consumption, but also offered greater flexibility for display design. Thus the time was right for the appearance of the first calculators with alphanumeric capability. A natural next step was the development of calculators that were programmable using a symbolic programming language, such as BASIC. The Japanese manufacturer Casio was one of the leaders of this pack, with their early handheld calculators that were programmable in the BASIC language. Other symbolic languages were also used, most notably among them Hewlett-Packard's object-oriented RPL, still in use in their high-end calculators today.
Still greater memory capacity and faster electronics made it possible to develop calculators with high-resolution graphical displays. These graphing calculators are used in many classrooms today.
On the hardware side, a major drawback of many early programmable calculators was the loss of programs and data when the calculator was powered down. This problem was compounded by the fact that these calculators needed to be powered down in order to conserve battery power; internal rechargeable batteries typically offered no more than a few hours of usage before recharging.
The first solution was employed by the very first hand-held programmable calculator, the HP-65: it was capable of recording programs on tiny magnetic cards. (Similar magnetic cards, albeit much larger, were used in earlier desktop models.) Magnetic cards had the advantage that they made it easy for calculator owners to exchange programs; however, the readers were notoriously unreliable, and sensitive to wear and contamination. Another solution was the use of constant, or continuous, memory: in these calculators, memory contents were preserved even when the calculator was powered down.
Present-day high-end calculators usually offer the best of both worlds: continuous memory allows switching off the calculator with no memory loss, and external input-output ports make it possible, for instance, to record programs and data to your personal computer's hard disk.