# TI-59

Der TI-59 ist ein programmierbarer technisch-wissenschaftlicher Taschenrechner von Texas Instruments mit eingebautem Magnetkartenleser. Er kam 1977 als damaliges Spitzenmodell des Herstellers auf den Markt. Er war der Nachfolger des ebenfalls mit Magnetkartenleser ausgerüsteten SR-52.

## Zeitliche Einordnung

Zur Zeit der Markteinführung am 24. Mai 1977 durch Texas Instruments stellte der TI-59 das Konkurrenzmodell zum ähnlich gestalteten HP-67 von Hewlett-Packard dar, der eine bessere mechanische Fertigungsqualität aufwies, jedoch nur etwa halb so schnell rechnen konnte, mit weniger Speicher ausgestattet war und zudem ungefähr das Doppelte des TI-59 kostete. Die unverbindliche Preisempfehlung betrug bei Einführung in Deutschland 900 DM, was kaufkraftbereinigt heute einer Summe von 1.300 EUR entspricht.
Ein Schwestermodell ohne Magnetkartenleser und mit nur halb so viel Arbeitsspeicher, der TI-58, wurde gleichzeitig angeboten. Dieser wurde 1979 durch den verbesserten TI-58C ersetzt, der mit einem sogenannten Constant Memory ausgestattet war (erstmals bei TI-Taschenrechnern) und dessen Inhalt beim Ausschalten nicht gelöscht wurde.
Zeitgleich mit dem TI-58 und dem TI-59 wurde der TI-57 vorgestellt, der die Produktfamilie nach unten abrundete.
Schon 1979 antwortete Texas Instruments’ Hauptkonkurrent Hewlett-Packard mit dem deutlich leistungsstärkeren, fortschrittlicheren, aber auch wesentlich teureren HP-41C, der mit einem alphanumerischen LC-Display, nichtflüchtigem Arbeitsspeicher (erweiterbar) und vier Modulschächten ausgestattet war.

## Technische Ausstattung

Der TI-59 ist der leistungsfähigste TI-Taschenrechner, der noch mit einer roten LED-Siebensegmentanzeige ausgestattet ist.

### Magnetkartenleser

Der Magnetkartenleser kann Programme oder Daten von Karten lesen oder schreiben. Dazu zieht ein Elektromotor die Magnetkarte an einem 4-Spur-Tonkopf mit konstanter Geschwindigkeit vorbei.
Je Seite einer Karte speichert einen Block von 240 Bytes. Dabei ist der gesamte Speicher des TI-59 in 4 Blöcke aufgeteilt und per Anweisung wird dem Kartenleser durch eine Zahl im Anzeigeregister (x) mitgeteilt, welcher Block geschrieben werden soll. Beim Rücklesen übernimmt der Kartenleser entweder die Position des gespeicherten Blocks, oder wenn ein Block vorgegeben wird, überschreibt er diesen, falls auf der Karte der gleiche Block aufgezeichnet wurde. Programme können beim Schreiben mit einem Kopierschutz versehen werden, so dass sie beim erneuten Einlesen weder kopiert, gedruckt noch angezeigt werden können. Es ist außerdem möglich, programmgesteuert die Inhalte von Datenregistern von Magnetkarten zu lesen oder auf diese zu schreiben.
Die Magnetkarten selbst können beschriftet und danach in den Sichtschlitz unterhalb des Displays eingeschoben werden. So kann auf der Karte vermerkt werden, welche Funktionen die Tasten [A]..[E] und deren Zweitfunktionen [2nd] [A]...[E] durch das Programm bekam.

### Solid State Software

Zur Markteinführung bot der TI-59 als weltweit erster Taschenrechner auswechselbare Programm-Module auf Halbleiterbasis (ROM) mit fest einprogrammierten Anwendungsprogrammen („Solid State Software“).
Ein serienmäßig bereits mitgeliefertes Standard-Software-Modul (Master-Library) enthält 25 Programme aus den Bereichen Matrizen-Rechnung, komplexe Funktionen, Integralrechnung, Geometrie, Statistik, Finanzmathematik, Umrechnung von Maßeinheiten, ein Kalenderprogramm, ein einfaches Spiel sowie ein Diagnoseprogramm zum Funktionstest des Rechners und des als Zubehör erhältlichen Thermopapier-Druckers.
Von Texas Instruments selbst als auch von Drittanbietern wurde Software für weitere Module entwickelt, mit denen die TI-58/59-Modelle Spezialaufgaben lösen konnten. Eine Funktion konnte Programme einzeln aus dem Modul ins RAM zu laden, um sie zu analysieren und zu drucken.
Mit den Modulen wurden in der Regel Plastikkarten im Format der Magnetkarten geliefert, die wie Magnetkarten unterhalb des Displays in den Sichtschlitz (auch beim TI-58/58C vorhanden) eingesteckt werden konnten. Die Karten waren mit der Belegung der Tasten [A]..[E] und deren Zweitfunktionen [2nd] [A]...[E] beschriftet, denn während der Ausführung einer Modulfunktion wurden diese Tasten durch die Modulfunktion umdefiniert, auch wenn im RAM ein Programm mit anderer Tastenbelegungen lag.

### RAM

Der Arbeitsspeicher ist zwischen Programm- und Datenspeicher aufteilbar. Die Aufteilung kann in Schritten von jeweils 10 Datenspeicher oder 80 Programmschritten (Zeilen) verändert werden.
* Beim TI-59 können 960 Bytes in 11 Stufen zwischen minimal 160 Bytes Programmspeicher und 100 Datenspeicher sowie maximal 960 Bytes Programmspeicher und 0 Datenspeicher eingestellt werden. Die Voreinstellung nach dem Einschalten des Rechners ist 480 Programmschritte und 60 Datenspeicher.
* Beim TI-58/58C lässt sich der Speicher zwischen 480 Bytes und 0 Datenspeicher bis 60 Datenspeicher und 0 Byte Programmspeicher aufteilen.
* Ein Programmschritt kann aus einem oder mehreren Bytes (Zeilen) bestehen. So benötigen Befehle mit Adressen (STO, RCL, ...) zwei Bytes und Sprünge zu Zeilennummern (GTO, SBR) 3 Bytes.
* Ein numerischer Datenspeicher (13 Stellen Mantisse + 2 Stellen Exponent + Vorzeichen) belegt 8 Bytes.

## Programmierung

Die Programmierung des TI-59 geschieht einfach durch Drücken der gewünschten Tastenfunktionen im LRN-Modus. Beim Ausführen des Programms arbeitet der Rechner die aufgezeichnete Liste der gedrückten Tasten ab. Die anwenderseitig erstellten Programme werden in der Regel über die Tasten A bis E (und ihre Zweitbelegungen 2nd - A bis 2nd - E) gestartet.
Zur Programm-Ablaufsteuerung bietet der TI-59 z. B. eine Start-/Stopp-Funktion, Zählschleifen, bedingte Sprungbefehle, mehrfach ineinander verschachtelbare Unterprogramme, die direkte und indirekte Adressierung von Datenspeichern oder Programmschritten, einfache symbolische Programm-Marken (Labels) und die Programmsteuerung über 10 einfache binäre Flags.
Adressen (Zeilennummern) können mit GTO und SBR auch direkt angesprungen werden. Diese Art der Adressierung bietet zwar Geschwindigkeitsvorteile, Sprungadressen müssen aber bei der Entwicklung des Programms häufig korrigiert werden. Für den Fall, dass ein Programm kürzer wird, können die entfallenen Programmschritte mit NOP (No Operation) aufgefüllt werden. Es ist mit direkten Sprungadressen auch möglich, bei einem mehrteiligen Befehl nur die Adresse anzuspringen, was zu unerwünschtem Verhalten führen kann.
Prinzipiell lassen sich viele Befehle dadurch erzeugen, indem man beispielsweise hinter STO eine Adresse eingibt, und dann den STO-Befehl wieder löscht. So können die HIR-Register (versteckte Register mit dem Code 82, in denen teilweise die Operanden bei verschachtelten algebraischen Ausdrücken gespeichert wurden) angesprochen werden.

### Anzeige im Programmiermodus

Die verwendete Siebensegmentanzeige kann keine Buchstaben anzeigen. Im Programmier-Modus erfolgt daher die Anzeige der Programmschritte neben der dreistelligen Programmschrittnummer als zweistelliger Zahlencode. Der Zahlencode entspricht dabei der Zeilen- und Spaltenposition der gedrückten Taste auf der Tastatur.
Die Zahlencodes „00“ bis „09“ entsprechen zur vereinfachten Lesbarkeit direkt den Zifferntasten 0 bis 9.
Zur Einsparung von Programmspeicher wird u. a. der Code für die Zweitbelegungen der Tasten als der Zahlenwert der Tastenposition plus 5 verwendet. Der Tastendruck auf die 2nd-Taste belegt somit keinen zusätzlichen Programmschritt.
Einige der mit zwei Dezimalziffern möglichen Zahlencodes werden für die indirekte Adressierung verwendet – so wird z. B. RCL 2nd Ind als „73“ angezeigt.
Die Tastenfolge x² x 3 = R/S RST entspricht der Darstellung:
| 000 | 33 | x² |
| 001 | 65 | x |
| 002 | 03 | 3 |
| 003 | 95 | = |
| 004 | 91 | R/S |
| 005 | 81 | RST |
Zur Erleichterung beim Lesen dieser doch recht kryptischen Darstellung lag dem Rechner eine transparente Tastatur-Auflegefolie mit den in blau aufgedruckten Zahlencodes bei.

### Undokumentierte Funktionen

Darüber hinaus gibt es funktionsfähige undokumentierte Befehle, z. B. die HIR-Befehle zum direkten Zugriff auf die normalerweise nur intern für Klammern-Hierarchie und Statistik-Funktionen verwendeten „Hierarchical Internal Registers“.

## Zahlenformat und Rechengenauigkeit

Das interne Zahlenformat beträgt 13 Dezimalstellen in Exponentialdarstellung mit 2-stelligem Exponenten zuzüglich jeweiligem Vorzeichen. Davon werden 10 Stellen Mantisse mit zweistelligem Exponenten und den Vorzeichen angezeigt, wodurch Rechenungenauigkeiten durch Rundungsfehler weniger augenfällig werden sollen.
Die Genauigkeit der Rechenalgorithmen dieser Generation TI-Taschenrechner ist allerdings nicht so ausgereift wie beim Hauptkonkurrenten Hewlett-Packard, der während der Marktpräsenz des TI-59 den Übergang von den Schwestermodellen HP-67 und HP-97 zum HP-41C vollzog.

## Optionales Zubehör

Der optional anschließbare Thermopapier-Drucker PC-100C ermöglicht neben dem Ausdruck von Rechenergebnissen auch das Ausdrucken von Programmen mit zeilenweiser Auflistung von alphanumerischer Tasten- und Zahlencode-Darstellung sowie den programmgesteuerten oder manuellen Ausdruck von bis zu 20 Buchstaben und/oder Ziffern je Zeile.

## Technische Daten

* ALU (Arithmetic and Logic Unit): TMC0501E - 4-Bit-CPU, Taktfrequenz 227,5 kHz (bzw. 192 kHz beim TI-58)
* RAM: 4 × TMC0598 mit je 1920 Bits = 960 Bytes
* DSCOM (Double Scanning Read Only Memory): 1 × TMC0582 + 1 × TMC0583 (je 6 KB)
* BROM (Bare Read Only Memory): 1 × TMC0571 (6 KB)
* I/O Interface für Magnetkartenleser: TMC0594
* CROM: 1 × TMC0541 als auswechselbares Solid State Software Module mit 5000 Bytes
* Anzeige: 10+2-stellige rote 7-Segment-LED-Anzeige
* Stromversorgung: Über mitgeliefertes Netz-/Ladeteil oder auswechselbaren NiCd-Akku (3,6 V)
* Schnittstellen: 12-polige bit-serielle Schnittstelle für den Drucker PC-100C
* Speichermedien: Magnetkarten (nur TI-59) mit 4-Spur-Aufzeichnung
* Abmessungen: ca. 16,3 × 8,2 × 3,7 cm
* Gewicht: ca. 305 g (TI-58/58C: ca. 240 g)