O padrão ASCII foi adotado em 1963 e agora quase ninguém usa uma codificação cujos primeiros 128 caracteres sejam diferentes do ASCII. No entanto, até o final do século passado, o EBCDIC foi usado ativamente - a codificação padrão para mainframes IBM e seus clones soviéticos de computadores EC. EBCDIC continua sendo a codificação primária em z/OS, o sistema operacional padrão para mainframes IBM Z modernos.
O que imediatamente chama a atenção ao olhar para o EBCDIC é que as letras não estão enfileiradas: entre I
и J
e entre R
и S
havia posições não utilizadas (no computador ES para esses intervalos
O próprio nome EBCDIC (“Extended BCDIC”) sugere que esta codificação - ao contrário do ASCII - não foi criada do zero, mas baseada na codificação BCDIC de seis bits, que tem sido usada desde então.
Não há compatibilidade retroativa imediata: um recurso conveniente do BCDIC que foi perdido na transição para o EBCDIC foi que os números 0
-9
correspondem aos códigos 0-9. No entanto, existem lacunas de sete códigos entre I
и J
e em oito códigos entre R
и S
já esteve no BCDIC. De onde eles vieram?
A história do (E)BCDIC começa simultaneamente com a história da IBM – muito antes dos computadores eletrônicos. A IBM foi formada a partir da fusão de quatro empresas, das quais a mais avançada tecnologicamente foi a Tabulating Machine Company, fundada em 1896 por Herman Hollerith, o inventor
Os mais atentos devem ter notado que no mapa de Hollerith existem 12 linhas para buracos, embora dez sejam suficientes para números; e no BCDIC, para cada valor dos dois bits mais significativos, apenas 12 códigos são usados dos 16 possíveis.
Claro, isso não é uma coincidência. Inicialmente, Hollerith pretendia linhas adicionais para “marcas especiais” que não eram somadas, mas simplesmente contadas - como nos primeiros tabuladores. (Hoje os chamaríamos de “campos de bits”.) Além disso, entre as “marcas especiais” era possível definir indicadores de grupo: se a tabulação exigisse não apenas as somas finais, mas também as intermediárias, o tabulador pararia quando detectou uma alteração em qualquer um dos indicadores do grupo e o operador teve que reescrever os subtotais dos quadros digitais no papel, redefinir o quadro e retomar a tabulação. Por exemplo, no cálculo dos saldos contabilísticos, um grupo de cartões pode corresponder a uma data ou a uma contraparte.
Em 1920, quando Hollerith já havia se aposentado, entraram em uso os “tabuladores de digitação”, que eram conectados a um teletipo e podiam imprimir eles próprios subtotais sem exigir intervenção do operador. A dificuldade agora era determinar a que se referia cada um dos números impressos. Em 1931, a IBM decidiu usar “marcas especiais” para indicar letras: uma marca na 12ª linha indicava a letra de A
para I
, no dia 11 - de J
para R
, em zero - de S
para Z
. O novo "tabulador alfabético" poderia imprimir o nome de cada grupo de cartas junto com os subtotais; neste caso, a coluna contínua se transformou em um espaço entre os caracteres. Por favor, note que S
é designado pela combinação de furos 0+2, e a combinação 0+1 não foi originalmente usada por medo de que dois furos próximos um do outro na mesma coluna pudessem causar problemas mecânicos no leitor.
Agora você pode observar a tabela BCDIC de um ângulo ligeiramente diferente:
Exceto que o 0 e o espaço são invertidos, os dois bits mais significativos definem a "marca especial" que foi perfurada no cartão perfurado para o caractere correspondente desde 1931; e os quatro bits menos significativos determinam o dígito perfurado na parte principal do cartão. Suporte de símbolo & - /
foi adicionado aos tabuladores IBM na década de 1930, e a codificação BCDIC desses caracteres corresponde às combinações de furos perfurados para eles. Quando era necessário suporte para um número ainda maior de caracteres, a linha 8 era perfurada como uma “marca especial” adicional - assim, poderia haver até três furos em uma coluna. Este formato de cartões perfurados permaneceu praticamente inalterado até o final do século. Na URSS, eles deixaram as codificações latinas e de pontuação da IBM e, para letras cirílicas, perfuraram várias “marcas especiais” de uma só vez nas linhas 12, 11, 0 - não se limitando a três furos em uma coluna.
Quando o computador IBM 704 foi criado, eles não pensaram muito na codificação de caracteres para ele: pegaram a codificação já usada nos cartões perfurados da época e apenas “colocaram-na no seu lugar”. Em 0, durante a transição de BCDIC para EBCDIC, os quatro bits de ordem inferior de cada símbolo permaneceram inalterados, embora os bits de ordem superior tenham sido um pouco embaralhados. Assim, o formato de cartão perfurado escolhido por Hollerith no início do século passado influenciou a arquitetura de todos os computadores IBM, até e inclusive o IBM Z.
Fonte: habr.com