Lochkarten-Rätsel gelöst - Katzencode geknackt

Lochkarten-Rätsel gelöst - Katzencode geknackt

In den Familienarchiven habe ich dieses Schätzchen gefunden: die Hochzeitsanzeige meiner Eltern. Sie wurde tatsächlich genau so an alle verschickt. Mir drängt sich ein wenig der Verdacht auf, dass es vielleicht doch so etwas wie eine genetische Disposition für Nerdigkeit geben könnte (meinen Vater habe ich dann aber leider krankheitsbedingt nie kennengelernt, um das zu verifizieren).

Während die Katzen auf den ersten Blick ja ganz offensichtlich nicht zur typischen Beschriftung von Lochkarten gehören, fiel mein zweiter Blick dann auf das Encoding der Löcher.

Dass eine solche 80-Zeichen Lochkarte eine Textzeile mit 80 Zeichen darstellt, jedes Zeichen in einer Spalte, wusste ich noch. Der Text ist ja auch - wie damals üblich - auch menschenlesbar am oberen Rand auf die Karte gedruckt (“WIR HABEN GEHEIRATET,WOLFGANG HENOECKL&ANGELIKA GROSCH / NUERNBERG,22.JUNI 1973”). Das wird dann ja wohl irgendeine binäre ASCII-Codierung sein, bei 10 Bit vielleicht mit ein paar Prüfbits? Bedauerlicherweise nicht. Auch ein binäres EBCDIC-Encoding passte irgendwie nicht. Den richtigen Pointer bekam ich dann von einem Kollegen und das alles ist noch viel bizarrer als gedacht:

Ursprünglich waren diese Lochkarten nur zum Ablegen von numerischen Werten gedacht. Eine reine Binärdarstellung der Zahlen, für die ja 4 Bit ausgereicht hätten (BCD-Kodierung) war nicht gewünscht, weil zu viele Lochungen die mechanische Stabilität der Karte beeinträchtigt hätte. Man entschied sich also dafür, die Reihen 0-9 jeweils einzeln für die passende Ziffer zu lochen. Auf dieser Karte kann man das schön an den Ziffernfeldern ablesen, z.B. ganz am Schluss das Jahr “1973”. Um eine einzelne negative Ziffer zu speichern, hat man später noch die Möglichkeit hinzugefügt, die Zeile mit den vielen Nullen zu “überlochen”.

Als dann die Anforderung dazukam, auch Buchstaben auf Lochkarten speichern zu können, wurden das Schema um weitere Varianten erweitert, in dem man oberhalb der Nuller-Reihe weitere zwei Lochreihen einführte, mit denen man verschiedene Bedeutungen der unteren Reihen aktivieren konnte:

  • Nuller-Reihe gelocht: S bis Z
  • Reihe darüber gelocht: J bis R
  • Zweite Reihe darüber gelocht: A bis I

Wer jetzt aufgepasst hat, fragt sich, wie genau man zwischen einer negativen Zahl und einem Buchstaben (s-z) unterscheiden kann. Die Antwort ist: Gar nicht, man hat das aus dem Kontext entschieden, z.B. ob sich an dieser Position ein numerisches oder ein alphanumerisches Datenfeld befand.

Spätere Erweiterungen erlaubten bis zu 2 Lochungen pro Spalte, sodass auch Satz- und Sonderzeichen abgebildet werden konnten.

© 2024 Tobias Henöckl