Programmable calculator: Difference between revisions

Content deleted Content added
Reverted good faith edits by VipulG4321 (talk): Copyright issue re https://www.programiz.com/cpp-programming/examples/calculator-switch-case
Pedlan (talk | contribs)
m Related tools: minor correction
Tags: Mobile edit Mobile app edit Android app edit App section source
 
(48 intermediate revisions by 29 users not shown)
Line 1:
{{Short description|Can automatically carry out a stored sequence of operations}}
'''Programmable calculators''' are [[calculator]]s that can automatically carry out a sequence of operations under control of a stored [[computer programming|program]], much like a [[computer]]. 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.
'''Programmable calculators''' are [[calculator]]s that can automatically carry out a sequence of operations under the control of a stored [[computer programming|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 for general-purpose use.
'''Programmable calculators''' are [[calculator]]s that can automatically carry out a sequence of operations under control of a stored [[computer programming|program]], much like a [[computer]]. 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 calculator]]s. Before the mass-manufacture of inexpensive [[dot-matrix]] [[LCD]]s, however, programmable calculators usually featured a one-line numeric or [[alphanumeric]] display. The Big Four manufacturers of programmable calculators are [[Casio]], [[Hewlett-Packard]], [[Sharp Corporation|Sharp]], and [[Texas Instruments]]. All of the above have also made [[pocket computer]]s 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 FebruaryJanuary 20152022 color similar to monitors displaying 816 or 16 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 computer]]s including [[laptop computer]]s, [[smartphone]]s and [[tablet computer|tablets]] gradually made programmable calculators obsolete for most applications. Many mathematical software packages can be automated and customized through [[scripting languages]] and [[plug-in (computing)|plug-ins]] in a manner similar to handheld programmable calculators. However, programmable calculators remain popular in [[secondary education| 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.<ref>{{cite news |last1=Kosoff |first1=Maya |title=Big Calculator: How Texas Instruments Monopolized Math Class |url=https://gen.medium.com/big-calculator-how-texas-instruments-monopolized-math-class-67ee165045dc |access-date=30 March 2022 |work=GEN |publisher=Medium |date=25 November 2019}}</ref>
:''For earlier devices, see: [[History of computing hardware]]
 
==Earlier devices==
:''For earlier devices, see: [[{{main|History of computing hardware]]}}
 
== Calculator programming ==
Line 14 ⟶ 20:
Programming capability appears most commonly (although not exclusively) in [[graphing calculator]]s, as the larger screen allows multiple lines of [[source code]] to be viewed simultaneously (i.e., without having to [[scrolling|scroll]] to the next/previous display line). Originally, calculator programming had to be done in the calculator's own command language, but as calculator [[Hacker (hobbyist)|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 [[electrical cable|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.<ref>http{{Cite web|url=https://www.ticalc.org/archives/files/fileinfo/300/30032.html|title=TI++ Program Editor - ticalc.org|website=www.ticalc.org}}</ref> 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 series|TI-83]] and [[TI-84 Plus series|-84]] series and other on-boardonboard languages and programming tools discussed by many include Fortran, awk, Pascal, Rexx, perlPerl, Common Lisp, Python, tcl, and various Unix shells.
 
Commonly available programs for calculators include everything from [[math]]/[[science]] related problem solvers to [[calculator gaming|video games]], as well as so-called [[demoscene|demos]]. Much of this code is user-created freeware or even [[Open-source software|open source]], though commercial software, particularly for educational and science/engineering markets, is also available. Programmable calculators have major web siteswebsites 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 organisationorganization 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.<ref>TIEducation.com</ref>
 
<gallery perrow="7">
File:TI-59 programmable calculator with magnetic card.jpg|A [[TI-59 / TI-58|TI-59]] showingwith onea cardmagnetic instorage the holder on the front of the calculator and anothercard being inserted into the card reader inon the side.
File:HP-41CX.jpg|[[HP-41C|HP-41CX]] with magnetic card reader and thermal printer
File:Elektronika MK-52.JPG|A complete range of programmable calculators were developed in former [[USSR]]. Some of them (like this [[MK-52]]), werewas used even in space missions.
File:CASIO FX-602P Programmable Calculator.png|An older model [[Casio FX-602P series|FX-602P]] in working condition
File:Hp50.png|[[HP-49#HP 50g|HP 50g]] graphing calculator, with the Equation Editor being used
File:CasioClassPad300.JPG|[[Casio ClassPad 300]] touch screen calculator
File:Computer algebra system.jpg|[[TI-Nspire]] from Texas Instruments
</gallery>
 
Line 38 ⟶ 40:
{{main|Keystroke programmable}}
 
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 [[programming language|languages]] now used in high range calculators are proprietary [[BASIC]]-style dialects as used by [[CASIOCasio]] <small>([[Casio BASIC]] or BasicLike)</small> and [[Texas Instruments|TI]] <small>([[TI-BASIC]])</small>. These BASIC dialects are optimised for calculator use, combining the advantages of BASIC and keystroke programming. They have little in common with mainstream BASIC.<ref>{{cite web|url=http://insight4survey.files.wordpress.com/2007/06/kissane7400.pdf |title=Programming Casio FX-7400G+ |format=PDF |access-date= |accessdate=2014-03-23}}</ref><ref>{{cite web|url=http://insight4survey.files.wordpress.com/2007/06/casiobasic9850.pdf |title=Programming Casio BASIC on the CFX-9850 Series |format=PDF |access-date= |accessdate=2014-03-23}}</ref><ref>{{cite web|url=http://tibasicdev.wikidot.com |title=TI-Basic Developer |publisher=Tibasicdev.wikidot.com |access-date= |accessdate=2014-03-23}}</ref> 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 ===
 
{{main|RPL (programming language)}}
 
[[RPL (programming language)|RPL]] is a special [[Forth (programming language)|Forth]]-like programming language used by [[Hewlett Packard|Hewlett- Packard]] in its high range devices. The first device with RPL calculator was the [[HP-28C]] released in 1987.<ref>Description of the [[HP-28C]] in [http://www.hpmuseum.org The Museum of HP Calculators]</ref>
 
The language [[Prime Programming Language|PPL]] was introduced with the [[HP Prime]] calculator and is much like [[Pascal (programming language)|Pascal]].
 
=== Assembly ===
Line 60 ⟶ 61:
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|date=February 2016}} 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 line|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 includesincluded some onboard support for assembler programming on the [[HP-49 series|HP-50g]], its currentthen top-of-the-line calculator model.
 
Programs and toolkits to allow on-board assembly-like programming (often [[x86|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.
Line 67 ⟶ 68:
The [[GNU Compiler Collection|GCC]] development suite is available for several models of Casio, HP, and TI calculators, meaning that [[C (programming language)|C]], [[C++]], [[Fortran 77]], and [[inline assembler|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 (programming language)|C]], [[Cobol]], [[Rexx]], [[Perl]], [[Python (programming language)|Python]], [[Tcl]], [[Pascal (programming language)|Pascal]], [[Delphi (programming language)|Delphi]], and operating system shells like DOS/Win95 batch, OS/2 batch, WinNT/2000 shell, [[Unix shells]], and [[DIGITAL Command Language|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 on-boardonboard C compiler in addition to an assembler and a Basic interpreter.
 
== Persistent memory ==
Line 89 ⟶ 90:
{{main|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.<ref>Description of the [http://www.hpmuseum.org/hp25c.htm HP-15C25C] in the [http://www.hpmuseum.org Museum of HP Calculators]</ref>
 
=== Cassette tape ===
{{further|Compact Cassette#Data recording}}
 
[[Compact Cassettecassette]]s 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 keying|frequency-shift keyed]] audio signals.<ref>Description of the [http://www.voidware.com/calcs/fx501p.htm FX-502P501P and FA-1] on [http://www.voidware.com/calcs/museum.htm Voidware]</ref>
 
[[Sharp Corporation|Sharp]] and [[Hewlett-Packard]] also sold dedicated [[Microcassette|micro-]] or [[Mini-Cassette|mini-cassette]] recorders that connected directly to the calculator. These set-ups, while being more practical and reliable, were also more expensive.
Line 100 ⟶ 101:
=== Semi-continuous memory ===
 
As memory demands rose, it became more difficult to create true continuous memory and developers sought alternatives. With semi-continuous memory memory content was only preserved if specific battery-changing rules were observed. The most common rules were:
 
# A special backup battery would ensure that the memory was not lost while the main batteries were changed.
Line 108 ⟶ 109:
=== PC-connection ===
 
Programs and data are transferred to a [[personal computer]] for storage. The transfer is done by the following connection methods <small>(chronological order of appearance)</small> [[RS-232]], [[Infrared Data Association|IrDA]] and [[Universal Serial Bus|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 offor 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 [[Editing|edited]] with a standard [[text editor]].
 
=== Flash memory ===
Line 118 ⟶ 119:
{{main|Pocket computer}}
 
Throughout the 1980s and the beginning of the 1990s, programmable calculators stood in competition with [[pocket computer]]s, with high-end calculators sharing many similarities. For example, both devicedevices types were programmable in unstructured BASIC and with few exceptions featured [[QWERTY]] keyboards. However, there were also some differences:
 
* BASIC-programmable calculators often featured an additional "calculator-like" keyboard and a special calculator mode in which the system behaved like a [[scientific calculator]].
* Pocket computers often offered additional programming languages as option. The [[Casio PB-2000]] for example offered [[C (programming language)|ANSI-C]], [[BASIC]], [[Assembly language|Assembler]] and [[Lisp (programming language)|Lisp]].<ref>Description of the [http://cdecas.free.fr/computers/pocket/pb2000.php PB-2000] in [http://cdecas.free.fr/computers/pocket Caz Pocket Computers]</ref>
 
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)<ref>The picture of the [http://pocket.free.fr/html/casio/fx-700p_e.html FX-700P] and [http://pocket.free.fr/html/casio/fx-702p_e.html FX-702P] show the text "programmable calculator"</ref> and pocket computer the dedicated "pb-" series while [[Sharp Corporation|Sharp]] marketed all BASIC-programmable devices as pocket computers.
 
==Related tools==
{{RefimproveMore citations needed section|date=October 2015}}
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 calculatorcalculators. 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 ==
<!-- add only calculators with articles in Wikipedia -->
[[File:DM-15C.JPG|thumb|right|SwissMicros replica of the [[HP-15C]] in credit card size]]
Line 153 ⟶ 154:
== See also ==
* [[Calculator input methods]]
* [[GraphicsGraphing calculator]]
* [[Pocket computer]]
* [[Scientific calculator]]
 
== References ==
{{commonscatcommons category|Programmable calculators}}
<references />
 
{{Calculator navbox}}
{{Computer sizes}}