# IBM 1401

Die IBM 1401 war ein transistorbasierter, mit Kernspeicher ausgestatteter Rechner von IBM, welcher am 5. Oktober 1959 vorgestellt wurde.
Der IBM 1401 löste die Tabelliermaschinen wie die IBM 407 ab. Er wurde bis zum Produktionsende am 8. Februar 1971 über 12.000-mal verkauft. Es war auch möglich, den Rechner von IBM zu mieten, wobei Anfang der 1960er-Jahre für die Grundkonfiguration des Modells eine Monatsmiete von 2500 USD fällig wurde. Das Nachfolgeprodukt System/3 wurde 1969 am Markt eingeführt.
Die Rechner waren von IBM ursprünglich als Vorrechner für die Großrechner der Serie 7000 gedacht. Laut IBM geht der Begriff Mittlere Datentechnik auf die Einführung des Satellitenrechners IBM 1401 am 5. Oktober 1959 zurück.

## Architektur

Im Unterschied zu den (meisten) heutigen Rechnern war die Ausdehnung eines aus mehreren (zusammenhängenden) Speicherstellen bestehenden Feldes nicht durch Angaben im Maschinenbefehl bestimmt, sondern durch sog. Wortmarken im Speicher. Der Rechner arbeitete mit variabler Wortlänge, womit eine effiziente Ausnutzung der Speicherkapazität erreicht wurde.
Die IBM 1401 gab es mit unterschiedlichen Speicherkonfigurationen (1,4K, 2K, 4K, 8K, 12K oder 16K). Ein Byte bestand (brutto) aus acht Bits und gestattete die Verwendung von 6 Bits für Daten. Die beiden übrigen Bits wurden als Parity-Bit und als Word Mark verwendet.

### Lochkarten

Die 1401 bestand als reines Kartensystem aus einer IBM-1401-Zentraleinheit, einer IBM-1402-Karteneinheit zum Lesen (800 Lochkarten/Min.) und Stanzen (250 Lochkarten/Min.) von Lochkarten, sowie einem IBM-1403-Drucker (600 Zeilen/Min.).

### Magnetband

Durch Anschluss von bis zu sechs IBM-7701-Magnetbandeinheiten konnte sie zu einem Bandsystem erweitert werden.

### Magnetplatte

Mit einer angeschlossenen IBM 1405 RAMAC wurde sie zu einem Magnetplattensystem mit direktem Zugriff zu 10 bis max. 20 Millionen alphanumerischen Zeichen. Anstelle der 1405 RAMAC konnten ab ca. Mitte 1963 bis zu sechs IBM-1311-Plattenspeichereinheiten mit auswechselbaren Magnetplattenspeichern (Speicherkapazität bis zu drei Millionen alphanumerische Zeichen) angeschlossen werden. In dieser Konfiguration erfuhr die 1401 in der Praxis die weiteste Verbreitung und war bis zu ihrer Ablösung durch die IBM System/360-Rechnerfamilie das Arbeitspferd in der Datenverarbeitung.

## Programmierung

Die IBM 1401 war frei programmierbar. Die kleinste adressierbare Einheit war die Kernspeicherstelle, die ein Zeichen (engl. character) in BCD-Code enthielt. Adressrechnung und arithmetische Befehle arbeiteten im Dezimalsystem, und zwar beginnend mit der höchstwertigen Ziffer, also in der gewohnten Big-Endian-Orientierung. Während die Berechnung der Operandenadressen mit Dezimalzahlen fester Länge (5) geschah, konnte ein (arithmetisches) Feld durch das Wortmarkenkonzept eine beliebige Länge haben. Mit dieser Technik war es auch möglich, je nach Maschinenbefehl ein Feld an der oberen oder an der unteren Adresse anzusprechen. So war bspw. das beim Addieren-Befehl notwendige initiale Inkrementieren (um Operandenlänge minus 1) der Adresse eines Operanden zu seiner Einerstelle die Aufgabe des Compilers.

### Programmiersprachen

Die Systeme wurden häufig per Assembler programmiert. Die Kartensysteme wurden üblicherweise mit SPS (Symbolic Programming System) programmiert. Für die anspruchsvolleren Magnetplatten- und Magnetbandsysteme wurde der IBM 1401 Autocoder in Verbindung mit dem IOCS (Input-Output-Control-System) verwendet.
Zusätzlich wurden die höheren Programmiersprachen FORTRAN, COBOL sowie das zusammen mit dem IBM-1401-System vorgestellte RPG genutzt.