Bien avant l'avènement des ordinateurs modernes, l'entreprise utilisait des machines comptables électromécaniques (BM) pour traiter les données. Ces machines pesant une tonne ont été «programmées» par des fils sur le panneau de commande du plug-in, ce qui leur a permis de créer des rapports commerciaux complexes sur la base des données contenues sur les
cartes perforées . Et bien qu'ils n'aient pas d'électronique et qu'ils utilisent des roues mécaniques rotatives pour résumer les données, mais ces machines pouvaient traiter plus de deux cartes par seconde.
Un panneau de plug-in qui effectue une déduction fiscale IBM 403En l'honneur du 15 avril [la journée traditionnelle de production des déclarations de revenus aux États-Unis], j'étudierai le panneau de plug-ins (SC), utilisé pour préparer les taxes en 1950, et expliquerai l'art oublié de la programmation des SC, montrant comment l'entrelacement des fils peut implémenter l'algorithme de traitement des données. En fixant le panneau au BM, l'opérateur pouvait effectuer une tâche de traitement de données spécifique. Bien que le panneau ressemble à un
code de spaghetti physiquement incarné, le suivi des connexions révèle sa fonction: il a calculé les déductions fiscales, résumé les enregistrements de nombreux champs, affiché un rapport avec des sous-totaux et des totaux et perforé un plus petit ensemble de cartes de totaux, enregistrant ces montants sur eux.
Présentation de la carte perforée
Les cartes perforées ont servi de base au traitement des données des années 1890 aux années 1970 et ont été utilisées pour les opérations comptables, l'inventaire, la paie et de nombreuses autres tâches. En règle générale, une seule carte perforée de 80 colonnes contenait un enregistrement et les données étaient stockées dans des champs fixes sur la carte. La photo ci-dessous montre une carte avec des colonnes divisées en champs tels que la date, le numéro du vendeur, le numéro de commande et la quantité. BM a traité ces cartes, additionné les chiffres et publié un rapport avec des sous-totaux pour les comptes et les départements, comme indiqué ci-dessous.

Le système de traitement des cartes perforées a été inventé par
Herman Hollerith pour le recensement américain de 1890, qui utilisait la
tabulatrice la plus simple, qui comptait les enregistrements par trous dans les cartes. Pour résumer, les tabulateurs ont utilisé un module appelé «batterie», dont les cadrans ronds contenaient des décimales. La batterie a donné le nom au registre du processeur utilisé à ce jour. Par exemple, les processeurs Intel x86 ont un registre EAX, c'est-à-dire un accumulateur EXtended. Ces machines, acquérant progressivement des opportunités, sont devenues des BM complexes, capables d'émettre des rapports d'activité. Ils sont devenus populaires dans l'environnement des affaires et en 1944,
IBM fournissait déjà 10 000 onglets et BM. En juillet 1948, IBM a présenté la 402 Accounting Machine, qui utilisait les silos que j'envisageais. Les modèles de machine 402e et 403e avaient de riches capacités: ils avaient 16 compteurs, de nombreux niveaux pour les sous-totaux, le contrôle de la distance verticale pour prendre en charge les formulaires, ils prenaient en charge les comparaisons, les opérateurs conditionnels et la suppression des zéros.
IBM 403 avec trieuse de cartes perforées Type 82Ce qui est surprenant dans cette histoire, c'est que les entreprises étaient engagées dans le traitement des données des cartes perforées des décennies avant l'apparition des ordinateurs, utilisaient des machines purement électromécaniques et n'utilisaient même pas de lampes électroniques. Cet équipement était composé de composants tels qu'une brosse métallique pour lire les trous dans les cartes perforées, des relais pour surveiller les boucles et des roues de comptage mécaniques pour ajouter des valeurs. Ces systèmes technologiquement primitifs ont révolutionné le traitement des données d'entreprise et ont ouvert la voie à des ordinateurs électroniques professionnels tels que l'
IBM 1401 .
Programmation du panneau enfichable
Les BM ont été programmés pour effectuer une tâche spécifique en plaçant des fils sur le silo. Étant donné que chaque application utilisait des cartes avec des champs à différents endroits, BM avait besoin d'un moyen de déterminer la valeur de chacun des champs. Divers rapports ont été générés en fonction des valeurs situées dans différentes parties de la page. Les applications nécessaires pour calculer les sous-totaux et les sommes totales de différentes valeurs. Avant les ordinateurs capables de stocker des programmes, la technologie était nécessaire pour configurer facilement le système pour une application spécifique. En conséquence, un système pour placer des fils sur le silo est apparu.

Sur la photo, le panneau est affiché à proximité. Elle a une grille de trous (nœuds) avec des fonctions étiquetées. En insérant un fil dans le panneau, vous connectez deux nœuds, ce qui oblige le BM à effectuer une certaine opération. Un jeu de fils définit les opérations effectuées sur chacune des cartes.

Lorsqu'un fil est inséré dans le panneau, la fiche à son extrémité dépasse de l'arrière du panneau, comme illustré ci-dessus. Lorsque le panneau est placé sur le BM (ci-dessous), les fiches touchent la grille des connecteurs BM, fermant les circuits nécessaires (attention aux commutateurs de réglages, dont je parlerai plus bas).

Étant donné que le jeu de barres est amovible, les entreprises pourraient facilement changer de panneau pour effectuer différentes tâches (il serait trop long de passer des fils dans les panneaux pour une nouvelle fonction). En conséquence, les compagnies avaient des régiments entiers bouchés avec des panneaux configurés pour toutes les opérations. Sous cette forme, le «logiciel» occupe un espace physique tangible. La photo ci-dessous montre une collection de panneaux de l'une des sociétés conçus pour différentes tâches.

Programme fiscal
J'ai soigneusement étudié l'emplacement des fils sur la taxe NN pour comprendre ce qu'il fait. La première étape consiste à suivre chaque fil et à le comparer avec le schéma de câblage (ci-dessous), où tous les connecteurs du panneau sont illustrés. En comparant le schéma avec la photographie du panneau au début de l'article, vous constaterez qu'il montre le même câblage, mais sous une forme beaucoup plus lisible.

J'ai trouvé que le programme, "enregistré" dans les fils, lit les cartes et calcule les sous-totaux et les totaux des données des cartes. Plus précisément, il y a sept champs lisibles sur chaque carte. Le premier est un identifiant, et toutes les cartes avec un identifiant sont additionnées, à la suite de quoi des sommes sont données pour chacun des cinq champs. Il me semble que cet identifiant a été attribué à l'employé, et chaque carte correspondait à une période de paiement. Ou l'identifiant peut appartenir à la division d'une entreprise et la carte peut appartenir à un service. En raison du manque de noms de variables, cela ne peut pas être déterminé exactement.
La somme des enregistrements de chaque identifiant donne le total des déductions fiscales pour cet employé (à partir du
début de l'année civile ). Les cinq champs résumés peuvent concerner les retenues sur la paie, telles que l'impôt fédéral sur le revenu, l'impôt de l'État, la taxe d'assurance sociale, la taxe médicale et les cotisations de retraite. Après avoir lu les fiches relatives à l'employé, BM perce une nouvelle fiche définitive, avec le montant total des retenues, et imprime une ligne du rapport. Les sous-totaux pour tous les employés sont résumés pour obtenir le total.
Et c'est ainsi que fonctionnent les silos. Lors de la lecture d'une carte de 80 cartes, chaque chiffre est disponible sur l'un des nœuds de lecture, numéroté de 1 à 80. La connexion du fil au nœud vous permet de transférer le chiffre vers une autre partie de la machine. Supposons, par exemple, que les colonnes 28 à 33 contiennent un nombre à 6 chiffres et que nous voulons ajouter ces nombres. Cela se fait en connectant la 28e colonne de lecture avec un fil au chiffre le plus élevé du compteur, la 29e colonne - au chiffre suivant, etc. - seulement 6 fils.
La photo ci-dessous montre six fils rouges qui transmettent le champ au compteur 6C. 80 colonnes de la carte lisent deux rangées de nœuds sous l'inscription «Troisième lecture». Quatre rangées de nœuds sous l'inscription d'entrée de compteur vont à l'entrée des compteurs. Les champs restants de la même manière sont reliés par des fils avec des compteurs.

Il est difficile de comprendre le câblage de la photo, donc généralement le schéma de connexion du panneau est montré dans le schéma. Ci-dessous, il montre la connexion des colonnes de lecture (à droite) avec le compteur 6C (à gauche). Six fils sur le diagramme sont représentés par un, dans le style des diagrammes d'images d'IBM. Les bandes horizontales reliées par une ligne indiquent six fils passant en parallèle.

Pour afficher le montant total, la sortie du compteur est connectée aux colonnes d'imprimante souhaitées. Sur le panneau, ces colonnes sont marquées comme «entrée d'impression»: 43 «positions d'impression alphanumériques», capables d'imprimer des lettres ou des chiffres, suivies de 45 positions numériques, capables d'imprimer uniquement des chiffres. Le diagramme ci-dessous montre quatre fils du compteur 4C, allant aux positions d'impression de 1 à 4 (jaune), et six fils du compteur 6C (rouge) aux colonnes imprimées 35-40.

BM contient 16 compteurs décimaux. 4 d'entre eux sont 8 bits, ils sont appelés 8A, 8B, 8C et 8D. Quatre 6 bits (6A - 6D), quatre 4 bits (4A - 4D) et quatre - 2 bits (2A - 2D). De plus, deux compteurs peuvent être combinés et obtenir un plus grand compteur. Il existe également des liens entre les compteurs pour compter les sous-totaux. Par exemple, le compteur 8A collecte un total cumulé pour les employés. Ces totaux sont ajoutés au compteur 8B et forment un total.
Une autre opération importante consiste à comparer l'ID de deux cartes. S'ils ont le même identifiant, ils doivent être comptés ensemble, et s'ils sont différents, vous devez afficher le sous-total et réinitialiser les compteurs. La comparaison est effectuée en écrivant deux champs sur deux lignes pour comparer les entrées d'entrée de comparaison. S'ils sont différents, le signal va à la sortie de comparaison. Puisque nous voulons comparer la carte actuelle avec la suivante, nous prenons un champ de la «deuxième lecture» et un champ de la «troisième lecture». La carte que nous traitons sera à la troisième étape de lecture, et la carte après elle sera à la deuxième étape de lecture. Enfin, la sortie de comparaison est câblée au nœud «démarrage du programme (mineur)». Par conséquent, BM commence un cycle supplémentaire avec l'impression des résultats intermédiaires du niveau junior «mineur» et réinitialise les compteurs. BM a deux autres niveaux supplémentaires de sous-totaux, «intermédiaire» et «majeur» (moyen et senior).
Les colonnes 1 à 4 des cartes sont comparées pour savoir si des sous-totaux doivent être imprimés.Dans le diagramme ci-dessus, les colonnes 1 à 4 des deuxième et troisième lectures sont connectées aux nœuds des enregistrements de comparaison. Les quatre nœuds de sortie qui leur correspondent sont connectés par un fil (gris) et connectés au nœud de démarrage du programme junior (MI) (fil jaune au PRG START en haut à droite). La photo agrandie ci-dessous montre l'emplacement des fils.

Une autre caractéristique intéressante des silos est le comportement conditionnel à l'aide de commutateurs. Les connexions peuvent être commutées en fonction du signal, ce qui permet à la machine de changer de comportement en fonction des résultats de la comparaison ou de l'état des commutateurs sur le panneau. Ce CW change son comportement en fonction du commutateur «setup change 1», l'un des commutateurs du BM en haut du panneau. Vous pouvez l'imaginer comme un prototype des paramètres de ligne de commande. Selon l'inscription sur le silo, l'interrupteur active le mode «à partir du début de l'année civile». Il comprend le traitement d'un champ, et bascule également entre les constantes 2 et 5 ajoutées au compteur 2B (le but de ces constantes reste un mystère pour moi).

Les fils sur le côté droit du jeu de barres contrôlent le comportement du compteur - par exemple, l'accumulation de résultats intermédiaires ou totaux. Ils relient également plusieurs compteurs entre eux pour les agrandir. Par exemple, les compteurs 2C et 4D sont combinés pour fonctionner comme un seul compteur à 6 chiffres.
Le tableau ci-dessous montre le schéma de câblage du silo montrant la relation entre les champs d'entrée et la sortie de l'imprimante.
Haut-parleurs de carte
| Colonnes de sortie
| Compteur intermédiaire
| Compteur 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
| |
De l'interrupteur à bascule
| | 2B
| |
Les colonnes 14 à 17 sont résumées mais non imprimées. Peut-être que leurs valeurs transparaissent sur la dernière carte perforée. Les colonnes 34 à 38 ne sont traitées que lorsque l'interrupteur à bascule «changement de configuration 1» est activé. Le compteur 2B est contrôlé par un interrupteur à bascule sur le panneau, à chaque étape 2 ou 5 lui est ajouté.
Une autre caractéristique intéressante de la machine est la perforation des totaux. Il vous permet de traiter un grand paquet de cartes perforées et d'émettre un petit fichier avec les montants. Le code fiscal est configuré de sorte que pour chaque employé, une carte perforée soit perforée. Ainsi, un ensemble de cartes d'employé avec des données pour chaque période de paiement est réduit à une carte avec des montants annuels. Cette carte peut déjà être utilisée dans un traitement ultérieur.
Bukhmashina IBM 403 connecté au dispositif de poinçonnage du 519e modèleLa perforation des résultats est réalisée en fixant une
machine de perforation avec un câble épais au BM. Un fil inséré dans l'un des nœuds du silo contrôle l'inclusion de la perforation, et dans l'autre, le moment où elle est dépensée. Un rôle d'imposition est mis en place afin que la carte finale soit percée pour chaque sous-total. Un silo séparé sur la poinçonneuse contrôle quelles colonnes doivent être perforées sur la carte.
Les fils qui contrôlent la perforation de la carte finale. Les nœuds du commutateur de pointage total (SP.SW) sont connectés par un fil gris (en bas à gauche)L'intérieur de la machine comptable n ° 403
Il est étonnant de voir quelles fonctionnalités ces BM pourraient fournir sans composants électroniques, en utilisant uniquement une électromécanique ingénieuse. À l'intérieur de la machine, il y a un labyrinthe de moteurs, d'arbres rotatifs, de cames et de poignées. Cela ressemble plus à une voiture qu'à un ordinateur - il a même une pompe à huile! Et avec toutes ces pièces mécaniques, le BM pèse plus d'une tonne (1143 kg).

Sur un fil de transfert de fil, une colonne spécifique est transférée sur la carte. Mais comment le symbole de la carte est-il transmis sur le fil? Comment ajoute le compteur? Comment le résultat est-il affiché? Les BM utilisent des mécanismes sophistiqués qui sont étroitement liés à la structure d'une carte perforée.
Dans le langage moderne, un symbole est codé de manière séquentielle - il y a une impulsion le long du fil, dont la durée est associée à l'emplacement du trou sur la carte. Les impulsions démarrent et arrêtent les compteurs. Ils contrôlent également les têtes d'impression qui affichent le résultat.
Le 403rd fonctionne avec le temps basé sur la rotation des arbres, et non sur l'horloge. Chaque rotation de l'arbre correspond au cycle de lecture et de traitement de la carte. L'unité de temps fondamentale est une rotation de 18 °: c'est le temps entre la lecture des trous successifs de la carte, le déplacement de la tête d'impression d'un caractère et la rotation du compteur. Avec une vitesse de traitement de 150 cartes par minute, il s'avère environ 400 ms par carte et 20 ms par tour à 18 ° - étonnamment rapide pour le mécanisme.
Cartes de lecture
Pour comprendre le fonctionnement de BM, vous devez comprendre comment les données sont stockées sur des cartes perforées. Une carte perforée contient 80 caractères, chacun étant représenté par un ensemble de trous dans une colonne. La photo montre une carte montrant le stockage des chiffres et des lettres de l'alphabet. Chaque caractère est imprimé en haut de la carte, et les trous qui lui correspondent sont perforés en bas de la colonne. Un chiffre est juste un trou dans la ligne souhaitée, de 0 à 9 (notez que les nombres ne sont pas stockés en binaire, mais en décimal). Pour prendre en charge les lettres au-dessus des lignes numériques, deux lettres auxiliaires «zonales» ont été introduites. La lettre A est indiquée par deux trous dans la colonne - zonale et numérique.
La ligne zonale au-dessus du zéro est appelée le 11 ou X, et la ligne au-dessus est appelée le 12. Pour certaines lettres, la ligne 0 est utilisée comme zonale plutôt que numérique. Certaines difficultés sont associées à cela, par exemple la nécessité d'un mécanisme spécial qui imprime «zéro numérique» au lieu de «zonal». Un tel codage pour les cartes perforées s'est ensuite transformé en
EBCDIC (Extended Binary Coded Decimal Interchange Code, utilisé sur les ordinateurs IBM au lieu de ASCII. De nombreux artefacts de ce code, en particulier une violation de l'ordre alphabétique, proviennent précisément de cartes perforées.

Vous pourriez penser que BM lit les cartes une colonne à la fois et traite un caractère à la fois. Mais les cartes sont en fait lues sur le côté, en commençant par le bas. Les 80 colonnes sont lues en parallèle, à partir de la 9e ligne et se terminant par zéro, puis par lignes zonales. Pour lire les cartes, BM utilise un ensemble de 80 brosses métalliques, une pour chaque colonne. S'il y a un trou dans la brosse, il y a un contact avec l'arbre métallique sous la carte, cela ferme le circuit et crée une impulsion. Chaque colonne aura une impulsion correspondant au trou, dans ce cas, la 9e ligne fonctionnera en premier, puis la 8e ligne, et ainsi de suite, se terminant par 0. Par conséquent, chaque caractère est codé séquentiellement et chaque fil CIP transmet l'un de ces signaux, mais toutes les colonnes sont traitées en parallèle.
Imprimer
Têtes d'impression de la 402e machineLe mécanisme d'impression BM se compose de 88 têtes d'impression. Chaque tête a tous les caractères qui peuvent être imprimés. La tête se déplace verticalement, s'arrêtant sur le symbole souhaité, puis le marteau le frappe, et le symbole est imprimé à travers le film d'encre. Par conséquent, tous les caractères d'une ligne de texte sont imprimés en parallèle.
Les fils du jeu de barres déterminent ce qui doit être imprimé, arrêtant chacune des têtes au bon moment afin que le caractère correct soit sélectionné. Le mouvement des têtes est synchronisé avec précision avec la lecture de la carte, donc, disons, la 3ème rangée de la carte est lue en même temps que le "3" sur la tête d'impression se déplace vers la position d'impression. Si l'ensemble brosse est connecté à l'unité d'impression de la colonne, l'impulsion fournit de l'énergie à l'aimant, libérant le mécanisme de verrouillage, s'accrochant aux dents de la tête d'impression et l'arrêtant pour que le symbole «3» soit imprimé. Si «2» est lu sur la carte, la brosse sera opposée au trou une unité de temps plus tard, la tête d'impression se lèvera d'une position de plus et «2» sera imprimée.
: , , , , , . 100 , - . 18° , .
– , . – , . . , 27, , – . . , , , 0. 9- , 0- – , , .
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