- Color Computer New Generation
-
Le Color Computer New Generation (CPCNG) est projet d'ordinateur compatible Amstrad CPC doté d'un processeur plus rapide (eZ80 à 49,7 MHz), de capacités graphiques et sonores plus évoluées, de la gestion IDE (CompactFlash, etc.), d'une mémoire vive plus grande (512 Kio dans le modèle de base). C'est un ordinateur partiellement libre de droits, sans souci de concurrence avec le PC ou le Mac. Projet pour s'amuser et démontrer les possibilités de l'informatique libre.
Sommaire
Contexte de l'époque
Au début des années 2000, le mouvement "Revival" prend de l'ampleur : de plus en plus de passionnés d'informatique ayant 25, 30 ans ou plus ne se retrouvent plus dans l'informatique sclérosée et ennuyeuse de l'époque : ils ont la nostalgie des machines des années 80 (Amstrad, Atari, Amiga...), des ordinateurs qui avaient une "âme", étaient programmables avec un hardware fixe.
A la même époque, la popularisation des FPGA (des puces programmables) rend possible l'émulation de vieilles machines, voir la création de nouvelles machines. A l'époque, d'ailleurs, on parle encore d'Amiga nouvelle génération, d'un compatible Atari (le Hadès), de descendants du QL (le Q40), de l'Oric, du Sinclair etc. C'est aussi l'époque où le magasine LOGIN: de Poss Press parle encore d'informatique alternative.
Un groupe de développeurs français se constitue, d'abord à travers les petites annonces du journal Les Puces Informatiques puis via des mailing-lists sur Internet...
L'idéal des développeurs était le suivant : proposer une machine complète, stable et programmable pour s'amuser. Certains avaient même proposés de réaliser un boitier en clavier afin de reprendre le look'n'feel de l'époque. Mais cela n'alla jamais plus loin que la simple idée...
A la même époque, des "rivaux" apparurent et notamment l'excellent CommodoreONE (ou C-ONE) de Jeri Ellsworth (http://c64upgra.de/c-one/) qui était un ordinateur entièrement construit autour de FPGA et donc totalement reprogrammable.
Un travail né du fruit d'une collaboration internationale
Cette machine a été construite grâce au travail de développeurs du monde entier, un peu sur un modèle similaire au développement du système Linux. L'équipe était composée de bénévoles et était baptisée "CPCNG Design Team". Le projet prit naissance en France, pays où le CPC avait connu un franc succès dans les années 80. Très vite, des développeurs de plusieurs pays se sont joints à eux : un designer de circuits électroniques (l'américain D. Beattie Jr qui réalisa la carte du prototype), des spécialistes dans le design de puces programmables (les anglais M. Kelett et H. Summers) ainsi que des développeurs de logiciels (le suédois F. Görmacker ou encore le allemand S. Heinisch). La gestion du site internet fut assurée par le grec T. Pappasselikas et le Roumain A. Pintilie aida dans le domaine de la communication.
Autour de ce petit noyau actif ont gravité des personnalités du secteur du "revival informatique" comme d'anciens démomakers ou des membres d'associations françaises de défense du patrimoine informatique.
Un amusant brainstorming intellectuel
Ce projet fut l'occasion d'un partage d'idées originales afin de rendre la machine la plus intéressante possible.
La 3D étant à la mode à l'époque et l'équipe n'ayant point les moyens de développer une puce 3D dans un FPGA, certains avaient émis l'idée de favoriser la création de textures par le biais d'un générateur de courbes fractales implanté en "dur" dans le processeur graphique. Il suffisait ainsi de quelques paramètres stockés dans une petite RAM annexe pour générer des décors de qualité.
D'autres membres, à l'instar de F. Görmacker, voulaient proposer un GPU (Graphics Processing Unit) se composant d'un processeur dédié et d'une RAM indépendante du reste du système le tout joint à de simples fonctions AND, XOR implémentées dans le FPGA.
Toujours dans la partie vidéo, il avait été imaginé la gestion en "hard" de sprites redéfinissables en temps réel et avec 255 niveaux de transparence : là encore on pouvait soulager la tâche du processeur central et avoir un ordinateur très réactif. La même idée avait été soulevée pour la gestion de fenêtres afin d'avoir une machine pouvant utiliser un petit environnement graphique ultra-réactif.
Pour la partie sonore, une puce générant 8 canaux avec un décodeur interne WAV (ou OGG VORBIS) fut proposée afin d'alléger la tâche du processeur central.
Certains proposèrent aussi d'avoir une petite mémoire statique comme sur les calculettes à destination des programmeurs souhaitant stocker des paramètres complémentaires pour le système d'exploitation.
Le choix du eZ80
Le eZ80 venait d'arriver sur le marché. L'équipe était divisée : fallait faire le choix de ce processeur haute performance ou resté sur un Z380 plus vieux mais plus compatible. Le choix qui fut fait fut celui du eZ80 qui offrait des possibilités réseaux étendues et était assez compatible grâce à un mode "Z80". De plus, dans un tel projet "amateur", il est difficile de prendre un processeur dont la cadence est supérieure à 50Mhz car cela pose ensuite des problèmes de conception de carte mère (le coût augmente car il faut mettre certains produits sur la carte afin d'en assurer le bon fonctionnement).
Caractéristiques techniques officielles
Les caractéristiques ci-après sont celles du prototype 1.0 qui n'implémente pas de cartes graphique ou sonore évoluées. La dernière version date de 2006.
- eZ80F91
- Xilinx Spartan-II FPGA
- 512 Kio de RAM
- 512 Kio de Video RAM
- Interface pour clavier PS2
- Interface pour souris PS2
- Port série #1 compatible souris
- Port série #2 compatible modem
- Lecteur CompactFlash de type II
- Interface ethernet (10/100-Base-T)
- Sortie VGA
Le CPCNG dispose de deux modes de fonctionnement. Dans le premier, dit « mode NG », le processeur eZ80 fonctionne à pleine puissance en mode ADL (AD Long) où il gère jusqu'à 16 Mio de RAM en linéaire. Mais, si l'utilisateur le souhaite, le CPCNG peut basculer en mode « Classic », où les entrées/sorties sont redirigées de manière à rendre la machine compatible avec le CPC 464. la compatibilité avec les CPC Plus n'a jamais été assurée, les développeurs estimant le gain (en logiciels) négligeable.
La partie logicielle
Dans un souci de rapidité de développement, l'équipe CPCNG proposait d'utiliser OS-X (également connu sous le nom de ZyliX), un OS écrit en TML2 et optimisé à l'origine pour le Z80 par le Suédois Francis Görmacker et dont le code source était librement disponible. D'autres systèmes avaient été envisagés (de petits systèmes Unix déjà existants pour Z80/eZ80 ainsi que SymbOS).
ZyliX était un système de type Unix, proposant un mode console et un multitâche préemptif. A la différence de SymbOS (www.symbos.de), il n'était pas doté d'une interface graphique utilisateur.
Par dessus s'ajoute une couche logicielle proposant un interpréteur BASIC, appelé NGBasic. Ce dernier reprenait les mêmes mots clés et la même syntaxe que le BASIC de Locomotive Software Ltd mais ajoutait quelques fonctions non existantes (CIRCLE par exemple). La première version de NGBasic avait été écrite en TML2 car c'était le seul compilateur qui existait sous ZyliX.
Une machine libre de droits
Le CPCNG est disponible librement sur le web mais CPCNG Design Team n'autorise son exploitation qu'à des fins d'utilisation personnelle ou pédagogique. Il est strictement interdit d'exploiter commercialement, dans son intégralité ou par utilisation des parties spécifiques, le design du CPCNG.
Aujourd'hui, le design de la carte mère est toujours disponible (voir liens ci-après) alors que la partie logiciel (ZyliX et NGBasic) sont perdus.
Dans la presse
Le projet eut un certain retentissement dans la presse : des articles en Roumanie (sous l'impulsion de A. Pintilie), en France (L'Echo du Village, Le Virus Informatique...), en Allemagne (Heise.de...).
Postérité
CPCNG fut le premier gros projet construit autour du eZ80. Il fut suivi par le SparkyEZ (remake du Sinclair Spectrum) et surtout du EZ80P, une splendide machine dont on parle sur le site Retroleum.co.uk http://www.retroleum.co.uk/20110530/ez80p/
Liens externes officiels
Wikimedia Foundation. 2010.