Der ASCII-Standard wurde 1963 angenommen, und heutzutage verwendet wahrscheinlich niemand mehr eine Kodierung, deren erste 128 Zeichen sich von ASCII unterscheiden. Dennoch wurde bis zum Ende des letzten Jahrhunderts aktiv EBCDIC verwendet â die Standardkodierung fĂŒr IBM-Mainframes und ihre sowjetischen Klone der ES EVM. 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 angeordnet sind: Zwischen I und J und zwischen R und S blieben ungenutzte Positionen (auf der ES EVM wurden in diesen ZwischenrĂ€umen Der Name EBCDIC (âExtended BCDICâ) deutet darauf hin, dass diese Kodierung â im Gegensatz zu ASCII â nicht aus dem Nichts geschaffen wurde, sondern auf der sechsstelligen Kodierung BCDIC basiert, die seit

IBM 704 (1954):

die Codes 0-9 zugeordnet sind. Dennoch gab es bereits Unterschiede von sieben Codes zwischen 0â9 und von acht Codes zwischen I und J in BCDIC. Woher stammen diese? R und S 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, wobei das technologisch fortschrittlichste die âTabulating Machine Companyâ war, die 1896 von Hermann Hollerith â dem Erfinder des
Tabulators dezimalen Tabulatoren. Jede Karte fĂŒr den dezimalen Tabulator bestand aus Feldern beliebiger LĂ€nge, und die in diesen Feldern in ĂŒblicher dezimaler Form geschriebenen Zahlen wurden ĂŒber das gesamte Deck summiert. Die Aufteilung der Karte in Felder wurde durch die Verbindung von DrĂ€hten an der Schaltplatte des Tabulators festgelegt. Zum Beispiel ist auf dieser Perforierkarte von Hollerith, die im Die Aufmerksamen könnten bemerkt haben, dass die Hollerith-Karte 12 Reihen fĂŒr Löcher hat, obwohl fĂŒr Zahlen zehn ausreichen; und in BCDIC werden fĂŒr jeden Wert der oberen zwei Bits nur 12 von 16 möglichen Codes verwendet.

Die aufmerksamsten könnten bemerkt haben, dass auf der Hollerith-Karte 12 Reihen fĂŒr Löcher vorhanden sind, obwohl fĂŒr die Ziffern zehn ausreichend sind; und in BCDIC werden fĂŒr jeden Wert der beiden höchsten Bits nur 12 Codes aus 16 möglichen verwendet.
NatĂŒrlich ist das kein Zufall. UrsprĂŒnglich hatte Hollerith zusĂ€tzliche Reihen fĂŒr âspezielle Markierungenâ vorgesehen, die nicht summiert, sondern einfach gezĂ€hlt wurden â wie bei den frĂŒhesten Tabulatoren. (Heute wĂŒrden wir sie âBitfelderâ nennen.) AuĂerdem konnten unter den âspezialen Markierungenâ Gruppensignale definiert werden: Wenn bei der Tabulation nicht nur endgĂŒltige Summen, sondern auch Zwischenwerte erforderlich waren, hielt der Tabulator an, wenn er eine Ănderung eines der Gruppensignale entdeckte, und der Bediener musste die Zwischenwerte von den digitalen Anzeigen auf Papier schreiben, die Anzeigen zurĂŒcksetzen und die Tabulation fortsetzen. Zum Beispiel könnte beim ZĂ€hlen von Buchhaltungsbilanzen eine Kartengruppe mit einem bestimmten Datum oder einem bestimmten Vertragspartner ĂŒbereinstimmen.
Bis 1920, als Hollerith bereits in den Ruhestand ging, wurden âdruckende Tabulatorenâ eingefĂŒhrt, die an einen Telegraphen angeschlossen werden konnten und die Zwischenwerte selbst drucken konnten, ohne dass ein Eingreifen des Bedieners erforderlich war. Die Herausforderung bestand nun darin, zu bestimmen, auf was sich jede der gedruckten Zahlen bezog. 1931 beschloss IBM, âspezielle Markierungenâ zu verwenden, um Buchstaben zu kennzeichnen: Eine Markierung in der 12. Zeile bezeichnete den Buchstaben von A bis I, in der 11. Zeile von J bis R, in der Nullzeile von S bis Z. Der neue âalphatische Tabulatorâ konnte den Namen jeder Kartengruppe zusammen mit den Zwischenwerten drucken; dabei wurde die nicht gestanzte Spalte in einen Leerraum zwischen den Zeichen verwandelt. Beachten Sie, dass S durch die Kombination der Löcher 0+2 gekennzeichnet ist, wĂ€hrend die Kombination 0+1 ursprĂŒnglich nicht verwendet wurde, aus Angst, dass zwei nebeneinanderliegende Löcher in einer Spalte mechanische Probleme im Kartenleser verursachen könnten.

Jetzt kann man die BCDIC-Tabelle aus einem etwas anderen Blickwinkel betrachten:

Bis auf die Tatsache, dass 0 und Leerraum vertauscht wurden, bestimmen die oberen zwei Bits die âspezielle Markierungâ, die seit 1931 in die Lochkarte fĂŒr das entsprechende Zeichen gestochen wurde; die unteren vier Bits bestimmen die Zahl, die im Hauptbereich der Karte gestanzt wird. UnterstĂŒtzung fĂŒr Zeichen & - / Die IBM-Tabulatoren wurden in den 1930er Jahren eingefĂŒhrt, und die Kodierung dieser Zeichen im BCDIC entspricht den dafĂŒr durchgebohrten Lochkombinationen. Als es notwendig wurde, eine noch gröĂere Anzahl von Zeichen zu unterstĂŒtzen, wurden zusĂ€tzlich spezielle Markierungen in Reihe 8 durchbohrt â so konnten in einer Spalte bis zu drei Löcher vorhanden sein. Dieses Format von Lochkarten blieb praktisch unverĂ€ndert bis zum Ende des Jahrhunderts. In der Sowjetunion wurden die IBM-Kodierungen fĂŒr lateinische Buchstaben und Interpunktion beibehalten, wĂ€hrend fĂŒr die kyrillischen Buchstaben mehrere spezielle Markierungen in den Reihen 12, 11, 0 durchbohrt wurden â ohne sich auf drei Löcher pro Spalte zu beschrĂ€nken.
Bei der Erstellung des IBM 704 Computers wurde lange nicht ĂŒber die Kodierung der Zeichen nachgedacht: Man ĂŒbernahm die Kodierung, die damals bereits fĂŒr die Lochkarten verwendet wurde, und setzte lediglich die 0 an ihren Platz. 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 von Hollerith zu Beginn des letzten Jahrhunderts gewĂ€hlte Format der Lochkarten Einfluss auf die Architektur aller IBM-Computer, bis einschlieĂlich IBM Z.
Quelle: habr.com
