Eine Lochkarte ist im heutigen Sinne ein mechanisches Speichermedium für Daten.
Inhaltsverzeichnis |
Lochkarten und lochkartenähnliche Systeme werden ab etwa der Mitte des 18. Jahrhunderts im Bereich der Automatisierung und der Datenverarbeitung verwendet. Sie wurden meist eingesetzt, um wiederkehrende Abläufe rationell zu wiederholen. Es wurden unter anderem lochkartengesteuerte Webstühle gebaut, wobei die ersten Lochkarten hier hölzerne Plättchen waren. Drehorgeln werden oftmals noch heute mit lochkartenähnlichen Speichermedien (sogenannte Faltkartonnoten oder Lochbandrollen) gesteuert, aber auch andere automatische und teilautomatische Musikinstrumente bedienen sich dieses Verfahrens. Charles Babbage sah für seine Analytical Engine eine Lochkartensteuerung vor. Frühe Datenverarbeitungs- und -registrieranlagen waren ohne Lochkarten nicht denkbar.
Die Ursprünge der Lochkarte gehen auf die Funktionsweise von Spieldosen und anderen Automaten zurück, in denen eine sich drehende Walze oder Scheibe mit darauf angebrachten Stiften oder Löchern die automatisierte Wiedergabe von Musikstücken und die Steuerung mechanischer Abläufe ermöglichte.
Das Grundprinzip der Datenspeicherung einer Lochkarte ist, dass die für eine spezielle Funktion eines Automaten relevanten Daten in geeigneter Form kodiert werden. Beispielsweise werden in ein aus dünnem Karton bestehenden Speichermedium Löcher gestanzt, deren Position vom jeweiligen Code vorgegeben wird. Um die Funktion dann zu einem beliebigen Zeitpunkt auszuführen, werden die Löcher des Speichermediums durch eine Leseeinheit abgelesen und durch eine geeignete Vorrichtung passend decodiert, so dass sie der Funktion zugeordnet werden können. Die Abtastung der Steuerbefehle kann auf mechanischem, pneumatischem, opto-elektrischem oder auch elektromechanischem Wege geschehen.
Mechanische und auch elektromechanische Speichersysteme, die Daten durch Löcher in einem externen Medium aus Papier, Karton oder ähnlichem speichern, boten vor der Entwicklung der elektronischen Datenverarbeitung, im Gegensatz zu Systemen wie etwa der Stiftwalze, die wirtschaftlichste Möglichkeit, codierte Daten schnell zu vervielfältigen und mit einfachen Mitteln einen neuen Code zu schreiben.
Bis in die 1990er Jahre gab es so genannte Randlochkarten, die manuell bearbeitet wurden. Verschiedene Suchkriterien (zum Beispiel im Bibliothekswesen) wurden mit Löchern oder Schlitzen an allen vier Rändern der Karte codiert. Man konnte mit einer langen Nadel in die Position eines Suchkriteriums stechen und den Stapel hochheben, wodurch die ausgewählten Karten aus dem Stapel herausfielen. Für kompliziertere Suchkriterien konnte man auch mehrere Nadeln verwenden.
Das später im Computerbereich weit verbreitete Lochkartenformat geht auf die US-amerikanische Volkszählung 1890 zurück, zu der Herman Hollerith ein auf Lochkarten basierendes Verfahren einschließlich der zugehörigen Stanz- und Auswertemaschinen Tabelliermaschinen entwickelte. Dr. Herman Hollerith schaffte in nur 4 Wochen die komplette Erfassung und Auswertung der 11. amerikanischen Volkszählung im Jahre 1890. Seine Maschinen wurden von etwa 40 Mitarbeitern bedient.
Die Lochkarte wurde nach ihrer Massenpremiere, der Volkszählung, vor allem in mechanischen und elektromechanischen Rechen- und Lochkartensortierern und Lochkartenmischern eingesetzt. Es dauerte allerdings bis 1928, bevor die Lochkarte ihr endgültiges, standardisiertes Format bekam (das übrigens nicht, wie gelegentlich behauptet, der Größe des damaligen Ein-Dollar-Scheins entspricht). Nach ihrem Erfinder war für diese Art Lochkarten auch die Bezeichnung Hollerithkarte üblich.
Eine Hollerith-Lochkarte ist ein rechteckiges, etwa 18,7 cm × 8,3 cm großes Stück 0,17 mm dünner Karton, in das in vorgegebene Positionen spaltenweise Löcher gestanzt werden, um eine Folge von Zeichen (heute würde man sagen: eine Zeile Text) zu codieren.
Als im 20. Jahrhundert Computer entwickelt wurden, boten sich die schon etablierten Lochkarten als Medium zur Programmeingabe und Datenspeicherung an. Bereits Konrad Zuses erster Rechner, die Z1, wurde mit Hilfe von Code, der in einen Lochstreifen (bestehend aus einem 35-mm-Film) gestanzt wurde, gesteuert. Später wurden für Computer jedoch fast ausschließlich Lochkarten nach Hollerith verwendet.
Das ursprüngliche Code-Format für Hollerith-Lochkarten sah nur 240 Positionen für Löcher vor, es wurde jedoch bald auf 45 Spalten mit je 12 Positionen erweitert. Dies entsprach 45 Zeichen zu je 12 bit (später wurde eine 6-bit-Codierung erfunden, die es erlaubte, 90 Zeichen zu speichern). IBM ließ sich 1928 ein 80-Spalten-Format mit rechteckigen Löchern patentieren, das die weiteste Verbreitung fand und auch noch heute bei Großrechneranlagen von IBM zu finden ist; die bis heute übliche maximale Zeilenlänge von knapp 80 Zeichen in E-Mails und Textdateien geht auf dieses Lochkartenformat zurück. In die Lochkarte können in 80 Spalten und in 12 Zeilen Löcher gestanzt werden. Ursprünglich konnte nur ein Loch pro Spalte für Ziffern benutzt werden. Später kam eine zweite Lochung für Großbuchstaben und eine dritte Lochung für Sonderzeichen hinzu. Mit Verwendung des EBCDIC-Codes seit 1964 wurden bis zu 6-fach-Lochungen zugelassen. Dabei entsprach eine Karte einer Zeile Text und eine Spalte der Karte einer Zeichenposition der Zeile. Eine Lochkarte hatte somit ein Fassungsvermögen von etwa 80 Byte. Eine heute übliche 80-GB-Festplatte kann somit den Inhalt einer Milliarde Lochkarten speichern. Das würde einem Lochkartenstapel von 170 km Höhe entsprechen.
Die feste Ausrichtung an den Spalten der Lochkarten hatte Auswirkung auf die Syntax mancher Programmiersprachen. Bei alten Fortran-Varianten waren die ersten fünf Spalten für ein numerisches Label vorgesehen. Bei zügiger Durchsicht der Lochkarten konnte sehr einfach erkannt werden, wenn ein Label oder der Quellcode falsch positioniert waren. Ein beliebiges Zeichen in Spalte 6, üblicherweise ein Sternchen oder ein großes C (für Continue), bedeutete: Fortsetzungskarte, d. h. die Anweisung auf der vorherigen Lochkarte/Zeile wird ab Spalte 7 fortgesetzt. Die acht Spalten 73 bis 80 waren bei Fortran für Kommentare reserviert. Hier lochte man oft eine fortlaufende Nummer, damit man einen heruntergefallenen Lochkartenstapel leichter sortieren konnte. Auf für Fortran-Programme hergestellten Lochkarten waren diese Bereiche optisch deutlich markiert. Die Programmiersprache COBOL basiert mit ihrer Sprachsyntax ebenfalls auf der Lochkarte. Auch die Datenkarten hatten normalerweise ein festes Format, wobei ein Datensatz einer Karte entsprach und dort die Eingabedaten wie beispielsweise Betrag, Kundennummer und Datum festen Bereichen der Spalten zugeordnet waren.
Zahlreiche Verbesserungen der Lochkartensysteme gehen auf Gustav Tauschek (1899–1945) zurück.
An der Uni Linz (A) war bis etwa 1980/85 eine Grossrechenanlage IBM 360 (und 370) in Betrieb, deren Dateneingabe mit Hollerith-Lochkarten mit 80 Spalten und 12 Zeilen erfolgte. Die Maschinen waren etwa 1970 von einer Versicherung oder Bank als veraltet ausgeschieden worden. Die Karten wurden in etwa 60 cm langen Blechlladen wie Karteikarten gestapelt. Eine führende Steuerkarte vor jedem „Rechenjob“ trug den persönlichen Code als Zugangsberechtigung, etwa für Teilnehmer einer Lehrveranstaltung, sowie Limits für Rechenzeit und Ausdrucklänge. Zu bestimmten Zeiten wurden die gestapelten Jobs vom Rechenzentrum übernommen, Stunden später erhielt man, wenn alles klappte, den Ausdruck und wieder die Karten. Der Kartenstapel wurde an der oberen Fläche (Kartenschnittkanten) meist persönlich bezeichnet, Diagonalen kam die Bedeutung zu, die korrekte Reihenfolge der Karten zu markieren. Die korrekte Orientierung der Karten wurde durch die abgeschrägte Ecke neben 3 runden sichergestellt, eine umgedrehte Karte hatte schon praktische Lesezeichenfunktion. An den fast schreibtischgroßen, grau lackierten, sehr lauten Lochkarten-Stanzmaschinen machte jeder Tippfehler das Aussortieren einer Karte nötig, besonderen Ärger machten gelegentliche Fehler des Leseteils der Maschine beim (teilweisen) Duplizieren von Karten.
Eine Sonderform der Lochkarte stellte die Filmlochkarte nach DIN 19053 dar. Diese hatte einen 35-mm-Mikrofilm eingeklebt. Dadurch konnten z. B. technische Zeichnungen rasch aus einem Lochkartenbestand per Sortierung extrahiert werden.
Um Lochkarten zu beschreiben bzw. zu stanzen, gab es Lochkartenlocher (bzw. -stanzer). Diese Geräte hatten eine Schreibmaschinentastatur, eine Zuführvorrichtung für die Lochkarten und eine Programmkarte. Auf dem Lochkartenlocher wurden die Daten in die Lochkarte gelocht und zur Kontrolle auf einer zweiten Maschine, dem Lochkartenartenprüfer, nochmals eingegeben. Wenn die Lochungen übereinstimmten, wurde die Karte als geprüft gekennzeichnet. Zur Vereinfachung und Beschleunigung der Arbeit diente die Programmkarte. Dort konnten z. B. auf der Karte Felder als numerisch oder alpha-numerisch definiert werden. Zu diesen Feldern konnte direkt gesprungen werden. Auch gab es eine Kopiertaste, mit der die gerade gestanzte Karte bis zu einer gewünschten Spalte kopiert werden konnte. Diese Funktion wurde später von Betriebssystemen mit Terminal-gesteuerter Eingabe übernommen, um eine editierte Zeile auf einem Fernschreiber oder später auch Monitor neu auszugeben. Die zuletzt eingegebene Zeile kann noch heute z. B. bei der Windows-Eingabeaufforderung zeichenweise durch die Cursor-rechts-Taste und im ganzen durch die Cursor-oben-Taste kopiert werden.
Die Programmkarte konnte die Eingabe von Massendaten vereinfachen, indem vor allem bestimmte Spaltenbereiche automatisch übersprungen wurden, so dass nur das Eintippen der reinen Zahlenwerte oder beispielsweise Adressangaben nötig war und nicht einmal Steuertasten zu betätigen waren. Andere Programmbefehle bewirkten das Kopieren bestimmter Spaltenbereiche von einer vorhergehenden auf die neue Karte uvam.
Lochkartenstanzer konnten zur Datenausgabe von Programmen wie Drucker angesteuert werden. Neuere Geräte druckten zusätzlich zum gestanzten Code den Inhalt als Klartext mit auf die Karten, erfahrene Programmierer konnten die Lochkarten auch ohne weitere Hilfsmittel, einfach nur durch Betrachtung der Lochpositionen, lesen.
Eingelesen wurden die Lochkarten durch optische oder mechanische Lesegeräte. Der Lochkartenstapel wurde in ein Lesefach eingelegt und mit einem Gewicht beschwert. Auf Knopfdruck wurde das Gerät angeschaltet. Durch ein Gebläse wurde der Stapel aufgelockert und eine Karte nach der anderen wurde eingelesen. Der Lesevorgang erfolgte entweder durch mechanisches Abtasten mit Stiften oder durch Lichtschranken mit Fotozellen.
Die damaligen Programme waren nicht interaktiv; ein Programm wurde gestartet, las Eingabedaten, verarbeitete sie und gab bestimmte Ergebnisdaten wieder aus. Diese Arbeitsweise bedingte drei Sätze von Lochkarten: Einen Satz für die Eingabedaten, einen Satz für das Verarbeitungsprogramm, und einen Satz Ausgabedaten, die vom Programm durch die Verarbeitung der Eingabedaten erzeugt und durch Stanzgeräte ausgegeben wurden. Das Stanzen von Lochkarten als Ergebnisdaten stellte die Ausnahme dar. Meist reichte eine Druckausgabe der Ergebnisse, und mit Einführung von Magnetplattenspeichern, die um 1980 in der Großrechnerwelt etwa die Größe von Waschmaschinen hatten, konnten Zwischenergebnisse auch gespeichert werden. Da manche Stanzer die Karten nicht am oberen Rand in Klartext beschriften konnten, gab es dafür manchmal separate Geräte, die lediglich die Lochcodes lasen und diese Beschriftung nachholten.
Es war auch möglich, die mit Einführung der ersten Zeilenterminals ebenfalls eingeführten Zeileneditoren mit Lochkarten zu bedienen und somit gespeicherte Programme zu ändern; eine Kunst, die vor allem Studenten in den hoffnungslos überlaufenen Datenstationen der Hochschulen beherrschten. Die englische Bezeichnung für einen Kartenstapel ist Batch und der ganze Prozess der Verarbeitung sowie auch der Programmstapel war ein Job. Daraus wurden die Begriffe Batchjob, Batchdatei und auch die Dateiendung bat für eine DOS-Stapelverarbeitungsdatei.
Die Einführung von Magnetbändern als schnellen und transportablen Massenspeichern verdrängte, beginnend Mitte der 1960er Jahre, langsam die Lochkarte als Speichermedium für Computer. Eine in den späten 1960er Jahren von IBM vorgestellte kleinere Karte höherer Kapazität konnte sich nicht mehr durchsetzen.
Lochkartensysteme fanden wegen ihrer Robustheit aber auch andere Anwendungsbereiche, so zum Beispiel als Programmträger für Waschmaschinen oder für Schlüsselkarten und Ausweiskarten. Teilweise wurden die Lochkarten dabei in transparenten oder durchscheinenden Kunststoff eingeschweißt. Mittlerweile sind auch diese Lochkarten wieder weitgehend durch Chipkarten und ähnliche Systeme ersetzt worden.
Lochkarten im Hollerith-Format gibt es heute noch bei einigen mechanischen Stempeluhren. Sie finden auch noch in US-amerikanischen Wahlmaschinen Verwendung, deren Zuverlässigkeit jedoch bei der Wahl von George W. Bush zum Präsidenten der USA stark in die Kritik geraten ist. In der Computertechnik sind echte Lochkarten heutzutage nicht mehr von Bedeutung. Jedoch werden noch immer häufig Umfragedaten in Dateien gespeichert, deren Format an Lochkarten angelehnt ist – auch im 21. Jahrhundert gibt es also noch „Spalten“ und „Karten“, wenn auch nur virtuell (siehe: Liste der Begriffe und Methoden der Marktforschung).
Eine historische Randbemerkung: Die von Hollerith gegründete Firma Tabulating Machine Company wurde später in IBM umbenannt.