# Codage des caractères sur carte perforée

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

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$^,$.
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

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. 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..
* 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.
* RADIX-50 (1959) : composé 40 codes, stocke 3 caractères dans un mot de 16 bits en big endian (PDP-11)
* 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. Par la suite, il donna naissance à l'EBCDIC.

## Illustrations
### 1964

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

### Programmation des mainframes

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.
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.

### Carte cyrillique

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

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. 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.