CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

2/7 - L'Amstrad à la loupeCoding Classeurs Weka

2/7 - L'Amstrad à la loupe

Tout programmeur s'est un jour posé la question : comment donc fonctionne mon ordinateur ?

Beaucoup d'entre vous connaissent le nom de certains composants constituant la carte principale de leur Amstrad-CPC, mais peu connaissent l'interaction de ceux-ci, ce qui assure un fonctionnement correct. Des connaissances de base en micro-informatique sont de plus nécessaires pour étudier un système complet tel que celui de l'Amstrad-CPC, car structurel et logiciel sont intimement liés.

En effet, lorsque vous programmez une instruction Basic aussi simple que

10 PRINT "Bonjour"

Le microprocesseur déploit toute sa puissance de calcul, mais il doit être secondé par la mémoire ROM (ne serait-ce que pour reconnaître l'instruction PRINT), la mémoire RAM (pour sauvegarder temporairement les instructions, mais aussi pour l'exécuter), le contrôleur écranVDU-6845 (qui assure la synchronisation et le rafraîchissement des mémoires dynamiques), le Vidéo Gâte Array (composant qui effectue un travail énorme : commutation RAM/ROM, gestion des couleurs des caractères, interruption du microprocesseur pour vérifier si une touche n'a pas été frappée, ou si un événement ne doit pas être traité entre temps, ...), le PIO-8255 (pour l'interfaçage clavier et la synchronisation par rapport à l'affichage), le générateur sonore (pour, entre autre, l'interfaçage clavier), et nous passons sous silence les buffers de données (74 LS 373, 74 LS 244), les multiplexeurs (74 LS 153), le circuit de cadencement (quartz et opérateurs) qui rythme l'organisation des opérations, et bien d'autres composants logiques assurant aussi des actions vitales.

Chacun des composants ci-dessus considérés un à un pourrait sembler bien simple au niveau de son fonctionnement. Mais il faut savoir que, par exemple, lorsque le contrôleur écran effectue un accès à la RAM, le micro-processeur ne peut pas, lorsque la ROM est sélectionnée, aucune donnée de la RAM ne doit être modifiée, certaines opérations doivent être effectuées dans un ordre logique, qui est imposé par les différentes connexions entre les composants, et la programmation de ceux-ci.

Avouez que le problème n'est pas simple !

Les programmeurs en langage machine auront certainement une petite idée du fonctionnement interne, mais combien savent pourquoi le port imprimante se trouve à l'adresse &EFXX (X remplaçant n'importe quel chiffre hexadécimal), le Vidéo Gâte Array se trouve à l'adresse &7FXX, ainsi que le PAL 16L8A du CPC-6128, le VDU-6845 peut être accédé aux quatre adresses &BCXX, &BDXX, &BEXX, &BFXX, alors que les adresses &F4XX, &F5XX, &F6XX sont utilisées par le PIO-8255 ?

Nous vous proposons donc de décortiquer ensemble votre Amstrad CPC, afin d'en mieux connaître le fonctionnement, et éventuellement de devenir votre propre dépanneur, à l'aide de quelques petites astuces et la maîtrise des interactions entre les composants.

Rassurez-vous tout de suite, aucun coup de fer à souder ne sera nécessaire, toute notre étude se fera sur papier, n'impliquant aucun risque de détérioration de votre machine.

Les plus curieux pourront se permettre d'ouvrir le capot de leur Amstrad pour comprendre l'organisation de la carte maîtresse de tout ce fonctionnement.

Nous débuterons par des généralités sur le fonctionnement des structures à microprocesseurs, largement documentées de schémas, afin que chacun ait une vision globale d'un ordinateur familial, et puisse suivre sans difficulté les explications lors de l'étude du schéma structurel.

Nous nous attaquerons ensuite aux schémas structurels des cartes mères donnés en Partie 2, chapitre 2.1, 2.2 et 2.3, en effectuant un découpage fonctionnel quand cela sera possible (la conception de votre microordinateur nous a donné pas mal de fil à retordre, car la société Amstrad a utilisé au maximum les possibilités de chacun de composants choisis, tout en cherchant à simplifier les connexions notamment dans l'adressage des composants d'interfaçage, le Z80 s'y prêtant bien au prix d'un petit sacrifice logiciel).

Nous appuierons notre étude sur le schéma de l'Amstrad CPC-6128, sachant que pour les CPC-464 et CPC-664, cette étude reste valable, sauf pour la gestion de la deuxième BANK mémoire, qui n'existe pas sur ces deux dernières machines.

Nous nous efforcerons, de toute façon de vous signaler les éventuelles différences de conceptions notoires, bien qu'elles soient minimes : le remplacement d'un composant par un autre n'entraîne pas toujours une modification de la fonction qu'il met en jeu.

Vous trouverez aussi, au fil des explications, des chronogrammes, indiquant l'évolution des signaux dans le temps, relevés par un oscilloscope à mémoire numérique, et qui sont le reflet réel des tensions qui se promènent sur la carte (vous vous apercevrez qu'en fait de promenade, c'est une vraie course contre la montre). Ces signaux sont la copie conforme sur table traçante de ce qui est relevé, et vous pourrez remarquer que, malgré une qualité médiocre de ceux-ci (due aux parasites), le fonctionnement est tout à fait correct.

Les heureux possesseurs de ce type de matériel (au moins l'oscilloscope) pourront vérifier, avec précautions les relevés fournis, et détecter les pannes éventuelles.

★ NOTE: 19e Complément

Page précédente : 2/6 - L'horloge interne

CPCrulez[Content Management System] v8.75-desktop
Page créée en 387 millisecondes et consultée 107 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.