Miks EBCDIC-s tÀhestikud jÀrjest ei jÀrgne?

ASCII standard was accepted in 1963, and it's unlikely anyone currently uses a character encoding where the first 128 characters differ from ASCII. However, until the end of the last century, EBCDIC was actively used — the standard encoding for IBM mainframes and their Soviet clones, ES EVM. EBCDIC remains the primary encoding in z/OS — the standard OS for modern IBM Z mainframes.

What stands out immediately when looking at EBCDIC is that the letters are not sequential: between I ja J and between R ja S there are unused positions (on ES EVM, these gaps were filled with Cyrillic symbols). Who would have thought to encode letters with uneven gaps between neighboring letters?

Miks EBCDIC-s tÀhestikud jÀrjest ei jÀrgne?

The very name EBCDIC (‘Extended BCDIC’) hints that this encoding — unlike ASCII — was not created in a vacuum, but rather based on the six-bit BCDIC encoding used since IBM 704 (1954):

Miks EBCDIC-s tÀhestikud jÀrjest ei jÀrgne?

There is no direct backward compatibility: a convenient feature of BCDIC that was lost when moving to EBCDIC was that the digits correspond to codes 0-9. However, there were already gaps of seven codes between 0—9 and eight codes between I ja J in BCDIC. So where did they come from? R ja S The history of (E)BCDIC begins concurrently with the history of IBM — long before electronic computers. IBM was formed by the merger of four companies, of which the most technologically advanced was the ‘Tabulating Machine Company’, founded in 1896 by Herman Hollerith — the inventor of the

tabulator . The first tabulators simply counted the number of punched cards in a specific location; however, in 1905, Hollerith started the production ofdecimal tabulators. Each card for a decimal tabulator consisted of variable-length fields, and numbers recorded in these fields in standard decimal form were summed across the entire deck. The breakdown of the card into fields was determined by the wiring on the tabulator's commutation panel. For example, on this punch card of Hollerith, archived at the Library of Congress, the number 23456789012345678 is obviously punched, though how it is divided into fields is unknown: The most observant might notice that Hollerith's card has 12 rows for holes, while only ten are needed for digits; and in BCDIC, only 12 codes out of 16 possible are used for the values of the two most significant bits.

Miks EBCDIC-s tÀhestikud jÀrjest ei jÀrgne?

Kauemad tĂ€helepanelikud vĂ”ivad mĂ€rgata, et Holleriti kaardil on aukude jaoks 12 rida, kuigi numbrite jaoks piisab kĂŒmnest; ja BCDIC-s kasutatakse igas vÀÀrtuses vanemate kahte bitti ainult 12 koodi 16 vĂ”imalikust.

Muidugi pole see juhuslik kokkusattumus. Alguses kavandas Hollerith tĂ€iendavad read "spetsiaalsetele mĂ€rgetele", mis ei summeeritud, vaid lihtsalt loeti — nagu kĂ”ige esimeste tabulaatorite puhul. (TĂ€napĂ€eval nimetaksime neid "bitivĂ€ljadeks".) Lisaks oli "spetsiaalsete mĂ€rkete" seas vĂ”imalik mÀÀrata grupimarke: kui tabuleerimisel olid vajalikud mitte ainult lĂ”plikud summad, vaid ka vahepealsed, siis tabulaator seisis, kui avastati muudatus mĂ”nes grupimĂ€rgis, ja operaator pidi kirjutama vahepealsed summad numbrite tabelist paberile, lĂ€htestama tabeli ja jĂ€tkama tabuleerimist. NĂ€iteks raamatupidamisbilansside arvutamisel vĂ”is kaardigrupp vastata ĂŒhele kuupĂ€evale vĂ”i ĂŒhele partnerile.

1920. aastaks, mil Hollerith oli juba pensionile lĂ€inud, tulid kasutusele "trĂŒkkivad tabulaatorid", mis ĂŒhendusid teleprinteriga ja suudsid ise trĂŒkkida vahepealseid summasid, nĂ”udmata operaatori sekkumist. NĂŒĂŒd oli keerukus selles, et mÀÀrata, millele iga trĂŒkitud number viitab. 1931. aastal otsustas IBM kasutada "spetsiaalsete mĂ€rkete" kaudu tĂ€hti tĂ€histamiseks: 12. rea mĂ€rk tĂ€hendas tĂ€hte A kuni I, 11. rea mĂ€rk tĂ€hendas tĂ€hte J kuni R, nullread tĂ€hendas tĂ€hte S kuni Z. Uus "alfabeetiline tabulaator" suutis trĂŒkkida iga kaardigruppi nime koos vahepealsete summadega; sel juhul muutus puuduolev veerg tĂŒhikuks sĂŒmbolite vahel. Pange tĂ€hele, et S tĂ€histatakse aukude kombinatsiooniga 0+2, ja 0+1 kombinatsiooni kasutati algselt ettevaatlikkuse tĂ”ttu, kuna kaks auku kĂ”rvuti ĂŒhes veerus vĂ”ivad tekitada mehaanilisi probleeme lugejas.

Miks EBCDIC-s tÀhestikud jÀrjest ei jÀrgne?

NĂŒĂŒd saab BCDIC tabelisse vaadata veidi teise nurga alt:

Miks EBCDIC-s tÀhestikud jÀrjest ei jÀrgne?

VĂ€lja arvatud, et 0 ja tĂŒhik on omavahel vahetatud, mÀÀravad vanemad kaks bitti "spetsiaalse mĂ€rgi", mis tĂ”mmati 1931 perforeeritud kaardile vastava sĂŒmboli jaoks; nooremad neli bitti mÀÀravad numbri, mis on perforeeritud kaardi peamises osas. SĂŒmbolite tugi & - / IBM-i tabulaatoritesse lisandus 1930. aastatel ning nende sĂŒmbolite kodeerimine BCDIC-s vastab nendele augule vastavatele vajutustele. Kui oli vajalik toetada veel rohkemate sĂŒmbolite kasutamist, hakati tĂ€iendava "erimĂ€rgina" lööma rea 8 – seega vĂ”is ĂŒhes veerus olla kuni kolm auku. Selline perforatsioonikaardi formaat sĂ€ilis praktiliselt muutumatuna sajandi lĂ”puni. NĂ”ukogude Liidus jĂ€eti IBM-i kodeeringud ladina tĂ€htedele ja kirjavahemĂ€rkidele ning tsĂŒkli tĂ€htede jaoks löödi kohe mitu "erimĂ€rki" ridades 12, 11, 0 – piirdundes mitte kolme auguga ĂŒhes veerus.

Kui loodi arvutit IBM 704, siis ei mĂ”eldud sĂŒmbolite kodeerimise ĂŒle kaua: vĂ”eti kodeering, mida juba tol ajal kasutati perforatsioonikaartides, ning lihtsalt 0 "pandigi oma kohale". 1964. aastal, kui BCDIC-ilt EBCDIC-ile ĂŒle mindi, jĂ€eti iga sĂŒmboli madalamad neli bitti muutmata, kuigi vanemad bitid nihutati veidi. Seega mĂ”jutas perforatsioonikaardi formaat, mille valis Hollerith eelmise sajandi alguses, kĂ”igi IBM-i arvutite arhitektuuri, sealhulgas IBM Z-d.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster