L’association Aconit a relevé le défi en 1985 de la conservation et la valorisation de l’histoire de l’informatique. Elle dispose pour cela d’une des collections les plus complètes d’Europe avec plus de 2000 machines, logiciels et documentations. Elle couvre toutes les périodes de cette histoire, depuis l’ère pré-informatique de la mécanographie des années 1940, jusqu’à la micro-informatique moderne des années 2000.
L’association peut fournir des services à d’autres associations ou entreprises. Dans ce cas la société Expédition Mystère fournit à ses clients des Histoires à énigmes par le biais d’objets étranges envoyés par voie postale.
Expédition Mystère a sollicité Aconit pour lui fournir des documents d’époque pour ses nouvelles histoires.
Ces supports fournis par Aconit sont
Les cartes perforées ont été un support de stockage de données utilisées de la fin du XIXe siècle jusque dans les années 1970. Au début utilisées par les machines des ateliers de mécanographie, le support a continué a être utilisé par l’informatique naissante.
La saisie des données sur les cartes était effectuée sur des machines dédiées appelées perforatrices.
La société IBM qui était alors le leader mondial de l’informatique a produit au fil de ces années différents modèles de perforatrice. Celle qui nous intéresse est l’IBM 029, sortie en 1964 pour accompagner le lancement de l’IBM S/360, série d’ordinateurs qui rencontra un énorme succès pour l’époque.
Aconit dispose dans sa collection de plusieurs exemplaires de l’IBM 029. La machine était disponible en 9 modèles différents. Le modèle choisi est « C22, Perforatrice Interpréteur, 64 caractères, avec impression ».
Les cartes sont chargées dans le bac de droite. Une pression sur la touche « Alim » permet d’alimenter une carte au poste de perforation. La saisie est directe, une pression sur une touche alpha-numérique provoquant la perforation d’une colonne avec le codage associé.
A la fin de la saisie, une pression sur la touche « Lib » libère la carte et la transfère au poste de lecture. Une nouvelle carte est positionnée au poste de perforation.
Les cartes qui sortent du poste de lecture sont happées par une pince et sont empilées par dessous.
La machine dispose également d’un tambour de programme permettant d’effectuer les opérations suivante automatiquement :
La technologie de la machine est entièrement électromécanique. Un unique moteur entraîne tous les mécanismes.
On peut ventiler les composants électriques en trois catégories :
![]() Un relais IBM
|
La perforatrice ne fonctionnait pas lorsque nous l’avons prise en main. Elle ne répondait à aucune commande du clavier et le « Escape Magnet » produisait une vibration anormale. Après analyse, en étudiant le schéma électrique, nous avons déduit qu’il y avait un pont électrique qui n’avait pas sa place entre deux parties du circuit. Le coupable a été confondu ! Il s’agissait du relais « Card Lever » défectueux dont deux contacts, censément indépendants, étaient reliés. La machine est revenue à la vie en remplaçant ce relais.
Nous avons réalisé bien d’autres ajustements. Les contacts électriques, soumis aux "intempéries" depuis 50 ans étaient oxydés et le courant ne passait plus très bien. Nous avons fait un large usage de papier de verre très fin et de nettoyant contact pour les rétablir.
Liste des contacts traités :
Enfin nous avons tenté d’améliorer la qualité d’impression en ajoutant un peu d’huile dans les aiguilles de la matrice mais nous n’avons pas réussi à démonter complètement le bloc d’impression. Nous avons préféré sursoir plutôt que de risquer de le détériorer. Il faut dire aussi que nous avons des rubans encreur neufs, mais ils sont dans leur emballage depuis plusieurs dizaines d’années et ont eu le temps de sécher : un autre chantier !
Pour connecter la perforatrice au monde moderne, nous avons construit un boîtier d’interface qui se connecte d’une part à la machine en différents points et d’autre part en USB à un ordinateur.
Le boîtier utilise différents composants. Pour la partie logique, un microcontrôleur Arduino contient un petit programme qui dit quel circuit de la machine actionner selon la fonction choisie.
Pour la partie contrôle de puissance (la perforatrice fonctionnant en 48v Continu et l’Arduino en 5v) un ensemble de relais fait un shuntage entre deux points du circuit de la machine.
Pour la connectivité USB, un simple convertisseur USB Serial <—> UART est utilisé.
Les circuits contrôlés sont les « Interposer Magnet » qui sélectionnent quelle ligne poinçonner, le « Punch Clutch Magnet » qui déclenche le cycle de poinçonnage, le « Release Relay » qui éjecte la carte une fois que le poinçonnage de de toute les colonnes désirées a été fait et la « Multipunch Keystem », touche du clavier permettant de poinçonner des lignes de façon arbitraire sans utiliser le codage Alpha-numérique en vigueur.
Également, le boîtier est relié au circuit de lecture des cartes par un habile détournement du circuit original. Quand la fonction de reproduction n’est pas utilisée par l’IBM 29, cette portion du circuit n’est pas alimenté en 48v (tension nominale). Les relais DUP1,2 et 3 sont inactifs. On l’alimente alors en 5v pour le relier directement à l’Arduino. Le circuit est ensuite déconnecté de l’Arduino lorsque la fonction de reproduction est à nouveau utilisée, les relais DUP1,2 et 3 sont cette fois actifs (heureusement, sinon ça pourrait faire des étincelles !).
Pour les finitions, nous avons installé une prise de courant directement à l’intérieur de la machine pour brancher l’alimentation du boitier de contrôle ainsi que celle du PC auquel le boitier est branché.
Un trou est percé sur le coté du clavier pour faire sortir la prise USB sur l’extérieur avec un cordon pour la relier au boitier.
Et voilà le travail !
Liste du matériel :
Fonction sur la machine | Repère de la connexion | No du pin sur la prise DB-25 | No du relais utilisé | No de la pin Arduino |
---|---|---|---|---|
Punch 12 | A06B | 12 | 12 | 25 out |
Punch 11 | A06C | 11 | 11 | 24 out |
Punch 0 | A06D | 10 | 10 | 23 out |
Punch 1 | A06E | 9 | 1 | 22 out |
Punch 2 | A06F | 8 | 2 | 52 out |
Punch 3 | A06G | 7 | 3 | 53 out |
Punch 4 | A06H | 6 | 4 | 50 out |
Punch 5 | A06J | 5 | 5 | 51 out |
Punch 6 | A06K | 4 | 6 | 48 out |
Punch 7 | A06L | 3 | 7 | 49 out |
Punch 8 | A06M | 2 | 8 | 46 out |
Punch 9 | A06N | 1 | 9 | 47 out |
Punch Space | A06A | 13 | 13 | 26 out |
Punch Commun | A03B | 15 | (1->13) | N/A |
Vcc 48V | A08E | 20 | 14 | N/A |
Masse | A03R | 24 | Diodes anti-arc | N/A |
Multipunch Keystem (in) | A03L | 18 | 15 | 28 out |
Multipunch Keystem (out) | A03M | 19 | 15 | |
Card Registered (in) | N/A | 16 | N/A | 5V |
Card Registered (out) | N/A | 17 | N/A | 44 in |
Cable check (in) | N/A | 23 | N/A | 42 out |
Cable check (out) | N/A | 25 | N/A | 43 in |
Punch Clutch | A06R | 21 | 16 | 29 out |
Release | A02R | 14 | 14 | 27 out |
Fonction sur la machine | Contact de relais utilisé | No du pin sur la prise DB-25 | No de la pin Arduino |
---|---|---|---|
Sense 12 | DUP3 N/C 1 | 1 | 2 in |
Sense 11 | DUP3 N/C 2 | 2 | 3 in |
Sense 0 | DUP3 N/C 3 | 3 | 4 in |
Sense 1 | DUP3 N/C 4 | 4 | 5 in |
Sense 2 | DUP3 N/C 5 | 5 | 6 in |
Sense 3 | DUP3 N/C 6 | 6 | 7 in |
Sense 4 | DUP3 N/C 7 | 7 | 8 in |
Sense 5 | DUP3 N/C 8 | 8 | 9 in |
Sense 6 | DUP3 N/C 9 | 9 | 10 in |
Sense 7 | DUP3 N/C 10 | 10 | 11 in |
Sense 8 | DUP3 N/C 11 | 11 | 12 in |
Sense 9 | DUP3 N/C 12 | 12 | 13 in |
Sense Common | DUP1 N/C 5 | 13 | 5v |
Cable Check (in) | N/A | 19 | 36 out |
Cable Check (out) | N/A | 21 | 39 in |
Pin du FTDI (uart/rs232) | No de la pin Arduino |
---|---|
Masse | Masse |
Vcc | 5V |
DTR | N/A |
Rx | 16 Tx |
Tx | 17 Rx |
CTS | 35 RTS |
RTS | 32 CTS |
Travaux menés entre Juin et Décembre 2018 par Antoine Hébert et Nicolas Arnaise. Ils sont basés sur le projet de Carl Claunch : Github,Démo Documentations : Reference Manual Field Engineering Maintenance Manual Field Engineering Theory Of Operation Illustrated Part Catalog IBM Wire Relays Liens Recommandés : Fiche de la machine dans la base de donnée Repairing a 1960s-era IBM keypunch par Ken Shirrif Punched Card Typography Punched Card Typography, Part 2 IBM 029 Card Punch Restoration par Marc Verdiell |
Première publication :
Mise en ligne le mercredi 30 janvier 2019