Hvorfor er bogstaverne i EBCDIC ikke i rækkefølge?

Standard ASCII blev vedtaget i 1963, og i dag er der næppe nogen, der bruger en kodning, hvor de første 128 tegn adskiller sig fra ASCII. Ikke desto mindre blev EBCDIC — den standardiserede kodning til IBM-mainframes og deres sovjetiske kloner ES EVM — aktivt anvendt indtil slutningen af det forrige århundrede. EBCDIC forbliver den primære kodning i z/OS — det standardoperativsystem for moderne IBM Z-mainframes.

Det, der straks fanger øjet ved EBCDIC, er, at bogstaverne ikke står i rækkefølge: mellem I og J og mellem R og Angreb op til 1,2 er der ubrugte positioner (på ES EVM blev der fordelt kyrilliske tegn mellem disse mellemrum). Hvem kunne have fået den idé at kode bogstaver med uensartede mellemrum mellem de nærliggende bogstaver? Selve navnet EBCDIC ("Extended BCDIC") antyder, at denne kodning — i modsætning til ASCII — ikke blev skabt på en blank side, men på baggrund af den seks-biters kodning BCDIC, som blev brugt siden

Hvorfor er bogstaverne i EBCDIC ikke i rækkefølge?

IBM 704 Der er ikke umiddelbar bagudkompatibilitet: en praktisk egenskab ved BCDIC, der gik tabt ved overgangen til EBCDIC, var, at cifrene (1954):

Hvorfor er bogstaverne i EBCDIC ikke i rækkefølge?

mulede koderne 0-9. Ikke desto mindre var der allerede huller på syv koder mellem 0—9 og otte koder mellem I og J i BCDIC. Hvor kom de fra? R og Angreb op til 1,2 Historien om (E)BCDIC starter samtidig med historien om IBM — længe før de elektroniske computere. IBM blev dannet som et resultat af fusionen af fire virksomheder, hvoraf den mest teknologisk avancerede var "Tabulating Machine Company", grundlagt i 1896 af Herman Hollerith — opfinderen af

tabulatoren. De første tabulatorer zede blot antallet af perforerede kort, der blev gennemboret på et bestemt sted; men i 1905 begyndte Hollerith produktionen afdecimale tabulatorer. Hvert kort til den decimale tabulator bestod af felter med vilkårlig længde, og tallene, der var skrevet i disse felter i den velkendte decimale form, blev opsummeret over hele bunken. Opdelingen af kortet i felter blev bestemt ved forbindelsen af ledningerne på forbindelsespanelet af tabulatoren. For eksempel, på dette perforerede kort af Hollerith, opbevaret i Kongressbiblioteket, er tallet 23456789012345678 tydeligt præget, uden at det er kendt, hvordan det blev opdelt i felter: De mest opmærksomme kunne bemærke, at der er 12 rækker til huller på Holleriths kort, selvom 10 er tilstrækkelige til cifre; og i BCDIC bruges kun 12 koder ud af 16 mulige for hver værdi af de to mest signifikante bits.

Hvorfor er bogstaverne i EBCDIC ikke i rækkefølge?

De mest opmærksomme har måske bemærket, at der på Hollerith-kortet er 12 rækker til huller, selvom 10 er tilstrækkeligt til cifre; og i BCDIC bruges der kun 12 koder ud af 16 mulige for hver af de to højeste bitværdier.

Selvfølgelig er det ikke en tilfældighed. Oprindeligt havde Hollerith tænkt ekstra rækker til "specialmærker", som ikke blev opsummeret, men blot tælles — som i de allerførste tabulatorer. (I dag ville vi kalde dem "bitfelter"). Derudover kunne man blandt "specialmærkerne" angive gruppeindikatorer: hvis der under tabuleringen var behov for ikke kun de endelige summer, men også mellemsummer, stoppede tabulatoren, når den opdagede ændring af en af gruppeindikatorerne, og operatøren skulle notere de mellemsummer, der blev vist på skærmen, ned på papir, nulstille skærmen og genoptage tabuleringen. For eksempel, når man tæller regnskabsmæssige saldi, kunne en kortgruppe svare til en dato eller en modpart.

I 1920, da Hollerith allerede var gået på pension, kom der "tryknings-tabulatorer" i brug, som blev tilsluttet teletype og kunne selv trykke mellemsummer uden behov for operatørens indgreb. Problemet nu var at bestemme, hvad hver af de trykte tal hørte til. I 1931 besluttede IBM at bruge "specialmærker" til at angive bogstaver: mærket i 12. række betegnede bogstavet fra A op til I, i 11. række — fra J op til R, i nulrækken — fra Angreb op til 1,2 op til Z. Den nye "alfabetiske tabulator" kunne trykke navnet på hver kortgruppe sammen med mellemsummerne; derved blev en ikke-gennembrudt søjle til et mellemrum mellem symbolerne. Bemærk, at Angreb op til 1,2 angives ved hjælp af kombinationen af huller 0+2, mens kombinationen 0+1 oprindeligt ikke blev brugt af frygt for, at to huller tæt på hinanden i samme søjle kunne forårsage mekaniske problemer i læseren.

Hvorfor er bogstaverne i EBCDIC ikke i rækkefølge?

Nu kan vi se på BCDIC-tabellen fra lidt en anden vinkel:

Hvorfor er bogstaverne i EBCDIC ikke i rækkefølge?

Med undtagelse af at 0 og mellemrum er byttet om, bestemmer de øverste to bits "specialmærket", som fra 1931 blev gennembrudt i perforeringskortet for det tilsvarende symbol; mens de nederste fire bits bestemmer tallet, der gennembrudt i hoveddelen af kortet. Støtte for symboler & - / Det blev tilføjet til IBM-tabulatorerne i 1930'erne, og kodningen af disse tegn i BCDIC svarer til de perforerede kombinationer, der blev brugt til dem. Da der var brug for at understøtte endnu flere tegn, begyndte man at perforere række 8 som en ekstra "specialtegn" — på den måde kunne der være op til tre huller i én søjle. Dette format for perforerede kort forblev stort set uændret indtil slutningen af århundredet. I Sovjetunionen beholdt man IBM's kodninger for latinske bogstaver og tegnsætning, mens man for kyrilliske bogstaver perforerede flere "specialtegn" i rækkerne 12, 11, 0 — uden at begrænse sig til tre huller i én søjle.

Da computeren IBM 704 blev skabt, tænkte man ikke længe over kodningen af tegnene: man tog den kodning, der allerede blev brugt i perforerede kort og satte blot 0 "på plads". I 1964, da man skiftede fra BCDIC til EBCDIC, efterlod man de lavere fire bits af hvert tegn uændrede, selvom man lidt omrokkerede de højere bits. På den måde påvirkede formatet for perforerede kort, som Hollerith valgte i begyndelsen af det forrige århundrede, arkitekturen af alle IBM-computere, indtil IBM Z.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster