# Sixbit

Louis Braille est l’inventeur du premier code six-bit. Plus tard, Un code de caractères six-bit est un type de codage des caractères conçu pour être utilisé sur des ordinateurs ayant des mot-machine de taille multiple de 6. Six bits peuvent coder 64 caractères distincts, et donc ces codes comprennent seulement les lettres capitales, les chiffres, quelques caractères de ponctuation et parfois des caractères de contrôle. De tels codes avec un bit de parité additionnel furent une façon naturelle de stocker des données sur bande magnétique IBM 7 track.

## Origine & Intérêt

L'informatique a longtemps utilisé comme périphériques des matériels d'origine ou d'inspiration télégraphique ou mécanographique. Ces matériels électromécaniques utilisaient des codes alphanumériques assez pauvres, comprenant généralement les 26 majuscules latines de base, les 10 chiffres et diverses ponctuations et symboles. Ces codes semblaient suffisants : c'est ainsi que le langage Fortran a longtemps été basé sur un jeu de 49 caractères, Lisp étant aussi peu exigeant.
Cette approche a permis l'emploi de codes à 6 bits, pouvant représenter jusqu'à 64 caractères, tel que le Sixbit ou le BCD (6 bit).
De tels codes ont été utilisés efficacement dans diverses architectures basées sur un mot-machine de taille multiple de 6.
Par exemple, l'IBM 704 (1954, à lampes) et l'IBM 7040 (son successeur à transistors, 1963) utilisaient un mot de 36 bits, comme certains modèles UNIVAC, ou les PDP 6 et 10.
Ont aussi existé des formats 12 bits (PDP 8), 18 bits (CAE 510), 24 bits (ICL, Harris, Gamma 60 de Bull), 48 bits (Burroughs), 60 bits (CDC 6600 et 6400).
Tous ces formats multiples de 6 trouvaient un avantage structurel à utiliser un code alphanumérique à 6 bits.

### Limites

Cependant, l'absence de minuscules, de lettres accentuées et/ou et de diacritiques semblait en confiner l'usage à des textes lapidaires.
L'apparition des imprimantes à aiguilles (Oki 1968, Centronics 1970, Logabax…) et peu après des terminaux informatiques à écran vidéo (« visus ») permit l'emploi de codes alphanumériques plus riches, généralement à 7 ou 8 bits.
Ces nouveaux codes s'accordaient aux architectures 16/32/64 bits de plus en plus présentes :
* 64 bits avec l'IBM Stretch dès 1961,
* 32 bits avec les IBM 360 (1965) et suivants, CII 10070 et Iris 80, etc.
* 16 @bits (IBM 1130, 1965 ; PDP 11, 1970 ; T 1600 de Télémécanique, 1972 ; Vax, 1975 ; Solar 16, 1975) ;
Quant aux mots de 24/48 bits, ils pouvaient laisser coexister les 2, les codes 6 bits à titre auxiliaire, les codes 8 bits et plus pour les applications textuelles…

## Principe

Le code SIXBIT est très proche du code ASCII : il suffit de rajouter 32 au code ASCII des lettres et chiffres (ou de retrancher 32 aux signes et symboles précédent le caractère @) pour obtenir son équivalent SIXBIT. Il code les lettres (uniquement les majuscules latines de base) et les principaux symboles et chiffres sur seulement six bits, ce qui était très pratique sur les ordinateurs 36 bits. Il était notamment utilisé sur les ordinateurs DEC tels que le PDP-10, DECsystem-10 et DECsystem-20. SIXBIT permet le codage de 64 signes.
En pratique, l'absence de tout caractère de contrôle et des minuscules empêche de l’utiliser pour le codage de textes complets, son usage étant plutôt réservé aux clés simplifiées de recherche ou de tri, ou bien cela nécessite de réserver certains caractères pour représenter les caractères manquants avec une syntaxe spéciale appelé « trigrammes », tels que ??! pour coder |, ??< pour { et ??> pour } en langage C ISO.
Le Six-bit BCD était un code 6-bit non-ASCII utilisé par IBM sur les premiers ordinateurs comme le IBM 704 en 1954 p. 35. Par la suite, il donne naissance à l'EBCDIC.
Une variante du SIXBIT ASCII était incluse dans les cartes vidéos basées sur la puce VDG 6847, comme celles de l'Ordinateur Couleur 1 et 2, et celles du Dragon et les premiers Acorn. Tout comme plusieurs autres variantes de l'ASCII, elles avaient une flèche vers le haut à la place du caret et une flèche vers la gauche à la place du caractère soulignement. Le 7e bit servait à inverser les couleurs. Cela faisait partie d'un code semi-graphique où le 8e bit servait à accéder à 16 caractères additionnels en 8 couleurs, pour un total de 256 codes (64×2+16×8).

## Exemples de codages sixbits BCD (non-ASCII)

CDC 1604 : Magnetic tape BCD codes
CDC 1604 : Punched card codes
CDC 1612 printer codes (business applications)

## Table des caractères SIXBIT (ASCII)

La table de conversion est donnée ci-dessous :
Table des caractères SIXBIT :
| Bits de poids fort | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible | Bits de poids faible |
| Bits de poids fort | 0 000 | 0 001 | 0 010 | 0 011 | 0 100 | 0 101 | 0 110 | 0 111 | 1 000 | 1 001 | 1 010 | 1 011 | 1 100 | 1 101 | 1 110 | 1 111 |
| 00 | SP (0) | ! (1) | " (2) | # (3) | $ (4) | % (5) | & (6) | ' (7) | ( (8) | ) (9) | * (10) | + (11) | , (12) | - (13) | . (14) | / (15) |
| 01 | 0 (16) | 1 (17) | 2 (18) | 3 (19) | 4 (20) | 5 (21) | 6 (22) | 7 (23) | 8 (24) | 9 (25) | : (26) | ; (27) | < (28) | = (29) | > (30) | ? (31) |
| 10 | @ (32) | A (33) | B (34) | C (35) | D (36) | E (37) | F (38) | G (39) | H (40) | I (41) | J (42) | K (43) | L (44) | M (45) | N (46) | O (47) |
| 11 | P (48) | Q (49) | R (50) | S (51) | T (52) | U (53) | V (54) | W (55) | X (56) | Y (57) | Z (58) | [ (59) | \ (60) | ] (61) | ^ (62) | _ (63) |
Par exemple, le caractère “9” sera codé par le nombre binaire 011 001 (25)