Zašto slova u EBCDIC-u nisu u nizu?

ASCII standard je usvojen 1963. godine i sada retko ko koristi kodiranje čijih se prvih 128 znakova razlikuje od ASCII-a. Međutim, do kraja prošlog stoljeća aktivno se koristio EBCDIC - standardno kodiranje za IBM mainframe i njihove sovjetske klonove EC računara. EBCDIC ostaje primarno kodiranje u z/OS, standardnom operativnom sistemu za moderne IBM Z glavne računare.

Ono što vam 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čunaru za ove intervale distribuirano ćirilični znakovi). Ko bi pomislio da kodira slova s ​​nejednakim razmacima između susjednih slova?

Zašto slova u EBCDIC-u nisu u nizu?

Sam naziv EBCDIC (“Extended BCDIC”) nagoveštava da ovo kodiranje – za razliku od ASCII – nije kreirano od nule, već na osnovu šestobitnog BCDIC kodiranja, koje se koristi od ibm 704 (1954):

Zašto slova u EBCDIC-u nisu u nizu?

Ne postoji neposredna kompatibilnost unatrag: zgodna karakteristika BCDIC-a koja je izgubljena u tranziciji na EBCDIC bila je da su brojevi 0-9 odgovaraju kodovima 0-9. Međutim, između njih postoje praznine od sedam kodova I и J i u osam kodova između R и S već bio u BCDIC-u. Odakle su došli?

Istorija (E)BCDIC-a počinje istovremeno sa istorijom IBM-a - mnogo pre elektronskih računara. IBM je nastao kao rezultat spajanja četiri kompanije, od kojih je tehnološki najnaprednija bila Tabulating Machine Company, koju je 1896. godine osnovao Herman Hollerith, pronalazač tabulator. Prvi tabulatori su jednostavno brojali broj bušenih karata na određenoj lokaciji; ali 1905. Hollerith je započeo proizvodnju decimalni tabulatori. Svaka karta za decimalni tabulator sastojala se od polja proizvoljne dužine, a brojevi upisani u ovim poljima u uobičajenom decimalnom obliku zbrajani su preko cijelog špila. Podjela karte na polja određena je povezivanjem žica na patch panelu tabulara. Na primjer, na ovoj Holllerith bušenoj kartici, pohranjeni u Kongresnoj biblioteci, broj 23456789012345678 je jasno utisnut, nepoznat kao podijeljen na polja:

Zašto slova u EBCDIC-u nisu u nizu?

Najpažljiviji su možda primijetili da na Holerith karti ima 12 redova za rupe, iako je deset dovoljno za brojeve; a u BCDIC-u, za svaku vrijednost od dva najznačajnija bita, koristi se samo 12 kodova od 16 mogućih.

Naravno, ovo nije slučajnost. U početku je Hollerith namijenio dodatne redove za „posebne ocjene“ koje se nisu zbrajale, već se jednostavno brojale - kao u prvim tabulatorima. (Danas bismo ih nazvali “bitna polja”.) Osim toga, među “posebnim oznakama” bilo je moguće postaviti grupne indikatore: ako je za tabeliranje potrebno ne samo konačne, već i međusobne, tada bi tabulator stao kada bi detektovao je promenu u bilo kom od grupnih indikatora, a operater je morao da prepiše međuzbirove sa digitalnih tabli na papir, resetuje tablu i nastavi sa tabelama. Na primjer, prilikom izračunavanja računovodstvenih stanja, grupa kartica može odgovarati jednom datumu ili jednoj ugovornoj strani.

Do 1920. godine, kada je Hollerith već otišao u penziju, u upotrebu su ušli „tabulatori za kucanje“, koji su bili povezani na teletip i mogli su sami da štampaju međuzbrojeve bez potrebe za intervencijom operatera. Sada je bilo teško odrediti na šta se odnosi svaki od štampanih brojeva. Godine 1931. IBM je odlučio koristiti "specijalne oznake" za označavanje slova: oznaka u 12. redu označavala je slovo od A do I, u 11. - od J do R, na nuli - od S do Z. Novi "tabulator abecede" mogao bi ispisati naziv svake grupe kartica zajedno sa međuzbirima; u ovom slučaju, neprekinuti stupac se pretvorio u razmak između znakova. Imajte na umu da S označena je kombinacijom rupa 0+2, a kombinacija 0+1 prvobitno nije korištena iz straha da bi dvije rupe jedna pored druge u istoj koloni izazvale mehaničke probleme u čitaču.

Zašto slova u EBCDIC-u nisu u nizu?

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

Zašto slova u EBCDIC-u nisu u nizu?

Osim što su 0 i razmak obrnuti, dva najznačajnija bita definišu "posebnu oznaku" koja je bušena u bušenoj kartici za odgovarajući znak od 1931. godine; a četiri najmanje značajna bita određuju cifru koja je utisnuta u glavni dio kartice. Podrška za simbole & - / je dodat u IBM tabulatore 1930-ih, a BCDIC kodiranje ovih znakova odgovara kombinacijama rupa koje su probušene za njih. Kada je bila potrebna podrška za još veći broj znakova, red 8 je probušen kao dodatna “posebna oznaka” - tako je u jednoj koloni moglo biti do tri rupe. Ovaj format bušenih kartica ostao je gotovo nepromijenjen do kraja stoljeća. U SSSR-u su ostavili IBM-ova latinična i interpunkcijska kodiranja, a za ćirilična slova su probušili nekoliko „posebnih oznaka“ odjednom u redovima 12, 11, 0 - ne ograničavajući se na tri rupe u jednoj koloni.

Kada je stvoren računar IBM 704, nisu dugo razmišljali o kodiranju znakova za njega: uzeli su kodiranje koje se već koristilo u bušenim karticama u to vrijeme i samo ga „stavili na njegovo mjesto“. Godine 0, tokom tranzicije sa BCDIC na EBCDIC, četiri bita nižeg reda svakog simbola ostala su nepromijenjena, iako su bitovi visokog reda malo promiješani. Dakle, format bušenih kartica koji je odabrao Hollerith početkom prošlog stoljeća utjecao je na arhitekturu svih IBM računara, do i uključujući IBM Z.

izvor: www.habr.com

Dodajte komentar