Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Dossier : Aperçu technique de l'Amiga de présérie
(Article écrit par Sheldon Leemon et extrait de Creative Computing - septembre 1985)
|
|
Qu'est-ce qui le rend si génial ?
L'Amiga est une créature composée de plusieurs parties, fonctionnant sur plusieurs niveaux différents. Au
niveau le plus bas se trouve le matériel, le "corps" physique de l'ordinateur. Le microprocesseur, un 68000
16/32 bits fonctionnant à 7,8 MHz, est le même que celui utilisé dans le Macintosh d'Apple. Mais c'est l'ensemble
des trois puces VLSI spécialisées de l'Amiga qui distingue la machine de la concurrence. Sous les noms de code
Agnes, Daphne et Portia, ces puces agissent comme de puissants coprocesseurs qui soulagent le 68000 de nombreuses
tâches fastidieuses, y compris la maintenance de l'affichage de l'écran, l'animation graphique, l'interrogation
des ports du clavier et de la souris, les entrées/sorties des disques et le contrôle des périphériques, ainsi
que la génération du son.
En utilisant jusqu'à 25 canaux DMA (accès direct à la mémoire qui leur permet de contourner le processeur et
d'adresser directement la mémoire), ces puces peuvent en fait effectuer leurs tâches de manière autonome,
laissant le processeur libre de faire des calculs (ce qu'il fait le mieux). La distribution du DMA système
permet au son à quatre canaux, à un écran de 16 couleurs en mode basse résolution ou de 4 couleurs en mode
haute résolution, et aux entrées/sorties de disque de fonctionner simultanément tout en maintenant une
fréquence de 7,1 MHz dans le fonctionnement du 68000.
Précisons un peu plus les types de tâches effectuées par les puces spécialisées. Tout d'abord, nous allons
examiner les sous-systèmes graphiques. Dans tous les modes bitmap. Cela signifie qu'il n'y a pas de
mode spécial texte seul comme celui disponible sur l'IBM PC, et par conséquent aucune restriction sur le
mélange de texte et de graphismes sur le même écran dans n'importe quel mode.
Les deux modes d'affichage de base sont le mode basse résolution dans lequel il y a 200 lignes de 320 points
chacune, et le mode haute résolution qui affiche 640x200 points. En mode basse résolution, les caractères
de texte peuvent être placés sur l'écran de manière à afficher 25 lignes de texte de 40 colonnes, et en
mode haute résolution, 80 colonnes peuvent être affichées sur un moniteur monochrome ou RVB haute résolution,
tandis qu'un texte de 64 colonnes peut être utilisé avec un téléviseur ordinaire. Les écrans haute et basse
résolution peuvent fonctionner en "mode entrelacé", ce qui permet de doubler la résolution verticale à 400
points (tout en ajoutant un peu de scintillement).
L'écran bitmap normal est appelé "playfield" (champ de jeu ou structure d'écran). L'Amiga gère l'affichage de deux
champs de jeu séparés sur l'écran en même temps, avec un système de priorité sélectionnable qui détermine lequel
sera superposé à l'autre. Ces champs de jeu peuvent être déplacés individuellement dans n'importe quelle direction.
Le mécanisme de sélection des couleurs est extrêmement souple. Étant donné que chaque bit de résolution
couleur nécessite une bonne quantité de mémoire d'affichage (8000 octets en mode basse résolution non
entrelacé et 16 000 en mode haute résolution), le système permet à l'utilisateur de choisir le nombre
de bits de résolution couleur qu'il souhaite, et de stocker chaque bit de résolution dans son propre plan de bits.
La puce graphique possède des registres d'adresse individuels pour chaque plan de bits, de sorte que la
mémoire de l'écran n'a pas besoin d'être située à un endroit fixe comme sur PC, ni même d'être contiguë pour
des raisons matérielles.
Les informations relatives à l'affichage de l'écran peuvent être situées n'importe où dans les 512 ko inférieurs
de la mémoire. En mode basse résolution, la machine gère simultanément 2, 4, 8, 16 ou 32 couleurs à l'écran.
En mode haute résolution, il peut y avoir 2, 4, 8 ou 16 couleurs. Il existe même un mode spécial (Hold And Modify)
dans lequel les 4096 couleurs peuvent être affichées simultanément.
Les couleurs sont sélectionnées par un mécanisme de registre indirect. Chaque point de l'écran pointe vers
l'un des 32 registres de couleur matériels de 2 bits et est "peint" avec la couleur trouvée dans ce registre.
En mélangeant des combinaisons de quatre bits de rouge, de vert et de bleu, l'utilisateur sélectionne la
couleur pour chaque registre parmi une palette de 4096 couleurs possibles.
Animation par sprites
En plus du système graphique des champs de jeu ("playfields"), l'Amiga gère les sprites. Les lecteurs qui connaissent les
ordinateurs Commodore 64, Atari et TI 99/4 savent que les sprites sont un système graphique séparé
d'objets d'écran définis par l'utilisateur qui sont superposés à l'affichage graphique normal. La
puce graphique de l'Amiga gère jusqu'à huit sprites par ligne de balayage horizontale. Chaque sprite
peut avoir une largeur de 16 points et une hauteur de 1 à 200 points, et utiliser jusqu'à quatre couleurs
(les sprites partagent certains des 32 registres de couleurs du champ de jeu). Des paires de sprites peuvent
être combinées pour obtenir jusqu'à 16 couleurs par sprite. Comme dans la plupart des systèmes de ce
type, le matériel gère les priorités sélectionnables et la détection des collisions qui signale lorsque
deux sprites ou plus se chevauchent.
Les sprites constituent une solution matérielle au problème de l'animation. Sur la plupart des micro-ordinateurs,
l'animation d'un bitmap (carte de bits) nécessite beaucoup de programmation. Pour dessiner un objet bitmap
à l'écran, le programmeur doit d'abord sauvegarder l'image de fond, puis superposer l'image de l'objet bit
par bit. Pour déplacer l'objet, il doit restaurer l'ancienne image de fond, calculer l'adresse mémoire de
la nouvelle position de l'écran, sauvegarder l'image de fond à la nouvelle position, puis redessiner l'objet.
L'Amiga dispose d'une autre solution, un dispositif matériel connu sous le nom de "Blitter". Le Blitter
déplace des blocs de bits de données à une vitesse très élevée. Bien qu'il soit utilisé principalement pour
déplacer des données d'écran, il est également utile pour d'autres types de déplacements de mémoire à grande
vitesse (comme remplir la mémoire avec des zéros). Pour animer une image bitmap, le programmeur définit
d'abord un objet Blitter (j'aime l'appeler "blob") en spécifiant l'emplacement de son contour sur l'écran.
À partir de là, il lui suffit de dire "déplace-le", et le Blitter s'exécute immédiatement. Contrairement
aux sprites, il n'y a pas de limite au nombre de blobs qui peuvent apparaître à l'écran en même temps, et
un blob peut être de n'importe quelle taille et utiliser autant de couleurs que l'affichage de l'écran le permet.
Le seul inconvénient de l'utilisation des blobs est qu'il y a un peu plus de charge processseur pour en créer
un que pour créer un sprite, et si vous essayez d'animer trop de blobs à la fois, cela peut ralentir le système.
Pour éviter que des "déchets" n'apparaissent à l'écran pendant que des animations aussi complexes sont en cours,
l'Amiga gère la double mise en mémoire tampon, de sorte qu'une copie statique de l'écran est affichée pendant
que des modifications sont apportées à une copie dupliquée "hors de l'écran". Le matériel graphique contient,
en plus des blobs, une gestion pour le dessin de lignes à grande vitesse et le remplissage de zones.
Le matériel vidéo de l'Amiga gère la sortie vers un téléviseur, un moniteur composite, un moniteur numérique
RVB ou un moniteur analogique RVB - pratiquement tous les types d'écrans disponibles (bien que le moniteur
analogique RVB que Commodore vendra soit le seul qui puisse profiter à la fois de la résolution 640x400 et
des 4096 couleurs). Outre la multitude de sorties vidéo, l'ordinateur dispose également d'une prise d'entrée
vidéo. Cette caractéristique unique, connue sous le nom d'interface genlock, permet à l'utilisateur d'envoyer
un signal de télévision ordinaire (provenant d'un magnétoscope, d'une caméra vidéo, ou même d'un autre ordinateur)
dans l'Amiga, et d'afficher cette image sur l'écran avec les graphismes de l'Amiga en incrustation.
Idées sonores
Le jeu de composants spécialisés de l'Amiga permet d'obtenir un son et un graphisme de qualité. Le synthétiseur
sonore gère quatre voix, qui sont acheminées vers des connecteurs de sortie stéréo â deux voix sur le canal
gauche et deux sur le canal droit. Chaque canal possède son propre convertisseur numérique-analogique de 8 bits,
piloté par un canal DMA. Chacun peut produire des sons dans une gamme d'environ 0 à 7 500 kHz, et possède
son propre contrôle de volume 6 bits pour 64 niveaux de volume. Le programmeur contrôle la qualité du son
produit en créant un modèle de données du son en mémoire. Le matériel utilise ces données pour générer la forme
d'onde et le contrôle d'enveloppe du son.
Outre les sons synthétisés, le système gère la reproduction de sons enregistrés à l'aide d'une technique
d'échantillonnage numérique. À cette fin, des connecteurs d'entrée audio stéréo sont inclus dans la machine.
Bien que l'échantillonnage numérique reproduise les sons avec une grande précision, son application est
limitée car il nécessite des milliers d'octets de données pour quelques secondes de son. Cependant, la mémoire
et le stockage de masse devenant de moins en moins chers, cette fonction devient de plus en plus intéressante.
Enfin, il convient de souligner que l'Amiga est une machine à architecture totalement ouverte. Le port d'extension
de l'ordinateur donne aux concepteurs tiers un accès total au matériel du système et rendra l'ajout d'une
variété d'appareils externes relativement simple. Cela permettra aux propriétaires d'Amiga de profiter de
toutes les améliorations technologiques actuelles et de bénéficier des développements futurs.
D'après la description ci-dessus, il devrait être clair que le matériel Amiga est exceptionnel. Cependant,
même le matériel le plus impressionnant a besoin d'un logiciel pour faire ce qu'il veut. Le noyau en ROM de
l'Amiga a été conçu pour gérer pleinement le matériel et, dans la mesure du possible, pour améliorer son
fonctionnement. Au coeur du système se trouve le système exécutif multitâche (Exec), qui contrôle l'exécution
de nombreux petits programmes (ou tâches), la communication entre les tâches, l'allocation de la mémoire,
le partage des ressources matérielles, et la gestion des interruptions et des exceptions.
Exec a été conçu pour faciliter l'exécution de plusieurs tâches simultanément. Les tâches elles-mêmes n'ont
pas besoin d'être conçues d'une manière spéciale pour le multitâche, puisque Exec fournit à chacune son
propre environnement d'exploitation, et chacune peut s'exécuter comme si elle avait son propre processeur
68000. Les programmes partagent en fait le temps processeur, chaque tâche bénéficiant d'une tranche de temps
minimale d'environ 1/15e de seconde pour s'exécuter avant d'être préemptée par la tâche suivante sur la
liste. Un système de priorités sélectionnables permet aux tâches les plus prioritaires de devancer les moins
prioritaires et à certaines tâches de "s'endormir" jusqu'à ce qu'un certain événement se produise. L'ordre
dans lequel les tâches sont exécutées peut également être modifié par les messages qu'une tâche transmet à
une autre via les ports de messages par lesquels les différentes tâches communiquent. Exec fournit également
une interface d'entrées/sorties indépendante du périphérique par laquelle une tâche peut accéder à un périphérique
matériel par l'intermédiaire d'un bloc central de demande d'entrées/sorties.
Logiciels extraordinaires
Le reste de la partie logicielle du système consiste en plusieurs bibliothèques logicielles. Ces routines
comprennent des fonctions de bas niveau pour contrôler les modes graphiques, l'animation, le texte et la
génération de sons. Les bibliothèques offrent une gestion matérielle beaucoup plus étendue que ce qui est
normalement offert par le logiciel système intégré. Par exemple, bien que le matériel d'affichage vidéo
typique soit limité dans la quantité d'informations qu'il peut afficher à l'écran en même temps, les programmeurs
utilisent couramment des astuces logicielles pour modifier l'affichage en cours d'écran afin d'obtenir de meilleures
performances que celles qu'offre normalement la puce vidéo.
Par exemple, une programmation soignée permet de contourner la limite de huit sprites en "réutilisant" un
sprite donné, en le déplaçant vers une autre position de l'écran après qu'il a été affiché une fois. La
plupart des machines exigent du programmeur qu'il effectue la synchronisation critique nécessaire. Sur l'Amiga,
cependant, le logiciel système permet au programmeur de créer des "sprites virtuels". S'il en crée plus de
huit, le système lui-même effectue la tâche délicate de jongler avec les sprites matériels pour afficher ces
sprites virtuels aux positions correctes de l'écran.
De plus, les sprites virtuels ne sont qu'une petite partie de la boîte à outils d'animation de l'Amiga. Une
illusion d'animation peut être créée en passant d'une "vue" à l'autre d'un objet graphique à un rythme
déterminé ; des sous-parties mobiles peuvent être reliées à un objet mobile plus grand ; et la détection
complète des collisions permet au programmeur de déterminer comment l'animation changera si deux sprites ou
deux objets du champ de jeu entrent en collision.
Ce haut niveau de gestion du système pour les fonctions normalement exécutées par les applications est
cohérent dans toute la ROM du système Amiga. Une fenêtre, par exemple, peut être transformée en "viewport"
sur un écran virtuel défilant jusqu'à 1024x1024 points. Le système de texte gère des styles de police comme
souligné, gras, italique, étendu, et a même des dispositions pour l'impression proportionnelle. La gestion
de la puce sonore comprend non seulement des facilités pour faire de la musique et des effets sonores, mais
aussi une gestion complète pour la synthèse vocale logicielle, comprenant à la fois l'entrée phonétique
et la conversion texte-voix. La liste des exemples pourrait évidemment s'allonger à l'infini.
Tout comme le matériel, la ROM du système a été conçue pour être totalement extensible. Dans la mesure
du possible, elle utilise des listes chaînées de pointeurs plutôt que des tables de saut ou des vecteurs
qui doivent être installés à une adresse absolue donnée. Et, dans la mesure du possible, elle laisse des
"crochets" où l'utilisateur (ou le futur logiciel du système) peut ajouter des fonctions à celles qui existent
déjà. Une telle conception permet d'envisager une famille de micro-ordinateurs d'élite compatibles entre eux.
|