# TI-57

Der TI-57 ist ein programmierbarer wissenschaftlicher/technischer Taschenrechner von Texas Instruments.

## Zeitliche Einordnung

Der TI-57 wurde am 24. Mai 1977 von Texas Instruments zeitgleich mit den beiden deutlich leistungsfähigeren Taschenrechnern TI-58 und TI-59 vorgestellt. Er ersetzte den SR-56.
Es gibt mehrere Nachfolgemodelle TI-57 LCD mit einer stromsparenden LC-Anzeige und einem nichtflüchtigen Speicher. Letztlich stellen sie aber einen Rückschritt dar, da sie deutlich langsamer sind und wesentlich weniger Speicher besitzen (49 Programmschritte oder 7 Datenregister).

## Technische Ausstattung und Funktionen

Der TI-57 hat eine LED-Siebensegmentanzeige. Für die Stromversorgung ist ein Akku mit Ladegerät vorgesehen.

### Speicher

Der Arbeitsspeicher umfasst 50 Programmschritte (00-49). Manche Tastenfolgen (von bis zu 4 Tasten) können vom Rechner auf einem einzigen Speicherschritt abgelegt werden, was Platz spart. (Beispiel: INV 2nd Prd 0).
Zahlen können in 8 Datenregistern (0-7) abgelegt werden. Einige von diesen Registern werden auch für interne Operationen verwendet, so dass sie nicht immer beliebig benutzt werden können. Zum Beispiel ist das Register t identisch mit Register 7 und die beiden Register 5 und 6 werden bei komplexen Operationen mitverwendet.
Der Speicher ist flüchtig, d. h. der Inhalt des Programmspeichers und der Datenregister geht beim Abschalten des Rechners verloren. Durch eine undokumentierte Funktion kann der Rechner in einen Schlafmodus gesetzt werden, der nur noch den Speicher mit Strom versorgt.

### Programmierung

Die Programmierung des TI-57 geschieht einfach durch Drücken der gewünschten Tastenfunktionen im LRN-Modus. Beim Ausführen des Programms (Start durch R/S) arbeitet der Rechner die aufgezeichnete Liste der gedrückten Tasten ab.
Zur Programm-Ablaufsteuerung bietet der TI-57 z. B. eine Start-/Stop-Funktion, Zählschleifen, bedingte Sprungbefehle, mehrfach ineinander verschachtelbare Unterprogramme, die direkte Adressierung von Datenspeichern oder Programmschritten, einfache numerische Programm-Marken (Labels).

### Anzeige im Programmiermodus

Die verwendete Siebensegmentanzeige kann keine Buchstaben anzeigen. Im Programmier-Modus erfolgt daher die Anzeige der Programmschritte neben der zweistelligen Programmschrittnummer als zwei- oder dreistelliger 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. Die INV-Taste bietet den Zugriff auf Umkehrfunktionen und wird über das Minuszeichen ebenfalls im gleichen Programmschritt untergebracht.
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

Der Rechner hat einige funktionsfähige undokumentierte Befehle. Der nützlichste ermöglicht einen batterieschonenden Schlafmodus, bei dem der Inhalt des Speichers erhalten bleibt.

### Zahlenformat und Rechengenauigkeit

Das interne Zahlenformat beträgt 11 Dezimalstellen in Exponentialdarstellung mit 2-stelligem Exponenten zuzüglich jeweiligem Vorzeichen. Davon werden 8 Stellen Mantisse mit zweistelligem Exponenten und den Vorzeichen angezeigt, wodurch Rechenungenauigkeiten durch Rundungsfehler weniger augenfällig werden sollen.

## Programmbeispiel

Das folgende einfache Programm generiert eine Pseudo-Zufallszahl im Bereich von 1 bis 6.
| Schritt | Code | Taste(n) | Funktion | Bemerkung |
| 00 | 30 | 2nd y$^x$ | π | Kreiszahl Pi |
| 01 | 75 | + | + | |
| 02 | 33 0 | RCL 0 | RCL 0 | Inhalt von Register 0 abrufen |
| 03 | 85 | = | = | |
| 04 | 35 | y$^x$ | y$^x$ | |
| 05 | 08 | 8 | 8 | |
| 06 | 65 | − | − | |
| 07 | 49 | 2nd ) | Int | Ganzzahl-Funktion |
| 08 | 85 | = | = | |
| 09 | 32 0 | STO 0 | STO 0 | Resultat speichern in Register 0 |
| 10 | 55 | x | x | |
| 11 | 06 | 6 | 6 | Gewünschte Obergrenze der Zufallszahl |
| 12 | 75 | + | + | |
| 13 | 01 | 1 | 1 | |
| 14 | 85 | = | = | |
| 15 | 49 | 2nd ) | Int | Ganzzahl-Funktion |
| 16 | 81 | R/S | R/S | Programm anhalten |
| 17 | 71 | RST | RST | Reset (zurück zu Schritt 00) |