Programmable calculator

Last updated

Programmable calculators are calculators that can automatically carry out a sequence of operations under control of a stored program. Most are Turing complete, and, as such, are theoretically general-purpose computers. However, their user interfaces and programming environments are specifically tailored to make performing small-scale numerical computations convenient, rather than general-purpose use.

Contents

The first programmable calculators such as the IBM CPC used punched cards or other media for program storage. Hand-held electronic calculators store programs on magnetic strips, removable read-only memory cartridges, flash memory, or in battery-backed read/write memory.

Since the early 1990s, most of these flexible handheld units belong to the class of graphing calculators. Before the mass-manufacture of inexpensive dot-matrix LCDs, however, programmable calculators usually featured a one-line numeric or alphanumeric display. The Big Four manufacturers of programmable calculators are Casio, Hewlett-Packard, Sharp, and Texas Instruments. All of the above have also made pocket computers in the past, especially Casio and Sharp.

Many calculators of this type are monochrome LCD, some are four-color (red or orange, green, blue, and black), or, in the case of some machines at the top of the line as of January 2022 color similar to monitors displaying 16 or 32-bit graphics. As they are used for graphing functions, the screens of these machines are pixel-addressable. Some have a touch screen, buzzers or other sound producers, internal clocks, modems or other connectivity devices including IrDA transceivers, several types of ports for peripherals like printers, and ports for memory cards of a number of types.

The wide availability and low cost of personal computers including laptop computers, smartphones and tablets gradually made programmable calculators obsolete for most applications. Many mathematical software packages can be automated and customized through scripting languages and plug-ins in a manner similar to handheld programmable calculators. However, programmable calculators remain popular in secondary and tertiary education. Specific calculator models are often required for use in many mathematics courses. Their continued use in education is usually justified by the strictly controllable functionality available. For instance, the calculators do not typically have direct Internet access and so cannot be used for illegal assistance in exams. The remaining programmable calculator manufacturers devote much effort to encourage the continued use of these calculators in high school mathematics. [1]

Earlier devices

Calculator programming

Programmable calculators allow the user to write and store programs in the calculator in order to solve difficult problems or automate an elaborate procedure.

Programming capability appears most commonly (although not exclusively) in graphing calculators, as the larger screen allows multiple lines of source code to be viewed simultaneously (i.e., without having to scroll to the next/previous display line). Originally, calculator programming had to be done in the calculator's own command language, but as calculator hackers discovered ways to bypass the main interface of the calculators and write assembly language programs, calculator companies (particularly Texas Instruments) began to support native-mode programming on their calculator hardware, first revealing the hooks used to enable such code to operate, and later explicitly building in facilities to handle such programs directly from the user interface.

Many programs written for calculators can be found on the internet. Users can download the programs to a personal computer, and then upload them to the calculator using a specialized link cable, infrared wireless link, or through a memory card. Sometimes these programs can also be run through emulators on the PC.

Programming these machines can be done on the machine, on the PC side and uploaded as source code, or compiled on the PC side and uploaded as with Flash and some C/C++ implementations. In addition to computer-side language packages such as tigcc, hpgcc, and others, the PC link software available for TI, HP, Casio, and Sharp calculators contain program editors; there are also SDKs, emulators, and other tools for use on the computer side, and other manufacturer and third-party tools like the TI++ editor. [2] Programs, data, and so forth can also be exchanged among similar machines via the same ports on the calculator used for PC connectivity. On-board programming tools which use non-native language implementations include the On-Board C Compiler for fx series Casio calculators and the TI-83 BBC Basic port.

One possibility arising from the above is writing interpreters, compilers, and translator programs for additional languages for programming the machines; BBC Basic has already been ported to the TI-83 and -84 series and other onboard languages and programming tools discussed by many include Fortran, awk, Pascal, Rexx, Perl, Common Lisp, Python, tcl, and various Unix shells.

Commonly available programs for calculators include everything from math/science related problem solvers to video games, as well as so-called demos. Much of this code is user-created freeware or even open source, though commercial software, particularly for educational and science/engineering markets, is also available. Programmable calculators have major websites with information, documentation, message boards, tools for download, and other things useful for this pursuit; the main sites for each manufacturer's calculators are run by third parties with varying degrees of collaboration from the companies themselves: namely HPCalc.org, TICalc.org, and CasioCalc.org, (qqv.) with the SharpCalc.org domain being recently purchased by an organization which indicated intent to produce a site similar to the other three, plus information on Sharp pocket computers. The companies themselves also have sites such as TIEducation.com with information and tools for the machines. [3]

Programming languages

Keystroke programming

In the early days, most programmable calculators used a very simplified programming language, often based either on recording actual keystrokes or bytecode if the keystrokes were merged. Calculators supporting such programming were Turing-complete if they supported both conditional statements and indirect addressing of memory. Notable examples of Turing complete calculators were Casio FX-602P series, the HP-41 and the TI-59. Keystroke programming is still used in mid-range calculators like the HP 35s and HP-12C.

BASIC

BASIC is a widespread programming language commonly adapted to desktop computers and pocket computers. The most common languages now used in high range calculators are proprietary BASIC-style dialects as used by Casio (Casio BASIC or BasicLike) and TI (TI-BASIC). These BASIC dialects are optimised for calculator use, combining the advantages of BASIC and keystroke programming. They have little in common with mainstream BASIC. [4] [5] [6] The version for the Ti-89 and subsequent is more fully featured, including the full set of string and character manipulation functions and statements in standard Basic.

A complete port of BBC Basic to the TI-83 subfamily of calculators is now available. It is installed via a cable or IrDA connection with a computer.

RPL

RPL is a special Forth-like programming language used by Hewlett-Packard in its high range devices. The first device with RPL calculator was the HP-28C released in 1987. [7]

The language PPL was introduced with the HP Prime calculator and is much like Pascal.

Assembly

An assembler integrated into the TI 89 and related calculators was announced and released in 2014.

Machine language programming was often discouraged on early calculator models; however, dedicated platform hackers discovered ways to bypass the built-in interpreters on some models and program the calculator directly in assembly language, a technique that was first discovered and utilized on the TI-85 due to a programming flaw in a mode-switching key.[ citation needed ] By the time the TI-83 came out, TI and HP had realized the need to address the support needs of homebrew programmers, and started to make assembly language libraries and documentation available for prospective developers. Software, particularly games, could now be nearly as fast and as graphical as their Game Boy counterparts, and TI, in particular, would later formalize assembly programming into support for packaged applications for future calculators such as the TI-83 Plus and TI-89; HP included some onboard support for assembler programming on the HP-50g, its then top-of-the-line calculator model.

Programs and toolkits to allow on-board assembly-like programming (often Intel 80x86 even if the actual processor in the calculator is something completely different like a Zilog or Motorola chip) are in the beta stage in at least two implementations—the native Basic variant can be enhanced by user-defined functions and procedures as well as assembly and C modules developed on a computer and uploaded to the calculator which allow for writing and running "pseudo assembly" programs just as one would the Basic type ones. Other languages like Rexx, awk, Perl, and some Unix shells can also be implemented in this fashion on many calculators of this type.

Other Languages

The GCC development suite is available for several models of Casio, HP, and TI calculators, meaning that C, C++, Fortran 77, and inline assembly language can be used to develop a program on the computer side and then upload it to the calculator.

Projects in development by third parties include on-board and/or computer-side converters, interpreters, code generators, macro assemblers, or compilers for Fortran, other Basic variants, awk, C, Cobol, Rexx, Perl, Python, Tcl, Pascal, Delphi, and operating system shells like DOS/Win95 batch, OS/2 batch, WinNT/2000 shell, Unix shells, and DCL.

Many TI, Casio, Sharp, and HP models have Lua interpreters which are part of the default configuration or can be optionally added.

Some calculators run a subset of Fortran 77 called Mini-Fortran; the compiler is on the calculator so connecting to a PC to put programs onto the machine is not needed.

The OnCalc C Compiler for the Casio fx-9860 series is now available. The Sharp PC G850V pocket computer has an onboard C compiler in addition to an assembler and a Basic interpreter.

Persistent memory

One important feature of programmable calculators is the availability of some form of persistent memory. Without persistent memory, programs have to be re-entered whenever power is lost, making the device cumbersome. Persistent memory can be internal or on a separate device. Some programmable calculators employ both schemes.

Magnetic card reader / writer

Magnetic card readers were among the first persistent memory options available. [8] The entered programs are stored on magnetic strips. Those were easy to transport, and the reader/writer was compact in size. However, the reader/writer as well as the magnetic strips were quite expensive. The last and most notable devices to use magnetic strips were the HP-41C and TI-59.

Continuous memory

Continuous memory does not lose its content when the calculator is switched off. With continuous memory the user can, for example, change batteries without losing the entered programs. [9]

Cassette tape

Compact cassettes offered a simple, inexpensive alternative to magnetic cards. Usually, an interface module, such as the Casio FA-1, was used to connect the calculator to an ordinary cassette recorder, and digital data were encoded as frequency-shift keyed audio signals. [10]

Sharp and Hewlett-Packard also sold dedicated micro- or mini-cassette recorders that connected directly to the calculator. These set-ups, while being more practical and reliable, were also more expensive.

Semi-continuous memory

As memory demands rose, it became more difficult to create true continuous memory and developers sought alternatives. With semi-continuous memory content was only preserved if specific battery-changing rules were observed. The most common rules were:

  1. A special backup battery would ensure that the memory was not lost while the main batteries were changed.
  2. Battery removal and replacement had to be completed in a relatively short time. For example, with the HP 35s, battery replacement had to be completed in less than 2 minutes after removal. [11]
  3. At least two main batteries were used and could only be changed one at a time.

PC-connection

Programs and data are transferred to a personal computer for storage. The transfer is done by the following connection methods (chronological order of appearance) RS-232, IrDA and USB. This method has the advantage of being very cost-efficient and is usually faster than the cassette interface. These advantages are offset by the need for a personal computer. An early example of a PC connection is the Casio FX-603P in conjunction with the Casio FA-6 interface. In this set-up, transfer was done in plain text so the program and data could be stored and edited with a standard text editor.

Flash memory

Programmable calculators and pocket computers

Throughout the 1980s and the beginning of the 1990s, programmable calculators stood in competition with pocket computers, with high-end calculators sharing many similarities. For example, both devices types were programmable in unstructured BASIC and with few exceptions featured QWERTY keyboards. However, there were also some differences:

Companies often had both device types in their product portfolio. Casio, for example, sold some BASIC-programmable calculators as part of their "fx-" calculator series (the "FX" was printed in uppercase) [13] and pocket computer the dedicated "pb-" series while Sharp marketed all BASIC-programmable devices as pocket computers.

Some programmable calculators have one or more methods of connecting to a PC for the interchange of data, programs, and software. These methods include IrDA, other wireless, serial ports -including USB or RS-232 via.125 inch or other size audio plugs, etc.

Some of the latest programmable calculators contain cellular modems as an additional channel of connectivity.

The programmable calculators can in many cases, via these connections, be used with peripherals such as data loggers and interfaces for instruments like thermometers, pH meters, weather instruments of all kinds, light meters, audio probes and microphones, dynamometers, pressure gauges, voltmeters, ammeters, ohm meters, atmospheric electricity measurement apparatus, ion counters, Geiger counters and scintillometers, altimeters, scales, accelerometers, and many others. Some machines can be used with oscilloscopes and their peripherals as well. Others can be configured—for example, collecting bio-feedback data by connecting devices for a pulse, blood pressure, oxygen saturation, galvanic skin resistance, body temperature, and even EKG and EEG probes to a data logger which is then connected to the calculator and, then or later, a PC.

The HP programmables and others have an IrDA interface which allows them to interface with the printers specially designed for the calculators, HP's main lines of laser printers, computers, other calculators, and other devices.

Also commonly available from many companies are small printers made specifically for calculators which tend to use cash register tape paper, ports and cables for connecting the calculators to a computer and/or another calculator, cassette recorders for recording programs and data, overhead projector displays, and connectors for auxiliary display devices. The earlier programmable calculators, as well as the pocket computers mentioned above, also had such things as video interfaces for televisions and composite monitors, 2½ inch mini floppy disc drives, bar-code readers, and standard RS-232 connectivity which provided for other such things as modems, external hard drives and more. The printer selection for the pocket computers was a bit wider as well, including thermal, impact, dot matrix, daisy wheel, 4-colour pen, printers of the type used in simpler printing calculators. Some calculators and pocket computers had external 3½ and 5¼ inch floppy drives, cables for connecting two cassette recorders, cradles containing a printer and/or cassette recorder into which the machine slid, and so on.

It is also possible to connect some machines to certain electric typewriters for use as a printer (the typewriters are also able to be connected to PCs for this purpose, and the interface tends to be a standard RS-232 and/or DIN plug), and in some cases to access the typewriter's floppy or micro floppy drives.

List of selected programmable calculators

SwissMicros replica of the HP-15C in credit card size DM-15C.JPG
SwissMicros replica of the HP-15C in credit card size
Casio
Casio FX-502P series · Casio FX-602P series · Casio FX-603P · FX-702P · FX-850P · Casio 9850 series · Casio 9860 series · Casio ClassPad 300
Elektronika
B3-21 · B3-34 · MK-61 · MK-52
Hewlett-Packard
HP-19C ·HP-25 · HP-25C ·HP-28C ·HP-28S ·HP-29C ·HP-32S ·HP-32sII ·HP 35s · HP-41C · HP-41CV ·HP-41CX ·HP-42S ·HP-48SX ·HP-48G ·HP-48GX · HP-49 · HP-50 · HP-65· HP-67· HP-97
NumWorks
Sharp
Sharp PC-1350 · PC-1401 · PC-1403 EL-9600c · EL-9900
SwissMicros
SwissMicros DM11 · SwissMicros DM12 · SwissMicros DM15 · SwissMicros DM16 · SwissMicros DM41 · SwissMicros DM42
Texas Instruments
TI-51-III ·SR-52 ·SR-56 ·TI-57 ·TI-58 C · TI-59 · Galaxy 67 · TI-83 Plus · TI-84 Plus · TI-85 · TI-89 · TI-92 · Voyage 200 · TI-Nspire

See also

Related Research Articles

<span class="mw-page-title-main">Calculator</span> Electronic device used for calculations

An electronic calculator is typically a portable electronic device used to perform calculations, ranging from basic arithmetic to complex mathematics.

<span class="mw-page-title-main">Microcomputer</span> Small computer with a CPU made out of a microprocessor

A microcomputer is a small, relatively inexpensive computer having a central processing unit (CPU) made out of a microprocessor. The computer also includes memory and input/output (I/O) circuitry together mounted on a printed circuit board (PCB). Microcomputers became popular in the 1970s and 1980s with the advent of increasingly powerful microprocessors. The predecessors to these computers, mainframes and minicomputers, were comparatively much larger and more expensive. Many microcomputers are also personal computers. An early use of the term "personal computer" in 1962 predates microprocessor-based designs. (See "Personal Computer: Computers at Companies" reference below). A "microcomputer" used as an embedded control system may have no human-readable input and output devices. "Personal computer" may be used generically or may denote an IBM PC compatible machine.

<span class="mw-page-title-main">Graphing calculator</span> Electronic calculator capable of plotting graphs

A graphing calculator is a handheld computer that is capable of plotting graphs, solving simultaneous equations, and performing other tasks with variables. Most popular graphing calculators are programmable calculators, allowing the user to create customized programs, typically for scientific, engineering or education applications. They have large screens that display several lines of text and calculations.

<span class="mw-page-title-main">Scientific calculator</span> Calculator designed to calculate problems in science, engineering, and mathematics


A scientific calculator is an electronic calculator, either desktop or handheld, designed to perform calculations using basic and advanced mathematical operations and functions. They have completely replaced slide rules as well as books of mathematical tables and are used in both educational and professional settings.

<span class="mw-page-title-main">HP-41C</span> Hewlett-Packard handheld RPN calculator

The HP-41C series are programmable, expandable, continuous memory handheld RPN calculators made by Hewlett-Packard from 1979 to 1990. The original model, HP-41C, was the first of its kind to offer alphanumeric display capabilities. Later came the HP-41CV and HP-41CX, offering more memory and functionality.

<span class="mw-page-title-main">Pocket Viewer</span> Model range of personal digital assistants

Pocket Viewer was a model range of personal digital assistants (PDAs) developed by Casio around the turn of the 21st century.

<span class="mw-page-title-main">Casio FX-850P</span>

The Casio FX-850P is a scientific calculator introduced in 1987 and sold until 1999.

<span class="mw-page-title-main">Sharp PC-1211</span>

The Sharp PC-1211 is the first pocket computer ever released, marketed by Sharp Corporation in March 1980. The computer was powered by two 4-bit CPUs laid out in power-saving CMOS circuitry. One acted as the main CPU, the other dealt with the input/output and display interface. Users could write computer programs in BASIC.

<span class="mw-page-title-main">Tandy Pocket Computer</span> Line of pocket computers

The Tandy Pocket Computer or TRS-80 Pocket Computer is a line of pocket computers sold by Tandy Corporation under the Tandy or Radio Shack TRS-80 brands.

<span class="mw-page-title-main">Pocket computer</span> Form of handheld computer popular in the 1980s

A pocket computer is a class of handheld computer characterized by very short displays and calculator-style alphanumeric keypads. Pocket computers occupy a small footprint, allowing the unit to be comfortably stashed in one's pocket when on the go, and usually weigh less than 1 pound (0.45 kg). Many feature a port for an expansion chassis, allowing the computers to be used with external peripherals.

<span class="mw-page-title-main">HP 9800 series</span>

The HP 9800 is a family of what were initially called programmable calculators and later desktop computers that were made by Hewlett-Packard, replacing their first HP 9100 calculator. It is also named "98 line". The 9830 and its successors were true computers in the modern sense of the term, complete with a powerful BASIC language interpreter.

<span class="mw-page-title-main">TI-59 / TI-58</span> Programmable calculator produced by Texas Instruments

The TI-59 is an early programmable calculator, that was manufactured by Texas Instruments from 1977. It is the successor to the TI SR-52, quadrupling the number of "program steps" of storage, and adding "ROM Program Modules". Just like the SR-52, it has a magnetic card reader for external storage. One quarter of the memory is stored on each side of one card.

<span class="mw-page-title-main">Casio ClassPad 300</span> Family of graphing calculators by Casio

The Casio ClassPad 300, ClassPad 330 and fx-CP400 are stylus based touch-screen graphing calculators. It comes with a collection of applications that support self-study, like 3D Graph, Geometry, eActivity, Spreadsheet, etc. A large 160x240 pixel LCD touch screen enables stylus-based operation. It resembles Casio's earlier Pocket Viewer line. HP and Texas Instruments attempted to release similar pen based calculators (the HP Xpander and PET Project, but both were cancelled before release to the market.

<span class="mw-page-title-main">HP-71B</span> Late 1980s programmable handheld computer

The HP-71B was a hand-held computer or calculator programmable in BASIC, made by Hewlett-Packard from 1984 to 1989.

<span class="mw-page-title-main">HP-16C</span> Programmable calculator produce by Hewlett-Packard

The HP-16C Computer Scientist is a programmable pocket calculator that was produced by Hewlett-Packard between 1982 and 1989. It was specifically designed for use by computer programmers, to assist in debugging. It is a member of the HP Voyager series of programmable calculators. It was the only programmer's calculator ever produced by HP, though many later HP calculators have incorporated most of the 16C's functions.

<span class="mw-page-title-main">Casio 9850 series</span> Series of graphing calculators by Casio

The Casio CFX-9850G series is a series of graphing calculators manufactured by Casio Computer Co., Ltd. from 1996 to 2008.

Casio BASIC is a programming language used in the Casio calculators such as the ClassPad, PRIZM Series, fx-9860G Series, fx-5800P, Algebra FX and CFX graphing calculators. It is also known as "BasicLike" in some models.

<span class="mw-page-title-main">Casio FX-602P series</span> Series of programmable calculators produced by Casio

The FX-601P and FX-602P were programmable calculators, manufactured by Casio from 1981. It was the successor model to the Casio FX-502P series and was itself succeeded in 1990 by the Casio FX-603P.

<span class="mw-page-title-main">Casio FX-702P</span>

The FX-702P is a Pocket Computer, manufactured by Casio from 1981 to 1984.

<span class="mw-page-title-main">Casio Algebra FX Series</span> Series of Casio graphing calculators

The Casio Algebra FX series was a line of graphing calculators manufactured by Casio Computer Co., Ltd from 1999 to 2003. They were the successor models to the CFX-9970G, the first Casio calculator with computer algebra system, or CAS, a program for symbolic manipulation of mathematical expressions. The calculators were discontinued and succeeded by the Casio ClassPad 300 in 2003.

References

  1. Kosoff, Maya (25 November 2019). "Big Calculator: How Texas Instruments Monopolized Math Class". GEN. Medium. Retrieved 30 March 2022.
  2. http://www.ticalc.org/archives/files/fileinfo/300/30032.html
  3. TIEducation.com
  4. "Programming Casio FX-7400G+" (PDF). Retrieved 2014-03-23.
  5. "Programming Casio BASIC on the CFX-9850 Series" (PDF). Retrieved 2014-03-23.
  6. "TI-Basic Developer". Tibasicdev.wikidot.com. Retrieved 2014-03-23.
  7. Description of the HP-28C in The Museum of HP Calculators
  8. i.E. HP 9810A introduced 1971
  9. Description of the HP-15C in the Museum of HP Calculators
  10. Description of the FX-502P and FA-1 on Voidware
  11. HP-32s Users Manual Archived 2008-08-21 at the Wayback Machine Page 289ff
  12. Description of the PB-2000 in Caz Pocket Computers
  13. The picture of the FX-700P and FX-702P show the text "programmable calculator"