Der ASCII-Standard wurde 1963 angenommen, und heutzutage verwendet wahrscheinlich kaum jemand eine Kodierung, deren erste 128 Zeichen sich vom ASCII unterscheiden. Dennoch wurde bis zum Ende des letzten Jahrhunderts EBCDIC aktiv genutzt â die Standardkodierung fĂŒr IBM-Mainframes und ihre sowjetischen Klone ĐĐĄ ĐĐĐ. EBCDIC bleibt die Hauptkodierung in z/OS â dem Standardbetriebssystem fĂŒr moderne IBM Z-Mainframes.
Was sofort ins Auge fĂ€llt, wenn man EBCDIC betrachtet, ist, dass die Buchstaben nicht aufeinanderfolgend sind: zwischen I und J und zwischen R und O liegen ungenutzte Positionen (auf ĐĐĄ ĐĐĐ wurden in diesen LĂŒcken Der Name EBCDIC ("Extended BCDIC") deutet darauf hin, dass diese Kodierung â im Gegensatz zu ASCII â nicht aus dem Nichts entstand, sondern auf der sechsstelligen Kodierung BCDIC basierte, die bereits verwendet wurde seit

IBM 704 (1954):

die Codes 0-9 entsprechen. Dennoch gibt es sieben Codes zwischen 0â9 und acht Codes zwischen I und J und zwischen acht Codes R und O Im BCDIC war man bereits. Woher stammen sie also?
Die Geschichte von (E)BCDIC beginnt gleichzeitig mit der Geschichte von IBM â lange bevor es elektronische Computer gab. IBM entstand aus der Fusion von vier Unternehmen, von denen das technologisch fortschrittlichste die "Tabulating Machine Company" war, die 1896 von Herman Hollerith, dem Erfinder, gegrĂŒndet wurde. . Die ersten Tabulatoren zĂ€hlten einfach die Anzahl der an einem bestimmten Ort durchlöcherten Lochkarten; aber 1905 begann Hollerith mit der Produktion von dezimalen Tabulatoren. Jede Karte fĂŒr den dezimalen Tabulator bestand aus Feldern beliebiger LĂ€nge, und die Zahlen, die in diesen Feldern in gewohnter dezimaler Form geschrieben waren, wurden ĂŒber das gesamte Deck summiert. Die Aufteilung der Karte in Felder wurde durch das Verbinden von DrĂ€hten auf der Anschlussplatte des Tabulators festgelegt. Zum Beispiel ist auf dieser Lochkarte von Hollerith, in der Bibliothek des Kongresses, offensichtlich die Zahl 23456789012345678 eingeprĂ€gt, jedoch unklar, wie sie auf die Felder verteilt ist:

Die Aufmerksamen könnten bemerken, dass auf Holleriths Karte 12 Reihen fĂŒr Löcher vorhanden sind, obwohl fĂŒr Ziffern zehn ausreichen; und im BCDIC werden nur 12 Codes von 16 möglichen fĂŒr jedes der höheren beiden Bits verwendet.
NatĂŒrlich ist das kein Zufall. UrsprĂŒnglich hatte Hollerith zusĂ€tzliche Spalten fĂŒr âbesondere Markierungenâ vorgesehen, die nicht summiert, sondern einfach gezĂ€hlt wurden â wie in den allerersten Tabulatoren. (Heute wĂŒrden wir sie âBit-Felderâ nennen.) DarĂŒber hinaus konnten unter diesen âbesonderen Markierungenâ auch Gruppenindikatoren festgelegt werden: Wenn bei der Tabellierung nicht nur endgĂŒltige Summen, sondern auch Zwischenergebnisse benötigt wurden, stoppte der Tabulator, sobald eine Ănderung eines der Gruppenindikatoren erkannt wurde. Der Operator musste dann die Zwischensummen von den digitalen Tafeln auf Papier ĂŒbertragen, die Tafel zurĂŒcksetzen und die Tabellierung fortsetzen. Beispielsweise könnte bei der Berechnung von Bilanzsummen eine Karten-Gruppe einem bestimmten Datum oder einem bestimmten GeschĂ€ftspartner entsprechen.
Bis 1920, als Hollerith bereits in den Ruhestand gegangen war, kamen die "Drucktabulatoren" auf, die mit einem Telegraph verbunden werden konnten und selbststĂ€ndig Zwischensummen drucken konnten, ohne dass ein Betreiber eingreifen musste. Die Herausforderung bestand nun darin, zu bestimmen, zu welcher Zahl jede der ausgedruckten Zahlen gehörte. 1931 beschloss IBM, Buchstaben mit Hilfe von "Sondermarkierungen" zu kennzeichnen: Eine Markierung in Reihe 12 bedeutete einen Buchstaben von A bis zu I, in Reihe 11 von J bis zu R, in Reihe 0 von O bis zu Z. Der neue "alphabetische Tabulator" konnte den Namen jeder Kartengruppe zusammen mit den Zwischensummen drucken; dabei verwandelte eine nicht durchstochene Spalte sich in einen Leerraum zwischen den Zeichen. Beachten Sie, dass O durch die Kombination der Löcher 0+2 gekennzeichnet wird, wĂ€hrend die Kombination 0+1 ursprĂŒnglich nicht verwendet wurde, aus Angst, dass zwei Löcher in einer Spalte mechanische Probleme im Leser verursachen könnten.

Jetzt kann die BCDIC-Tabelle aus einer etwas anderen Perspektive betrachtet werden:

Mit Ausnahme der Tatsache, dass 0 und der Leerraum vertauscht wurden, bestimmen die beiden höchsten Bits das âSonderzeichenâ, das seit 1931 auf der Lochkarte fĂŒr das entsprechende Zeichen gestanzt wurde; die vier niedrigsten Bits stellen die Ziffer dar, die im Hauptteil der Karte gestanzt wird. UnterstĂŒtzung von Zeichen. & - / wurde in den 1930er Jahren zu den IBM-Tabulatoren hinzugefĂŒgt, und die Kodierung dieser Zeichen im BCDIC entspricht den fĂŒr sie gestanzten Lochkombinationen. Als eine UnterstĂŒtzung fĂŒr eine noch gröĂere Anzahl von Zeichen benötigt wurde, begann man, eine zusĂ€tzliche âSondermarkierungâ in Reihe 8 zu stanzen â somit konnten in einer Spalte bis zu drei Löcher vorhanden sein. Dieses Format der Lochkarten blieb bis zum Ende des Jahrhunderts nahezu unverĂ€ndert. In der Sowjetunion wurden die IBM-Codierungen der lateinischen Buchstaben und der Zeichensetzung beibehalten, wĂ€hrend fĂŒr die kyrillischen Buchstaben mehrere âSondermarkierungenâ in den Reihen 12, 11, 0 gestanzt wurden â ohne sich auf drei Löcher in einer Spalte zu beschrĂ€nken.
Als der IBM 704 Computer entwickelt wurde, hat man sich nicht lange mit der Zeichenkodierung aufgehalten: man hat einfach die bereits fĂŒr Lochkarten verwendete Kodierung ĂŒbernommen und lediglich die 0 "an ihren Platz" gesetzt. 1964, beim Ăbergang von BCDIC zu EBCDIC, blieben die unteren vier Bits jedes Zeichens unverĂ€ndert, obwohl die oberen Bits etwas umsortiert wurden. So hatte das Lochkartenformat, das Hollerith zu Beginn des letzten Jahrhunderts wĂ€hlte, einen Einfluss auf die Architektur aller IBM-Computer, einschlieĂlich IBM Z.
Quelle: habr.com
