Retrotechtacular : Programmation par carte | Hackaday

Le récent badge Supercon 6, si vous ne l’avez pas vu, était un ordinateur de type ancien avec un panneau avant lumineux clignotant. Cela rappelait un Altair 8800, un PDP-11 ou un DG Nova. Cependant, même à l’époque, seules quelques personnes programmaient vraiment un ordinateur avec des commutateurs. En règle générale, vous pouvez utiliser les commutateurs pour basculer dans un chargeur de démarrage de premier niveau qui chargerait ensuite un meilleur chargeur de démarrage à partir d’un type de stockage tel qu’une bande magnétique ou papier. La plupart des gens n’utilisaient pas vraiment les interrupteurs.

Ce que la plupart des gens faisaient, cependant, c’était des cartes perforées. Techniquement, les cartes Hollerith, bien que nous les appelions principalement cartes, cartes perforées ou cartes IBM. Il y avait beaucoup de machines différentes que vous pouviez utiliser pour perforer les cartes, mais aucune n’était aussi populaire, je suppose, que l’IBM 029. Certes, les modèles de la série étaient en très grande majorité ce que les gens utilisaient pour perforer les cartes.

Pour les non-initiés, une carte avait à peu près la taille d’un billet d’un dollar à l’ancienne – celles qui étaient à la mode lorsque Herman Hollerith les a inventées. La carte était faite d’un matériau pas aussi épais qu’un dossier standard et était divisée en 80 colonnes et 12 rangées. Les cartes ultérieures avaient plus de colonnes, mais celles-ci n’ont jamais vraiment atteint la même échelle que la carte classique à 80 colonnes.

Pour poinçonner un numéro sur la carte, une machine a fait un trou dans l’une des 10 colonnes inférieures. Ainsi, un trou dans la rangée « 1 » était un 1 et un trou dans la rangée « 4 » était un 4. Les cartes originales utilisaient des trous ronds et 45 colonnes, mais un inventeur d’IBM nommé Lake s’est rendu compte que des trous carrés étroits pouvaient emballer plus les données remontent à 1928. Les 11e et 12e rangées, et parfois la rangée « 0 », étaient utilisées pour désigner des caractères spéciaux ou, parfois, les signes de nombres.

Un jeu avec une « bande de tri » par ArnoldReinhold, CC-BY-SA-3.0

Honnêtement, vous pouviez interpréter une carte comme vous le vouliez, mais en pratique, il y avait quelques schémas courants. Cependant, il n’était pas inconnu d’avoir des cartes perforées en binaire où chaque trou était un 1 ou un 0 et chaque colonne constituait un nombre binaire. En plus de l’encodage des caractères, il y avait d’autres conventions de format, comme avoir des sommes de contrôle ou des numéros de ligne dans certaines colonnes de la carte. Les numéros de ligne, en particulier, étaient bons car ils vous permettaient de trier un jeu après qu’il ait été abandonné et que l’ordre soit brouillé. Une autre astuce courante consistait à tracer une ligne de repère diagonale sur le bord d’un jeu de cartes afin de pouvoir rapidement repérer si une ou plusieurs étaient en panne.

Les cartes vierges étaient souvent utilisées comme « sentinelle » ou ce que nous appellerions aujourd’hui un marqueur de « fin de fichier ». Cependant, certains programmes chercheraient une valeur impossible comme -9999999, par exemple.

En lisant

Un lecteur de carte était relativement simple. La plupart des lecteurs utilisaient une série de brosses métalliques sous lesquelles la carte se déplaçait. Là où il y avait un trou, la brosse pouvait entrer en contact avec une plaque métallique sous la carte et compléter un circuit. Si cela ne semble pas super fiable, c’est parce que ce n’était pas le cas.

L’ancien avertissement « ne pas plier, brocher ou mutiler » était une demande pour les utilisateurs de ne pas faire bloquer les cartes sur les machines ou de ne pas y faire de nouveaux trous. Une broche, si vous ne vous en souvenez pas, était probablement une pointe non conforme à l’OSHA sur votre bureau sur laquelle vous poussiez des papiers pour les maintenir en place. Pas une bonne stratégie pour une carte perforée.

En fait, une farce courante consistait à perforer chaque colonne d’une carte afin qu’elle devienne fragile et bloque le lecteur, ce que l’opérateur, bien sûr, n’apprécierait certainement pas. Celles-ci étaient parfois appelées cartes « de dentelle » car elles étaient délicates comme de la dentelle.

L’écriture

Alors, comment perforez-vous une carte? Bien qu’il y ait eu quelques schémas pour perforer manuellement les cartes prédécoupées, ceux-ci étaient principalement utilisés pour des applications de niche comme le vote, les petites écoles sans équipement ou le contrôle des stocks. Pour une utilisation sérieuse, vous avez utilisé un coup de poing. Vous pouvez voir une vidéo pédagogique de l’Université du Michigan de 1967 sur le fonctionnement du 029 ci-dessous.

Un tambour de programme 029

Il y avait trois stations dans le 029 : La plus à droite tenait une carte en attente d’être perforée. La fente centrale était la carte que vous perforiez actuellement. La plus à gauche était la carte que vous veniez de poinçonner (généralement). Parce que la machine avait la carte de gauche où elle pouvait être lue, vous pouviez dupliquer les colonnes de celle-ci sur la carte sur laquelle vous travailliez. C’était important pour apporter des corrections. Vous pouvez copier la carte précédente jusqu’au point de l’erreur, la corriger, puis copier les poinçons restants.

Le 029 pouvait faire beaucoup de trucs, y compris perforer une carte qui définirait des options spéciales pour la machine elle-même. Vous preniez la carte et l’enrouliez autour d’un tambour qui contrôlait le fonctionnement de la machine. Par exemple, vous pouvez définir des champs ou configurer la machine pour qu’elle ignore ou duplique automatiquement les colonnes. Une autre opération courante consistait à définir automatiquement le décalage des lettres ou des chiffres pour certains champs.

Si vous n’en avez pas assez dans la première vidéo, la deuxième partie montre une utilisation avancée. Pour un appareil électromécanique fabriqué dans les années 1960, il s’agissait d’un matériel sophistiqué.

Interprétariat

Les poinçons modernes impriment le texte le long du bord supérieur afin que vous puissiez le regarder et le lire. Si vous aviez des cartes qui n’étaient pas interprétées, vous pourriez les faire passer par une machine pour faire l’impression. Par exemple, la plupart des sorties de carte d’un programme n’avaient pas d’empreintes d’interprétation.

Pour vous aider à lire une carte, beaucoup d’entre eux avaient des guides imprimés dessus. Une carte de base n’avait que des lignes et des colonnes imprimées. Mais des cartes spéciales afficheraient des champs dédiés pour les numéros de ligne ou d’autres données spécifiques aux programmes. Il était également courant de voir des cartes avec des logos d’entreprise ou d’école.

Vos propres cartes

Image de carte personnalisée à partir du clavier virtuel

Vous souhaitez créer vos propres cartes ? Eh bien, la meilleure façon serait de construire votre propre matériel. Le deuxième meilleur serait de récupérer un vieux surplus d’équipement et de le restaurer – les manuels sont disponibles. Mais la plupart d’entre nous se contenteront de l’essayer en ligne. Essayez de créer une carte avec le poinçon virtuel. Vous voulez le relire ? Vous pouvez faire cela aussi.

Certaines des anciennes technologies nous manquent, mais nous ne manquons pas vraiment de cartes. Il y avait de nombreuses variantes. La carte à 96 colonnes était utilisée avec l’IBM System 3. Il y avait aussi des cartes perforées à la main à 40 colonnes, des cartes UNIVAC à 90 colonnes et même des cartes Powers-Samas à 130 colonnes. Les cartes au format d’ouverture étaient des cartes normales avec un trou pour accepter un petit morceau de microfilm pour contenir des choses comme des graphiques.

Même les ordinateurs IBM qui pensaient utiliser des cartes n’étaient pas à la fin. Un ordinateur IBM typique prenait des «jeux de cartes virtuels» à partir d’une bande magnétique ou d’une disquette avant que les cartes ne meurent finalement. Un Arduino peut-il lire des cartes ? Oui, oui ça peut. Les cartes perforées ont été développées non pas pour les ordinateurs, mais pour les métiers à tisser. Ils ont également été utilisés beaucoup plus tard pour les testeurs de tubes.

Graphique du titre de l’Université de Columbia.