ZX Spectrum
|
Le ZX Spectrum, surnommé Speccy, est un micro-ordinateur domestique de 8 bits, ayant connu un grand succès dans les années 1980, notamment en Grande-Bretagne et en Espagne où il était l'ordinateur domestique le plus vendu. En Allemagne, il existe également une communauté animée d'utilisateurs. Il a été produit de 1982 à 1985 dans sa version originale. Après le rachat de la section informatique de Sinclair par la société Amstrad en 1986, d'autres versions de Spectrum compatibles ont été créées. Au total, environ 5 millions de ZX Spectrum de toutes les versions ont été vendues dans le monde jusqu'à la fin de la production.
Liste des modèles
Voici la liste des modèles du Alpha de DEC :
Modèle | Année de fabrication |
---|---|
ZX-Spectrum | 1982 |
ZX-Spectrum 128k | 1985 à 1986 |
ZX-Spectrum Plus | 1984 |
ZX-Spectrum Plus 2 | 1986 |
ZX-Spectrum Plus 2A | 1987 |
ZX-Spectrum Plus 3 | 1987 |
Programmation
Application | Description |
---|---|
Assembleur Z80 | Langage de programmation Assembleur Z80 qu'utilise le microprocesseur Z80A du ZX Spectrum |
Sinclair BASIC | Langage de programmation Basic intégré au ZX Spectrum |
Présentation du ZX Spectrum
Avant d'examiner le ZX Spectrum en détail, il est utile de considérer la conception du ZX Spectrum à un niveau élevé, en introduisant les principales unités fonctionnelles et la relation entre elles. Celles-ci peuvent être résumées comme suit :
- Microprocesseur Z80A
- Mémoire morte (ROM) de 16 Ko
- Mémoire vive (RAM) 16 Ko
- Mémoire vive (RAM) optionnel de 32 Ko
- Générateur d'horloge
- Générateur vidéo couleur à une résolution de 256x192 pixels
- Encodeur de couleur
- Port d'entrée clavier
- Ports d'entrée/sortie de cassette
- Haut-parleur interne
Le microprocesseur Z80A
Même si le microprocesseur Zilog Z80A est en soi la composante le plus compliqué du ZX Spectrum, ses exigences d'interface sont simples car il ne nécessite rien de plus qu'un signal d'horloge allant jusqu'à 4 MHz et de la mémoire, pour laquelle il fournit un bus d'adresse, un bus de données bus et lire et écrire des signaux de commande. Dans le ZX Spectrum, le Z80 est piloté par une horloge de 3,5 MHz, générée par l'ULA (Uncommitted Logic Array).
Mémoire morte (ROM) de 16 Ko
Le programme entreposé dans la ROM est l'oeuvre de John Grant et Steven Vickers, sous contrat avec Nine Tiles Information Handling Ltd. Le programme contenu dans la ROM ne peut pas être modifié et est la première chose que le Z80 exécute lorsqu'il est allumé. Le message familier «© Sinclair Research Ltd» est généré par la ROM.
Plus important encore, la ROM contient le code nécessaire pour que le matériel du ZX Spectrum fasse quelque chose d'utile. Il surveille l'interface de la cassette avec une telle précision qu'il est capable de différencier les 1 et les 0 binaires, essentiels si les programmes doivent être chargés en mémoire. Il balaye le clavier 50 fois par seconde et détermine quelles combinaisons de touches ont été enfoncées, et il contient un code écrivant la séquence correcte d'octets dans la mémoire d'affichage vidéo pour que les chaînes de caractères de texte s'affiche sur l'affichage du téléviseur.
Mémoire vive (RAM) 16 Ko
Les 16K de RAM présents dans les modèles 16 Ko et 48 Ko du ZX Spectrum sont utilisés par la ROM pour entreposer des variables système importantes et des programmes utilisateur. Une section de cette mémoire est réservée à la mémoire d'affichage vidéo, étant lue par le générateur vidéo 50 fois par seconde en Europe (60 fois par seconde aux États-Unis et au Canada).
La RAM de 16 Ko est de type dynamique et se compose de huit puces DRAM 4116 1 bit (DS4116). En interne, les 4116 dispositifs de 16K RAM contiennent 16384 emplacements, organisés comme une matrice de 128 lignes par 128 colonnes et alimentés par un bus adressé multiplexé de 7 bits. Le microprocesseur Z80 n'a pas de bus d'adresse multiplexé lui-même, de sorte que le ZX Spectrum divise les quatorze lignes d'adresse du microprocesseur requises pour l'accès à la mémoire 16 Ko en deux adresses 7 bits avec une paire de multiplexeurs 4 bits, puis acheminées vers la RAM dynamique. Laquelle des adresses à 7 bits est présentée à la DRAM à un instant donné est déterminée par l'un des nombreux signaux de commande dynamiques de la RAM générés par l'ULA.
Mémoire vive (RAM) 32 Ko
Les 32 Ko supérieurs de RAM sont présents dans les modèles 48 Ko du ZX Spectrum et étaient disponibles en tant que mise à niveau vers les modèles 16 Ko. Comme pour la RAM 16 Ko, cette mémoire est également de variété dynamique et nécessite un bus d'adresses multiplexé, fourni par deux multiplexeurs 4 bits supplémentaires et une logique de contrôle non présente dans les modèles 16 Ko. La RAM elle-même se compose de huit puces DRAM 4532 1 bit.
Générateur d'horloge
Le générateur d'horloge est une sous-composante du ZX Spectrum. C'est le signal d'horloge maître de 14 MHz à partir duquel tous les autres signaux de synchronisation utilisés dans le ZX Spectrum sont dérivés. L'horloge maître est divisée par deux pour fournir l'horloge pixel à 7 MHz et divisée par quatre pour fournir l'horloge de microprocesseur à 3,5 MHz.
Générateur vidéo
Le générateur vidéo lit les premiers 7 Ko environ de la RAM de 16 Ko et génère un signal vidéo à une résolution de 256 pixels de large et 192 pixels de haut contenant les informations d'affichage qu'il y a trouvées. La sortie vidéo se compose d'un signal de luminance et de synchronisation, Y et de deux signaux de différence de couleur, U et V.
Encodeur de couleur
L'encodeur couleur prend les signaux vidéo Y, U et V du générateur vidéo et les combine en un seul signal vidéo composite. Le codage couleur peut être PAL ou NTSC, selon la norme vidéo locale utilisée, et est défini au moment de la fabrication.
Port d'entrée du clavier
Le port d'entrée du clavier échantillonne la matrice du clavier et calcule la combinaison de touches ayant été enfoncée.
Ports d'entrée/sortie de cassette
Les ports d'entrées/sorties de la cassette sont des circuits analogiques associant la tension aux états binaires 0 et 1. Une tension très basse, ou nulle, est associée à l'état 0 et une tension positive plus élevée à l'état 1. Ces tensions sont envoyées et reçues à partir d'un enregistreur à cassette externe et constitue la base de l'entreposage des programmes et des données. Le programme ROM traite les données qu'il écrit sur la cassette avec un algorithme intelligent pour déterminer la séquence exacte des hautes et basses tensions nécessaires pour représenter sans ambiguïté chaque octet de données. Il le fait pour s'assurer que les données peuvent être relues avec précision à partir de la cassette à une date ultérieure.
Haut-parleur interne
Le haut-parleur est un petit haut-parleur à haute impédance dont la bobine peut être excitée en envoyant un 1 binaire au port de sortie auquel elle est connectée, et désactivée en envoyant un 0 binaire. L'alternance entre le 1 binaire et le 0 à une fréquence particulière amène le haut-parleur à osciller à cette fréquence et produire la tonalité correspondante.
La puce ULA
L'ULA (Uncommitted Logic Array) est le coeur du ZX Spectrum. Il joue le rôle de générateur vidéo, de générateur d'horloge de microprocesseur, de gouverneur d'accès à la mémoire, de contrôleur de clavier, d'entrée/sortie de cassette et de contrôleur de haut-parleur. Il coordonne l'accès du microprocesseur à ces ressources afin que l'affichage du téléviseur ne soit jamais interrompu, et effectue la conversion nécessaire entre les signaux analogiques de télévision et d'interface et les signaux numériques utilisés par le microprocesseur.