Le Commodore Amiga est l’une des plates-formes les plus mythiques et les plus mémorables de l’histoire de l’informatique et de son matériel. Conçu par une équipe dirigée par Jay Miner, qui avait déjà conçu la console Atari VCS et les ordinateurs Atari 8 bits, les Atari 400 et 800, le Commodore Amiga était une version améliorée et mise à niveau vers 16 bits de leurs conceptions précédentes. . C’était un projet convulsif dans lequel il est d’abord né en tant que console de jeu vidéo pour Atari pour évoluer plus tard en ordinateur pour son rival Commodore et en chemin en tant que projet d’une société indépendante.
Le Commodore Amiga a été lancé en 1985, sous la forme de l’Amiga 1000, mais l’ordinateur dont beaucoup d’entre nous se souviennent sûrement est le Commodore Amiga 500, une version low-cost du premier modèle sorti en 1987 avec un prix réduit et facteur de forme réduit. Comme il avait tout son matériel intégré dans un clavier comme de nombreux ordinateurs similaires de l’époque, son apparence finale ne correspondait pas à l’énorme potentiel qu’il contenait.
En souvenir de cet ordinateur mythique, mais surtout face à ceux qui ne le connaissaient pas, nous avons décidé de lui rendre un petit hommage.
Architecture Commodore Amiga
Parce que dans sosordinateurs.com, nous nous consacrons à parler de matériel, c’est ce que nous allons faire en parlant de l’Amiga, car pour comprendre ce qui le rend si spécial, nous devons parler de son architecture. Dont l’organisation vous pouvez voir dans le schéma ci-dessus, il est vrai que par rapport aux systèmes qui existent aujourd’hui c’est une architecture relativement simple.
Qu’est-ce qui rendait l’Amiga spécial ? L’énorme puissance dont il disposait grâce à ce qui est finalement devenu l’Original ChipSet ou OCS. Une combinaison de trois processeurs de prise en charge des noms féminins nommés : AGNUS, DENISE et PAULA. Quant à son cœur de processeur, il s’agissait du Motorola 68K largement adopté. Quant à la RAM, l’Amiga était une configuration NUMA et donc avec deux puits de mémoire RAM différents, ceux-ci étaient les suivants :
- La puce RAM était incluse en standard dans le système, son accès se faisait via le coprocesseur ou la puce de support AGNUS. Qui a servi de contrôleur de mémoire et permet à tous les composants d’accéder à ce type de mémoire.
- La RAM rapide était à l’usage exclusif du CPU. Un système pouvait fonctionner sans Fast RAM et il y avait même des modèles qui étaient vendus sans, il était donc possible d’utiliser l’Amiga sans ce type de mémoire, mais au prix de beaucoup de perte de performances.
Maintenant, nous allons faire un résumé des différents composants du Commodore Amiga.
Le CPU de l’Amiga, le Motorola 68000
Le processeur principal du Commodore Amiga était le mythique Motorola 68K, qui faisait partie d’une famille de processeurs avec son propre ensemble de registres et d’instructions qui était utilisé dans de nombreux systèmes. De plusieurs familles d’ordinateurs 16 bits (Amiga, Atari ST, X68000, Apple Macintosh). Dans une grande multitude de planches récréatives de différentes entreprises et dans des consoles de jeux vidéo telles que la Sega Mega Drive ou la Neo-Geo de SNK. A un niveau comparatif, on peut dire que le 68K était dans les années 80 ce qu’est ARM aujourd’hui, l’ISA et l’architecture pour tout ce qui n’était pas Intel ou en d’autres termes, le PC.
Il s’agissait d’un CPU de type CISC comme les x86, avec des registres 32 bits, un bus de données externe 16 bits et 24 broches pour l’adressage. La limite de RAM supportée par les systèmes était donc de 16 Mo. Au niveau de la puissance brute, il était légèrement supérieur au 8086 d’origine et inférieur au 80286 du PC AT, donc dans la génération 16 bits, le PC avait le processeur le plus puissant. Ce qui a été aggravé par le fait que la plupart des compilateurs 68K étaient mauvais.
La vitesse d’horloge de sa version NTSC était de 7,16 MHz, ce qui correspond au double de la valeur de la salve de couleurs du format de télévision NTSC. C’est parce que l’Amiga a été conçu pour être connecté à un téléviseur standard et que toutes les vitesses d’horloge du système ont été dérivées des 3,58 MHz de cette salve de couleurs. En revanche, la version PAL était un peu plus lente lorsqu’elle fonctionnait à 7,09 MHz, nous commenterons cette différence plus tard.
AGNUS
Le premier processeur conçu par Jay Miner et son équipe pour le Commodore Amiga est AGNUS, qui contient deux composants différents à l’intérieur. Le premier est le contrôleur DMA qui intègre une fonction appelée Blitter ou Block Transfer et l’autre s’appelle COPPER, qui est combiné avec DENISE pour générer les graphiques du système.
AGNUS n’était rien de plus qu’un contrôleur DMA, un type de dispositif présent dans le matériel qui est responsable de la communication de deux types de mémoire entre eux et de la copie des données sans que le processeur n’ait à participer. Ils servent également à communiquer des données, mais sa plus grande fonction n’était pas seulement la possibilité de copier de gros volumes de mémoire avec sa fonction Block Transfer, mais la capacité de le faire en manipulant les données, bien que de manière très simple par rapport à aujourd’hui en s’appuyant sur sur des instructions booléens simples. A ce jour le Blitter est toujours utilisé dans les GPU, ce sont les ROPS des cartes graphiques qui se chargent de dessiner le buffer image une fois que le GPU a traité la couleur de chacun des pixels à l’écran.
Le dernier des composants qui faisait partie d’AGNUS s’appelait COPPER, un raccourcissement du terme coprocesseur. Il peut être comparé aux processeurs de commande GPU actuels. Qui était chargé de générer l’image à travers une liste d’écrans et de contrôler pour cette fonction le Blitter situé dans le même AGNUS et DENISE, la véritable puce graphique du système. Comme il est curieux que COPPER soit une version avancée d’ANTIC, l’une des puces dédiées à la série d’ordinateurs Atari 8 bits. Considéré par l’architecture et en partageant les mêmes designers que le véritable prédécesseur de l’Amiga.
DENISE
DENISE est la puce graphique du Commodore Amiga, elle est responsable de la génération des graphiques à l’écran, et c’est la troisième conception graphique que l’équipe de Jay Miner a réalisée avec cette fonction. Son origine remonte donc à la puce TIA de l’Atari VCS, mais contrairement à cela, elle n’était pas responsable de la génération de l’audio des jeux.
Sous le nom de DENISE se trouve le processeur chargé de lire la mémoire tampon de l’image et d’envoyer les données à la télévision. Cela a été fait via la sortie vidéo composite et comme il y avait deux formats de télévision à l’époque, il y avait aussi deux versions pour DENISE. Un pour chacune des normes de télévision les plus utilisées.
En interne DENISE sont deux matériels différents, d’une part c’est un processeur avec la capacité de générer le tampon d’image. Ce que j’ai fait pendant la période de dessin de VBlank, dans laquelle rien n’était affiché à l’écran. A cette époque, pendant une bonne partie du temps, les processeurs étaient occupés à ne rien faire, attendant que le système graphique dessine l’image à l’écran. Puisque la RAM qui était habituellement utilisée était un seul canal. L’utilisation de la RAM rapide a atténué cela du point de vue du processeur, mais lorsque DENISE dessinait l’image de l’écran, aucun autre composant du système ne pouvait accéder à la RAM, sauf dans les périodes HBlank et VBlank, au cours desquelles le CUIVRE et le processeur via le Blitter pouvaient changer.
DENISE et les rabots
Les graphiques sur le Commodore Amiga comme les autres systèmes graphiques de l’époque comme l’EGA sur PC sont créés à l’aide de plans de bits. Ceux-ci sont basés sur des tampons d’image à un seul bit qui ont été combinés les uns avec les autres. Ce qui diffère du système de pixels emballés actuel où toutes les informations de couleur d’un pixel sont réunies. Au total, il représentait l’image en utilisant un total de 6 plans de bits, mais 1 a été utilisé pour choisir un niveau de luminosité de la palette ou un autre et les 5 autres bits pour définir l’une des 32 couleurs pouvant être affichées à l’écran.
Puisque le RAMDAC de l’Amiga était de 12 bits, 4 bits par composant RVB, lui donnant une palette de 4096 couleurs. Où il était possible de changer la valeur des registres qui stockaient les 32 couleurs dans chaque ligne de balayage. Ce qui permettait de placer les 4096 couleurs en même temps, mais parce que la vitesse de transfert n’était pas assez rapide cela ne pouvait se faire qu’en images statiques ou avec des taux de rafraîchissement faibles, ce qui a été baptisé mode HAM.
Étant donné que l’Amiga est à l’origine une console de jeux vidéo, ses modes de résolution sont conçus pour être jouables aux résolutions possibles sur un téléviseur. En termes de résolution horizontale, il disposait d’un buffer d’image de 320 ou 64o « pixels » par ligne de balayage et de 200 ou 400 lignes selon que la sortie était entrelacée ou progressive. Dans le premier cas le taux de rafraîchissement était de 25 Hz en PAL et 30 Hz en NTSC, pour doubler en mode entrelacé.
Générer des sprites sur le Commodore Amiga
DENISE, comme les autres puces graphiques de l’époque, disposait d’un générateur de sprites, qui sont des motifs ou des bitmaps qui changent de position dans chaque image, de sorte que leurs caractéristiques étaient définies dans une série de registres en mémoire indiqués généralement par les paramètres suivants :
- La position du bitmap à l’écran de l’image-objet, à la fois horizontalement et verticalement.
- L’orientation, c’est-à-dire d’où le bitmap a été dessiné et dans quelle direction.
- La palette de couleurs utilisée.
- La préférence sur l’arrière-plan et les autres sprites.
Ces informations, à la fois les registres où la position des sprites est marquée, ainsi que les bitmaps qui les composent et leurs palettes de couleurs étaient dans la puce RAM. L’Amiga pouvait stocker les informations de jusqu’à 8 sprites. Mais grâce à…