HP-15C
# HP-15C

Der HP-15C war ein programmierbarer Taschenrechner der Firma Hewlett-Packard und das Spitzenmodell der „Voyager“-Serie. Zusätzlich zu den Funktionen des HP-11C bietet er Nullstellenbestimmung, numerische Integration, Rechnen mit Komplexen Zahlen und umfangreiche Matrizenfunktionen, zusätzliche Flags und weitere Vergleichsfunktionen. Er war der Nachfolger des erfolgreichen HP-34C und erweiterte dessen Funktionsumfang nochmals erheblich. Der Produktionszeitraum war von 1982 bis 1989. Aufgrund zahlreicher Kundenanfragen bot HP im Jahr 2011 eine optisch und funktional zum Original weitgehend identische Neuauflage unter dem Namen „Limited Edition“ an, die schnell vergriffen war. Unter Windows ist etwa seit 2011 eine Emulation des 15C verfügbar.

## Eigenschaften

Der UPN-bediente Rechner verfügt bei zehnstelliger Genauigkeit, ebenso wie der HP-11C, über einen vollständigen Satz mathematisch-naturwissenschaftlicher Funktionen einschließlich Hyperbel- und Kombinatorikfunktionen, Statistik und Regression sowie über einen Pseudozufallszahlengenerator. Im Vergleich zum HP-41 fehlt andererseits eine Signum- sowie eine Modulofunktion zur Bestimmung von Vorzeichen bzw. Divisionsrest, wie auch die Logarithmus- und Exponentialfunktionen mit höherer Genauigkeit für Argumente nahe 1 bzw. 0.

Eine komplette Neuheit waren die Matrizenfunktionen für bis zu fünf Matrizen, welche allesamt elegant in die UPN-Logik eingebettet waren. Referenzen („Deskriptoren“, A–E möglich) von Matrizen konnten wie reelle Zahlen als Objekte im Stack abgelegt werden. Die eingebauten Algorithmen beinhalteten die üblichen Matrizenoperationen (Arithmetik, Transposition, Determinanten, Lösen linearer Gleichungssysteme usw.) Die Inverse einer reellen Matrix konnte bis zur Dimension 8×8 direkt berechnet werden. Daneben wurden auch Matrizen von komplexen Zahlen unterstützt, mit etwas eingeschränkten Rechenoperationen. Speichern und Abrufen der Matrixelemente wurde durch automatische Funktionen unterstützt, die zwei Speicher (0 und 1) zur Adressierung der Reihen- und Spaltennummer verwendeten, so dass sich Matrizen auch mit dem einzeiligen numerischen Display komfortabel eingeben und bearbeiten ließen. Die automatische Indexverwaltung ermöglichte auch das Verlassen einer Schleife nach dem Abarbeiten einer Matrix, siehe Anwendungsbeispiel unten.

Für die Berechnung mit komplexen Zahlen – die ebenso wie Matrixoperationen durch geschickte Programmierung mit Einschränkungen auch auf früheren Modellen schon verfügbar war – ließ sich ein zweiter Stack einrichten, der die imaginären Elemente aufnahm und das Rechnen wie mit reellen Zahlen erlaubte, mit exakt der gleichen Nutzung aller Stackregister einschließlich LASTX. Dadurch ergaben sich umfangreiche Anwendungsmöglichkeiten insbesondere in der Elektrotechnik, die im Handbuch ausführlich erläutert wurden. Im Speicher belegen komplexe Zahlen je ein Register für den Real- und den Imaginärteil, die getrennt gespeichert und zurückgerufen werden müssen.

Der Speicherbereich lässt sich vom Benutzer zwischen Daten- und Programmspeicher aufteilen; letzterer wird dynamisch verwaltet, um die höheren Funktionen (Solver, Integrationsfunktion und Matrizen) zu nutzen. Eine Vierfachbelegung der Tasten konnte dadurch vermieden werden, dass einige Funktionen ein Argument verlangen, wie z. B. g Test 2 für den Vergleich x < 0. Dies erforderte allerdings, dass ein Teil der Funktionen zwei Byte des Programmspeichers belegen (so die Flag-, Solver- und Matrixfunktionen, die meisten Schleifenkontrollbefehle sowie ein Teil der Speicherarithmetik), was bis dahin nur beim HP-41 der Fall gewesen war. Die Zweibyte-Befehle ermöglichten auch, die Speicherarithmetik auf den Rückruf von Argumenten auszudehnen (Befehle RCL+, RCL-, RCL*, RCL:), was ebenfalls eine Neuerung darstellt und erst im HP-42S und HP-32S wieder realisiert wurde. Die Folge ist, dass Operationen auf X möglich sind, ohne andere Stackregister zu beeinflussen, und sich daher eine Variable bzw. ein Argument mehr im Stack halten lässt.

Der Speicher des HP-15C umfasst 12288 (12 Ki) Worte ROM von je 10 Bit und 82 Register RAM von je 7 Byte. Davon stehen 67 Register dem Benutzer zur Verfügung und lassen sich zwischen bis zu 67 Datenregistern oder bis zu 448 Programmbytes (bei drei verbleibenden Datenregistern I, 0 und 1) konfigurieren. Die dem Programmspeicher zugewiesenen, aber noch freien Register werden auch von den Matrixelementen und Solver- sowie Integrationsroutinen und für die Elemente des komplexen Stack genutzt und dynamisch wieder freigegeben.

Als Ergänzung zum 15C bot HP das „Advanced Functions Handbook“ an, welches an zahlreichen Beispielen und mit umfassendem mathematischen Hintergrund die Bereiche Solver, Integration, komplexe Arithmetik, Matrixberechnungen und numerische Genauigkeit erläuterte.

Bei seinem Erscheinen kostete der HP-15C 135 US-$, 1989 noch 80 US-$.

## Initiative und „Limited Edition“

Obwohl schon lange nicht mehr produziert, erfreut sich der HP-15C weiterhin großer Beliebtheit, die sich auf dem Gebrauchtmarkt in hohen Preisen in der Größenordnung deutlich über 100 Euro, was für Taschenrechner ungewöhnlich ist, niederschlägt. Dies führte u. a. dazu, dass eine Initiative HP auffordert, den Rechner wieder in Produktion zu nehmen. Ähnliche Wünsche gehen dahin, einen Nachfolger des HP-32SII mit der Formgebung des HP-15C und einem zweizeiligen Display zu versehen.

Im Spätsommer 2011 brachte HP den HP-15C erneut in den Handel. Das Design dieser „Limited Edition“ lehnt sich konsequent an das Original von 1981 an. Der Rechner weist dieselbe Funktionalität und Kapazität wie das Original auf, ist aber mit neuem Innenleben ausgestattet und erzielt eine erheblich höhere Geschwindigkeit. Die „Limited Edition“ war schnell ausverkauft, auch dieses Modell ist nur noch auf dem Gebrauchtmarkt erhältlich.

Von SwissMicros wird ein Nachbau (DM15L) angeboten, der laut Angaben des Herstellers auf dem gleichen Code aufsetzt und den originalen Mikroprozessor (NUT) auf einem ARM emuliert, wobei die volle Funktionalität bei 30-facher Geschwindigkeit verfügbar ist.

## Anwendungsbeispiel

Das folgende Programm berechnet die Spur (Summe der Diagonalelemente) einer quadratischen Matrix, deren Deskriptor in I übergeben wird. Die Inhalte von Z und T werden erhalten. Es findet keine Fehlerüberprüfung statt. Die Routine belegt 14 Byte (die beiden Matrixoperationen sind Zwei-Byte-Befehle, ISG auf Speicher 0 hingegen nicht.)

| Schritt | Tastencode | Befehl | Kommentar |
| - | - | - | - |
| 000- | | | |
| 001- | 42.21.14 | LBL D | Label für den Einsprung |
| 002- | 42.16. 1 | MATRIX 1 | positioniert Zeilen- und Spaltenindex auf 1 |
| 003- | 0 | 0 | Beginn der Addition |
| 004- | 36 | ENTER | ersten Summanden duplizieren |
| 005- | 44 0 | STO 0 | Zeilenindex korrigieren |
| 006- | 42.21. 8 | LBL 8 | Schleife für die Summenberechnung |
| 007- | 40 | + | Summierung |
| 008- | 42. 6. 0 | ISG 0 | Zeilenindex inkrementieren, um nur Diagonalelemente zu erhalten. Diesen Befehl sowie STO 0 entfernen, um alle Elemente zu summieren |
| $009^u$ | 45 24 | USER RCL (i) | Matrixelement zurückrufen, Indices automatisch erhöhen |
| 010- | 22 8 | GTO 8 | zurück zum Schleifenanfang, wenn nicht letztes Element |
| 011- | 40 | + | letztes Diagonalelement addieren |
| 012- | 43 32 | RTN | Rücksprung |

## Technische Daten

* Klassifizierung: Wissenschaftlicher Taschenrechner
* CPU: CMOS HP SOS
* FPU: keine – BCD-Arithmetik
* ROM: 12 KiW ROM von je 10 Bit
* RAM: 82 Register (574 Byte)
* Tasten: 39, davon zwei Umschalttasten
* Anzeige: Monochromes LC-Display mit 10-stelliger Siebensegmentanzeige
* Batterien: 3 Typ „LR44“ o. ä.
* Schnittstellen/Peripherie: keine
* Maße: Länge 7,9 cm, Breite 12,8 cm, Höhe 1,5 cm
* Einführung: 1. Juli 1982 / Einstellung: 1989
* Damaliger Preis:
   * 1982: 135 US-$, damals etwa 450 DM (unter Berücksichtigung der Kaufkraftänderung wäre der vergleichbare Euro-Preis heute rund 490 Euro)
