Proč písmena v EBCDIC nejdou za sebou?

Norma ASCII byla přijata v roce 1963 a dnes už jen málokdo používá kódování, jehož prvních 128 znaků se liší od ASCII. Až do konce minulého století se však aktivně používal EBCDIC - standardní kódování pro sálové počítače IBM a jejich sovětské klony počítačů EC. EBCDIC zůstává primárním kódováním v z/OS, standardním operačním systému pro moderní sálové počítače IBM Z.

Při pohledu na EBCDIC vás okamžitě upoutá, že písmena nejsou v řadě: mezi I и J a mezi R и S byly nevyužité pozice (na počítači ES pro tyto intervaly distribuováno znaky azbuky). Koho by napadlo kódovat písmena s nestejnými mezerami mezi sousedními písmeny?

Proč písmena v EBCDIC nejdou za sebou?

Samotný název EBCDIC („Extended BCDIC“) napovídá, že toto kódování – na rozdíl od ASCII – nebylo vytvořeno od začátku, ale na základě šestibitového kódování BCDIC, které se používá od r. IBM 704 (1954):

Proč písmena v EBCDIC nejdou za sebou?

Neexistuje žádná okamžitá zpětná kompatibilita: výhodnou funkcí BCDIC, která se ztratila při přechodu na EBCDIC, bylo to, že čísla 0-9 odpovídají kódům 0-9. Mezi nimi jsou však mezery sedmi kódů I и J a v osmi kódech mezi nimi R и S již byl v BCDIC. odkud se vzali?

Historie (E)BCDIC začíná současně s historií IBM - dávno před elektronickými počítači. IBM vznikla fúzí čtyř společností, z nichž technologicky nejpokročilejší byla společnost Tabulating Machine Company, založená v roce 1896 Hermanem Hollerithem, vynálezcem. tabelátor. První tabelátoři jednoduše počítali počet děrných štítků vyražených na konkrétním místě; ale v roce 1905 Hollerith zahájil výrobu desetinný tabelátory. Každá karta pro desetinný tabulátor se skládala z polí libovolné délky a čísla zapsaná v těchto polích v obvyklém desetinném tvaru byla sečtena přes celý balíček. Rozdělení mapy na pole bylo určeno připojením vodičů na patch panelu tabulátoru. Například na tomto děrném štítku Hollerith uloženy v knihovně Kongresu je jasně vyraženo číslo 23456789012345678, neznámé jako rozdělené do polí:

Proč písmena v EBCDIC nejdou za sebou?

Ti nejpozornější si možná všimli, že na mapě Hollerith je 12 řad pro jamky, i když na čísla stačí deset; a v BCDIC je pro každou hodnotu nejvýznamnějších dvou bitů použito pouze 12 kódů ze 16 možných.

Samozřejmě to není náhoda. Zpočátku Hollerith zamýšlel další řádky pro „zvláštní známky“, které se nesčítaly, ale jednoduše počítaly – jako v úplně prvních tabelátorech. (Dnes bychom je nazvali „bitová pole“.) Mezi „zvláštními známkami“ bylo navíc možné nastavit skupinové ukazatele: pokud by tabelování vyžadovalo nejen konečné součty, ale i mezilehlé, pak by se tabelátor zastavil, když zjistila změnu v kterémkoli ze skupinových indikátorů a operátor musel přepsat mezisoučty z digitálních tabulí na papír, resetovat tabuli a obnovit tabelaci. Například při výpočtu účetních zůstatků by skupina karet mohla odpovídat jednomu datu nebo jedné protistraně.

V roce 1920, kdy už Hollerith odešel do důchodu, se začaly používat „tabulátory pro psaní“, které byly připojeny k dálnopisu a mohly samy tisknout mezisoučty bez nutnosti zásahu operátora. Nyní bylo obtížné určit, co každé z vytištěných čísel odkazovalo. V roce 1931 se IBM rozhodla používat k označení písmen „speciální značky“: značka ve 12. řádku označovala písmeno z A na I, v 11. - od J na R, při nule - od S na Z. Nový „abecední tabulátor“ mohl vytisknout název každé skupiny karet spolu s mezisoučty; v tomto případě se nepřerušený sloupec změnil na mezeru mezi znaky. Vezměte prosím na vědomí, že S je označeno kombinací děr 0+2 a kombinace 0+1 se původně nepoužívala z obavy, že by dva otvory vedle sebe ve stejném sloupci způsobily mechanické problémy ve čtečce.

Proč písmena v EBCDIC nejdou za sebou?

Nyní se můžete podívat na tabulku BCDIC z trochu jiného úhlu:

Proč písmena v EBCDIC nejdou za sebou?

Kromě toho, že 0 a mezera jsou obrácené, dva nejvýznamnější bity definují "zvláštní značku", která byla do děrného štítku vyražena pro odpovídající znak od roku 1931; a nejméně významné čtyři bity určují číslici vyraženou do hlavní části karty. Podpora symbolů & - / byl přidán do IBM tabelátorů ve 1930. letech 8. století a kódování BCDIC těchto znaků odpovídá kombinacím otvorů, které byly pro ně vyraženy. Když byla potřeba podpora pro ještě větší počet znaků, byla vyražena řada 12 jako další „zvláštní značka“ – v jednom sloupci tak mohly být až tři díry. Tento formát děrných štítků zůstal prakticky nezměněn až do konce století. V SSSR ponechali latinku a interpunkční kódy IBM a pro písmena azbuky prorazili několik „zvláštních značek“ najednou v řádcích 11, 0, XNUMX - neomezeno na tři díry v jednom sloupci.

Když byl vytvořen počítač IBM 704, nepřemýšleli dlouho o kódování znaků pro něj: vzali kódování, které se v té době již používalo na děrných štítcích, a pouze ho „umístili na své místo“. V roce 0, během přechodu z BCDIC na EBCDIC, byly čtyři bity nižšího řádu každého symbolu ponechány beze změny, ačkoli bity vyššího řádu byly trochu zamíchány. Formát děrných štítků zvolený Hollerithem na začátku minulého století tak ovlivnil architekturu všech počítačů IBM, až po IBM Z včetně.

Zdroj: www.habr.com

Přidat komentář