# ZX81

Le Sinclair ZX81 est un ordinateur personnel 8 bits, conçu par Sinclair Research et commercialisé par Timex Corporation en mars 1981. Le boîtier est noir avec un clavier à membrane ; l'apparence singulière de la machine vient du travail du designer industriel Rick Dickinson (en).
Successeur du ZX80, cet ordinateur à prix réduit, basé sur un microprocesseur Zilog Z80A cadencé à 3,25 MHz possède 1 ko de mémoire vive pour les programmes et l'affichage. Celui-ci se fait en noir et blanc (24 lignes de 32 caractères) sur un téléviseur standard. L'ordinateur ne possède pas de sortie son.

## Présentation

La conception du ZX81 a pour objectif de produire un ordinateur aux performances certes modestes, mais à un coût raisonnable. Cela passe d'abord par une réduction du nombre des composants et par l'optimisation de leur utilisation. On note à cet égard deux caractéristiques remarquables :
* la présence d'un circuit intégré dédié, l'ULA. Conçu spécifiquement pour le ZX81, il remplace dix-huit circuits TTL standards du ZX80 d'origine ;
* mais le plus astucieux reste sans doute la technique retenue pour le contrôle vidéo qui est assuré par le microprocesseur lui-même. Ainsi la fréquence de 3,25 MHz ne se justifie que pour permettre au Z80 d'être compatible avec la fréquence de balayage horizontal des téléviseurs.
La moitié du temps machine (49,92 % : 192×2×52 µs/(625×64 µs)) est consacrée à tracer les points des matrices de caractères sur l'écran. Le code des programmes de l'utilisateur n'est traité que lors des retours de ligne du tube cathodique et pendant le balayage des zones vides en haut et en bas de l'écran.
La commande FAST permet néanmoins de décharger le microprocesseur du contrôle vidéo. L'écran du téléviseur se couvre alors de neige jusqu'à ce qu'une commande SLOW réactive l'affichage. Les opérations s’effectuent alors deux fois plus rapidement. Rien n'interdit de faire des PRINT ou des PLOT pendant le mode FAST, mais le résultat final n'est visualisé qu'une fois de retour au mode SLOW.
La programmation se fait en Sinclair BASIC en tapant les instructions qui sont imprimées sur les touches du clavier. Le BASIC offre la possibilité de programmer indirectement en langage machine par le biais des commandes PEEK et POKE. La machine est proposée en kit à monter pour 490 FF en 1981.
De nombreux périphériques sont disponibles, dont une extension de mémoire de 16 ko, une imprimante thermique compacte et un clavier à touches qui se colle sur le clavier d'origine. Des logiciels, dont de nombreux jeux, sont commercialisés (Flight Simulation, Cobalt Simulator, Mazzog). Les sauvegardes de programmes et de données sont possibles sur un magnétophone à cassettes.
Son prix (imbattable à l'époque sans les extensions), et surtout son manuel, qui enseigne de façon très pédagogique les notions de programmation en BASIC, en font un très grand succès, malgré ses piètres performances, son BASIC incomplet, sa faible résolution semi-graphique (mais accessible en BASIC) et son manque de couleur. Il est nommé « l'Initiateur » et permet à beaucoup de futurs informaticiens de faire leurs premiers pas à moindre frais et sans grand risque.
La version américaine du ZX81 est le Timex Sinclair 1000, dont la différence fondamentale avec le ZX81 est qu'il dispose de 2 ko de mémoire vive.

## Graphisme

Le ZX81 a un mode texte de 32×24 caractères. L'utilisation de caractères semi-graphiques donne accès à une résolution de 64×48 pixels en monochrome. Le langage Basic rend transparente au programmeur l'utilisation des caractères semi-graphiques via des commandes d'allumage/extinction de pixels appelées PLOT et UNPLOT.
Néanmoins, certains réussissent à créer en assembleur des jeux en 256×192 en monochrome$^,$$^,$$^,$. Ceci est possible car le Z80A gère en direct la sortie vidéo.

## Successeur

Ce micro-ordinateur connaît un successeur, le ZX Spectrum, qui peut se brancher sur un téléviseur couleur et a un clavier avec des touches mobiles et dispose de seize couleurs différentes en simultané ; ainsi que le Sinclair QL, un ordinateur perfectionné mais peu connu.

## Périphériques

Plusieurs périphériques en option permettent soit d'avoir la couleur, soit le son, soit un BASIC étendu, soit des graphismes améliorés ou plus de mémoire. Ces périphériques se branchent derrière l'ordinateur sur un bus d'expansion. L'extension mémoire est de 16, 32 ou 64 ko. Pour la couleur, il faut en plus démonter l'ordinateur et souder un câble sur l'anode de la diode D9 et refermer le tout. Le son est monophonique, de la qualité d'un synthétiseur. Le Basic étendu offre un grand nombre de nouveaux mots clés qui sont autant de fonctionnalités nouvelles. Le ZX81 a certes un prix imbattable (1 000 FF environ), mais en rajoutant une ou plusieurs extensions qui peuvent coûter environ 600 voire 800 FF chacune, l'ordinateur revient cher pour ce qu'il donne en retour.

### Périphérique couleur

Comme cité plus haut, ce périphérique réclame de jouer du tournevis et du fer à souder car il faut souder un câble du périphérique sur l'anode de la diode D9 de l'ordinateur ; un plan du circuit imprimé avec le branchement est toutefois livré avec le périphérique.
Les curseurs disparaissent et deviennent des bandes de couleurs chacune différentes : le curseur F devient une bande verte, le K une bande blanche, le G une bande magenta et le L une bande jaune. Une palette de seize couleurs est disponible pour le jeu :
* blanc, touche 4 inversé ou CHR$ 160
* jaune, touche 5 ou CHR$ 161
* bleu clair, touche 6 ou CHR$ 162
* vert clair, touche 7 ou CHR$ 163
* fuchsia, touche 8 ou CHR$ 164
* rouge, touche 9 ou CHR$ 165
* bleu, touche A ou CHR$ 166
* gris foncé, touche B ou CHR$ 167
* gris clair, touche C ou CHR$ 168
* kaki, touche D ou CHR$ 169
* cyan, touche E ou CHR$ 170
* vert, touche F ou CHR$ 171
* magenta, touche G ou CHR$ 172
* carmin, touche H ou CHR$ 173
* bleu marine, touche I ou CHR$ 174
* noir, touche J ou CHR$ 175
Exemple :
* 10 PRINT CHR$ 166
* 20 PRINT "hello world"
donne la couleur bleue au terme « hello world ». Ainsi de suite pour chaque terme à colorer.

### Périphérique audio

Il offre un son mono sur trois voies qui fonctionne même avec 1 ko de RAM. Les actions suivantes sont ainsi possibles :
* créer des sons ;
* ajuster des fréquences ;
* augmenter le volume sonore ;
* obtenir différents timbres ;
* etc.
Les trois voies possèdent deux registres : un 8 bits et un 4 bits. La bande sonore varie de 24 à 101 563,50 périodes. Le volume varie de 0 à 15 sur chaque registre. Le timbre varie de 1 pour les bruits « secs » à 31 pour les bruits « sourds » (5 bits). La durée de l'enveloppe varie jusqu'à 65 536 sortes de durée.

### Périphérique du Basic étendu

Il apporte de nouveaux mots clé qui apportent de nouvelles fonctionnalités comme le scrolling de l'écran, haut, bas, gauche, droite ; ainsi que la création graphique de cercles, de carrés et l'affichage de textes géants, la possibilité de connaître le nombre d'octets en mémoire, d'utiliser la carte son plus facilement, de stocker des données chiffrées dans des programmes, de mettre des caractères en minuscules.

## Jouer sur ZX81

Ordinateur considéré à son époque comme le premier ordinateur familial en kit en France, sa résolution et sa capacité mémoire (1 ko) ne permettent pas énormément de prouesses au niveau des jeux. Néanmoins quelques produits sont édités, vendus dans des magasins spécialisés d'électronique, magasins qui accueillent volontiers les productions de quelques développeurs en herbe. Les cassettes (supports de l'époque) n'ont pas les mêmes canaux de distribution que les jeux connaissent à la fin des années 1980. Elles sont distribuées et vendues dans des réseaux de conventions d'utilisateurs. On peut retrouver des titres comme Flight Simulator : dans cette version, l'écran ne fait apparaître que du texte et trois gros carrés indiquant la ligne d'horizon. D'autres jeux sont édités dans des magazines, comme le magazine Hebdogiciel. Certains jeux sont des adaptations de jeux existants que l'on peut apprécier dans les fêtes foraines, comme le célèbre Space Invaders, ou encore une adaptation des jeux de console de l'époque (comme Pong ou la bataille de char). Quelques jeux ne connaissent cependant que le ZX81 comme support (certains édités par Hebdogiciel) :
* Bank : un jeu graphique où des pixels doivent s'échapper d'un labyrinthe en récupérant de l'argent ;
* Utopia : un jeu mi-texte/mi-graphique où le joueur choisit parmi trois classes de personnages (Guerrier, Clerc ou Magicien) et doit conquérir un pays en combattant des monstres ;
* Infernalex : un jeu graphique où il faut désamorcer une bombe en un minimum d'essais.