Preparación de impuestos en 1950: "programación" del IBM 403 utilizando un panel de complementos

Mucho antes de la llegada de las computadoras modernas, la empresa utilizaba máquinas de contabilidad electromecánica (BM) para procesar datos. Estas máquinas que pesaban una tonelada fueron "programadas" por cables en el panel de control enchufable, lo que les permitió crear informes comerciales complejos basados ​​en datos contenidos en tarjetas perforadas . Y aunque no tenían electrónica y usaban ruedas mecánicas giratorias para resumir los datos, estas máquinas podían procesar más de dos tarjetas por segundo.

imagen
Un panel de complementos que realiza una deducción de impuestos IBM 403

En honor al 15 de abril [el día tradicional de presentación de declaraciones de impuestos en los EE. UU.], Estudiaré el panel de complementos (SC), utilizado para preparar impuestos en 1950, y explicaré el arte olvidado de programar el SC, mostrando cómo el entrelazado de cables puede implementar el algoritmo de procesamiento de datos. Al conectar el panel al BM, el operador podría realizar una tarea específica de procesamiento de datos. Aunque el panel parece un código de espagueti físicamente incorporado, el seguimiento de la conexión revela su función: calculó las deducciones de impuestos, resumió los registros de muchos campos, mostró un informe con subtotales y totales, y marcó un conjunto más pequeño de tarjetas de totales, registrando estas cantidades en ellos.

Descripción general de la tarjeta perforada


Las tarjetas perforadas sirvieron como base para el procesamiento de datos desde la década de 1890 hasta la década de 1970, y se utilizaron para operaciones de contabilidad, inventario, nómina y muchas otras tareas. Por lo general, una sola tarjeta perforada de 80 columnas contenía un registro, y los datos se almacenaban en campos fijos en la tarjeta. La foto a continuación muestra un mapa con columnas divididas en campos como fecha, número de vendedor, número de pedido y cantidad. BM procesó estas tarjetas, sumó los números y emitió un informe con subtotales para cuentas y departamentos, como se muestra a continuación.



El sistema de procesamiento de tarjetas perforadas fue inventado por Herman Hollerith para el censo estadounidense de 1890, que utilizaba el tabulador más simple, que contaba los registros por agujeros en las tarjetas. Para resumir, los tabuladores utilizaron un módulo llamado "batería", cuyos diales redondos contenían decimales. La batería dio el nombre al registro del procesador utilizado hasta el día de hoy. Por ejemplo, los procesadores Intel x86 tienen un registro EAX, es decir, un acumulador extendido. Estas máquinas, gradualmente adquiriendo oportunidades, se han convertido en BM complejas, capaces de emitir informes comerciales. Se hicieron populares en el entorno empresarial y en 1944 IBM ya proporcionaba 10.000 pestañas y BM. En julio de 1948, IBM presentó la Máquina de contabilidad 402, que utilizaba los silos que estaba considerando. Los modelos de máquina 402 y 403 tenían capacidades ricas: tenían 16 contadores, muchos niveles para subtotales, control de distancia vertical para admitir formularios, admitían comparaciones, operadores condicionales y eliminación de ceros a la izquierda.


IBM 403 con clasificador de tarjetas perforadas Tipo 82

Lo sorprendente de esta historia es que las empresas se dedicaron al procesamiento de datos de tarjetas perforadas décadas antes de que aparecieran las computadoras, usaban máquinas puramente electromecánicas y ni siquiera usaban lámparas electrónicas. Este equipo constaba de componentes como un cepillo de alambre para leer agujeros en tarjetas perforadas, relés para monitorear bucles y ruedas de conteo mecánico para agregar valores. Estos sistemas tecnológicamente primitivos revolucionaron el procesamiento de datos empresariales y allanaron el camino para computadoras comerciales electrónicas como la IBM 1401 .

Programación de panel enchufable


Los BM se programaron para realizar una tarea específica colocando cables en el silo. Como cada aplicación utilizaba mapas con campos en diferentes lugares, BM necesitaba una forma de determinar el valor de cada uno de los campos. Se generaron varios informes basados ​​en valores ubicados en diferentes partes de la página. Se necesitaban aplicaciones para calcular subtotales y sumas totales de diferentes valores. Antes de las computadoras capaces de almacenar programas, se necesitaba tecnología para configurar fácilmente el sistema para una aplicación específica. Como resultado, apareció un sistema para colocar cables en el silo.



En la foto, el panel se muestra cerca. Ella tiene una cuadrícula de agujeros (nodos) con funciones etiquetadas. Al insertar un cable en el panel, conecta dos nodos, lo que hace que el BM realice una determinada operación. Un conjunto de cables define las operaciones realizadas en cada una de las tarjetas.



Cuando se inserta un cable en el panel, el enchufe en su extremo sobresale de la parte posterior del panel, como se muestra arriba. Cuando el panel se coloca en el BM (abajo), los enchufes tocan la rejilla de los conectores BM, cerrando los circuitos necesarios (preste atención a los interruptores de configuración, que analizaré a continuación).



Dado que la barra colectora es extraíble, las compañías podrían cambiar fácilmente los paneles para realizar diferentes tareas (sería demasiado lento meter los cables en los paneles para una nueva función). Como resultado, las compañías tenían regimientos enteros obstruidos con paneles configurados para todas las operaciones. De esta forma, el "software" ocupa un espacio físico tangible. La foto a continuación muestra una colección de paneles de una de las compañías diseñadas para diferentes tareas.



Programa de impuestos


Estudié cuidadosamente la ubicación de los cables en el impuesto NN para comprender lo que está haciendo. El primer paso es rastrear cada cable y compararlo con el diagrama de cableado (a continuación), donde se muestran todos los conectores del panel. Al comparar el diagrama con la fotografía del panel al comienzo del artículo, encontrará que muestra el mismo cableado, solo que en una forma mucho más legible.



Encontré que el programa, "grabado" en los cables, lee tarjetas y calcula los subtotales y totales de datos de las tarjetas. Más específicamente, hay siete campos legibles en cada mapa. El primero es un identificador, y todas las tarjetas con un identificador se resumen, como resultado de lo cual se dan sumas para cada uno de los cinco campos. Me parece que esta identificación fue asignada al empleado, y cada tarjeta correspondía a un período de pago. O la identificación podría pertenecer a la división de una empresa, y la tarjeta podría pertenecer a un departamento. Debido a la falta de nombres de variables, esto no se puede determinar exactamente.

Al sumar los registros de cada identificación, se dan las deducciones fiscales totales para este empleado (desde el comienzo del año calendario ). Los cinco campos resumidos pueden estar relacionados con las deducciones de nómina, como el impuesto federal sobre la renta, el impuesto estatal, el impuesto de la seguridad social, el impuesto médico y las contribuciones a las pensiones. Después de leer las tarjetas relacionadas con el empleado, BM perfora una nueva tarjeta final, con el monto total de las deducciones, e imprime una línea del informe. Los subtotales de todos los empleados se resumen para obtener el total.

Y así es como funcionan los silos. Al leer un mapa de 80 tarjetas, cada dígito está disponible en uno de los nodos de lectura, numerados del 1 al 80. La conexión del cable al nodo le permite transferir el dígito a otra parte de la máquina. Supongamos, por ejemplo, que las columnas 28-33 contienen un número de 6 dígitos, y queremos agregar estos números. Esto se hace conectando la columna de lectura 28 con un cable al dígito más alto del contador, la columna 29 - al siguiente dígito, etc. - solo 6 cables.

La foto a continuación muestra seis cables rojos que transmiten el campo al contador 6C. 80 columnas del mapa leen dos filas de nodos bajo la inscripción "Tercera lectura". Cuatro filas de nodos debajo de la inscripción de la entrada del contador van a la entrada de los contadores. Los campos restantes de la misma manera están conectados por cables con contadores.



Es difícil entender el cableado de la fotografía, por lo que generalmente el diagrama de conexión del panel se muestra en el diagrama. A continuación muestra la conexión de las columnas de lectura (a la derecha) con el contador 6C (a la izquierda). Seis cables en el diagrama están representados por uno, al estilo de los diagramas de imagen de IBM. Las franjas horizontales conectadas por una línea indican seis cables que se ejecutan en paralelo.



Para mostrar la cantidad total, la salida del contador se conecta a las columnas de impresora deseadas. En el panel, estas columnas están marcadas como "entrada de impresión": 43 "posiciones de impresión alfanuméricas", capaces de imprimir letras o números, seguidas de 45 posiciones digitales, capaces de imprimir solo números. El siguiente diagrama muestra cuatro cables del contador 4C, que van a las posiciones de impresión del 1 al 4 (amarillo), y seis cables del contador 6C (rojo) a las columnas impresas 35-40.



BM contiene 16 contadores decimales. 4 de ellos son de 8 bits, se llaman 8A, 8B, 8C y 8D. Cuatro de 6 bits (6A - 6D), cuatro de 4 bits (4A - 4D) y cuatro de 2 bits (2A - 2D). Además, se pueden combinar dos contadores y obtener un contador más grande. También hay enlaces entre los contadores para contar subtotales. Por ejemplo, el contador 8A recopila un total acumulado para los empleados. Estos totales se agregan al contador 8B y forman un total.

Otra operación importante es comparar la identificación de dos tarjetas. Si tienen la misma identificación, deben contarse juntos y, si son diferentes, debe mostrar el subtotal y restablecer los contadores. La comparación se realiza escribiendo dos campos en dos filas para comparar las entradas de entrada de comparación. Si son diferentes, la señal va a la salida de comparación. Como queremos comparar el mapa actual con el siguiente, tomamos un campo de la "segunda lectura" y uno de la "tercera lectura". El mapa que procesamos estará en la tercera etapa de lectura, y la tarjeta después de eso estará en la segunda etapa de lectura. Finalmente, la salida de comparación se conecta al nodo "inicio del programa (menor)". Como resultado, BM inicia un ciclo adicional con la impresión de resultados intermedios del nivel junior "menor" y restablece los contadores. BM tiene dos niveles adicionales adicionales de subtotales, "intermedio" y "mayor" (medio y superior).


Se comparan las columnas 1 a 4 de las tarjetas para averiguar si se deben imprimir los subtotales.

En el diagrama anterior, las columnas 1-4 de las lecturas segunda y tercera están conectadas a los nodos de los registros de comparación. Los cuatro nodos de salida correspondientes a ellos están conectados por un cable (gris) y conectados al nodo de inicio del programa junior (MI) (cable amarillo al PRG START en la esquina superior derecha). La foto ampliada a continuación muestra la ubicación de los cables.



Otra característica interesante de los silos es el comportamiento condicional mediante interruptores. Las conexiones se pueden cambiar según la señal, lo que permite que la máquina cambie el comportamiento según los resultados de la comparación o el estado de los interruptores en el panel. Este CW cambia su comportamiento en función del interruptor "cambio de configuración 1", uno de los interruptores en el BM en la parte superior del panel. Puede imaginar esto como un prototipo de la configuración de la línea de comandos. Según la inscripción en el silo, el interruptor activa el modo "desde el comienzo del año calendario". Incluye el procesamiento de un campo y también cambia entre las constantes 2 y 5 agregadas al contador 2B (el propósito de estas constantes sigue siendo un misterio para mí).



Los cables en el lado derecho de la barra de distribución controlan el comportamiento del contador, por ejemplo, la acumulación de resultados intermedios o totales. También conectan varios contadores para agrandarlos. Por ejemplo, los contadores 2C y 4D se combinan para funcionar como un solo contador de 6 dígitos.

La siguiente tabla muestra el diagrama de cableado del silo que muestra la relación entre los campos de entrada y la salida de la impresora.

Altavoces de tarjeta
Altavoces de salida
Contador intermedio
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
Desde el interruptor de palanca
2B

Las columnas 14-17 se resumen pero no se imprimen. Tal vez sus valores se rompan en la tarjeta perforada final. Las columnas 34-38 se procesan solo cuando el interruptor de palanca "cambio de configuración 1" está activado. El contador 2B se controla mediante un interruptor de palanca en el panel, en cada paso se le agregan 2 o 5.

Otra característica interesante de la máquina es la perforación de totales. Le permite procesar un gran paquete de tarjetas perforadas y emitir un pequeño archivo con las cantidades. El código de impuestos está configurado de manera que para cada empleado se perfora una tarjeta perforada. Por lo tanto, un conjunto de tarjetas de empleados con datos para cada período de pago se reduce a una tarjeta con cantidades anuales. Esta tarjeta ya se puede utilizar en el procesamiento posterior.


Bukhmashina IBM 403 conectado al dispositivo de perforación del modelo 519

La perforación de los resultados se lleva a cabo conectando una máquina perforadora con un cable grueso al BM. Un cable insertado en uno de los nodos del silo controla la inclusión de la perforación y, en el otro, el momento en que se gasta. Se establece una lista de impuestos para que la tarjeta final se abra para cada subtotal. Un silo separado en la punzonadora controla qué columnas deben perforarse en la tarjeta.


Los cables que controlan la perforación de la tarjeta final. Los nodos del interruptor de perforación total (SP.SW) están conectados por un cable gris (abajo a la izquierda)

El interior de la máquina de contabilidad No. 403


Es sorprendente qué funcionalidad podrían proporcionar estos BM sin componentes electrónicos, utilizando solo una ingeniosa electromecánica. Dentro de la máquina hay un laberinto de motores, ejes giratorios, levas y empuñaduras. Se parece más a un automóvil que a una computadora, ¡incluso tiene una bomba de aceite! Y con todas estas piezas mecánicas, el BM pesa más de una tonelada (1143 kg).



En un cable de transferencia bancaria, se transfiere una columna específica a la tarjeta. Pero, ¿cómo se transmite el símbolo de la tarjeta a través del cable? ¿Cómo agrega el contador? ¿Cómo se muestra el resultado? Los BM utilizan mecanismos sofisticados que están estrechamente relacionados con la estructura de una tarjeta perforada.

En el lenguaje moderno, un símbolo se codifica secuencialmente: hay un impulso a lo largo del cable, cuya duración está asociada con la ubicación del agujero en la tarjeta. Los pulsos comienzan y detienen los contadores. También controlan los cabezales de impresión que muestran el resultado.

El 403 funciona con el tiempo basado en la rotación de los ejes, y no en el reloj. Cada rotación del eje corresponde al ciclo de la tarjeta: lectura y procesamiento. La unidad fundamental de tiempo es una rotación de 18 °: este es el tiempo entre leer los agujeros sucesivos de la tarjeta, mover el cabezal de impresión un carácter y girar el contador. Con una velocidad de procesamiento de 150 tarjetas por minuto, resulta aproximadamente 400 ms por tarjeta y 20 ms por turno a 18 °, sorprendentemente rápido para el mecanismo.

Tarjetas de lectura


Para comprender cómo funciona BM, debe comprender cómo se almacenan los datos en tarjetas perforadas. Una tarjeta perforada almacena 80 caracteres, cada uno de los cuales está representado por un conjunto de agujeros en una columna. La foto muestra un mapa que muestra el almacenamiento de números y letras del alfabeto. Cada personaje se imprime en la parte superior de la tarjeta, y los agujeros correspondientes se perforan en la parte inferior de la columna. Un dígito es solo un agujero en la fila deseada, de 0 a 9 (tenga en cuenta que los números no se almacenan en binario, sino en decimal). Para apoyar las letras sobre las filas digitales, se introdujeron dos auxiliares, “zonales”. La letra A está indicada por dos agujeros en la columna: zonal y digital.

La fila zonal por encima del cero se llama 11, o X, y la fila por encima se llama 12. Para algunas letras, la fila 0 se usa como zonal en lugar de digital. Algunas dificultades están asociadas con esto, por ejemplo, la necesidad de un mecanismo especial que imprima "cero digital" en lugar de "zonal". Dicha codificación para tarjetas perforadas posteriormente se convirtió en EBCDIC (Código de intercambio decimal codificado con código binario extendido, utilizado en computadoras IBM en lugar de ASCII). Muchos artefactos de este código, en particular, una violación del orden alfabético, se originan precisamente en tarjetas perforadas.



Se podría pensar que BM lee las cartas una columna a la vez y procesa un personaje a la vez. Pero las cartas en realidad se leen de lado, comenzando desde abajo. Las 80 columnas se leen en paralelo, comenzando desde la novena fila y terminando en cero, y luego en las filas zonales. Para leer mapas, BM utiliza un conjunto de 80 cepillos de alambre, uno para cada columna. Si hay un agujero en el cepillo, hay contacto con el eje metálico debajo de la tarjeta, esto cierra el circuito y crea un impulso. Cada columna tendrá un impulso correspondiente al agujero, en este caso la novena fila funcionará primero, luego la octava fila, y así sucesivamente, terminando con 0. Por lo tanto, cada carácter se codifica secuencialmente y cada cable CIP transmite una de estas señales, pero todas las columnas se procesan en paralelo

Imprimir


imagen
Cabezales de impresión de la máquina 402

El mecanismo de impresión BM consta de 88 cabezales de impresión. Cada cabeza tiene todos los caracteres que se pueden imprimir. La cabeza se mueve verticalmente, deteniéndose en el símbolo deseado, y luego el martillo lo golpea, y el símbolo se imprime a través de la película de tinta. Por lo tanto, todos los caracteres en una línea de texto se imprimen en paralelo.

Los cables de la barra de distribución determinan lo que debe imprimirse, deteniendo cada uno de los cabezales en el momento adecuado para que se seleccione el carácter correcto. El movimiento de los cabezales se sincroniza con precisión con la lectura de la tarjeta, por lo tanto, digamos, la tercera fila de la tarjeta se lee al mismo tiempo que el "3" en el cabezal de impresión se mueve a la posición de impresión. Si el conjunto del cepillo está conectado a la unidad de impresión de la columna, el pulso suministra energía al imán, liberando el mecanismo de bloqueo, aferrándose a los dientes del cabezal de impresión y deteniéndolo para que se imprima el símbolo "3". Si se lee "2" de la tarjeta, el cepillo estará opuesto al orificio una unidad de tiempo más tarde, el cabezal de impresión se elevará una posición más y se imprimirá "2".

: , , , , , . 100 , - . 18° , .


– , . – , . . , 27, , – . . , , , 0. 9- , 0- – , , .

imagen
403-

. – . , , . , . , – .



, . , . , . 0 , . , «7» , 7 , . «1», . . 18° . 20 , 18°. 10 -. ( n 9-n, ). «9» , . , 7, 2 .

. , 9 0, , , . 150 . , (carry lookahead). 9, , . 9 0, , , « ». « » . 99999999+1 - – .


, , « » . , . . . .




, . - . IBM , , . 1960- , - , IBM 1401. , IBM 1976 . , IBM 402 , .

Bitsavers:

IBM 402, 403 and 419 Accounting Machines: Manual of Operation
IBM 402, 403, 419 Field Engineering Manual of Instruction
IBM Functional Wiring Principles

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


All Articles