Zašto slova nisu uzastopna u EBCDIC?

ASCII standard usvojen je 1963. godine i sada rijetko tko koristi kodiranje čijih se prvih 128 znakova razlikuje od ASCII-ja. Međutim, do kraja prošlog stoljeća aktivno se koristio EBCDIC - standardno kodiranje za IBM mainframe i njihove sovjetske klonove EC računala. EBCDIC ostaje primarno kodiranje u z/OS, standardnom operativnom sustavu za moderna IBM Z glavna računala.

Ono što odmah upada u oči kada pogledate EBCDIC je da slova nisu u nizu: između I и J i između R и S bilo je neiskorištenih pozicija (na ES računalu za ove intervale distribuiran ćirilični znakovi). Kome bi palo na pamet da kodira slova s ​​nejednakim razmacima između susjednih slova?

Zašto slova nisu uzastopna u EBCDIC?

Sam naziv EBCDIC (“Prošireni BCDIC”) daje naslutiti da ovo kodiranje - za razliku od ASCII-a - nije stvoreno od nule, već na temelju šest-bitnog BCDIC kodiranja, koje se koristi od IBM 704 (1954):

Zašto slova nisu uzastopna u EBCDIC?

Ne postoji neposredna povratna kompatibilnost: prikladna značajka BCDIC-a koja je izgubljena u prijelazu na EBCDIC bila je da su brojevi 0-9 odgovaraju kodovima 0-9. Međutim, postoje praznine od sedam kodova između I и J a u osam kodova između R и S već bili na BCDIC-u. Odakle su došli?

Povijest (E)BCDIC-a počinje istodobno s poviješću IBM-a - mnogo prije elektroničkih računala. IBM je nastao kao rezultat spajanja četiriju tvrtki, od kojih je tehnološki najnaprednija bila Tabulating Machine Company koju je 1896. godine osnovao Herman Hollerith, izumitelj tabulator. Prvi tabulatori jednostavno su brojali broj izbušenih karata na određenom mjestu; ali 1905. Hollerith je započeo proizvodnju decimal tabulatore. Svaka karta za decimalni tabulator sastojala se od polja proizvoljne duljine, a brojevi zapisani u tim poljima u uobičajenom decimalnom obliku zbrajali su se po cijelom špilu. Raščlamba karte na polja određena je spajanjem žica na patch ploči tabulatora. Na primjer, na ovoj Hollerith bušenoj kartici, pohranjeno u Kongresnoj knjižnici jasno je utisnut broj 23456789012345678, nepoznat kao podijeljen u polja:

Zašto slova nisu uzastopna u EBCDIC?

Najpažljiviji su možda primijetili da na Hollerithovoj karti ima 12 redova za rupe, iako je deset dovoljno za brojeve; a u BCDIC-u se za svaku vrijednost dvaju bitova najveće važnosti koristi samo 12 kodova od 16 mogućih.

Naravno, to nije slučajnost. Hollerith je u početku namijenio dodatne retke za “posebne oznake” koje se nisu zbrajale, već jednostavno brojale - kao u prvim tabulatorima. (Danas bismo ih nazvali "poljima bitova".) Osim toga, među "posebnim oznakama" bilo je moguće postaviti grupne indikatore: ako tabeliranje zahtijeva ne samo konačne zbrojeve, već i one srednje, tada bi se tabulator zaustavio kada detektirao je promjenu u bilo kojem od indikatora grupe, a operater je morao prepisati međuzbrojeve s digitalnih ploča na papir, resetirati ploču i nastaviti tabeliranje. Na primjer, prilikom izračunavanja računovodstvenih stanja, grupa kartica može odgovarati jednom datumu ili jednoj drugoj strani.

Do 1920. godine, kada je Hollerith već otišao u mirovinu, počeli su se koristiti "tabulatori za kucanje", koji su bili povezani s teletypeom i mogli su sami ispisivati ​​međuzbrojeve bez potrebe za intervencijom operatera. Teškoća je sada bila odrediti na što se svaki od ispisanih brojeva odnosi. Godine 1931. IBM je odlučio koristiti "posebne oznake" za označavanje slova: oznaka u 12. redu označavala je slovo iz A na I, u 11. - od J na R, na nuli - od S na Z. Novi "abecedni tabulator" mogao je ispisati naziv svake grupe kartica zajedno s međuzbrojevima; u ovom slučaju, neprekinuti stupac pretvorio se u razmak između znakova. Imajte na umu da S označen je kombinacijom rupa 0+2, a kombinacija 0+1 nije izvorno korištena zbog straha da bi dvije rupe jedna do druge u istom stupcu mogle izazvati mehaničke probleme u čitaču.

Zašto slova nisu uzastopna u EBCDIC?

Sada možete pogledati BCDIC tablicu iz malo drugačijeg kuta:

Zašto slova nisu uzastopna u EBCDIC?

Osim što su 0 i razmak obrnuti, dva najznačajnija bita definiraju "posebnu oznaku" koja je bila bušena u bušenu karticu za odgovarajući znak od 1931.; a četiri najmanje značajna bita određuju znamenku urezanu u glavni dio kartice. Podrška za simbole & - / je dodan u IBM tabulatore 1930-ih, a BCDIC kodiranje ovih znakova odgovara kombinacijama rupa koje su za njih probušene. Kada je bila potrebna podrška za još veći broj znakova, redak 8 je izbušen kao dodatna "posebna oznaka" - dakle, mogle su biti do tri rupe u jednom stupcu. Ovaj format bušenih kartica ostao je gotovo nepromijenjen sve do kraja stoljeća. U SSSR-u su napustili IBM-ovo kodiranje latinice i interpunkcije, a za ćirilična slova probili su nekoliko "posebnih oznaka" odjednom u redovima 12, 11, 0 - ne ograničavajući se na tri rupe u jednom stupcu.

Kada je stvoreno računalo IBM 704, nisu dugo razmišljali o kodiranju znakova za njega: uzeli su kodiranje koje se u to vrijeme već koristilo u bušenim karticama i samo su ga "stavili na svoje mjesto". Godine 0., tijekom prijelaza s BCDIC na EBCDIC, četiri bita nižeg reda svakog simbola ostala su nepromijenjena, iako su bitovi višeg reda malo promiješani. Tako je format bušene kartice koji je odabrao Hollerith početkom prošlog stoljeća utjecao na arhitekturu svih IBM računala, do i uključujući IBM Z.

Izvor: www.habr.com

Dodajte komentar