Preparação de impostos em 1950: “programando” o IBM 403 usando um painel de plug-in

Muito antes do advento dos computadores modernos, os negócios usavam máquinas de contabilidade eletromecânicas (BMs) para processar dados. Essas máquinas pesando uma tonelada foram "programadas" por fios no painel de controle do plug-in, o que lhes permitiu criar relatórios comerciais complexos com base nos dados contidos em cartões perfurados . E, embora não tivessem eletrônicos e usassem rodas mecânicas rotativas para resumir os dados, essas máquinas podiam processar mais de dois cartões por segundo.

imagem
Um painel de plug-in que executa uma dedução de imposto IBM 403

Em homenagem a 15 de abril [o dia tradicional de declaração de imposto de renda nos EUA], estudarei o painel de plug-in (SC), usado para preparar impostos em 1950, e explicarei a arte esquecida da programação de SCs, mostrando como o entrelaçamento de fios pode implementar o algoritmo de processamento de dados. Ao conectar o painel ao BM, o operador pode executar uma tarefa específica de processamento de dados. Embora o painel pareça um código de espaguete fisicamente incorporado, o rastreamento de conexões revela sua função: calculou deduções de impostos, resumindo registros de muitos campos, exibiu um relatório com subtotais e totais e perfurou um conjunto menor de cartões de totais, registrando esses valores neles.

Visão geral do cartão perfurador


Os cartões perfurados serviram de base para o processamento de dados entre as décadas de 1890 e 1970, e foram usados ​​para operações contábeis, estoque, folha de pagamento e muitas outras tarefas. Normalmente, um único cartão perfurado de 80 colunas continha um registro e os dados eram armazenados em campos fixos no cartão. A foto abaixo mostra um mapa com colunas divididas em campos como data, número do vendedor, número do pedido e quantidade. A BM processou esses cartões, adicionou os números e emitiu um relatório com subtotais para contas e departamentos, conforme mostrado abaixo.



O sistema de processamento de cartões perfurados foi inventado por Herman Hollerith para o censo dos EUA de 1890, que usava o tabulador mais simples, que contava registros por buracos nos cartões. Para resumir, os tabuladores usaram um módulo chamado "bateria", cujos mostradores redondos continham casas decimais. A bateria deu o nome ao registro do processador usado até hoje. Por exemplo, os processadores Intel x86 possuem um registro EAX, ou seja, um acumulador estendido. Essas máquinas, adquirindo oportunidades gradualmente, tornaram-se BMs complexas, capazes de emitir relatórios de negócios. Eles se tornaram populares no ambiente de negócios e, em 1944, a IBMestava fornecendo 10.000 guias e BMs. Em julho de 1948, a IBM lançou a 402 Accounting Machine, que usava os silos que eu estava considerando. Os modelos de máquinas 402 e 403 eram ricos em recursos: tinham 16 contadores, muitos níveis de subtotais, controle vertical de distância para suportar formulários, comparações, operadores condicionais e remoção de zeros à frente.


Classificador de cartões perfurados IBM 403 com tipo 82

O que é surpreendente nesta história é que as empresas estavam envolvidas no processamento de dados de cartões perfurados décadas antes do surgimento dos computadores, usavam máquinas puramente eletromecânicas e nem usavam lâmpadas eletrônicas. Esse equipamento consistia em componentes como uma escova de arame para leitura de furos em cartões perfurados, relés para loops de monitoramento e rodas de contagem mecânicas para agregar valores. Esses sistemas tecnologicamente primitivos revolucionaram o processamento de dados corporativos e abriram o caminho para computadores comerciais eletrônicos, como o IBM 1401 .

Programação do painel de plug-in


Os BMs foram programados para executar uma tarefa específica, colocando fios no silo. Como cada aplicativo usava mapas com campos em locais diferentes, o BM precisava de uma maneira de determinar o valor de cada um dos campos. Vários relatórios foram gerados com base em valores localizados em diferentes partes da página. Aplicativos necessários para calcular subtotais e somas totais de valores diferentes. Antes dos computadores capazes de armazenar programas, era necessária tecnologia para configurar facilmente o sistema para um aplicativo específico. Como resultado, um sistema para colocar os fios no silo apareceu.



Na foto, o painel é mostrado próximo. Ela tem uma grade de furos (nós) com funções rotuladas. Ao inserir um fio no painel, você conecta dois nós, o que faz com que o BM execute uma determinada operação. Um conjunto de fios define as operações realizadas em cada um dos cartões.



Quando um fio é inserido no painel, o plugue na extremidade se sobressai da parte traseira do painel, como mostrado acima. Quando o painel é colocado no BM (abaixo), os plugues tocam a grade dos conectores do BM, fechando os circuitos necessários (preste atenção aos interruptores de configuração, que discutirei abaixo).



Como o barramento é removível, as empresas poderiam facilmente mudar os painéis para executar tarefas diferentes (seria muito demorado para puxar os fios nos painéis para uma nova função). Como resultado, as empresas tiveram regimentos inteiros entupidos com painéis configurados para todas as operações. Nesta forma, o "software" ocupa um espaço físico tangível. A foto abaixo mostra uma coleção de painéis de uma das empresas projetadas para diferentes tarefas.



Programa tributário


Estudei cuidadosamente a localização dos fios no NN fiscal para entender o que está fazendo. O primeiro passo é rastrear cada fio e compará-lo com o diagrama de fiação (abaixo), onde todos os conectores do painel são mostrados. Comparando o diagrama com a fotografia do painel no início do artigo, você verá que ele mostra a mesma fiação, apenas de uma forma muito mais legível.



Eu descobri que o programa, "gravado" nos fios, lê os cartões e calcula os subtotais e totais de dados dos cartões. Mais especificamente, existem sete campos legíveis em cada mapa. O primeiro é um identificador e todos os cartões com um identificador são somados, resultando em somas para cada um dos cinco campos. Parece-me que esse ID foi atribuído ao funcionário, e cada cartão correspondia a um período de pagamento. Ou o ID pode pertencer à divisão de uma empresa e o cartão pode pertencer a um departamento. Devido à falta de nomes de variáveis, isso não pode ser determinado exatamente.

A soma dos registros para cada ID fornece o total de deduções fiscais para esse funcionário (desde o início do ano civil ). Os cinco campos resumidos podem estar relacionados a deduções na folha de pagamento, como imposto de renda federal, imposto estadual, imposto de seguro social, imposto médico e contribuições para pensões. Depois de ler os cartões relacionados ao funcionário, o BM perfura um novo cartão final, com o total de deduções, e imprime uma linha do relatório. Os subtotais de todos os funcionários são somados para obter o total.

E é assim que os silos funcionam. Ao ler um mapa de 80 cartões, cada dígito está disponível em um dos nós de leitura, numerados de 1 a 80. A conexão do fio ao nó permite transferir o dígito para outra parte da máquina. Suponha, por exemplo, que as colunas 28-33 contenham um número de 6 dígitos e que desejemos adicionar esses números. Isso é feito conectando a 28ª coluna de leitura com um fio ao dígito mais alto do contador, a 29ª coluna - ao próximo dígito, etc. - apenas 6 fios.

A foto abaixo mostra seis fios vermelhos que transmitem o campo ao contador 6C. 80 colunas do mapa leem duas linhas de nós sob a inscrição "Terceira leitura". Quatro linhas de nós sob a inscrição da entrada do contador vão para a entrada dos contadores. Os campos restantes da mesma maneira são conectados por fios com contadores.



É difícil entender a fiação da fotografia; portanto, geralmente o diagrama de conexão do painel é mostrado no diagrama. Abaixo, mostra a conexão das colunas de leitura (à direita) com o contador 6C (à esquerda). Seis fios no diagrama são representados por um, no estilo dos diagramas de imagem da IBM. As faixas horizontais conectadas por uma linha indicam seis fios paralelos.



Para exibir o valor total, a saída do contador é conectada às colunas da impressora desejadas. No painel, essas colunas são marcadas como "entrada de impressão": 43 "posições de impressão alfanumérica", capazes de imprimir letras ou números, seguidas por 45 posições digitais, capazes de imprimir apenas números. O diagrama abaixo mostra quatro fios do contador 4C, indo para as posições de impressão de 1 a 4 (amarelo) e seis fios do contador 6C (vermelho) para as colunas impressas 35-40.



BM contém 16 contadores decimais. 4 deles são de 8 bits, são chamados 8A, 8B, 8C e 8D. Quatro de 6 bits (6A - 6D), quatro de 4 bits (4A - 4D) e quatro de 2 bits (2A - 2D). Além disso, dois contadores podem ser combinados e obter um contador maior. Também há links entre os contadores para contar subtotais. Por exemplo, o contador 8A coleta um total corrente para funcionários. Esses totais são adicionados ao contador 8B e formam um total.

Outra operação importante é comparar a identificação de dois cartões. Se eles tiverem o mesmo ID, deverão ser contados juntos e, se diferente, será necessário exibir o subtotal e redefinir os contadores. A comparação é realizada escrevendo dois campos em duas linhas para comparar as entradas da entrada de comparação. Se forem diferentes, o sinal vai para a saída de comparação. Como queremos comparar o mapa atual com o próximo, usamos um campo da "segunda leitura" e um da "terceira leitura". O mapa que processamos estará no terceiro estágio de leitura e o cartão depois no segundo estágio de leitura. Por fim, a saída de comparação é conectada ao nó "início do programa (secundário)". Como resultado, o BM inicia um ciclo adicional com a impressão de resultados intermediários do nível júnior “menor” e redefine os contadores. O BM possui mais dois níveis adicionais de subtotais, "intermediário" e "principal" (médio e sênior).


As colunas 1 a 4 dos cartões são comparadas para descobrir se os subtotais precisam ser impressos.

No diagrama acima, as colunas 1-4 da segunda e terceira leituras são conectadas aos nós dos registros comparados. Quatro nós de saída correspondentes são conectados por um fio (cinza) e conectados ao nó inicial do programa junior (MI) (fio amarelo no PRG START no canto superior direito). A foto ampliada abaixo mostra a localização dos fios.



Outra característica interessante dos silos é o comportamento condicional usando switches. As conexões podem ser comutadas dependendo do sinal, o que permite que a máquina altere o comportamento, dependendo dos resultados da comparação ou do estado dos comutadores no painel. Esse CW muda seu comportamento com base no comutador "setup change 1", um dos comutadores no BM na parte superior do painel. Você pode imaginar isso como um protótipo das configurações da linha de comando. De acordo com a inscrição no silo, o interruptor liga o modo “desde o início do ano civil”. Inclui o processamento de um campo e também alterna entre as constantes 2 e 5 adicionadas ao contador 2B (o objetivo dessas constantes permanece um mistério para mim).



Os fios do lado direito do barramento controlam o comportamento do contador - por exemplo, o acúmulo de resultados intermediários ou totais. Eles também conectam vários contadores para ampliá-los. Por exemplo, os contadores 2C e 4D são combinados para operar como um único contador de 6 dígitos.

A tabela abaixo mostra o diagrama de fiação do silo, mostrando a relação entre os campos de entrada e a saída da impressora.

Alto-falantes do cartão
Alto-falantes de saída
Contador intermediário
Contador total
1-4
1-4
4C
34-38
5-10
8D
4A / 2D
44-45
11-18
8A
8B
61-66
19-26
6A
2C / 4D
67-71
27-32
6B
2A / 4B
28-33
35-40
6C
8C
14-17
4D
No interruptor de alternância
2B

As colunas 14-17 estão resumidas, mas não impressas. Talvez seus valores ultrapassem o cartão final. As colunas 34-38 são processadas apenas quando a chave seletora "setup change 1" está ativada. O contador 2B é controlado por uma chave seletora no painel, a cada etapa 2 ou 5 são adicionados a ele.

Outra característica interessante da máquina é a perfuração de totais. Ele permite processar um grande pacote de cartões perfurados e emitir um pequeno arquivo com os valores. O código tributário é configurado para que, para cada funcionário, um cartão perfurado seja perfurado. Assim, um conjunto de cartões de funcionários com dados para cada período de pagamento é reduzido para um cartão com valores anuais. Este cartão já pode ser usado em processamento adicional.


Bukhmashina IBM 403 conectado ao dispositivo de perfuração do modelo 519

A perfuração dos resultados é realizada conectando uma máquina de perfuração com um cabo grosso ao BM. Um fio inserido em um dos nós do silo controla a inclusão da perfuração e, no outro, o momento em que é gasto. Um rolo de imposto é configurado para que o cartão final chegue a cada subtotal. Um silo separado na máquina de perfuração controla quais colunas precisam ser perfuradas no cartão.


Os fios que controlam a perfuração do cartão final. Os nós do total punch punch (SP.SW) são conectados por um fio cinza (canto inferior esquerdo)

Os interiores da máquina contábil n ° 403


É incrível que funcionalidade esses BMs poderiam fornecer sem componentes eletrônicos, usando apenas eletromecânica engenhosa. Dentro da máquina há um labirinto de motores, eixos rotativos, excêntricos e garras. Parece mais um carro do que um computador - ele ainda tem uma bomba de óleo! E com todas essas peças mecânicas, o BM pesa mais de uma tonelada (1143 kg).



Em um fio de transferência eletrônica, uma coluna específica é transferida para o cartão. Mas como o símbolo do cartão é transmitido pelo fio? Como o contador é adicionado? Como o resultado é exibido? Os BMs usam mecanismos sofisticados que estão intimamente relacionados à estrutura de um cartão perfurado.

Na linguagem moderna, um símbolo é codificado sequencialmente - há um impulso ao longo do fio, cuja duração está associada à localização do furo no cartão. Os pulsos iniciam e param os contadores. Eles também controlam os cabeçotes de impressão que exibem o resultado.

O 403 funciona com o tempo baseado na rotação dos eixos, e não no relógio. Cada rotação do eixo corresponde ao ciclo do cartão - leitura e processamento. A unidade fundamental de tempo é uma rotação de 18 °: é o tempo entre ler os orifícios sucessivos do cartão, mover a cabeça de impressão um caractere e girar o contador. Com uma velocidade de processamento de 150 cartões por minuto, ocorre cerca de 400 ms por cartão e 20 ms por turno a 18 ° - surpreendentemente rápido para o mecanismo.

Cartões de leitura


Para entender como o BM funciona, você precisa entender como os dados são armazenados em cartões perfurados. Um cartão perfurado armazena 80 caracteres, cada um dos quais é representado por um conjunto de orifícios em uma coluna. A foto mostra um mapa mostrando o armazenamento de números e letras do alfabeto. Cada caractere é impresso na parte superior do cartão e os furos correspondentes a ele são perfurados na parte inferior da coluna. Um dígito é apenas um buraco na linha desejada, de 0 a 9 (observe que os números não são armazenados em binário, mas em decimal). Para apoiar as letras acima das linhas digitais, foram introduzidas duas auxiliares, "zonais". A letra A é indicada por dois orifícios na coluna - zonal e digital.

A linha zonal acima do zero é chamada de 11º ou X, e a linha acima é chamada de 12º. Para algumas letras, a linha 0 é usada como zonal em vez de digital. Algumas dificuldades estão associadas a isso, por exemplo, a necessidade de um mecanismo especial que imprima "zero digital" em vez de "zonal". Essa codificação para cartões perfurados posteriormente se transformou em EBCDIC (código de intercâmbio decimal codificado em binário estendido), usado em computadores IBM em vez de ASCII. Muitos artefatos desse código, em particular uma violação da ordem alfabética, originam-se precisamente em cartões perfurados.



Você pode pensar que o BM lê cartas uma coluna de cada vez e processa um caractere de cada vez. Mas as cartas são lidas de lado, começando de baixo. Todas as 80 colunas são lidas em paralelo, iniciando na 9ª linha e terminando com zero e depois nas linhas zonais. Para ler mapas, o BM usa um conjunto de 80 escovas de arame, uma para cada coluna. Se houver um furo na escova, houver contato com o eixo de metal sob o cartão, isso fecha o circuito e cria um impulso. Cada coluna terá um impulso correspondente ao furo; nesse caso, a 9ª linha funcionará primeiro, depois a 8ª e assim por diante, terminando com 0. Portanto, cada caractere é codificado sequencialmente e cada fio CIP transmite um desses sinais, mas todas as colunas são processadas em paralelo.

Impressão


imagem
Cabeças de impressão da 402ª máquina

O mecanismo de impressão BM consiste em 88 cabeças de impressão. Cada cabeça tem todos os caracteres que podem ser impressos. A cabeça se move verticalmente, parando no símbolo desejado e, em seguida, o martelo bate nele, e o símbolo é impresso através do filme de tinta. Portanto, todos os caracteres em uma linha de texto são impressos em paralelo.

Os fios do barramento determinam o que precisa ser impresso, parando cada uma das cabeças no momento certo para que o caractere correto seja selecionado.O movimento das cabeças é precisamente sincronizado com a leitura do cartão, portanto, digamos, a terceira linha do cartão é lida ao mesmo tempo em que o “3” na cabeça de impressão se move para a posição de impressão. Se o conjunto da escova estiver conectado à unidade de impressão da coluna, o pulso fornecerá energia ao ímã, liberando o mecanismo de travamento, agarrando-se aos dentes da cabeça de impressão e parando-o para que o símbolo “3” seja impresso. Se “2” for lido no cartão, o pincel ficará oposto ao orifício uma unidade de tempo depois, a cabeça de impressão subirá mais uma posição e “2” será impresso.

O mecanismo de impressão consiste em uma articulação complexa de peças mecânicas: excêntricos, cães, guias, molas e grampos, além de eletroímãs que ativam essas peças no momento certo. O mecanismo é capaz de imprimir 100 linhas por minuto, para que as peças avancem rapidamente e precisem ser sincronizadas com precisão. Os cabeçotes de impressão são deslocados uma posição a cada 18 ° de rotação do eixo e, portanto, sincronizados com a leitura do cartão.

Contadores


A base dos BM - contadores eletromecânicos, somando os valores. Cada dígito é uma roda separada que gira para adicionar. A localização da roda corresponde ao valor desta categoria. Por exemplo, para adicionar 27 ao contador, a roda para dezenas gira em duas posições e a roda para unidades - em sete. Portanto, para adicionar o valor do cartão, as rodas devem girar pelo número correspondente de rotações. A roda gira quando um buraco é encontrado, gira uma posição para cada linha adicional e para de ler na linha 0. Como a 9ª linha é lida primeiro e a 0ª última, como resultado, o contador gira pelo número de posições indicadas pela posição do furo.

imagem
Medidor eletromecânico da 403ª máquina

No topo, há um contador de números de dois dígitos. As rodas estão à esquerda. As bobinas de partida e parada forçam as rodas a iniciar e parar de girar no momento certo, ativando as alavancas que controlam as paradas. A transferência é realizada usando cames sob as rodas, fechando os contatos. Por trás do painel, existem contatos elétricos que lêem o valor armazenado no contador - eles estão conectados ao contato à direita.



O SP determina quais colunas do cartão são adicionadas a quais contadores. Para adicionar um valor de campo ao contador, o pincel do leitor é conectado ao contador através do painel de controle; portanto, o cartão controla a rotação das rodas do contador. O sinal liga a bobina de partida do contador, a rolha libera a roda e começa a girar. Na posição 0, a bobina de retenção libera a rolha e para a roda. Por exemplo, se o pincel ler o valor “7” do cartão, o contador passará por 7 posições e depois parará. Se o pincel indicar "1", o contador girará apenas uma posição. Tudo funciona através da sincronização do movimento do cartão e contra-rotação. Uma rotação de 18 ° corresponde ao movimento do cartão por uma linha e a rotação do contador por uma posição. O contador tem 20 posições separadas por 18 °. A adição de 10 gira meia volta. A subtração é feita através da adiçãoadicionando a nove (subtraindo o dígito n é substituído adicionando 9-n a ele, após o qual a unidade corretiva é adicionada). Para fazer isso, o contador começa na posição "9" e para quando o furo é lido. Por exemplo, se um furo for feito na posição 7, o contador girará 2 posições.

A transferência de uma categoria para outra realiza um mecanismo complexo. Você pode esperar que, quando uma roda passa de 9 para 0, ela gira a roda da próxima fila, como nos odômetros, mas, para contadores com vários valores, seria muito lento. O contador adiciona 150 números por minuto e gira muito rápido. Em vez disso, os contadores usam um esquema semelhante a um cabeçote de transporte acelerado. Se a roda estiver na posição 9, fecha o contato e a unidade se move da descarga inferior para a superior. Quando a roda passa de 9 para 0, outro contato é fechado, criando um número que é "lembrado". Após todas as adições, todos os números da "mente" são criados em paralelo e adicionados de cada vez. Portanto, adições como 99999999 + 1 não são atrasadas devido à transferência da cadeia - todas elas rodam simultaneamente.

Relé


O BM é controlado por centenas de relés, interruptores eletromecânicos, gerentes da "lógica de controle" do sistema. A foto mostra a parte de trás do BM, preenchida com um relé. Outro relé pode ser encontrado no painel extremo. Para criar sinais de tempo, os interruptores abrem e fecham com os excêntricos no eixo rotativo. Portanto, todo o sistema é sincronizado com um eixo rotativo.



Conclusão


Agora, o processamento de cartões perfurados está quase esquecido, mas gerencia o processamento de dados há quase cem anos. Mesmo antes da existência de computadores, as empresas usavam cartões perfurados e guias para contabilidade. As máquinas de contabilidade da IBM eram capazes de executar tarefas incrivelmente complexas, apesar de consistirem em componentes aparentemente primitivos. A programação da BM e da NW era popular até a década de 1960, quando as empresas começaram a mudar gradualmente para computadores comerciais com programas de armazenamento como o IBM 1401. No entanto, a IBM continuou a promover ativamente o BM até 1976. Curiosamente, uma empresa no Texas ainda usa o IBM 402 BM , que demonstra a incrível durabilidade da tecnologia de cartões perfurados.

Instruções para diferentes BMs podem ser baixadas no site da Bitsavers:

Máquinas de contabilidade IBM 402, 403 e 419: Manual de operação
Manual de instruções de engenharia de campo IBM 402, 403, 419
Princípios de fiação funcional da IBM

Source: https://habr.com/ru/post/pt403749/


All Articles