# Programmierbarer Taschenrechner

Programmierbare Taschenrechner sind Taschenrechner, die ähnlich wie Computer für die Abarbeitung komplexer Rechenvorgänge programmiert werden können. Der erste Taschenrechner dieses Typs war 1974 der HP-65 von Hewlett-Packard für 795 US-Dollar, nach heutiger Kaufkraft etwa 4.400 US-Dollar. Heute kosten erheblich leistungsfähigere Geräte als No-Name-Gerät ab etwa zehn bis zwanzig Euro.

## Entwicklungsgeschichte

Besondere Meilensteine in der Entwicklung von programmierbaren Taschenrechnern (einige Merkmale wurden in nicht-programmierbaren Modellen zuerst eingeführt) waren:
* 1974 wurde von Hewlett-Packard (HP) der HP-65 als weltweit erster programmierbarer Taschenrechner vorgestellt. Da der Programm- und Datenspeicher beim Ausschalten gelöscht wurde, erhielt der Taschenrechner zusätzlich einen Magnetkartenleser für die externe Speicherung der Programme. Wesentlich für die Verbreitung war auch, dass über Magnetkarten die Besitzer baugleicher Taschenrechner Software austauschen konnten.
    Die Programmierung bestand darin, dass die manuelle Berechnungsfolge als Tastendrücke zur wiederholbaren Ausführung gespeichert wurden und mit Kontrollstrukturen (Vergleiche, Schleifen, Sprünge) und Speicheroperationen angereichert werden konnten. Eine besondere Eigenart der HP-Modelle war die Eingabelogik, die als umgekehrte polnische Notation (UPN) bezeichnet wurde und als vorteilhaft bei der Implementierung galt.
* 1975 beherrschte der SR-52 von Texas Instruments (TI) die indirekte Adressierung von Datenregistern und Programmzeilen. Darüber hinaus konnte der SR-52 an einen speziellen Thermodrucker (PC-100A von TI) angeschlossen werden und Daten wie Programme auf Thermopapier ausgeben.
    Im Unterschied zu HP favorisierte TI als Eingabelogik die AOS (Algebraic Operation System) mit der üblichen Operatorrangfolge wie Punktrechnung vor Strichrechnung.
* 1975 erschien der HP-55 mit einem Quarzoszillator, der Stoppuhrfunktionen ermöglichte.
* 1975 gelangte der HP-65 im Rahmen des Apollo-Sojus-Test-Projektes in eine Erdumlaufbahn (ca. 187–222 km Höhe).
* 1976 wurde mit dem HP-25C das RAM in stromsparender CMOS-Technik ausgeführt, dadurch blieben Programme und Daten auch nach dem Ausschalten erhalten („Continuous Memory“).
* 1976 lösten HP-67 und HP-97 als Taschenrechner (HP-67) und dazu voll-kompatiblem Tischrechner mit Drucker (HP-97) den HP-65 ab. Es war nun möglich, Programme zu verarbeiten, die größer als der Speicher des Rechners waren. Dazu forderte der Befehl „Merge“ eine neue Magnetkarte an, die vorhandene Programmteile überschrieb.
* 1977 wurde der TI-59 als Nachfolger des SR-52 vorgestellt, der für kleine wechselbare ROM-Module mit Software („Solid State Software“, ca. 5 kB/Modul) zu verschiedenen Themen (Statistik, Navigation) vorbereitet war. Der TI-59 war in der Lage, seinen (für die Zeit) riesiges RAM von 960 Bytes variabel zwischen Datenspeicher und Programmspeicher aufzuteilen.
* 1977 wurde auch der HP-19C vorgestellt, der den Drucker in seinem kompakten Taschenrechnergehäuse integrierte.
* 1977 wurde der HP-97S vorgestellt, ein erweiterter HP-97, der erstmals mit einer externen Schnittstelle (BCD, parallel) ausgerüstet wurde.
* 1978 wurde mit dem HP-38E erstmals ein finanzmathematischer Rechner programmierbar. Bisher hatten sich die Hersteller programmierbarer Taschenrechner auf technisch-wissenschaftliche Anwendungsbereiche konzentriert.
* 1979 erhielt der HP-41C ein alphanumerisches LC-Display (Texas Instruments hatte ein LCD mit rein numerischer Darstellung im nicht-programmierbaren TI-1750 bereits 1977 vorgestellt), konnte Texte darstellen und diese auch im Programm verarbeiten. Optionale Anschlüsse und Module für die Schächte des HP-41C ergänzten das Angebot im Laufe der Jahre, z. B. RAM, Zeitfunktionen, Spezialfunktionen, Kartenleser, Drucker, Barcodeleser, und ein Infrarotmodul für weitere Drucker. Erstmals wurden die Speicherbereiche für verschiedene Programme gegeneinander abgeschottet. Im Laufe seiner weiteren, 10-jährigen Bauzeit wurde eine Interface-Loop (HP-IL) angeboten, mit der beispielsweise Magnetkassettengeräte oder Messgeräte angesteuert bzw. ausgelesen werden konnten.
* 1979 erschien der Sharp EL-5100. Er besaß eine Punktmatrixanzeige zur Darstellung von Zahlen und Zeichen (im Gegensatz zur alphanumerischen Segmentanzeige des HP-41C). Der EL-5100 konnte nur formelprogrammiert werden ohne Sprungbefehle oder bedingte Anweisungen.
* 1981 wurde der finanzmathematische HP-12C vorgestellt, der seitdem (Stand 2017) fast unverändert gebaut wird und damit der am längsten verkaufte programmierbare Taschenrechner auf dem Markt sein dürfte.
* 1981 begann die NASA, HP-41-Modelle den Astronauten der Raumfähre Columbia mitzugeben. Die Astronauten konnten mit speziellen HP-41-Programmen die Parameter für den Wiedereintritt überprüfen, die der Bordcomputer berechnet hatte. 1985 nahm so auch ein HP-41CX an der deutschen D1-Mission im Space-Shuttle teil, das Gerät der D1-Mission befindet sich heute im Besitz des Deutschen Museums.
* 1982 wurde mit dem HP-75C der für Akkubetrieb zu energiehungrige Motor für den Magnetkartenleser wieder abgeschafft. Die Magnetkarten wurden von Hand durch einen Schlitz am Gehäuse gezogen.
* 1982 wurde mit dem HP-16C ein Rechner speziell für Programmierer vorgestellt, um beispielsweise in verschiedenen Zahlensystemen zu rechnen. Texas Instruments hatte zwar schon 1977 den TI Programmer herausgebracht, allerdings war der nicht programmierbar.
* 1982 wurde mit dem HP-15C ein Rechner vorgestellt, der einen Stack für komplexe Zahlen bot und somit viele Rechnungen der Elektrotechnik einfach bewältigen konnte (TI hatte den nicht-programmierbaren TI-54 für reelle und komplexe „algebraische Funktionen“ bereits 1981 vorgestellt). Matrixoperationen und -funktionen wurden ebenfalls als eingebaute Funktion des HP-15C realisiert. Da der HP-15C weder drucken noch Programme extern übertragen konnte, hielt sich der Austausch von Software in Grenzen. 2011 legte Hewlett Packard eine 'Limited Edition' dieses Rechners auf, der als Nachbau des Ur-HP-15 optisch sehr ähnlich, aber etwa 100-fach schneller arbeitete.
* 1984 erschien mit dem Sharp EL-5400 erstmals ein Taschenrechner mit BASIC als höhere Programmiersprache. Der EL5400 war in Design und Programmierbarkeit an den 1979 vorgestellten Sharp PC-1210 angelehnt, dem ersten BASIC-programmierbaren Taschencomputer.
* 1985 stellte Casio mit dem Casio FX-7000G den ersten grafikfähigen Taschenrechner vor. Die verschiedenen Grafikfunktionen konnten sowohl manuell aufgerufen als auch in selbstgeschriebenen Programmen benutzt werden.
* 1986 erschien Casios fx-5500, der erste Taschenrechner mit einem begrenzten Computeralgebrasystem (CAS). Der fx-5500 war in der Lage Ausdrücke symbolisch zu manipulieren (Faktorisieren, Expandieren, Vereinfachen). Der Taschenrechner konnte nur formelprogrammiert werden ohne Sprungbefehle oder bedingte Anweisungen.
* 1987 wurde der HP-28C vorgestellt. Der HP-28 verwendete eine neue, HP-eigene Sprache (RPL), die rekursive Programmierung ermöglichte, uneingeschränkt mit reellen wie komplexen Zahlen rechnete, Matrixalgebra und grafische Darstellungen erlaubte und symbolische Ausdrücke berechnen und ableiten konnte. Alle Speicher (Variable, Unterprogramm-Rücksprungebenen, Stackebenen) waren nur noch durch die Kapazität des RAMs begrenzt, so dass Programme beliebige andere Programme rückwirkungsfrei aufrufen konnten. Die Entwicklung mündete im HP-48SX und dessen Nachfolgern.
* 1990 erhielt der HP-48SX serienmäßig eine RS-232-Schnittstelle, mit der Daten und Programme auf PCs gespeichert werden konnten. Eine Infrarotschnittstelle erlaubte es, Daten und Programme mit kompatiblen Modellen auszutauschen.
* 1995 erschien mit dem TI-92 der erste Taschenrechner mit einem vollständigen Computer Algebra System (basierend auf Derive). Der TI-92 ist in einer BASIC-artigen Sprache programmierbar.
In der Anfangszeit konkurrierten programmierbare Taschenrechner mit Rechenschiebern und einfachen Taschenrechnern, so dass die hochwertigen Rechner vor allem bei Wissenschaftlern und Ingenieuren beliebt waren und für zahlreiche technische und (in begrenztem Umfang) betriebswirtschaftliche Fragestellungen programmiert wurden. Als Ende der 1980er Jahre LC-Displays günstig wurden und immer mehr grafikfähige Taschenrechner auf den Markt kamen, wuchs gleichzeitig eine immer stärkere Konkurrenz durch die Tabellenkalkulationen auf PCs heran, die letztendlich die Verbreitung und dadurch auch die Entwicklung und den Absatz neuer Generationen von programmierbaren Taschenrechnern bremste. Wesentliche Neuentwicklungen sind auf diesem Gebiet daher nicht mehr zu erwarten.

## Technik

Programmierbare Taschenrechner besitzen einen internen Speicher, in dem Programme abgespeichert werden können, die komplexe Berechnungsvorgänge vereinfachen oder automatisieren können. Die Eingabe solcher Programme erfolgt über die Tastatur des Taschenrechners in einem speziellen Programmeingabemodus. Aufgrund der zumeist einfachen Anzeigen in Taschenrechnern (früher nur eine Zeile zur Anzeige von Zahlen, heute meist mehrere Zeilen) beschränkt sich das Editieren von Programmen auf Scrollbefehle (ein Programmbefehl vor, ein Programmbefehl zurück in der Anzeige), das Einfügen, Überschreiben und Löschen von Befehlen. Frühe Taschenrechner erlaubten keine Eingabe von Buchstaben, so dass nur die Tastenbefehle auf der Tastatur verwendet werden konnten. Die Programmierung war maschinennah, d. h., es wurden Speicherregister und Programmregister explizit verwendet („Speichere 5 in Speicherregister 3“: 5 STO 3 in UPN; „Springe zu Programmzeile 78“: GTO 78 etc.). Programmierbare Taschenrechner, die zudem auch grafikfähig sind, bieten aber mittlerweile oftmals schon Texteditoren mit teilweise recht umfangreicher Funktionalität für diese Zwecke (und weisen oftmals auch keinen speziellen Programmiermodus auf).
Der wesentliche Nachteil der Programmierung von Tastenfolgen bestand darin, dass gemeinsame Ressourcen, wie Datenspeicher, Rechenregister/Stack und Flags nicht abgeschottet werden konnten. So genügte es bei einem fremden Hilfsprogramm nicht, die Eingabe und Ausgabe zu kennen (wie bei den eingebauten Funktionen des Taschenrechners), sondern man musste auch die Belegung der Ressourcen und Konflikte mit dem eigenen Programm überprüfen. Notwendige Änderungen waren nur manuell möglich und bei Programmen, die mit indirekter Adressierung von Speicherregistern arbeiteten, nur nach Analyse des Programms möglich. Erst Programmiersprachen wie RPL bei HP (eingeführt mit dem HP-28C und den HP-48/49/... ff. Modellen) erlaubten umfangreichere Programmsammlungen, ohne dass die Ausführung von fremden Hilfs- und Unterprogrammen das eigene Programm gestört hätte.
Programme konnten zunächst nur im Taschenrechner selbst, später auch auf Magnetkarten gespeichert werden. Wenige Modelle erlaubten das Lesen von Programmen über Barcodes und Magnetbandlaufwerken (HP-41). Mit dem Markterfolg des PC waren moderne Taschenrechner ab den 1990er Jahren auch in der Lage, mit Computern zu kommunizieren. Ab da bestand die Möglichkeit, fertige Programme für den Taschenrechner auf dem PC zu entwerfen bzw. aus dem Internet (ab Mitte der 1990er Jahre) zu laden und anschließend auf den Taschenrechner mittels eines speziellen Übertragungskabels (inzwischen USB) zu übertragen.

## Anwendung

Das Spektrum der möglichen Programme ist sehr groß. Von Mathematikprogrammen und Geometrieprogrammen bis hin zu Spielen ist nahezu jedes Genre an Programmen vertreten. Es hat sich gezeigt, dass die funktionelle Ausrichtung der Rechner überwiegend naturwissenschaftlich war. Taschenrechner mit Spezialisierung auf Finanzmathematik kamen erst spät heraus. Wegen der immer noch eingeschränkten Grafikmöglichkeiten und der mäßigen Arbeitsgeschwindigkeit sind Spiele eher einfach und haben nur eine geringe Verbreitung gefunden.

## Austausch von Software

Die Taschenrechner waren nur auf ihre eigene, proprietäre Art programmierbar und der Austausch von Programmen war bis Mitte der 1980er Jahre nur über Magnetkarten möglich. Bei den Rechnern beinhaltete dies meist die Abwärtskompatibilität zum Vorgängermodell, sonst waren die Anwender für den Austausch von Software auf gedruckte Medien angewiesen. Für den HP-41C hat HP einen Barcodeleser entwickelt, der gedruckte Barcodes einfach übernehmen konnte. Allerdings hatten die Anwender keine offizielle Möglichkeit, selbst Barcodes zu erstellen, bis Bastler einen Umbau des HP-Druckers zum 41C vorstellten. Später hat HP die Interface Loop eingeführt, über die erstmals Disketten und Magnetkassetten zur Speicherung von Daten und Programmen benutzt werden konnten, allerdings zu einem vergleichsweise hohen Preis.
Mit themenorientierten Lösungsbüchern haben die Hersteller der höherwertigen Rechner Software für ihre Produkte verbreitet. HP vertrieb die Pakete mit Magnetkarten, später mit Barcodes für den HP-41C, während Texas Instruments für den TI-59 sogar ROM-Module anbot, beispielsweise für die Navigation auf See.
Hewlett-Packard hat mit seiner 'Users Program Library Europe' (UPLE) und einem Belohnungssystem für eingereichte Software bis 1983 am freien Austausch von Programmen zwischen den Anwendern mitgewirkt.
Die Verbreitung von Software wurde außerdem von Fachzeitschriften und vor allem durch verschiedene Vereine gefördert:
* Computerclub Deutschland e. V. (CCD), der im November 1981 gegründet wurde. Die Mitgliederzeitschrift hieß PRISMA, neben Programmlistings wurden für den HP-41 später auch als Barcodes abgedruckt.
* Mikro-Taschen Computer Anwender Club (MICAC, vormals German Chapter des HP-65 Users Club) in Köln, die Mitgliederzeitschrift hieß 'Display'.
* TI 58-59 Software Club

## Nostalgie

Inzwischen gibt es einige Emulatoren und Simulatoren für verschiedene Betriebssysteme, die vor allem alte Hewlett-Packard Taschenrechner nachbilden und teilweise den Original-Code verwenden. Diese Nachbildungen sind darüber hinaus auf die gleiche Art programmierbar, wie die Original-Rechner. Speziell bei HP-Rechnern bedeutet dies, dass wesentliche Merkmale wie UPN oder BCD-Arithmetik (statt Binärarithmetik) erhalten wurden.
Höhepunkt ist bisher der Nachbau verschiedener Rechner, die meist aus der Voyager-Serie von HP stammen. HP selbst hat 2011 eine Limited Edition des HP-15C angekündigt und später herausgebracht. Der Anbieter Swiss Micros hat seit 2012 die meisten Rechner der Voyager-Serie und andere Modelle als Nachbauten mit dem Original-HP-Microcode herausgebracht, wobei der ursprüngliche HP-Prozessor von einem aktuellen Mikroprozessor emuliert wird. Diese Methode hat auch HP bei der Limited Edition angewendet.