TR 440 (gesprochen: T-R-4-40) ist die Bezeichnung des von AEG-Telefunken, Fachbereich Informationstechnik,[A 1] aus dem „Telefunken-Rechner TR 4“ weiterentwickelten Großrechners. AEG-Telefunken lieferte 1969 den ersten TR 440 an das Deutsche Rechenzentrum. Als der TR 440 herauskam, war er der schnellste Rechner, der je in Europa entwickelt worden war.[1] Bis zum Jahr 1974 wurden insgesamt 46 Anlagen vom Typ TR 440 gebaut.
Das Gesamtsystem aus Hardware, BS 3 und Programmiersystem wurde auch unter dem Namen TNS 440 (Teilnehmer-System 440) vermarktet.
Der (auch: die) TR 440 oder TR440 (Schreibweise uneinheitlich) wurde an mehr als zwanzig deutschen Universitäten und regionalen Rechenzentren eingesetzt, unter anderem Ruhr-Universität Bochum (1970), Friedrich-Alexander-Universität Erlangen-Nürnberg und Universität Kaiserslautern; an Forschungseinrichtungen wie dem DLR oder der GKSS; bei Behörden wie der PTB und dem RZF NRW; sowie bei der Bundeswehr an zwei Standorten. AEG-Telefunken und später CGK betrieben TR 440 für eigene Zwecke an fünf Standorten.[2][3]
Der Erlanger Rechner war als einziger mit einem Dreifach-Prozessor ausgerüstet, die anderen liefen in der Endphase teilweise mit Doppelprozessoren.
Ein Nachfolgeprodukt, der TR 550, wurde zwar konzipiert, aber nicht mehr entwickelt.
Am 23. September 1965 begann AEG-Telefunken, einen neuen Großrechner als Nachfolger des TR 4 zu entwickeln. Zunächst war an eine weitgehend dem TR 4 nachempfundene Architektur mit integrierten Schaltkreisen (10‑fache Taktfrequenz) gedacht. Aufgrund der Wünsche potenzieller Kunden wurde der TR 440 ab Winter 1965–66 für den Teilnehmerbetrieb konzipiert; hardwareseitig mussten dazu die Voraussetzungen für eine Virtuelle Speicherverwaltung, abgestufte Rechte für den Speicherzugriff und effiziente Prozess-Umschaltung geschaffen werden. Außerdem wurde das bereits umfangreiche Befehls-Repertoire des TR 4 um weitere Befehle ergänzt; ein spezieller Befehlsmodus erlaubt, den TR 4 zu emulieren.[A 2] Softwareseitig wurde eine dialogfähige Benutzerschnittstelle konzipiert, mit einer einheitlichen[A 3] Kommandosprache für Stapelverarbeitung und Dialogbetrieb und mit dialogfähigen Testhilfen.[4][5]
Das Konzept für das Betriebssystem BS1 erwies sich als zu ambitioniert; die Entwicklung wurde Anfang Oktober 1969 eingestellt und die Entwicklung des BS 3 begonnen. Der geplante Liefertermin für den ersten TR 440 (1. Juli 1968) war da bereits verstrichen; der Rechner wurde Ende 1968 an das DRZ mit einem kurzfristig entwickelten Betriebssystem ausgeliefert, das zwei virtuelle TR 4 auf einem TR 440 realisierte, und im Februar 1969 offiziell in Betrieb genommen.[6] Eine erste Version des BS 3 (nur Stapelbetrieb mit zwei gleichzeitig aktiven Benutzer-Aufträgen) wurde schon am 7. November 1969 in Konstanz vorgeführt; das erste (dialogfähige) TNS 440 wurde im Juni 1970 an die RUB ausgeliefert.[7] In den Folgejahren wurde das TNS 440 laufend erweitert und verbessert; bis Ende 1979 wurden insgesamt 20 Maintenance-Versionen ausgeliefert.
Der TR 440 wurde hauptsächlich für technisch-wissenschaftliche Anwendungen eingesetzt; lediglich bei der Finanzverwaltung Nordrhein-Westfalen und bei AEG-Telefunken selbst wurde der TR 440 in größerem Umfang für kaufmännisch-administrative Aufgaben eingesetzt. Es gelang weder AEG-Telefunken noch dem Nachfolger Telefunken Computer, weitere Kundschaft in diesem Anwendungsbereich zu gewinnen.
Zur Erhöhung der nutzbaren Rechenleistung wurde zunächst der Betriebsmittelbedarf des BS 3 verringert; ab Juni 1972 konnte der TR 440 als Doppelprozessor-Anlage betrieben werden. Außerdem wurden neue, verbesserte Peripheriegeräte ins System integriert. Trotzdem konnte der TR 440 ab Mitte oder Ende der 1970er-Jahre die gestiegenen Anforderungen an die Rechenleistung nicht mehr erfüllen. Am 19. Juli 1974 übernahm die Siemens AG den Hersteller des TR 440 als Tochterfirma Computer Gesellschaft Konstanz (CGK). In der Folge wurde die Entwicklung am Nachfolgerechner TR 550 eingestellt und die Weiterentwicklung des TNS 440 auf die unbedingt notwendige Pflege eingeschränkt.[8] Ab 1977 bot Siemens Computersysteme der Serie 7.700 mit dem Betriebssystem BS2000 in direkter Nachfolge zum TR 440 an.
1986 gab die Universität Tübingen ihren TR 440 an die Universität Toruń (Polen) ab;[9][10] danach waren in Deutschland außerhalb der CGK noch vier TR 440 in Betrieb. Mitte 1988 legte die Universität Osnabrück ihren TR 440 still;[9] der letzte TR 440 wurde 1989 im Rechenzentrum der CGK stillgelegt.[11]
Die möglichen Nachfolgesysteme waren weit weniger benutzerfreundlich als das TNS 440;[12][13] insbesondere gegen die Beschaffung von 7.700-Rechnern mit BS2000 gab es große Widerstände trotz der von Siemens angebotenen Umstellungshilfen. Die Wertschätzung für das TNS 440 bei den Nutzern ging wesentlich auf dessen Systemsoftware zurück: Das Betriebssystem bietet eine Virtuelle Speicherverwaltung mit Speicherschutz und Mehrfachzugriff, das Programmiersystem eine flexible, übersichtliche Kommandosprache, eine gute Ausstattung an Programmiersprachen (einschließlich Sprachverknüpfung[A 4]) und Programmbibliotheken, sowie innovative Testhilfen für die Programmentwicklung.
„Hinsichtlich des – gerade für ein Hochschulrechenzentrum so wichtigen – Aspektes Komfort der Benutzerschnittstelle ist der TR 440 ein großer Fortschritt gegenüber fast allen Großrechnern, die ihn ersetzt haben.“
Obwohl die ursprünglich angestrebte Geschwindigkeit nicht erreicht wurde, war der TR 440 bei seiner Fertigstellung 1969 als einer der ersten großen Rechner die schnellste bisher in Europa entwickelte und produzierte Maschine. Die Leistung des Prozessors betrug knapp 1 MIPS; der GAMM-Mix betrug 4,4 µs (Assembler) bis 6,4 µs (Algol 60).[14] Die Hauptspeicherkapazität betrug bis zu 1,5 MB mit einer mittleren Zugriffszeit von 0,125 µs beim Schreiben und 0,375 µs beim Lesen.[A 5]
Das TNS 440 hatte große Bedeutung für die Entwicklung der Informatik in Deutschland: Von den 14 Lehrstühlen, die bis 1977 im Rahmen des Überregionalen Forschungsprogramms Informatik im Bereich der Kerninformatik eingerichtet wurden, hatten neun (also fast zwei Drittel) Zugriff auf TR-440-Anlagen, teils im eigenen Institut, teils im Rechenzentrum der jeweiligen Universität.[15][3] 1980 ergab eine Umfrage in der Fachgruppe Künstliche Intelligenz in der Gesellschaft für Informatik, dass der TR 440 der bei den Mitgliedern dieser Gruppe am weitesten verbreitete Rechner war und dass darauf die Programmiersprachen Maclisp, Fortran (gemeint war FORTRAN IV), Algol 60, Pascal, Logo, Snobol und BCPL zur Verfügung standen.[16] Die STARG veranstaltete jährlich Benutzertagungen, die mit ihrem reichhaltigen Programm als Treffpunkt eines erweiterten Kreises von TR-440-Anwendern großen Zuspruch fanden.[17]
Auch das beim Hersteller des TR 440 angesammelte Wissen über Software-Entwicklung und das Management großer Projekte kam der Informatik in Deutschland zugute.[18]
Als Vertreter der CISC-Architektur hat der Rechnerkern RD 441 Register mit unterschiedlichen Funktionen. Im Rechenwerk fassen die meisten Register 48 Bit + Typenkennung, im Einzelnen der Akkumulator RA, das Quotientenregister RQ, das Multiplikandenregister RD und das Hilfsregister RH, dazu kommen noch der Schiftzähler RY mit 8 Bit und das Markenregister RM mit 1 Bit. In RA werden Transport- und Rechen-Operationen ausgeführt; RA und RQ können für Multiplikation und Division zum doppeltlangen Register RAQ verbunden werden; RH enthält bei Vergleichen den zweiten Operanden und dient sonst als kurzfristiger Zwischenspeicher. Im Befehlswerk gibt es das Bereitadressenregister BB (24 Bit), das Befehlsfolgeregister BF (24 Bit), das Indexbasisregister BXB (22 Bit), das Merklichterregister BKlinks (8 Bit), das Unterprogrammregister BU (8 Bit), den Wecker BW (16 Bit), die Uhr BG (24 Bit) und das Testregister BT (24 Bit). BF enthält stets die Adresse des Befehls, der als nächster ausgeführt werden soll. BXB enthält die Anfangsadresse eines Bereiches von 256 Halbwörtern des Hauptspeichers, die einem Programm als Indexspeicher dienen; BU enthält den Pegel eines Kellers für Unterprogramm-Rücksprungadressen, der innerhalb dieses Indexspeichers angelegt werden kann. Der Inhalt von BKlinks wird laufend am Kontrollpanel angezeigt.
Das Befehlswerk arbeitet unabhängig vom Rechenwerk: während letzteres einen zeitaufwendigen Befehl durchführt, etwa eine Gleitkommaoperation oder einen Tabellensuchbefehl, kann des Befehlswerk bereits nachfolgende Befehle ausführen, sofern diese das Rechenwerk nicht benötigen. Das Ein-Ausgabe-Werk arbeitet unabhängig von Befehls- und Rechenwerk und kann nur im Systemmodus angesprochen werden.
Das Ganzwort enthält 52 Bit: zwei für die Dreierprobe, zwei für die Typenkennung und die restlichen 48 Bit für die eigentliche Information.
Zahlen werden im Einerkomplement dargestellt, Gleitkommazahlen mit 8 Bit Exponent zur Basis 16 und 39 Bit Mantisse (85 Bit bei doppelter Genauigkeit), jeweils einschließlich Vorzeichen. Bei Gleit- und Festkommazahlen sind in den Rechenwerksregistern zwei Bit für die Darstellung des Vorzeichens vorgesehen; das zusätzliche Vorzeichenbit dient zum Erkennen eines arithmetischen Überlaufs. Im Speicher ist – im Gegensatz zu den Rechenwerksregistern – dieser Überlauf-Schutz unnötig; hier steht das zusätzliche Vorzeichenbit als Marke zur Verfügung, etwa zur Kennzeichnung des letzten Koeffizienten eines Polynoms.[A 6]
Die Typenkennung (TK) zeigt an, wie der Inhalt des Ganzworts zu interpretieren ist: Gleitkommazahlen und der höherwertige Teil doppelt genauer Gleitkommazahlen haben TK=0; Festkommazahlen und der niederwertige Teil doppelt genauer Gleitkommazahlen haben TK=1; Ganzwörter, die zwei Befehle enthalten, haben TK=2; Zeichenketten oder beliebige Bitmaterie haben TK=3; Ganzwörter, die zwei Adressen enthalten, haben beliebige Typenkennung. Eine architektonische Besonderheit sind typenkennungsabhängige Maschinenbefehle: Einige Befehle des Befehlssatzes arbeiten unterschiedlich, je nach der Typenkennung der Operanden, andere sind nur auf Operanden mit bestimmter Typenkennung anwendbar. Beispiele:[21][22]
Außer Ganzwörtern können durch spezielle Befehle auch Halb- und Doppelwörter, Bytes (wahlweise zu 4, 6, 8 oder 12 Bit) oder (gesteuert durch eine Maske) beliebige Ausschnitte eines Ganzwortes transportiert werden.
Jedes Halbwort im Hauptspeicher kann direkt adressiert werden; einem Ganzwort sind also zwei aufeinander folgende Adressen zugeordnet, von denen die kleinere, die stets gerade ist, als Ganzwortadresse gilt. Die Befehle BNZ und CNZ (Bringe/Speichere nächstes Zeichen) arbeiten mit einer Kombination von Ganzwort-Adresse und Position innerhalb des Wortes; nur die Befehle TOK (Transportiere Oktaden) und ZK (Zeichenkettenverarbeitung) verwenden Sechstelwort-Adressen.
Der Adressteil der Maschinenbefehle ist 16 Bit lang, damit können also 215 Ganzwörter, eine sogenannte Großseite, adressiert werden. Indirekte Adressen sind 22 Bit lang und werden in Halbwörtern (24 Bit) gehalten. Befehle und Operanden (Konstanten und Variable) können in unterschiedlichen Großseiten mit jeweils eigenen 16-Bit-Adressräumen abgelegt werden. Während der 16-Bit-Adressraum für Operanden stets am Anfang des 22-Bit-Adressraums liegt, können 16-Bit-Adressräume für Befehle bei Bedarf auch bei höheren 22-Bit-Adressen liegen.[23]
Der RD 441 kennt vier verschiedene Adressierungsmodi:[24] der Systemmodus verwendet reale Hauptspeicheradressen, die übrigen drei verwenden virtuelle Speicheradressen mit Zugriffsschutz; im Systemmodus laufen nur der Systemkern (Hauptspeicherverwaltung, Ein- und Ausgabe), die Warteschleife, die Notschleife und der Operateurvermittler;[A 9] so sind auch die übrigen Teile des Betriebssystems vor unberechtigten Speicherzugriffen (durch eventuelle Programmierfehler) geschützt.
Im Normalmodus, in dem die Benutzerprogramme abgewickelt werden, sind die Adressräume der einzelnen Benutzer-Aufträge voneinander abgeschottet, um gegenseitige Beeinflussung – versehentliche oder absichtliche – auszuschließen; ebenso sind die Adressräume der diversen Systemteile vom Benutzerprogramm abgeschottet. Befehle und Konstanten von Programmen, die gleichzeitig von mehreren Benutzeraufträgen genutzt werden (etwa Kommandoentschlüssler oder Compiler), liegen dabei nur einmal im realen Hauptspeicher (sogenannter Mehrfachzugriff; ab Februar 1972); die variablen Teile eines aktiven Programms stehen selbstverständlich dem betreffenden Programmlauf individuell zur Verfügung.
Die Kommunikation mit der Dialog-Peripherie (Fernschreiber und Sichtgeräte) und die Datenfernverarbeitung wird von einem Prozessrechner TR 86 erledigt.[25][26] Dieser Satellitenrechner puffert die zeichenweisen Ein- und Ausgaben, tauscht mit dem Zentralrechner nur vollständige Aufträge und Dialogeingaben bzw. Ausgabeaufträge und Dialogausgaben aus und entlastet ihn dadurch von der zeitaufwendigen Reaktion auf die Übertragung einzelner Zeichen. Außerdem codiert der Satellitenrechner die Eingaben aus den unterschiedlichen Gerätecodes in den einheitlichen ZC 1 um und entsprechend die Ausgaben vom ZC 1 in die unterschiedlichen Gerätecodes.
Mehrere Satellitenrechner können parallel oder in Kaskade angeschlossen sein (ab Februar 1972); ab Juni 1973 können Satellitenrechner auch über gemietete Postleitungen miteinander gekoppelt werden.
Sichtgeräte und Fernschreiber werden über den Satellitenrechner angeschlossen, Trommel-, Plattenspeicher und Magnetbandeinheiten direkt am Zentralrechner. Lochkartenleser und ‑stanzer, Lochstreifenleser und ‑stanzer, Schnelldrucker und Plotter können wahlweise am Zentralrechner oder – bei Datenfernverarbeitung – über den Satellitenrechner angeschlossen werden.
Zentrales Bedienelement für die Operateure und zugleich Protokolldrucker ist eine Kugelkopfschreibmaschine IBM Selectric, die über den sogenannten Prüfkanal direkt am RD 441 angeschlossen ist. Um den Rechner neu zu starten, kann der Lochstreifenleser von einem Standardkanal auf den Prüfkanal umgeschaltet werden.
Das Betriebssystem verwaltet die Benutzer-Aufträge und teilt diesen die Betriebsmittel (Speicherbereiche, Rechenkapazität, Magnetband- und Wechselplatten-Laufwerke) zu. Das BS 3[33][34] wickelt gleichzeitig mehrere parallel ablaufende Aufträge in Stapelverarbeitung (sogenannte Abschnitte) und bis zu 48 Aufträge im Dialogbetrieb (sogenannte Gespräche; 96 ab Juni 1972) ab.
Das Betriebssystem verwaltet auch die Daten der Benutzer in den Speichermedien. Auf Trommel- und Plattenspeichern sind die Daten in Dateien organisiert. Benutzerdateien können in der sogenannten LFD (langfristige Datenhaltung) gelagert werden und so zwischen den Aufträgen desselben Benutzers übertragen und wahlweise auch anderen Benutzern zugänglich gemacht werden. Eingabe von Lochkarten und -streifen, sowie Ausgabe auf Lochkarten, -streifen, Drucker und Plotter sind vom Benutzerauftrag entkoppelt; dabei übernimmt das BS 3 bzw. das Satellitenprogramm die Umcodierung der Datenströme.[35] Auch auf Magnetbändern organisiert das BS 3 wahlweise die Dateien und erledigt die Umcodierung.[36]
Innerhalb des Betriebssystems und des darunter ablaufenden Programmiersystems sind Zeichenketten durchgängig im Zentralcode 1 (ZC 1)[37][35] codiert. Dieser Code sah als erster 8-Bit-Code unterschiedliche Codepositionen für Umlaute und eckige bzw. geschweifte Klammern vor; so können Programme in Algol 60 (eckige Klammern) mit deutschsprachigen Kommentaren und Zeichenketten-Literalen (Strings) formuliert werden. Auch hier war das TNS 440 seiner Zeit voraus: Die Codierungen anderer Hersteller litten bis in die 90er-Jahre unter der Mehrdeutigkeit der Codepositionen für die Klammern und die Umlaute, was sich besonders beim Datenaustausch und bei der Interpretation von Quelltext durch Standard-Software[38][39] manifestierte.
Code | …0 | …1 | …2 | …3 | …4 | …5 | …6 | …7 | …8 | …9 | …A | …B | …C | …D | …E | …F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0… | NUL | SOH | STX | ETX | EOT | ENQ | ACK | DLE | NAK | SYN | ETB | |||||
1… | NL | CR | NF | VT | ||||||||||||
2… | SUB | EM | CAN | TE | HT | BS | ESC | SO | SI | |||||||
3… | BEL | DC1 | DC2 | DC3 | DC4 | FL | IS4 | IS3 | IS2 | IS1 | ||||||
4… | ||||||||||||||||
5… | ||||||||||||||||
6… | " | ' | ´ | ` | ^ | ° | ~ | \ | ʿ | ʾ | _ | ¯ | ||||
7… | % | § | # | $ | ¢ | @ | & | * | ⯏ | π | ||||||
8… | ∧ | ∨ | ¬ | ↑ | | | ⏨ | ||||||||||
9… | + | - | / | = | ≠ | < | > | ≤ | ≥ | |||||||
A… | ( | ) | [ | ] | 〈 | 〉 | } | . | , | : | ; | ! | ? | SP | ||
B… | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | { | |||||
C… | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P |
D… | Q | R | S | T | U | V | W | X | Y | Z | Ä | Ö | Ü | |||
E… | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p |
F… | q | r | s | t | u | v | w | x | y | z | ä | ö | ü | ß | DEL |
Das BS 3 unterstützt Dateien[40] im Hauptspeicher, auf Trommel- und Plattenspeicher und auf Magnetbändern. Jedem Benutzer steht ein Plattenspeicher-Bereich in der Langfristigen Datenhaltung (LFD) zur Verfügung, in dem er Dateien außerhalb seiner Aufträge speichern und zwischen Aufträgen übergeben kann. Auf den übrigen Peripheriegeräten werden keine Dateien unterstützt: Eingabedaten sind Teil des Benutzerauftrags im Abschnitts- oder Dialogbetrieb; Ergebnisse der einzelnen Programmläufe können ins Ablaufprotokoll des jeweiligen Auftrags geschrieben, als Ausgabe-Aufträge an Drucker, Lochkarten- oder Lochstreifenstanzer oder Plotter geschickt oder im Dialog direkt angezeigt werden. Auf Magnetbändern werden Dateien nach Telefunken-, ISO- und IBM-Norm unterstützt; eine Datei kann sich auch über mehrere Magnetbänder erstrecken (sogenannte Bandreihe).[A 10]
Als Dateibezeichnung sind bis zu zwölf beliebige Zentralcode-Zeichen zulässig, optional gefolgt von einer 4-stelligen Generations- und einer 2-stelligen Versionsnummer; die Kommandosprache beschränkt jedoch die Dateibezeichnung auf die Großbuchstaben A–Z, die Ziffern und fünf Sonderzeichen. Wird die Generations- und Versionsnummer nicht angegeben, so wird eine Datei mit einer neuen Nummer kreiert,[A 11] die Datei mit der höchsten Nummer bearbeitet, bzw. die Datei mit der Nummer 1.0 gelöscht. Dieses System kann als rudimentäre Versionsverwaltung betrachtet werden, allerdings führt das BS3 keinerlei Historie der vergebenen Generations- und Versionsnummern mit und speichert auch keine Deltas.
Im BS 3 sind Dateien in Datensätzen (Storage Records) organisiert; bei Texten entspricht ein Datensatz einer Zeile. Das System unterscheidet folgende Typen von Datensätzen:
Das System erlaubt sequenziellen oder wahlfreien Zugriff auf die Datensätze (auf Magnetbändern natürlich nur sequenziellen Zugriff). Die Zugriffsmethode (genannt Datei-Typ) wird bei der Kreation der Datei festgelegt, im Einzelnen:
Auch aus Dateien mit wahlfreiem Zugriff kann das BS 3 die Sätze sequenziell (ab einer beliebigen Position) lesen; in RAN-Dateien kann es auch sequenziell schreiben.[A 14]
Die Komponenten des BS 3, die die Ein- und Ausgabe von Aufträgen im Abschnitts- und Gesprächsbetrieb erledigen, heißen Vermittler. Auf Lochkarten stehen vier verschiedene Codes zur Auswahl, auf 5-Spur-Lochstreifen und Fernschreiber drei verschiedene Codes; für 8-Spur-Lochstreifen und Sichtgeräte liegt der Code jeweils fest.[A 15] Lochkarten und ‑streifen können außerdem auch binär gelesen und gestanzt werden, dabei werden sämtliche möglichen Lochpositionen auf einzelne Bits der Intern-Darstellung abgebildet.[35]
Die Eingabe- und Gesprächs-Vermittler werden mit sogenannten Vermittler-Kommandos und ‑Anweisungen gesteuert. Die Syntax der Vermittler-Kommandos ähnelt den Tätigkeitskommandos des Programmiersystems, ist aber vereinfacht. Vermittleranweisungen bestehen aus einem Fluchtsymbol mit einem nachfolgenden Sonderzeichen bzw. drei nachfolgenden Ziffern.
Zwei verschiedene Vermittlerkommandos markieren den Beginn der Auftragseingabe im Abschnitts- bzw. Dialogbetrieb, eines deren Ende (wobei etwa noch anstehende Bearbeitungsschritte im Abschnittsbetrieb zu Ende geführt werden). Ein Vermittlerkommando legt den Code für nachfolgende Eingaben fest; damit kann der Code innerhalb einer Auftragseingabe beliebig oft gewechselt werden.
Eine Vermittleranweisung gestattet die Eingabe eines beliebigen Zeichens über dessen Position im ZC 1. Zwei Vermittleranweisungen gestatten die Eingabe einer verkürzten bzw. verlängerten Zeile von Lochkarten. Eine Vermittler-Anweisung beendet die Teil-Eingabe am Fernschreiber und übergibt damit die Kontrolle des Dialogs an das BS 3; am Sichtgerät wird die Teil-Eingabe stattdessen durch eine Eingabetaste beendet.
Weitere Vermittler-Kommandos und ‑Anweisungen steuern den Anschluss von Wählgeräten zur Datenfernverararbeitung, gestatten den Abbruch einer Ausgabe am Terminal, sowie die Korrektur von Tippfehlern am Fernschreiber.
Das Programmiersystem führt die eigentliche Datenverararbeitung unter der Regie des Benutzers durch; dazu gehören der Kommando-Entschlüssler, die Werkzeuge zur Programmentwicklung, sowie die Anwendungsprogramme.[41]
Den Ablauf des Auftrags steuert der Benutzer mittels der Kommandosprache.[42] Im Abschnitt besteht die gesamte Auftrags-Eingabe, im Dialog die erste Teileingabe, aus einer Folge von Kommandos in dieser Sprache. Der sogenannte Entschlüssler interpretiert sämtliche Kommandos und veranlasst die entsprechenden Bearbeitungsschritte; wenn im Dialogbetrieb eine eingegebene Kommandofolge abgearbeitet ist, fordert er weitere Kommandos an.
Wenn bei der Bearbeitung eines Kommandos im Dialogbetrieb ein Fehler auftritt, so geht der Entschlüssler in die sogenannte Vorrangstufe, in der der Benutzer Anweisungen zur Behebung des Fehlers geben oder zusätzliche Kommandos einschieben kann. Im Abschnittsbetrieb kann man das Verhalten im Fehlerfall mit den Kommandos FEHLERHALT
und SPRINGE
bestimmen.
Die Kommandosprache ist formatfrei: Leerzeichen und Zeilenwechsel sind bedeutungslos; statt durch Zeilenwechsel (wie in anderen zeitgenössischen Systemen) wird der Beginn eines Kommandos durch das sogenannte Fluchtsymbol markiert, das in der Dokumentation als Raute »◊« erscheint.[A 16]
Die eigentliche Datenverarbeitung wird durch sogenannte Tätigkeitskommandos ausgelöst. Ein Tätigkeitskommando besteht aus einem Tätigkeitsnamen, optional gefolgt von, durch Kommata getrennten, Spezifikationen. Die Spezifikationen können über ihren Namen oder über ihre Reihenfolge identifiziert werden. Tätigkeits‑ und Spezifikationsnamen können abgekürzt werden, soweit Eindeutigkeit besteht. Jeder Spezifikationswert ist −
(in der Bedeutung: »nichts«), −STD−
(in der Bedeutung: »das Übliche«) oder eine Reihe von, durch Apostroph getrennten, Teilwerten (mit spezifischen Bedeutungen). Die folgenden Beispiele zeigen unterschiedliche Schreibweisen für dasselbe Kommando, das zwei Dateien aus der LFD holt, daneben, getrennt durch ◊=
, jeweils die Erläuterung:[37][42]
◊KOPIERE, DATEI=JORINDE'JORINGEL, QUELLTRAEGER=LFD, ZIELTRAEGER=−STD−, PROTOKOLL=− ◊KOPIERE, JORINDE'JORINGEL, LFD, −STD−, PROTOKOLL=− ◊= Spezifikationsnamen können entfallen, wenn die Reihenfolge eingehalten wird ◊KOPIERE, JORINDE'JORINGEL, LFD, PROTOKOLL=− ◊= Für die fehlende Spezifikation setzt der Entschlüssler eine Voreinstellung ein ◊KOP., JORINDE'JORINGEL, LFD, P.=− ◊= Tätigkeits‑ und Spezifikationsnamen können abgekürzt werden
Falls anschließend dieselbe Tätigkeit mit geänderten Spezifikationen ausgeführt werden soll, kann man das wahlweise durch ein sekundäres Teilkommando (aber auch durch ein weiteres vollständiges Tätigkeitskommando) verlangen. Soll beispielsweise je eine Datei aus der LFD und von einem Magnetband geholt werden, so kann man das folgendermaßen ausdrücken:
◊KOP., ASCHENPUTTEL, LFD, -STD-, P.=− ◊D.=RAPUNZEL, MB(GRIMM) ◊= ZIELTRAEGER und PROTOKOLL wie im primären Teilkommando
Auch eine beliebige Zeichenfolge, die nicht der Syntax der Kommandosprache genügt und bei der Leerzeichen und Zeilenwechsel relevant sind, etwa ein Quellprogramm in einer Programmiersprache, kann Spezifikationswert oder ‑teilwert sein. Eine derartige Zeichenfolge heißt Fremdstring; sie wird zwischen /
und ◊/
eingeschlossen,[A 17] beispielsweise:
◊UEBERSETZE, QUELLE=/.BEGIN print(("Grüß Gott!", new line)) .END◊/, SPRACHE=ALG68 ◊= Fremdstring gelb markiert
Da das Ende eines Fremdstrings markiert wird, kann ein Kommando auch mehrere Fremdstrings enthalten, etwa das RECHNE-Kommando, das ein Quellprogramm kompiliert und mit den angegebenen Eingabedaten ausführt. Beispiel:
◊RECHNE, QU.=/(.LOC .INT i, k; read((i, k)); print((i, " + ", k, " = ", i+k, new line)))◊/, SPR.=ALG68, DATEN=/2 2◊/
Für jede Tätigkeit sind nur bestimmte Spezifikationen möglich, für jede Spezifikation nur bestimmte Werte. Beispielsweise sind für die Spezifikation DATEI des KOPIERE-Kommandos nur die Angabe −STD−
(das bedeutet: alle Dateien auf dem Quellträger) oder eine Liste von Dateibezeichnungen erlaubt; bei dessen Spezifikation PROTOKOLL
kann entweder ein Protokoll verlangt (P.=−STD−
) oder abbestellt (P.=−
) werden; für die Spezifikationen QUELLE des UEBERSETZE- bzw. RECHNE-Kommandos ist wahlweise eine Dateibezeichnung oder ein Fremdstring zulässig. Der Entschlüssler prüft die Einhaltung dieser Regeln, meldet gegebenenfalls Syntaxfehler und reicht die Spezifikationswerte in einer einheitlichen internen Form[A 18] an das jeweils zu startende Programm weiter.
Die Menge der Tätigkeiten, Spezifikationen, möglichen Spezifikationswerte und Voreinstellungen ist nicht starr, sondern kann mit Wirkung für den aktuellen Auftrag modifiziert, eingeschränkt, erweitert, sowie mittels des Kommandos GEDAECHTNIS
archiviert (und so anderen Aufträgen zugänglich gemacht) werden.[42]
Ein Schwerpunkt des TNS 440 liegt auf der Entwicklung von Anwendungsprogrammen durch die Benutzer. Das wichtigste Hilfsmittel dazu sind die Compiler für folgende Programmiersprachen:
Diese Compiler fügen sich in einen gemeinsamen Rahmen: sie werden durch dasselbe Kommando aufgerufen, bieten ähnliche Testhilfen, und Programmteile aus unterschiedlichen Quellsprachen können kombiniert werden.[A 4][46][47]
Eine Sonderstellung nehmen drei Programmiersprachen ein: sie werden nicht compiliert, sondern interpretiert:
Rechenzentren und Anwender haben weitere Programmiersprachen für das TNS 440 verfügbar gemacht, unter anderem:
Die folgenden Sprachen werden interpretiert:
Die Programmentwicklung und Fehlersuche wird durch statische (beim Kompilieren) und dynamische Hilfen (beim Programmlauf) unterstützt; auch hier war das TNS 440 seiner Zeit weit voraus.[A 19] Die Testhilfen können beim Kompilieren einzeln gefordert oder (außer die Syntaxfehlermeldungen) abbestellt[A 20] und beim Programmlauf einzeln aktiviert oder abgeschaltet werden. Alle Meldungen von Testhilfen beziehen sich auf die Bezeichnungen und Zeilennummern des Quellprogramms in der Nomenklatur der jeweiligen Quellsprache.[A 21]
Die statischen Testhilfen im Einzelnen:
Die dynamischen Testhilfen im Einzelnen:[49][50]
Compiler mit präzisen Meldungen, Rückverfolger und quellsprachbezogenen Dump gab es schon am TR 4; neu am TR 440 sind die Dialog-orientierten Testhilfen wie Abfragen und Setzen einzelner Variabler, Backtrace und vor allem das Kontrollereignis mit seinen Steuerungsmöglichkeiten.
Die Mathematische Programm-Bibliothek[51] umfasst Numerik-, Statistik und Grafik-Unterprogramme für Algol-60- und FORTRAN-Programme (neben den Standardfunktionen dieser Sprachen). Im Einzelnen:
Weitere Programm-Bibliotheken standen im Rahmen des Programmaustauschs zur Verfügung.
Das Datenbankmanagementsystem DBS 440[55][56] wird vorzugsweise von COBOL- und TAS-Programmen gesteuert. Folgende Datenbank-Anwendungen bauen darauf auf:
In der Anwendergruppe STARG trafen sich von 1970 bis 1986 regelmäßig Vertreter der TR-440-Rechenzentren und des Herstellers, um Erfahrungen mit dem TNS 440 und Wünsche zu dessen Weiterentwicklung auszutauschen.[17]
Den Rechenzentren waren die Programmquellen von Betriebs- und Programmiersystem zugänglich, außerdem Dokumentation der internen Schnittstellen des Programmiersystems (Kapitel IV der Entwicklungsdokumente, kurz: Status IV). Damit konnten sie wesentliche Beiträge zur Erweiterung und Ergänzung des Programmiersystems leisten. Einige Beispiele:
Rechnerkern, Hauptspeicher und Satellitenrechner waren in Schränken mit Türen aus Palisanderholz untergebracht.[A 25] Am TR 4 war es noch Teakholz gewesen, was ihm den Spitznamen Teakholz-Rechner 4 eingebracht hatte; trotz der anderen Holzfarbe wurde auch der TR 440 gelegentlich als Teakholz-Rechner apostrophiert. Anlässlich der 1982 erfolgten Verschrottung des Stuttgarter TR 440 hat ein Mitarbeiter einen derartigen Schrank zum Kleiderschrank für seine Privatgemächer umgebaut.
Das BS 3 war – trotz seines Namens – nicht das dritte Betriebssystem für den TR 440. Die Entwicklung des BS 1 wurde 1969 abgebrochen; das BS 2 wurde zwar angekündigt,[62] hat es aber nicht bis zur Marktreife geschafft. Am ersten ausgelieferten TR 440 in Darmstadt lief zunächst ein Betriebssystem, das zwei parallel laufende TR 4 mit jeweils eigener Peripherie emulierte; weil es einen provisorischen Betrieb des TR 440 ermöglichte, bekam es den Spitznamen Fallschirm-System. Als Testrahmen für die Compiler-Entwicklung diente das Wartungs-System WV1, das eigentlich zum Test der Peripheriegeräte vorgesehen war; auf dessen Grundlage wurde das BS 3 entwickelt.[63] Gerechterweise müsste das BS 3 also BS 5 heißen.[64]
Die COBOL-Anweisung MOVE kopiert eine Folge von Bytes (Sechstelwörtern, Oktaden) von einer beliebigen Stelle im Speicher an eine andere, beliebige Stelle. Mit dem ganzwortweise strukturierten Speicher des TR 440 ist das etwas umständlich zu realisieren; folglich wurde in einer integrierten Hardware-Software-Entwicklung der Maschinen-Befehl TOK (für Transportiere Oktaden) kreiert. Seither multipliziert die Software (in Gestalt des COBOL-Compilers oder des TAS-Assemblers) die Speicher-Adressen mit 3, um Oktaden-Adressen zu berechnen, und die Hardware dividiert die wieder durch 3, um die richtige Speicherzelle anzusprechen …
Der Trommelspeicher des Stuttgarter TR 440 machte den Technikern so viel Kummer, dass sie ihm den Spitznamen Zigeunerbaron verpassten.[A 26]
Nach der Verschrottung der Hamburger Maschine überlebte deren Kontrollpanel als „Kunst am Bau“ und zierte jahrzehntelang das Foyer des Rechenzentrums. Im Herbst 2020 wurde es restauriert mit dem Ziel, das Erscheinungsbild originaler Programmabläufe darzustellen. Ende 2024 soll das Panel wieder ausgestellt werden.
Hardware und Betriebssystem verhindern unberechtigte Zugriffe auf Speicherbereiche anderer Benutzer oder von Systemteilen. Ein Stuttgarter Informatik-Student, der zwei Lücken in diesem Sicherheitskonzept entdeckt hatte (die dann vom Hersteller behoben wurden), antwortete auf die Frage, wieso er solche Lücken nur am TR 440 und nicht an den andern Rechnern des Instituts gesucht habe: „Bei den anderen ist das ja keine Herausforderung, die wehren sich nicht.“
Im Jahr 2007 reiste der längst stillgelegte Kasseler TR 440, der in Frankfurt eingelagert ist, für ein paar Tage für Filmaufnahmen nach Berlin. Die Filmcrew hatte für die Aufnahmen einen passenden, holzgetäfelten Raum gemietet – leider hat der Kasseler TR 440 Fronttüren aus Blech …[65]
In seiner Trauerrede zur Stilllegung des Marburger TR 440 schilderte Peter Zöfel einige frustrierende Erlebnisse mit dem neuen Rechner Sperry 1100/60 unter dem Betriebssystem OS/1100 und schloss dann mit den Worten: »Gottes Segen kann ich Euch nicht geben, aber Ihr werdet ihn bitter nötig haben!«[13]
LOGICAL
-Größen in Viertelwörtern ab
⯏
, Raute ◊
, Dollar‑ $
oder Nummernzeichen #
eingegeben; der jeweilige Vermittler bügelt diesen nebensächlichen Unterschied aus.
◊/
kann am Ende eines Kommandos weggelassen werden.