Lo standard ASCII è stato adottato nel 1963 e ormai quasi nessuno utilizza una codifica i cui primi 128 caratteri differiscono da ASCII. Tuttavia, fino alla fine del secolo scorso, è stato utilizzato attivamente l'EBCDIC, la codifica standard per i mainframe IBM e i loro cloni sovietici dei computer EC. EBCDIC rimane la codifica principale in z/OS, il sistema operativo standard per i moderni mainframe IBM Z.
Ciò che attira immediatamente la tua attenzione quando guardi l'EBCDIC è che le lettere non sono in fila: tra I
и J
e tra R
и S
c'erano posizioni inutilizzate (sul computer ES per questi intervalli
Il nome stesso EBCDIC ("Extended BCDIC") suggerisce che questa codifica - a differenza dell'ASCII - non è stata creata da zero, ma basata sulla codifica BCDIC a sei bit, utilizzata da allora
Non c'è compatibilità immediata con le versioni precedenti: una caratteristica utile del BCDIC che è andata persa nella transizione all'EBCDIC erano i numeri 0
-9
corrispondono ai codici 0-9. Tuttavia, ci sono lacune di sette codici nel mezzo I
и J
e in otto codici tra R
и S
sono già stato al BCDIC. Da dove provengono?
La storia dell'(E)BCDIC inizia contemporaneamente alla storia dell'IBM, molto prima dei computer elettronici. L'IBM è nata dalla fusione di quattro società, di cui la più tecnologicamente avanzata era la Tabifying Machine Company, fondata nel 1896 da Herman Hollerith, l'inventore
I più attenti avranno notato che sulla mappa Hollerith ci sono 12 righe per i buchi, anche se per i numeri ne bastano dieci; e in BCDIC, per ciascun valore dei due bit più significativi, vengono utilizzati solo 12 codici su 16 possibili.
Naturalmente, questa non è una coincidenza. Inizialmente, Hollerith intendeva righe aggiuntive per "segni speciali" che non venivano sommati, ma semplicemente contati, come nei primissimi tabulatori. (Oggi li chiameremmo “campi di bit”.) Inoltre tra i “voti speciali” era possibile impostare degli indicatori di gruppo: se la tabulazione richiedeva non solo le somme finali, ma anche quelle intermedie, allora il tabulatore si fermava quando ha rilevato un cambiamento in uno qualsiasi degli indicatori del gruppo e l'operatore ha dovuto riscrivere i totali parziali dalle schede digitali su carta, reimpostare la scheda e riprendere la tabulazione. Ad esempio, nel calcolo dei saldi contabili, un gruppo di carte potrebbe corrispondere ad una data o ad una controparte.
Nel 1920, quando Hollerith era già in pensione, entrarono in uso i "tabulatori dattilografici", che erano collegati a una telescrivente e potevano stampare da soli i totali parziali senza richiedere l'intervento dell'operatore. La difficoltà ora era determinare a cosa si riferisse ciascuno dei numeri stampati. Nel 1931, IBM decise di utilizzare “segni speciali” per designare le lettere: un segno nella dodicesima riga indicava la lettera da A
a I
, nell'11 - da J
a R
, a zero - da S
a Z
. Il nuovo "tabulatore dell'alfabeto" potrebbe stampare il nome di ciascun gruppo di carte insieme ai totali parziali; in questo caso, la colonna ininterrotta si è trasformata in uno spazio tra i caratteri. Tienilo presente S
è designato dalla combinazione di fori 0+2, e la combinazione 0+1 non è stata originariamente utilizzata per paura che due fori uno accanto all'altro nella stessa colonna causassero problemi meccanici al lettore.
Ora puoi guardare la tabella BCDIC da un'angolazione leggermente diversa:
Salvo che lo 0 e lo spazio sono invertiti, i due bit più significativi definiscono il "segno speciale" che dal 1931 viene punzonato sulla scheda perforata per il carattere corrispondente; ed i quattro bit meno significativi determinano la cifra punzonata nella parte principale della carta. Supporto per simboli & - /
è stato aggiunto ai tabulatori IBM negli anni '1930 e la codifica BCDIC di questi caratteri corrisponde alle combinazioni di fori perforate per essi. Quando era necessario il supporto per un numero ancora maggiore di caratteri, la riga 8 veniva perforata come un "segno speciale" aggiuntivo, quindi potevano esserci fino a tre fori in una colonna. Questo formato di schede perforate rimase praticamente immutato fino alla fine del secolo. In URSS, hanno lasciato le codifiche latine e di punteggiatura di IBM e per le lettere cirilliche hanno perforato diversi "segni speciali" contemporaneamente nelle righe 12, 11, 0, non limitati a tre fori in una colonna.
Quando fu creato il computer IBM 704, non pensarono a lungo alla codifica dei caratteri: presero la codifica già utilizzata nelle schede perforate a quel tempo e la "misero al suo posto". Nel 0, durante la transizione da BCDIC a EBCDIC, i quattro bit di ordine inferiore di ciascun simbolo furono lasciati invariati, sebbene i bit di ordine superiore furono leggermente mescolati. Pertanto, il formato della scheda perforata scelto da Hollerith all'inizio del secolo scorso influenzò l'architettura di tutti i computer IBM, fino all'IBM Z compreso.
Fonte: habr.com