
Nostalgie de geek : programmer sur le ZX Spectrum
Le ZX Spectrum, comme de nombreux ordinateurs des années 80, fonctionne avec le langage de programmation Basic. Avec un émulateur ou une réplique matérielle, vous pouvez encore programmer des jeux vous-même aujourd'hui. Cependant, la saisie de texte particulière nécessite une explication.
La plupart de ceux qui ont été devant un ordinateur dans les années 80 connaissent probablement le Commodore 64. Le ZX Spectrum est moins connu. Et ce, bien qu'il ait coûté beaucoup moins cher malgré un concept similaire.
Comme le C64, le ZX Spectrum est sorti en 1982 et a la forme d'un clavier dans lequel l'ordinateur est intégré. À l'époque, un téléviseur à tube cathodique servait généralement d'écran. Les deux ordinateurs fonctionnent avec Basic et sont bien adaptés aux jeux. Le ZX Spectrum est globalement un peu plus faible, il a par exemple moins de mémoire vive (48 au lieu de 64 Ko), un son moins bon et un clavier – pour être gentil – économique. Il a surtout eu du succès dans son pays d'origine, la Grande-Bretagne, ainsi qu'en Espagne.
Autre point commun : on peut facilement programmer ses propres jeux avec. Comme je l'ai déjà fait avec le C64, j'essaie aussi ici.
Le Spectrum : presque comme l'original, mais avec un confort moderne
Depuis fin 2024, Retro Games propose « The Spectrum », une réplique du ZX Spectrum. Le principe est le même que pour The C64. Reconstruit le plus fidèlement possible à l'extérieur, l'ordinateur fonctionne à l'intérieur de manière complètement différente de l'original : un émulateur tourne sur un processeur Arm.
Je ne m'en rends pas compte, l'émulateur se comporte en grande partie comme l'original. Les anciennes interfaces sont absentes, mais il y a de l'USB et de l'HDMI avec le processeur moderne. On peut charger n'importe quel jeu via une clé USB. The Spectrum est livré avec 48 jeux intégrés. Pour chaque jeu, on peut sauvegarder quatre états de jeu et il y a une fonction de rembobinage qui permet de revenir à n'importe quel point des 40 dernières secondes.
Passer à l'environnement de programmation
Avec « The Spectrum », on peut aussi écrire ses propres programmes. Pour cela, il faut passer en mode classique. Celui-ci est assez bien caché : avec la touche espace (elle aussi un peu cachée en bas à droite), on accède aux options, puis avec la touche 6, qui est aussi la flèche vers le bas, on accède à « Advanced options ». On confirme avec M et lors de la sélection suivante, on choisit « Switch to classic mode ». Dans le même menu, on peut aussi configurer l'ordinateur pour qu'il démarre directement en mode classique.
Bien sûr, vous pouvez aussi programmer dans un émulateur sur votre ordinateur habituel. Les deux ont des avantages et des inconvénients, comme vous le verrez bientôt. J'utilise Fuse comme émulateur.
Comment fonctionne la saisie sur le Spectrum ZX
Le ZX Spectrum a une méthode de saisie de texte très particulière. Avec la réplique matérielle, vous avez le clavier correspondant, y compris toutes les inscriptions. Dans l'émulateur, vous devez travailler avec un clavier normal, ce qui est très fastidieux au début.
En mode classique ou sur le ZX original, vous ne voyez au début qu'une zone grise avec un avis de copyright. Si vous commencez à taper, le curseur clignote et affiche une lettre. Mais ce n'est pas la lettre que vous avez tapée en dernier. Cette lettre indique le mode actuel.
- « K » signifie Keyword. Dans ce mode, l'ordinateur n'écrit pas la lettre lorsque vous tapez une lettre, mais la commande Basic qui est écrite en blanc sur la touche correspondante. Par exemple, si vous tapez un « P », « PRINT » apparaît à l'écran.
- « L » signifie Letters, c'est-à-dire des lettres. Saisie normale en minuscules.
- « C » signifie Capitals, c'est-à-dire des majuscules. Vous passez des minuscules aux majuscules avec Shift+2.
- « E » signifie Extended Mode, c'est-à-dire mode étendu. Cela permet d'activer les commandes écrites en vert. Si vous appuyez également sur Shift, vous accédez aux mots écrits en rouge.
- « G » signifie Graphics Mode. Avec les touches 1 à 8, vous pouvez écrire des caractères graphiques ASCII pour dessiner des mosaïques, des blocs, des lignes épaisses et des choses similaires.
Il existe des raccourcis clavier pour les commandes Basic sur de nombreux ordinateurs des années 80. Mais ce qui est inhabituel, c'est qu'ils sont obligatoires : vous ne pouvez pas taper une commande Basic avec des lettres individuelles. L'ordinateur ne la reconnaît pas comme telle ; de plus, vous ne pouvez même pas commencer une ligne avec des lettres individuelles. La saisie commence toujours par le mode K ou E.
C'est assez agaçant au début. Car même si vous maîtrisez la dactylographie à dix doigts, vous travaillez avec le système de l'aigle jusqu'à ce que vous sachiez enfin par cœur où se trouve quelle commande. Mais à partir de là, le concept est efficace. C'est aussi nécessaire avec le clavier en caoutchouc, car la frappe est difficile avec.

Si vous travaillez avec l'émulateur, vous ne voyez pas les commandes sur votre clavier. Le tableau sur la page Wikipédia sur Sinclair Basic vous aidera. Avec ⌘-K, je peux afficher le clavier du Spectrum dans Fuse, mais la saisie ne fonctionne plus – probablement un bug. J'en ai donc fait une capture d'écran.
Renumeroter automatiquement les lignes
Le ZX Spectrum ne connaît pas de commande pour renuméroter automatiquement un programme et adapter toutes les références. C'est pourtant important : même si vous numérotez les commandes par pas de dix au début, il peut arriver que vous ayez trop peu de place entre deux lignes pour du code ajouté ultérieurement.
Avec le C64, j'ai écrit les programmes sur mon ordinateur normal, puis je les ai copiés dans l'émulateur via le presse-papiers pour les tester. La renumérotation serait donc également possible avec un logiciel externe. Cependant, l'insertion via le presse-papiers ne fonctionne pas avec l'émulateur Fuse. J'ai néanmoins trouvé une solution de contournement pour l'émulateur. Pas sur la réplique rétro.
La solution de contournement : la ROM espagnole pour le Spectrum ZX 128 a une commande NUMERO. Curieusement, il n'y a pas d'équivalent dans la ROM standard. Cette commande renumérote la liste. Le premier argument indique la ligne de départ, le second l'incrément. La ROM espagnole peut être chargée dans Fuse. Comme le Spectrum 128 est rétrocompatible, le programme peut être chargé, renuméroté et sauvegardé à nouveau. Dans la réplique rétro, je peux passer du Spectrum 48K au 128K, mais je ne peux pas charger mes propres ROMs.
Autres particularités du Basic sur le ZX Spectrum :
- La commande LET est obligatoire. Une ligne « x=1 » ne fonctionne pas, il faut écrire « LET x=1 ».
- Les noms de variables pour les tableaux et les chaînes de caractères ne doivent avoir qu'une seule lettre. Pour les nombres, des noms plus longs sont possibles.
- THEN après IF est obligatoire. De même, GO TO après THEN ne peut pas être omis.
- Il n'y a pas de déclaration ELSE.
- La commande DIM commence avec l'index 1. Dans de nombreux dialectes Basic, elle commence avec 0.
- Plusieurs commandes par ligne sont possibles et sont séparées par un deux-points. Cependant, il faut noter que l'interpréteur saute directement à la ligne suivante si la condition n'est pas remplie dans une instruction IF.
La programmation de « Mastermind »
Mastermind est un jeu de réflexion pour deux personnes datant de 1970, issu du monde analogique. En fait, une seule personne joue par tour, l'autre ne fait que donner un feedback. « Mastermind » est donc parfait pour une adaptation informatique en jeu solo.
Hermex Mastermind Jeu de décryptage Jeu d'emboîtement Jeu de logique Jeu de déchiffrement de codes
Anglais, 2 Joueur
Six couleurs différentes sont disponibles pour la combinaison de couleurs. À cela s'ajoutent le noir et le blanc pour signaler le feedback. Le noir signifie que la pierre a la bonne couleur et est à la bonne position. Le blanc signifie que cette couleur est présente, mais pas à cet endroit.
Huit couleurs, cela correspond au ZX Spectrum : celui-ci peut afficher huit couleurs dans deux niveaux de luminosité chacun, soit un total de 16 couleurs. Cependant, les différences sont difficiles à distinguer pour les couleurs plus foncées et presque impossibles pour le noir. La différence est la plus nette pour le blanc : dans la version foncée, c'est du gris. J'étais content de cette neuvième couleur, car l'arrière-plan devait avoir une couleur différente de celles utilisées dans le jeu.
La seule difficulté dans la programmation du jeu était l'algorithme pour le feedback correct. Les tentatives initiales ne fonctionnaient correctement que dans certains cas – par exemple, si chaque couleur n'apparaissait qu'une seule fois. L'algorithme correct et final vérifie la réponse une fois pour les coups directs (noir) et une fois pour les demi-coups (blanc). Il marque tous les coups pour qu'ils ne soient pas comptés deux fois.
Sauvegarder et charger un programme
J'ai programmé le jeu dans l'émulateur, principalement en raison de la possibilité de numérotation automatique des lignes décrite ci-dessus. Au final, je veux quand même pouvoir y jouer sur le matériel Spectrum. Pour cela, je crée un fichier tzx avec la commande de menu « Media > Tape > Save As ». Il s'agit d'une image de cassette – le support de stockage courant pour le ZX Spectrum. Comme The Spectrum est aussi un émulateur sous le capot, il peut lire les fichiers tzx. Pour charger le programme sur un vrai ZX Spectrum des années 80, il faudrait créer un fichier son à partir de l'image avec un outil auxiliaire et le lire ensuite.
Voici comment charger un fichier tzx dans The Spectrum :
- Insérez la clé USB avec le fichier dans un emplacement libre.
- Naviguez vers la gauche avec la touche 5 à travers les jeux jusqu'à ce que le symbole USB apparaisse.
- Appuyez sur « M », puis sélectionnez le jeu dans le navigateur de fichiers et lancez-le avec « M ».
- Tapez « R » pour entrer la commande « RUN », puis la touche Entrée.
Voici comment charger un fichier tzx dans Fuse :
- Ouvrez le fichier avec « File > Open File ».
- Tapez « R » pour « RUN » + Entrée.
Voici Mastermind sous forme de fichier tzx compressé. Un émulateur en ligne pour un essai rapide est JSSpeccy.
Mon intéret pour l'informatique et l'écriture m'a mené relativement tôt (2000) au journalisme technique. Comment utiliser la technologie sans se faire soi-même utiliser m'intéresse. Dans mon temps libre, j'aime faire de la musique où je compense mon talent moyen avec une passion immense.
Des informations intéressantes sur le monde des produits, un aperçu des coulisses des fabricants et des portraits de personnalités intéressantes.
Tout afficher





















