# Color Computer New Generation

Le Color Computer New Génération (CPCNG) est un projet d'ordinateur compatible Amstrad CPC doté d'un processeur plus rapide (eZ80 à 49,7 MHz), des capacités graphiques et sonores plus évoluées, de la gestion IDE (CompactFlash, etc.) et d'une mémoire vive plus importante (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. Il permet de s'amuser et de démontrer les possibilités de l'informatique libre. Le CPCNG a été réalisé par une équipe venant de différents pays à l'initiative d'un Français origine de l'est de la France. Ce projet eut un certain retentissement dans la presse, dans les fanzines (Quasar CPC par exemple).

## 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 1980 (Amstrad, Atari, Amiga…), des ordinateurs qui avaient une "âme", qui étaient programmables avec un hardware fixe.
À 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. À 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 magazine LOGIN: de Posse 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é 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…
À la même époque, des « rivaux » apparurent et notamment le CommodoreONE (ou C-One (en)) de Jeri Ellsworth 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 1980. 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. Kellet et H. Summers) ainsi que des développeurs de logiciels (le Suédois F. Görmacker ou encore l'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.
Les échanges avaient lieu sur la plateforme "Egroups".
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 rester sur un Z380 plus vieux mais plus compatible. C'est le eZ80 qui fut choisi car il offrait des possibilités réseau é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 est équipée comme suit :
* 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
* 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 « Classique », 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. À la différence de SymbOS , 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 logicielle (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

## Liens externes officiels

* http://cpcng.hytherion.com
* http://www.hanssummers.com/computers/cpcng
* http://www.retroleum.co.uk/20110530/ez80p/
* https://subethasoftware.com/2024/03/11/the-color-computer-3-prototype/