Codage des caractères sur carte perforée

Un article de Wikipédia, l'encyclopédie libre.

Le codage des caractères sur carte perforée est la pratique consistant à associer à chaque caractère un ensemble différent de perforations, ce qui permet par exemple d'y enregistrer un texte.

Histoire[modifier | modifier le code]

Carte de 1890

Aux États-unis, vers 1890, Herman Hollerith invente un moyen d'enregistrer les données du recensement sur un support qu'une machine peut relire, en mettant au point un marquage sur carte par perforation après avoir utilisé des bandes de papier[1],[2].

La correspondance entre les perforations et les caractères ainsi que la taille de la carte ne sont pas normalisées à cette époque. Il existe donc divers formats de cartes perforées pour divers usages.

Codage sur un nombre de bits fixe[modifier | modifier le code]

Le codage de caractères sur un nombre de bits fixe apparaît dans le code Baudot, ainsi que la notion de séquence d'échappement.

Le codage de caractères sur un nombre de bits fixe est repris dans un contexte industriel sur des cartes perforées.

En raison de l'existence de brevets, le codage Hollerith d’IBM n'est pas utilisé par Bull. Ce manque d'interopérabilité fragmenta le marché entre "clients IBM" et "clients Bull".

Le codage Bull n'utilise que onze lignes de perforation, soit une de moins qu'IBM tout en codant autant de caractères[3]. En Bull, les chiffres de zéro à neuf sont utilisés pour le numérique. Les doubles combinaisons utilisées pour les lettres sont différentes et portent sur les bits 9, 8 et 7. Ainsi le A était représenté par les combinaisons de perforations 7 et 11, B par 7 et 0, C par 7 et 1 etc.

Vers le changement de siècle, un codage performant sur cartes perforées a été développé pour le recensement étatique. Le produit fut ensuite commercialisé par la Tabulating Machine Co.[4].

  • Western Union en utilisa une version modifiée jusque dans les années 1950. L'espace et la sonnerie avaient été ajoutés.
  • Dans les années 1930, le CCITT a introduit le code International Telegraph Alphabet No. 2 (ITA2) comme standard international, basé sur le code Western Union modifié. Les États-Unis ont standardisé une version de l'ITA2 avec le code American Teletypewriter (USTTY) qui était basé sur des codes teletypewriter de 5-bits jusqu'aux débuts de l'ASCII 7-bits en 1963.
  • SIXBIT (1968 et 1954) : composé de 64 codes (de 6 bits), stocke six bits caractères par mot mémoire (PDP-10). Le Six-bit BCD était utilisé par IBM dans ses premiers ordinateurs comme l’IBM 704 en 1954[5]. Par la suite, il donna naissance à l'EBCDIC.

Illustrations[modifier | modifier le code]

1964[modifier | modifier le code]

Cette carte de 1964 fait apparaître la correspondance entre les caractères et leur représentation binaire de l'époque.

Une carte perforée 80 colonnes d'IBM d'un des types les plus utilisés au XXe siècle. La photographie fait apparaître le jeu de caractère EBCDIC de 1964, qui ajoutait de nouveaux caractères aux caractères précédents.

Programmation des mainframes[modifier | modifier le code]

Carte perforée contenant la ligne d'instruction en Fortran « Z(1) = Y + W(1) »

Le Fortran est l'un des premiers langages de programmation pour les mainframes, où les cartes perforées permettaient l'entrée des lignes d'instructions analysées par le compilateur.

Carte perforée contenant la ligne d'instruction en COBOL « IF MOD-G-JAHR NOT NUMERIC MOVE ZERO TO MOD-G-JAHR. »

Le langage de programmation COBOL a également utilisé les cartes perforées pour programmer les mainframes.

L'utilisation des cartes perforées ne permettant pas d'écrire de lettres en minuscules et explique le fait que les noms et mots-clés dans ces deux langages de programmation soient en lettres capitales.

Standard 5081[modifier | modifier le code]

Carte Standard 5081 d'un fournisseur non-IBM. Notez les coins. L'instruction commence en colonne 10 et dit «EXEC PROC=SLINK,TESPGM =DADK,ACCT=DADK » Les premières colonnes sont marquées «//STEP2»

Carte cyrillique[modifier | modifier le code]

La carte complétée en mode texte (ligne «C 10,05 définition des adresses ACTIFS MISE EN ŒUVRE DE paramètre Tâche" texte original:"С*10,05 ОПРЕДЕЛЕНИЕ АДРЕСА АКТИВНОЙ РЕАЛИЗАЦИИ ПАРАМЕТРА ЗАДАЧИ")

Les cartes cyrilliques soviétiques utilisaient le même principe de codage que les cartes anglaises ou américaines ; les caractères ne correspondant pas bénéficiaient de perforations supplémentaires.

IBM 96 caractères[modifier | modifier le code]

Carte perforée pour IBM System/3 comportant 3 lignes de 32 caractères, soit 96 caractères au total.

Lorsque la perforation n'était plus une opération compliquée, il est devenu possible de perforer plus de bits simultanément pour un même caractère, comme cela se faisait déjà depuis longtemps dans le code Baudot. IBM l'a fait en convertissant le codage précédent pour les lettres et les chiffres.

  • Chaque perforation de chiffre 0 à 9 des cartes perforées précédentes devenait codée en décimal codé binaire (DCB/BCD), il s'agit des lignes de bits 1, 2, 4 et 8 sur la carte, offrant 10 valeurs.
  • Les deux perforations supérieures restantes offrent quatre possibilités[6] . Les mêmes caractères qui étaient auparavant codés sur douze bits n'étaient dès lors plus codés que sur six bits.

La carte perforée comporte 3 groupes de 32 caractères, soit 96 caractères au total, chacun sur 6 bits. Il y avait donc 64 caractères possibles. Ce type de carte était également utilisé pour encoder des caractères sur 8 bits en EBCDIC : le groupe du haut combiné avec 2 bits du groupe du bas, ainsi que le groupe du milieu avec 2 autres bits du groupe inférieur formaient 2 groupes de 32 caractères sur 8 bits, soit 64 caractères 8 bits par carte perforée[7].

Notes et références[modifier | modifier le code]

  1. « La mcanographie », sur kerleo.net (consulté le ).
  2. Frank da Cruz, « Herman Hollerith », sur Columbia University Computing History, Columbia University, 2019a (consulté le )
  3. « Carte perforee », sur yves.cornil.free.fr (consulté le ).
  4. « Brief History of Character Codes in North America, Europe, and East Asia », sur super-nova.co.jp (consulté le ).
  5. IBM Corporation, 704 electronic data-processing machine: manual of operation, (lire en ligne) p. 35
  6. The Punched card
  7. Dik T Winter, « 96-column Punched Card Code » [archive du ] (consulté le )