Sinclair ZX Spectrum
En jouant avec le chef d'oeuvre de Clive Sinclair
Premiers pas avec le ZX Spectrum
Radiateur pour la ULA et construction d'un câble audio
Modification pour sortie vidéo composite
divMMC Future, un lecteur pour carte SD
Remplacement de la membrane du clavier
ConclusionLinkographie
Introduction
Mon premier contact avec le Sinclair ZX Spectrum a eu lieu au milieu des années 1980, pendant une visite à des copains de mes parents. Je me souviens de cette petite boîte qui était pour moi un ordinateur très intéressant. Mon intérêt vers cette machine n'a pas disparu au fil des années, car elle était plutôt intéressante. Plus de trente ans plus tard, j'ai finalement décidé d'acheter un modèle 48K et, après quelques tentatives infructueuses, j'ai finalement réussi à gagner une enchère sur un site bien connu.
Premiers pas avec le ZX Spectrum
Les Fig. 1 and 2 montrent mon premier Sinclair ZX Spectrum, tel que je l'ai reçu. Il était un peu sale, à vrai dire, mais globalement en très bonnes conditions. Le premier problème était que la personne qui me l'a envoyé m'a donné un bloc d'alimentation d'un ZX81. La tension est la même (9 V D.C. non régulée), mais le courant disponible est légèrement inférieur (1.2 A au lieu de 1.4 A). Par contre, plus important, le câble terminait sur un connecteur jack au lieu du plus moderne barillet qui est utilisé sur le Spectrum. Attention au fait singulier que le Spectrum utilise une connexion avec pin central négatif, ce qui est peu commun. En fait, une connexion incorrecte pourrait endommager une bonne partie des composants.
Fig. 1 : Mon Sinclair ZX Spectrum, tel que je l'ai reçu, avant de le nettoyer à fond.
Fig. 2 : L'arrière de la machine, avec l'autocollant qui indique qu'il s'agit d'une version 48K.
J'ai donc trouvé un connecteur barillet dans mon stock de composants électroniques et j'ai alimenté le Spectrum avec mon alimentation stabilisée de laboratoire. Alimenté à 9 V, l'ordinateur consomme 600 mA et j'ai remarqué que le courant demandé tend à diminuer un peu si la tension augmente. Le bloc d'alimentation originel ne délivre pas exactement 9 V et le Spectrum ne demande pas à cette tension d'être parfaitement stable. En tout cas, le comportement du courant suggère qu'à l'intérieur de l'ordinateur au moins une partie du circuit est alimentée avec un convertisseur à découpage. J'ai donc pu retrouver une vielle télé à 14 pouces et j'ai connecté le Spectrum avec l'entrée antenne, pour ensuite trouver le bon canal de transmission. La figure 3 montre l'écran de bienvenu, bien connu, de la machine Sinclair.
Fig. 3 : L'écran de bienvenu, sur un poste de télévision à 14 pouces, à travers une connexion RF. L'image est en noir et blanc et la qualité globale est loin d'être bonne.
Radiateur pour la ULA et construction d'un câble audio
C'est plutôt risqué d'ouvrir le ZX Spectrum à cause de la fragilité de la membrane du clavier originel. Par contre, en 2018, il est facile de trouver des nouvelles membranes refaites et j'ai eu la bonne surprise de trouver que ma machine en montait déjà une (mais elle n'a pas duré très longtemps, j'ai dû la remplacer en 2020, voir ce paragraphe). J'ai pu donc l'ouvrir sans problèmes et j'ai pu voir qu'il s'agissait d'une version 2 ("Issue 2"), comme montré dans la figure 4. C'est une belle plaque de circuit imprimé, avec la puce ULA à gauche, le processeur Z80 au centre un peu vers la droite, la mémoire morte à la droite du processeur et la mémoire vive en bas de la carte. Une collection de circuits logiques TTL, résistances et condensateurs complète le tout avec le modulateur ASTEC. C'est intéressant de voir une date en français, "28 août 1984" sur le radiateur. A ce propos, le radiateur est utilisé pour un régulateur 7805 et, plus haut, on trouve un inducteur d'un convertisseur à découpage.
Fig. 4 : Comme je m'attendais, mon Spectrum est une version 2 ("Issue 2"). J'ai eu la bonne surprise de trouver une membrane de récente fabrication pour le clavier (non visible dans la photo), mais celle ci n'aura finalement pas duré très longtemps.
J'ai pu utiliser le Spectrum pendant un certain temps et j'ai remarqué que la puce ULA tend à devenir bien trop chaude. En général, je ne me fais pas trop de soucis si des puces sont tièdes, mais en ce cas j'avais des difficultés à tenir un doigt en contact avec elle. Ceci normalement suggère qu'il est une bonne idée d'utiliser un petit radiateur. Il y a peu d'espace autour de la puce avec le couvercle fermé, et donc j'ai opté pour une plaque en aluminium noir que j'ai collé avec deux points d'adhésif avec de la pâte thermique pour augmenter le transfert de chaleur. Le résultat est visible en figure 5.
Fig. 5 : La puce ULA tend à devenir trop chaude pendant une utilisation normale. J'ai mis une petite plaque en aluminium pour en réduire la température.
J'ai ensuite essayé de trouver une façon de charger des programmes depuis un lecteur cassette et pour mes premiers essais j'ai utilisé ma platine stéréo. Il m'a fallu un moment pour me rendre compte que les câbles stéréo ne pouvaient pas fonctionner correctement à cause de la manière avec laquelle la connexion est faite dans le jack EAR du côté du Spectrum. En fait, la pointe du jack est connectée à l'entrée pour signal audio, mais la masse est prise là où sur les jack stéréo on trouve l'anneau associé au canal droit. Comme montré en figure 6, j'ai pu m'y retrouver grâce à quelques câbles avec pinces crocodiles, pour faire facilement des essais.
Fig. 6 : Essais des connections sur l'entrée EAR, pour pouvoir charger des programmes et des jeux.
J'ai fabriqué un câble audio permanent avec deux connecteurs jack, comme montré en figure 7, bien qu'il y a des solutions (par exemple [1]) qui décrivent des approches différentes. J'ai observé que le Spectrum demande un signal d'amplitude plutôt élevée pour pouvoir charger correctement des fichiers. A ce propos, le petit haut-parleur interne du Spectrum doit faire entendre les sons du chargement. En tout cas, la sortie de mon ordinateur portable semble être suffisante pour cela la plupart des fois.
Fig. 7 : Schéma du câble que j'ai fabriqué, avec deux connecteurs Jack mâle de diamètre 3,5mm (dessiné avec FidoCadJ).
Modification pour sortie vidéo composite
Je pouvais donc charger des programmes depuis une cassette ou la sortie de mon ordinateur portable, mais la qualité de l'image visible en figure 8 était épouvantable, en noir et blanc et pleine de bruit. Pendant un moment, j'ai pensé que cela pouvait venir du fait que j'utilisais une télé PAL et mon Spectrum était vendu en France (pays qui utilisait le standard SECAM). Par contre, j'ai appris que tous les Spectrum vendus en Europe sont toujours PAL et que les français devaient utiliser un circuit additionnel plutôt compliqué pour obtenir des signaux RGB utilisables avec une prise péritél.
Fig. 8 : Le chargement fonctionne, mais l'image est toujours en noir et blanc !
Après quelques recherches et après avoir jeté un coup d'oeil à l'oscilloscope au signal vidéo prélevé à l'entrée du modulateur, j'ai conclu que la raison pour laquelle la couleur était absente était que la porteuse générée par le modulateur n'était pas sur la bonne fréquence. J'ai pu résoudre ce problème en rajustant la position du noyau en ferrite qui règle la syntonie du modulateur. L'image était en couleur, mais la qualité restait mauvaise et l'image avait beaucoup de bruit, du moins si je la compare avec ce que j'obtiens avec la sortie composite de mon C128. J'ai donc décidé de modifier le Spectrum pour obtenir une sortie composite, en sautant complètement le modulateur RF. C'est une modification très simple à faire (une description se trouve par exemple en [2]) et le résultat est montré en figure 9. Tout peut être facilement remis à l'état d'origine, ceci étant pour moi très important. J'aime les voitures de collection et j'ai appris avec elles l'importance de l'originalité. Le résultat est magnifique sur un moniteur à tube cathodique professionnel, comme le montre la figure 10.
Fig. 9 : La modification pour obtenir une sortie composite, en évitant le modulateur RF. Le fil jaune aurait pu être plus court.
Fig. 10 : Une très belle image en couleur montrée sur un moniteur Sony PVM, après la modification pour avoir une sortie composite.
divMMC Future, un lecteur pour carte SD
Après quelques semaines, je me suis rendu compte que l'utilisation d'un lecteur cassettes n'était plus vraiment agréable en 2018. Plusieurs jeux sont disponibles facilement en format WAV et peuvent être chargés depuis un ordinateur portable, mais le Spectrum demande un signal plutôt "pêchu" et l'ordinateur que j'utilise pour ce type de choses ne délivrait pas un signal d'amplitude suffisante. Par conséquent, j'obtenais souvent un "load error" et j'étais obligé de relancer le chargement plusieurs fois, en espérant d'avoir de la chance au moins une fois. La seconde difficulté que j'ai eue était que je trouvais plutôt difficile de jouer à n'importe quel jeu avec le clavier en gomme. Ce qui me mettait en difficulté était la disposition des touches, surtout pour ces jeux qui utilisaient les touches curseur. Je ne suis pas du tout habitué à cette disposition ! (les touches 5, 6, 7 et 8 donnent gauche, haut, bas et droite respectivement).
Une solution très utile aux deux difficultés est la divMMC Future (release 1.3), un lecteur de cartes SD que j'ai acheté sur le bien connu magasin en ligne "Future was 8 bit". Le dispositif offre de même une prise pour un joystick en style ATARI. Quelques jours plus tard, j'ai reçu un dispositif très bien emballé en une enveloppe anti-statique, comme montré en figure 11. La figure 12 montre le rendu excellent qu'on a en branchant le dispositif avec le classique ZX Spectrum avec le clavier en gomme : je trouve le résultat très agréable. Le connecteur peut être banche en une seule manière et rien ne peut mal se passer, du moins si l'on pense à éteindre l'ordinateur avant d'installer le divMMC Future. Le divMMC Future est vendu dans un boîtier en plastique noir fabriqué par moulage par injection. Il contient deux boutons : celui du haut contient une diode électroluminescente à deux couleur et peut être utilisé pour activer le lecteur. Le bouton d'en bas est un bouton de remise à zéro. La diode est rouge quand le Spectrum travaille normalement et est verte quand le divMMC Future est en train de contrôler l'ordinateur.
Fig. 11 : Le divMMC sorti de sa boite, mais encore dans l'enveloppe anti-statique.
Fig. 12 : Le divMMC installé sur mon ZX Spectrum 48K.
Quand on allume l'ordinateur, le divMMC Future s'active et fait tourner un certain nombre de tests et recherche des fichiers de système (ESXDOS.SYS, NMI.SYS, BETADISK.SYS) qui doivent être à disposition dans le répertoire SYS dans la carte SD. Le divMMC Future fait tourner esxDOS (qui veut dire "Enhanced Speccy eXperience" DOS), un logiciel embarqué très efficace qui a été développé dans le passé pour des systèmes similaires [4], [5]. Une description intéressante du développement de la carte à l'intérieur de divMMC Future est disponible [6].
Ce qui compte pour nous est qu'on peut parcourir très facilement les répertoires de la cart SD, en actionnant le bouton supérieur présent dans l'interface (celui avec la diode LED). On peut faire cela à tout moment quand l'ordinateur est allumé. La figure 13 montre l'écran d'aide du système de navigation, d'utilisation à vrai dire plutôt immédiate.
Fig. 13 : L'écran d'aide du système de navigation.
La carte SD doit être formatée en FAT-16 ou FAT-32. Il est donc possible de naviguer dans la carte SD et charger tout programme qui est diffusé avec extensions TAP, SCR, SNA, Z80, TRD ou BASIC en utilisant la touche Enter. Le programme se charge immédiatement. C'est tout et, oui, c'est vraiment simple. C'est terriblement efficace et vraiment approprié pour le 21-ième siècle :-)
J'ai acheté une carte SD pre-chargée, de 8 Go contenant des logiciels (et des versions démo pour le Commodore 64). Un archive contenant pratiquement tout logiciel publié pour le ZX Spectrum peut être téléchargé, mais je trouve plus utile sélectionner des logiciels (jeux) de qualité pour ne pas avoir des listes trop longues. Ce n'est pas pratique de naviguer dans un répertoire avec plus de 500 fichiers pour trouver ce qu'on cherche !
Si le joli navigateur n'est pas assez pour vous, le esxDOS modifie plusieurs commandes BASIC (montrés dans le tableau 1) pour permettre une utilisation aisée de la carte SD. La figure 14 montre le résultat d'une commande CAT (qui veut dire CATalogue), commande qui montre le contenu d'un répertoire. Il y a une deuxième classe de commandes qui sont les commandes système. Ce sont les fichiers présents dans le repertoire /BIN et peuvent être lancés par des commandes de la forme ".command", suivis par les arguments. Ils se présentent sous un ensemble qui donne un gout assez "Linuxteux" à l'approche et comprend .ls, .cd, .cp, .mkdir, .more, .chmod et beaucoup d'autres. Dans certains cas, on peut obtenir une aide en tapant "-h" comme argument. Il y a aussi un certain nombre d'API qui se disent compatibles avec le standard POSIX, si l'on désire programmer le système et écrire ses propres commandes.
Fig. 14 : Le résultat d'une commande CAT.
Command | Description |
GOTO [drive] ["path"] | Ouvrir un répertoire. |
CAT [drive] | Montrer le contenu du répertoire courant. |
LOAD drive "path/filename" | Charger un fichier. |
SAVE drive "path/filename" | Sauvegarder dans un fichier. |
ERASE [drive] "path/filename" | Effacer un fichier. |
Tab. 1 : Une liste des commandes BASIC améliorés.
Fig. 15 : Je voulais essayer ce jeu-ci depuis 1987 !
Le ZX Spectrum ne dispose pas à la base d'une prise pour un joystick et celui-ci est un gros désavantage. On peut bien sûr utiliser le clavier, mais je ne trouve pas très intuitives du tout les dispositions des touches choisies à l'époque par les concepteurs de jeux. La divMMC Future fournit une porte qui est compatible avec un joystick ATARI, vu par le ZX Spectrum comme un joystick "Kempston". Aux années 1980's c'était le nom d'une interface très populaire et bien supportée par beaucoup de jeux.
Il n'y a pas beaucoup plus à dire, si ce n'est qu'on peut se relaxer en jouant des jeux, comme montré dans les figures 15, 16 et 17. La divMMC Future est très utile et améliore très grandement l'agrément d'utilisation de ce petit ordinateur. Je ne suis pas le premier à le dire, mais cette interface vaut bien le prix qu'elle coute, même si je l'ai payée pratiquement autant que pour l'ordinateur entier.
Fig. 16 : Jolis graphismes ZX Spectrum.
Fig. 17 : BAT MAN.
Remplacement de la membrane du clavier
Malheureusement, ma curiosité m'a porté à ouvrir un peu trop souvent ce petit ordinateur. Les connecteurs du côté de la membrane du clavier sont extrêmement fragiles et n'ont pas supporté tout cela. J'ai pu les réparer une première fois avec de l'encre conductive, mais après quelques mois j'ai finalement décidé d'acheter une nouvelle membrane. Fort heureusement, on peut en obtenir rapidement et à un prix tout à fait modéré en cherchant sur un site d'enchères bien connu.
La figure 18 montre la nouvelle membrane, telle que je l'ai reçue. J'ai été content de voir qu'au moins visuellement la qualité semblait être au rendez-vous. Démonter l'ordinateur demande une attention particulière pour détacher la plaque métallique de la partie supérieure de la coque en plastique du ZX Spectrum. Ce n'est pas particulièrement difficile, mais on a besoin d'avoir une main adroite et délicate au même temps pour éviter de produire des plis dans le métal, assez fin. La figure 19 montre l'ordinateur avec le clavier démonté, avec l'ancienne membrane encore en place. C'est une bonne idée à ce point de laver avec un peu d'eau tiède et du savon la partie avec les touches en gomme du clavier. Comme l'on peut voir en figure 20, la mienne était modérément sale, mais avait besoin d'un bon bain quand même, vu la couleur de l'eau !
Fig. 18: La nouvelle membrane que j'ai achetée, fabriquée en 2019.
Fig. 19: Démontage du ZX Spectrum. C'est un système tellement simple !
Fig. 20: Un bon nettoyage des touches est utile.
Une fois que le clavier en gomme est parfaitement sec des deux côtés, on peut remettre tout ensemble. C'est assez simple : la membrane peut être positionnée uniquement dans la position correcte et les la connexion peut être faite avec les connecteurs sur le circuit uniquement dans le sens correct. Je n'ai pas eu à changer l'adhésif double qui s'occupe de maintenir la plaque métallique en place contre la structure en plastique, mais j'ai probablement été chanceux. J'ai allumé le petit ordinateur et j'ai pu taper sur le clavier sans aucun souci.
Conclusion
J'aime bien ce petit ordinateur. La première fois que je l'ai pris dans mes mains, j'ai pensé qu'il était tellement petit et pourtant il donnait vraiment une bonne impression. J'aime en quelque sorte aussi le célèbre clavier en gomme et les combinaisons étranges de touches qu'il faut utiliser pour rentrer les commandes BASIC. J'aime bien aussi le dialecte BASIC, un peu étrange. En fait, le ZX Spectrum est différent par rapport à toutes les autres machines que je connais (à part le ZX81, bien entendu). L'interprète BASIC n'est pas un clone de la version Microsoft qu'on trouvait partout à l'époque. Le clavier est différent, les sensations sont différentes, l'apparence est tellement classe en noir avec les bandes colorées sur la plaque métallique. Bref, je pense qu'il était un très bon ordinateur en 1982, j'aime bien l'utiliser aujourd'hui et je ne regrette pas le (raisonnable) prix qu'il m'a couté. Je pense aussi que l'achat d'une interface divMMC Future pour lire les fichiers sur une carte SD et pour jouer avec un joystick est indispensable pour bien profiter de la machine.
Linkographie
[1] - Audio cable: https://retrocomputing.stackexchange.com/questions/773/loading-zx-spectrum-tape-audio-in-a-post-cassette-world
[2] - Composite mod: http://www.retrogamescollector.com/simple-zx-spectrum-composite-mod/
[3] - Future was 8 bit shop, divMMC Future: https://www.thefuturewas8bit.com/shop/sinclair/divmmcfuture.html
[4] - esxDOS website: http://www.esxdos.org/index.html
[5] - History of esxDOS: https://spectrumforeveryone.com/2017/04/history-esxdos-divmmc-divmmc-enjoy/
[6] - Designing the divMMC Future: http://blog.tynemouthsoftware.co.uk/2018/01/designing-divmmc-future.html
Log
February 7, 2020: Added paragraph about the keyboard membrane replacement
June 7, 2018: Page translated in italian language.
May 22, 2018: Translated divMMC Future review in french language.
April 8, 2018: Added divMMC Future review.
February 12, 2018: Added french translation.
February 11, 2018: Added figure 9, about composite mod.
February 10, 2018: first version of the page, in english.
License
This work is licensed under a CC BY, NC 4.0 licence.