Az ASCII-szabványt 1963-ban fogadták el, és ma már szinte senki sem használ olyan kódolást, amelynek első 128 karaktere eltér az ASCII-től. A múlt század végéig azonban aktívan használták az EBCDIC-et - az IBM nagyszámítógépek és szovjet klónjaik EC számítógépeinek szabványos kódolását. Az EBCDIC továbbra is az elsődleges kódolás a z/OS-ben, amely a modern IBM Z nagyszámítógépek szabványos operációs rendszere.
Ami az EBCDIC-et nézegetve azonnal megragadja, az az, hogy a betűk nincsenek sorban: között I
и J
és között R
и S
voltak kihasználatlan pozíciók (az ES számítógépen ezekre az intervallumokra
Már maga az EBCDIC („Extended BCDIC”) elnevezés is arra utal, hogy ezt a kódolást - az ASCII-vel ellentétben - nem a semmiből hozták létre, hanem a hatbites BCDIC kódoláson alapul, amelyet azóta is használnak.
Nincs azonnali visszamenőleges kompatibilitás: a BCDIC egyik kényelmes tulajdonsága, amely az EBCDIC-re való átállás során elveszett, az volt, hogy a számok 0
-9
megfelelnek a 0-9 kódoknak. A kettő között azonban hét kódnyi hézag van I
и J
között pedig nyolc kódban R
и S
már jártak a BCDIC-en. Honnan jöttek?
Az (E)BCDIC története egy időben kezdődik az IBM történetével – jóval az elektronikus számítógépek előtt. Az IBM négy vállalat egyesülése eredményeként jött létre, amelyek közül a technológiailag legfejlettebb a Herman Hollerith, a feltaláló által 1896-ban alapított Tabulating Machine Company volt.
A legfigyelmesebbek talán észrevették, hogy a Hollerith térképen 12 sor van a lyukak számára, bár a számokhoz tíz is elég; és a BCDIC-ben a legjelentősebb két bit minden értékéhez csak 12 kód kerül felhasználásra a 16 lehetséges kódból.
Persze ez nem véletlen. Kezdetben Hollerith további sorokat szánt a „speciális jegyeknek”, amelyeket nem adtunk össze, hanem egyszerűen számoltunk – mint a legelső tabulátorokban. (Ma „bitmezőknek” neveznénk őket.) Ezen kívül a „speciális jegyek” között lehetőség volt csoportos mutatók beállítására is: ha a táblázatba foglaláshoz nem csak a végösszegeket, hanem a köztes összegeket is kellett volna, akkor a tabulátor leáll, amikor változást észlelt bármelyik csoportmutatóban, és a kezelőnek át kellett írnia a részösszegeket a digitális táblákról papírra, vissza kellett állítania a táblát, és folytatnia kellett a táblázatozást. Például a számviteli egyenlegek kiszámításakor egy kártyacsoport megfelelhet egy dátumnak vagy egy partnernek.
1920-ra, amikor Hollerith már nyugdíjba vonult, megjelentek a „gépelő tabulátorok”, amelyek telegéppel voltak összekötve, és maguk is tudtak részösszegeket nyomtatni anélkül, hogy kezelői beavatkozást igényelnének. A nehézség most az volt, hogy meghatározzuk, mire utalnak az egyes nyomtatott számok. 1931-ben az IBM úgy döntött, hogy „speciális jeleket” használ a betűk jelzésére: a 12. sorban lévő jel a A
a I
, a 11. - tól J
a R
, nullán - tól S
a Z
. Az új "ábécé tabulátor" kinyomtathatja az egyes kártyacsoportok nevét a részösszegekkel együtt; ebben az esetben a töretlen oszlop karakterek közötti szóközvé változott. Kérjük, vegye figyelembe, hogy S
a 0+2 furatkombináció jelöli, és a 0+1 kombinációt eredetileg nem használták, attól tartva, hogy ugyanabban az oszlopban két egymás melletti lyuk mechanikai problémákat okozna az olvasóban.
Most egy kicsit más szemszögből nézheti meg a BCDIC táblázatot:
Eltekintve attól, hogy a 0 és a szóköz felcserélődik, a legjelentősebb két bit határozza meg a "speciális jelet", amelyet 1931 óta a megfelelő karakter lyukkártyájába lyukasztanak; és a legkisebb jelentőségű négy bit határozza meg a kártya fő részébe lyukasztott számjegyet. Szimbólum támogatás & - /
az 1930-as években került be az IBM tabulátoraiba, és ezeknek a karaktereknek a BCDIC kódolása megfelel a hozzájuk lyukasztott lyukkombinációknak. Amikor még nagyobb számú karakter támogatására volt szükség, a 8. sort további „speciális jelként” lyukasztottuk – így egy oszlopban akár három lyuk is lehetett. A lyukkártyáknak ez a formátuma gyakorlatilag változatlan maradt a század végéig. A Szovjetunióban elhagyták az IBM latin és írásjelek kódolását, és a cirill betűkhöz egyszerre több „speciális jelet” lyukasztottak a 12., 11. és 0. sorba - nem korlátozva három lyukat egy oszlopban.
Az IBM 704-es számítógép megalkotásakor nem sokat gondolkodtak a karakterkódoláson: átvették az akkoriban a lyukkártyákban már használt kódolást, és csak „a helyére tették”. 0-ben, a BCDIC-ről az EBCDIC-re való áttéréskor minden szimbólum alacsony rendű négy bitje változatlan maradt, bár a magasabb rendű biteket kicsit megkeverték. Így a Hollerith által a múlt század elején választott lyukkártya-formátum az összes IBM számítógép architektúráját befolyásolta, egészen az IBM Z-ig.
Forrás: will.com