Obligement - L'Amiga au maximum

Vendredi 29 mars 2024 - 03:02  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

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


Trucs et astuces

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


Glossaire

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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Actualité : Présentation de l'ordinateur personnel Amiga
(Article écrit par Gregg Williams, Ion Edwards et Phillip Robinson et extrait de Byte - août 1985)


Au début de l'année 1984, les responsables d'une jeune entreprise appelée Amiga ont montré aux journalistes des prototypes d'un nouvel ordinateur personnel. Ces prototypes utilisaient une machine Sage 68000 comme unité centrale. De grosses boîtes en acier exécutaient les fonctions graphiques et sonores spéciales qu'Amiga prévoyait d'implémenter dans le silicium. Les graphismes étaient spectaculaires - suffisamment rapides pour supporter l'animation. La sortie audio ne produisait pas seulement de la musique mais utilisait la stéréo pour améliorer l'animation. Le son passait du haut-parleur de droite à celui de gauche lorsqu'une balle rebondissait sur l'écran. Tout le monde se demandait si Amiga pouvait vraiment réduire toute la puissance des prototypes dans des puces en silicium.

À la fin de 1984 et au début de 1985, les sociétés de capital-risque se sont méfiées des nouveaux venus sur le marché encombré des ordinateurs personnels, de plus en plus dominé par IBM. De sérieux doutes sont apparus quant à la capacité d'Amiga à obtenir des capitaux pour fabriquer sa machine. Beaucoup d'entre nous craignaient que l'excitante machine que nous avions vue en prototype ne devienne jamais un produit. Nous avons été ravis lorsque Commodore a racheté Amiga et sauvé cette machine techniquement exceptionnelle de l'oubli. Gregg Williams, Ion Edwards et Phillip Robinson présentent en détail dans cet article la technologie qui fait de l'Amiga l'ordinateur personnel le plus avancé et le plus innovant du moment.

ordinateur personnel Amiga
L'ordinateur personnel Amiga
Le graphisme affiché est en 320x200 pixels en 32 couleurs


Introduction

Il y a deux façons d'effectuer un travail dans un ordinateur : par logiciel ou par matériel. La première vous donne une flexibilité illimitée, l'autre, la vitesse. Le Macintosh d'Apple fait presque tout en logiciel et ce n'est pas un hasard si les gens veulent qu'Apple augmente la vitesse du Mac, ajoute de la couleur et baisse son prix.

Commodore vient de présenter un ordinateur qui promet ces améliorations, et il le fait en faisant beaucoup de choses au niveau matériel. À 1295 $, l'ordinateur personnel Amiga promet des graphismes de bureau en couleur rapides comme l'éclair et deux fois plus de mémoire et de stockage sur disque que le Macintosh pour plusieurs centaines de dollars de moins que ce dernier (environ 900 $, mais vous devrez acheter un moniteur ou un téléviseur pour l'Amiga). Il dispose également d'un bus d'extension et d'un énorme 192 ko de code 68000 sophistiqué en ROM (mémoire morte) qui étend les capacités multitâches, graphiques, sonores et d'animation du matériel Amiga.

Description du système

L'Amiga est résumé dans la section "En bref" de cet article. Il ne dispose pas de ports pour cartes d'extension, mais Commodore a l'intention de proposer ultérieurement un boîtier qui se branche au connecteur d'extension afin d'ajouter plusieurs ports d'extension (il est théoriquement possible d'ajouter 8 mégaoctets de mémoire de cette manière). Le système d'exploitation de disque de l'Amiga (AmigaDOS) sera également capable de consulter le boîtier d'extension, de déterminer quels périphériques sont présents et de se configurer en conséquence, quel que soit le contenu du boîtier.

En bref
  • Nom : Ordinateur personnel Amiga.
  • Fabricant : Commodore International, 1200 Wilson Dr., West Chester, PA 19380, 431-9100.
  • Prix : 1295 $.
  • Microprocesseur : Motorola 68000, microprocesseur 16/32 bits (bus de données interne et registres 32 bits, bus de données externe de 16 bits) fonctionnant à 7,15909 MHz.
  • Mémoire principale : 256 kilooctets de mémoire dynamique, extensible par l'utilisateur à 512 kilooctets. La conception de la machine permet un maximum de 8,5 mégaoctets.
  • ROM : 192 kilooctets de ROM contenant des routines de gestion du multitâche, des graphismes, de l'audio, ainsi que des routines d'animation.
  • Graphismes : Cinq modes (320x200 pixels en 32 couleurs ; 320x400 en 32 couleurs ; 640x200 en 16 couleurs ; 640x400 en 16 couleurs ; mode HAM). Défilement horizontal et vertical indépendant des structures d'écran ; huit sprites matériels ; couleurs choisies dans une palette de 4096 couleurs.
  • Sons : Quatre canaux audio indépendants ; son produit sans supervision du 68000.
  • Disquette : Lecteur de disquette double face intégré de 3,5 pouces. Les disquettes contiennent 880 kilooctets, 160 pistes, chacune comportant onze secteurs de 512 octets ; le lecteur peut lire une piste entière à la fois.
  • Clavier : Clavier détaché de 89 touches avec pavé numérique, touches de fonction et de curseur. Le clavier renvoie des codes de ligne/colonne pour chaque touche, envoie des signaux de touche levée et enfoncée. Peut détecter jusqu'à deux touches simultanément. Tampon de saisie de huit touches.
  • Ports d'extension : Port de lecteur de disquette sur lequel trois lecteurs de disquette supplémentaires peuvent être connectés en chaîne. Port série avec un taux de transfert maximal de 500 000 bps. Port parallèle programmable normalement configuré comme compatible Centronics. Le bus d'extension comprend un ensemble complet de signaux pour les périphériques optionnels et l'extension de la mémoire.
  • Interface utilisateur (Intuition) : Gère le multitâche grâce à l'utilisation de terminaux virtuels. Permet l'affichage simultané de différentes résolutions et modes graphiques.
  • Ports audio et vidéo : Deux prises audio stéréo. Sortie analogique RGB. Sortie numérique RGB et sortie composite NTSC.
  • Logiciels fournis : AmigaDOS, bibliothèque de synthèse vocale, ABasiC, Tutorial (de Mindscape) et Kaleidoscope (d'Electronic Arts).
  • Divers : Trois puces spécialisées pour contrôler le graphisme, l'audio et les périphériques d'entrées/sorties. Puces connectées par un bus registre-adresse de 19 bits. Souris mécanique à deux boutons.
  • Périphériques en option : Lecteur de disquette 3,5 pouces de 880 kilooctets. Moniteur couleur analogique RGB. Module d'extension mémoire de 256 kilooctets. Modem 300/1200 bps. Interface MIDI. Carte d'acquisition d'images.
Architecture du système

L'Amiga possède une architecture unique qui n'est que partiellement décrite par ce schéma de fonctionnement :

ordinateur personnel Amiga
Figure 1 : schéma de fonctionnement

Trois puces spécialisées déchargent le processeur 68000 de nombreuses tâches qui le handicapent dans d'autres ordinateurs. Cependant, le schéma ne montre pas le partage finement ajusté des bus de données et d'adresses du système, les 25 canaux DMA (accès direct à la mémoire) qui effectuent de nombreuses opérations de déplacement de données sans immobiliser le 68000, ou les routines de multitraitement en ROM qui permettent à l'Amiga d'orchestrer une variété de tâches. Dans les paragraphes suivants, nous allons examiner les éléments clés de l'architecture système de l'Amiga.

Les puces spécialisées

Les trois puces spécialisées qui contrôlent le DMA, les graphismes, le son et les entrées/sorties ont été conçues par Jay Miner (et son équipe) qui est surtout connu pour avoir conçu les puces spécialisées des ordinateurs de la série Atari 800. Nous les aborderons en profondeur par fonction, mais voici une répartition simple :
  • La "puce spécialisée d'animation" contient en fait plusieurs fonctions diverses. C'est "l'agent de circulation" qui contrôle le DMA. Elle contient le Copper, un coprocesseur qui peut contrôler directement les autres puces en relation avec le faisceau vidéo, et le Blitter, un dispositif qui dessine rapidement des lignes, remplit des zones avec une couleur donnée et manipule des blocs rectangulaires de pixels.

  • La "puce spécialisée graphique", qui manipule l'affichage visible, permet d'afficher jusqu'à deux images indépendantes en mode point et huit sprites (qui sont des images pouvant être déplacées facilement sur l'écran, "sous" ou "sur" les images en mode point).

  • La "puce spécialisée pour les périphériques/sons" contient quatre canaux de son, le contrôleur de disquette, un contrôleur d'interruption et les interfaces pour le port série et le port souris/manette.
ordinateur personnel Amiga
Figure 2 : la carte mère et ses composants. Le lecteur de disquette a été retiré
(il se place normalement sur le côté bas/droit). L'alimentation (pas montrée) est, elle, à gauche de la carte mère


Interruptions et DMA

Dans l'Amiga, tous les périphériques sont commandés par des interruptions - c'est-à-dire que le 68000 n'est pas obligé de les interroger constamment pour savoir s'ils ont de nouvelles données ; au lieu de cela, le 68000 reçoit des données du périphérique uniquement lorsque celui-ci envoie un signal d'interruption. La puce périphérique/son reçoit des signaux de demande d'interruption d'une des 15 sources (par exemple, le lecteur de disquette ou un canal audio), traduit la demande en un des six niveaux d'interruption gérés par le 68000 (le septième est réservé pour une utilisation future) et envoie le signal d'interruption au 68000.

Le 68000 partage les bus d'adresses et de données avec 25 canaux de DMA, dont les registres et la logique résident dans les puces spécialisées. Le DMA de l'Amiga est rapide pour deux raisons : premièrement, le fait que chaque périphérique ait son propre canal de DMA diminue la surcharge associée à une opération de DMA ; deuxièmement, de nombreuses opérations de DMA sont entrelacées avec l'accès au bus 68000 d'une manière qui rend le DMA transparent pour le 68000 (voir ci-dessous pour plus de détails).

Lorsque le DMA se produit entre la mémoire et les registres de la puce spécialisée, l'utilisation du bus registre-adresse de 19 bits (voir figure 1) rend le transfert deux fois plus rapide. En plaçant l'adresse de la mémoire sur le bus d'adresse et l'adresse du registre sur le bus registre-adresse, le circuit DMA fait en sorte que la valeur des données passe directement de l'adresse de la mémoire au registre. Ce transfert est deux fois plus rapide que le transfert DMA via le 68000, qui lit d'abord les données dans sa mémoire, puis écrit le résultat dans le registre.

Bibliothèques et périphériques

Le logiciel système (dont une grande partie se trouve dans les 192 kilooctets de la ROM) contient des bibliothèques, une manière prédéfinie d'organiser des routines utiles afin de pouvoir y accéder avec un maximum de flexibilité. Les bibliothèques peuvent être résidentes ou transitoires et peuvent être utilisées à n'importe quelle adresse mémoire (lorsqu'elles sont en mémoire). Les routines et les données peuvent toujours être appelées via une référence indirecte du 68000 avec décalage ; cela vous permet d'écrire du code utilisant une routine de bibliothèque sans connaître l'adresse de cette bibliothèque au moment de la compilation (en fait, tout le code du système peut être référencé en connaissant une seule adresse fixe dans la machine, et même cette adresse est fournie à toute machine qui en a besoin). Un périphérique est une extension du concept de bibliothèque qui permet au logiciel d'accéder aux périphériques d'entrées/sorties (actuels et futurs) de manière uniforme.

Les routines Exec

Le système Exec est une collection de routines 68000, présentes dans la ROM, qui sont réentrantes et optimisées et qui exécutent de nombreuses fonctions vitales pour le fonctionnement de l'Amiga. Il comprend des routines qui créent et manipulent des listes et des files d'attente, planifient les tâches par priorité, gèrent les interruptions, organisent les entrées/sorties des périphériques, contrôlent l'utilisation de la mémoire et exécutent d'autres fonctions.

Une structure de données importante dans l'Amiga est le noeud de liste. Le noeud de liste est un bloc de données avec des pointeurs vers les noeuds prédécesseurs et successeurs de la liste dans laquelle il se trouve, deux champs de type et de priorité de 8 bits, et un bloc de données associé. Une liste est une chaîne doublement liée de noeuds de liste et d'éléments, débutant par un en-tête qui pointe vers les premier et dernier noeuds. Exec contient plusieurs routines qui vous permettent de faire des choses comme créer une nouvelle liste, insérer un élément de liste à sa place dans une file d'attente et retirer un noeud d'une liste.

Un autre ensemble important de routines vous permet de manipuler les tâches. Une tâche est une unité de travail qui partage l'Amiga avec d'autres tâches d'une manière qui varie à la fois avec le type et la priorité de la tâche (toutes les tâches en cours sont conservées dans une file d'attente et sont exécutées par priorité décroissante). La plupart des programmes et des opérations résident dans l'Amiga sous forme de tâches.

Le champ de priorité de la tâche, qui contient un nombre entre -128 et 127, détermine l'ordre dans lequel les tâches seront exécutées. Les tâches ayant des numéros identiques se partagent l'Amiga en tranches de temps de durée présélectionnée. Une tâche avec une priorité plus élevée préempte la tâche actuelle et commence à s'exécuter. Comme le système sauvegarde les états d'une tâche, les registres et la zone de la pile, une tâche peut reprendre à tout moment. Plus important encore, les programmeurs n'ont pas à tenir compte des autres tâches qui peuvent être exécutées en même temps. Lorsqu'une tâche est active, elle "pense" qu'elle a un accès complet et illimité au 68000.

Partager le bus système

Considérez que l'Amiga peut simultanément lire la disquette, lire quatre canaux audio, et afficher des graphismes en plan de bits de 16 couleurs basse résolution et huit sprites, et sans pratiquement aucun ralentissement du processeur 68000. Cela est possible en grande partie grâce à la façon dont les différents sous-systèmes partagent le bus.

Le 68000 de l'Amiga tourne à 7,15909 MHz, tandis que sa mémoire tourne à deux fois cette vitesse. La plupart des instructions du 68000 alternent entre l'utilisation du bus et les calculs internes. Dans cette situation, la mémoire peut fonctionner à sa vitesse maximale tout en laissant libre un cycle de bus sur deux.

Le partage du bus s'effectue en subdivisions du temps nécessaire au canon à électrons pour dessiner une ligne de pixels et effectuer un retour horizontal, soit environ 63 microsecondes (µs). Cela se divise en environ 226 cycles d'accès à la mémoire de 280 nanosecondes (ns) chacun. Le Copper, le Blitter et le 68000 accèdent à la mémoire sur les cycles pairs (0, 2, 4...) ; les cycles impairs (1, 3, 5...) sont réservés pour quatre cycles de DMA de rafraîchissement de la mémoire, trois cycles de DMA de disque, quatre cycles de DMA audio (suffisant pour quatre canaux), 16 cycles de DMA de sprites (suffisant pour huit sprites) et 80 cycles de DMA de plan de bits (suffisant pour afficher une image basse résolution de 16 couleurs). Les circuits DMA de chaque puce "savent" quand leurs emplacements apparaissent sur chaque ligne horizontale et lancent automatiquement le transfert DMA sans impliquer le 68000.

Dans de nombreux cas, le Copper et le Blitter ne sont pas actifs, laissant le 68000 fonctionner à pleine vitesse (en fait, certaines instructions ont besoin du bus à des moments impairs ; si le bus n'est pas disponible, le 68000 insère des états d'attente jusqu'à ce que le PAL (puce logique à réseau programmé) signale que le bus est libre en activant la ligne DTACK du 68000. Cela se produit plus fréquemment à mesure que les puces spécialisées demandent plus de cycles du bus).

Plusieurs choses modifient ce partage de bus. Si vous utilisez plus de quatre plans de bits d'affichage basse résolution, ou plus de deux plans de bits haute résolution, le DMA du plan de bits volera quelques cycles de mémoire au 68000. Le Copper et le Blitter ont tous deux une priorité plus élevée que le 68000 et obtiendront les cycles dont ils ont besoin en premier. Si le Blitter détecte une demande de bus mémoire de la part du 68000, il s'arrêtera au bout de quelques cycles pour laisser le 68000 utiliser le bus ; puis il reprendra le bus et continuera. Ceci permet au 68000 de disposer de quelques cycles même lorsque le Blitter est en marche. Si vous définissez un bit interne de "priorité du Blitter", cependant, le Blitter vole tous les cycles dont il a besoin au 68000. Même si cela n'est pas aussi mauvais qu'il n'y paraît, chaque fois que l'un des éléments ci-dessus vole des cycles, il exécute quand même sa fonction plus rapidement et plus efficacement que le 68000 n'aurait pu le faire.

Multitâche

L'Amiga est multitâche - c'est-à-dire qu'il peut travailler sur plus d'une chose à la fois. À bas niveau, par exemple, cela signifie que l'Amiga peut déplacer des sprites, lire la disquette et jouer de la musique en même temps. À des niveaux plus élevés, plusieurs programmes peuvent fonctionner simultanément dans des fenêtres qui se chevauchent. La capacité multitâche de l'Amiga provient de plusieurs caractéristiques dont nous avons déjà parlé : la structure des interruptions et les routines multitâches Exec en ROM. Les interruptions, qui sont acheminées et classées par ordre de priorité par les périphériques et la puce audio, déclenchent le changement de tâche. Par exemple, lorsqu'un périphérique signale son besoin d'effectuer des entrées/sorties, l'interruption passe par la puce périphérique/son et provoque l'exécution de la routine d'interruption du périphérique (en supposant qu'aucune interruption de priorité supérieure n'est en cours). La routine d'interruption traite le besoin du périphérique immédiatement ou notifie une tâche pour le faire, puis la routine se termine. Dans les deux cas, l'Amiga appelle alors l'ordonnanceur de tâches, qui s'assure que la tâche appropriée a la chance d'utiliser le système.

Le Copper

Le Copper est un coprocesseur à l'intérieur de la puce d'animation qui exécute son propre programme. L'exécution de ce programme est liée à la progression du faisceau d'électrons lorsqu'il dessine l'écran vidéo. En raison de cette capacité, le Copper est le plus souvent utilisé pour contrôler les parties graphiques et sonores des puces spécialisées, déchargeant ainsi le 68000 de la même tâche. Le Copper lit ses instructions depuis la mémoire et utilise le DMA pour écrire depuis son programme (en mémoire) vers les registres de lui-même et des deux autres puces spécialisées (selon Jay Miner, cela n'est pas si étrange si l'on considère les trois puces comme "une seule grande puce spécialisée").

Le jeu d'instructions du Copper ne comporte que trois types d'instructions : déplacer des données immédiates vers un registre, attendre que le faisceau d'électrons passe à une position donnée et passer à l'instruction suivante si le faisceau d'électrons a dépassé un emplacement donné. Les valeurs de position du faisceau sont précises à la ligne près verticalement et à 4 pixels basse résolution (ou 8 pixels haute résolution) horizontalement.

La polyvalence du Copper peut être étendue par une utilisation astucieuse de ses registres. Par exemple, vous pouvez faire en sorte que le Copper saute à une instruction donnée en plaçant la nouvelle adresse dans le "compteur de programme" interne du Copper. En activant le bit 15 du registre INTREQ (demande d'interruption), le Copper peut provoquer une interruption de niveau 6, ce qui devrait conduire à une routine 68000 plus complexe qui traitera la situation ayant provoqué l'interruption.

Un aspect important du Copper est que, pendant qu'il attend le faisceau d'électrons, il n'est pas sur le bus système et n'utilise pas de ressources. Ceci est en contraste avec de nombreux systèmes qui immobilisent leurs processeurs en attendant une position donnée du faisceau. Grâce au Copper, le 68000 n'est jamais bloqué pendant plusieurs millisecondes en attendant un événement lié à l'affichage.

Le Copper peut gérer de nombreuses fonctions de base du système sans l'intervention du 68000. Par exemple, il peut rafraîchir certaines valeurs de plan de bits et de sprite qui doivent être restaurées au début de chaque image. Il peut également modifier la palette de couleurs au milieu de l'écran (ce qui permet d'obtenir plus de 32 couleurs à l'écran), changer le mode graphique (ce qui permet d'économiser de la mémoire) et mettre à jour la mémoire d'affichage sans problème en modifiant une image après que le faisceau d'électrons l'ait dessinée pour l'image en cours.

Les programmes Copper donnent le maximum de contrôle sur l'affichage vidéo et les événements de cette périodicité, mais la plupart des programmeurs ne les créeront pas directement. De nombreuses routines ROM qui accomplissent des tâches de haut niveau manipulent les programmes Copper pour effectuer leur travail.

L'espace mémoire

Les premiers 512 ko de mémoire sont appelés "mémoire Chip" (voir figure 3). Toutes les fonctions exécutées par les puces spécialisées - images en plan de bits et sprite, programmes Copper et autres données (traitées ci-dessous) - doivent se trouver dans cette zone de mémoire. Bien sûr, dans l'Amiga standard avec 256 ko (ou la version étendue de 512 ko), la mémoire Chip est également utilisée pour tout ce pour quoi un ordinateur a besoin de mémoire vive. Commodore/Amiga pourrait annoncer ultérieurement un boîtier d'extension pouvant accueillir diverses cartes périphériques et jusqu'à 8 Mo continus de mémoire. Les programmes et données normaux devraient y être placés, laissant la mémoire de l'écran libre pour ses utilisations spécialisées.

ordinateur personnel Amiga
Figure 3 : la structure de la mémoire

Graphismes

Les graphismes de l'Amiga sont, en un mot, époustouflants - tant par leur qualité que par leur rapidité. Les principaux composants graphiques de la machine sont le champ de jeu ("playfield"), les sprites, le Blitter et les routines d'animation et de texte.

Le champ de jeu

Une carte de bits ("bit map") est une zone de la mémoire que l'ordinateur interprète comme une matrice rectangulaire de pixels (points) ; la plupart des ordinateurs ont une certaine capacité graphique en carte de bits. De nombreuses machines forment des pixels de couleurs différentes en regroupant deux ou plusieurs bits adjacents dans la carte de bits. L'Amiga, cependant, n'utilise qu'un seul bit par pixel dans sa carte de bits (appelé "plan de bits") et "empile" des plans de bits séparés pour obtenir différentes couleurs (voir figure 4). Les couleurs disponibles ne sont pas "câblées" dans la machine mais sont spécifiées dans une table de registre de couleurs, également appelée palette de couleurs. Une image créée par plusieurs plans de bits est appelée une trame ("raster"). Le champ de jeu est l'affichage graphique en mode point qui constitue la majeure partie de l'affichage vidéo de l'Amiga.

L'Amiga peut empiler jusqu'à cinq plans de bits pour obtenir un maximum de 32 couleurs. La table des registres de couleurs contient des valeurs de 12 bits qui peuvent spécifier n'importe quelle des 4096 couleurs différentes. Par conséquent, l'Amiga peut dessiner des images qui utilisent 32 de ces 4096 couleurs.

ordinateur personnel Amiga
Figure 4 : Graphiques du champ de jeu (playfield) de l'Amiga. Les bits d'une position donnée dans chaque plan
binaire se combinent pour créer un index dans la table de registre des couleurs. L'entrée sélectionnée
dans la table du registre des couleurs détermine la couleur du pixel


L'Amiga dispose de cinq résolutions en mode point. Quatre d'entre elles proviennent de deux résolutions horizontales (320 pixels par ligne, basse résolution, et 640 pixels par ligne, haute résolution) multipliées par deux résolutions verticales (200 lignes visibles par écran, trame non entrelacée, affichée toutes les 1/60e seconde, et 400 lignes visibles par écran, trame entrelacée, affichée en deux passes toutes les 1/30e seconde). Ces résolutions peuvent prendre entre un minimum de 4000 octets (pour une image de 320x200 pixels) et 32 000 octets (pour une image de 640x400 pixels). La figure 5 montre un exemple du mode 320x200.

ordinateur personnel Amiga
Figure 5 : Robocity, un exemple de graphismes en 320x200 32 couleurs

Le cinquième mode, appelé hold-and-modify (HAM), utilise six plans de bits d'une manière qui permet d'afficher simultanément les 4096 couleurs à l'écran. Dans ce mode, les deux bits supérieurs d'un pixel contrôlent l'interprétation des quatre bits inférieurs, qui peuvent représenter soit une valeur de la table de registre des couleurs pour ce pixel, soit une modification d'une composante de la couleur du pixel précédent. En utilisant la fonction hold-and-modify, vous pouvez afficher les 4096 couleurs sur un moniteur analogique RVB (rouge-vert-bleu).

L'image d'un champ de jeu peut être beaucoup plus grande, à la fois horizontalement et verticalement, que la zone de l'écran utilisée pour l'afficher. En manipulant plusieurs valeurs de registre, vous pouvez faire défiler une image horizontalement, verticalement, ou les deux, avec très peu d'effort (lorsque l'image totale est plus large que sa partie affichée, le dernier pixel d'une ligne et le premier pixel de la suivante ne sont pas adjacents et sont séparés par un nombre fixe d'octets. L'Amiga utilise des registres modulo pour rendre la manipulation de deux de ces octets aussi rapide et aussi simple que s'ils étaient contigus).

Une autre option d'affichage est appelée le mode double champ de jeu ("dual playfield"). Lorsque vous utilisez ce mode, jusqu'à six plans de bits sont divisés en deux images distinctes de jusqu'à trois plans de bits chacune, une image ayant la priorité sur l'autre. Cela simplifie souvent les affichages graphiques complexes. Par exemple, pour simuler l'effet de regarder un paysage à travers des jumelles, vous pouvez faire défiler un large champ de jeu de paysage "sous" un champ de jeu statique entièrement noir, à l'exception d'une zone transparente qui laisse apparaître le champ de jeu inférieur.

Sprites

Un sprite est une petite image en mode point qui peut être repositionnée simplement en redéfinissant les valeurs horizontales et verticales de son coin supérieur gauche. Les sprites sont indépendants du champ de jeu et apparaissent au-dessus ou au-dessous les uns des autres et du ou des champs de jeu selon une priorité spécifiée.

L'Amiga possède huit sprites matériels, chacun pouvant avoir trois couleurs (les sprites ont une profondeur de deux plans de bits, et chaque pixel de deux bits correspond à trois couleurs plus la transparence). Les sprites Amiga ont une largeur de 16 pixels basse résolution et une hauteur quelconque. Chaque paire de sprites partage une table de registres de trois couleurs différentes (par exemple, les sprites 0 et 1 partagent les registres de couleurs 17, 18 et 19. Les sprites 2 et 3 partagent les registres 21, 22 et 23), permettant aux huit sprites d'utiliser jusqu'à 12 couleurs. Les sprites adjacents (0 et 1, par exemple) peuvent être attachés, ce qui signifie que leurs quatre plans de bits sont combinés ; une paire de sprites attachés peut alors utiliser les registres de couleurs 17 à 31 pour afficher jusqu'à 15 couleurs.

Comme souvent dans l'Amiga, la complexité se cache derrière une apparente simplicité. Un sprite est en fait une valeur de 16 bits avec un déplacement horizontal spécifié pour la ligne actuelle de l'affichage vidéo. En mode manuel, vous êtes responsable de la création de l'image du sprite, ligne par ligne (peu de personnes utiliseront directement ce mode). En mode automatique, par contre, vous activez le circuit DMA du sprite, qui consulte une structure de données contenant la position et la forme ligne par ligne du sprite et le dessine automatiquement. En outre, vous pouvez redéfinir le sprite indéfiniment pendant que le faisceau d'électrons crée l'affichage vidéo. Le circuit DMA du sprite accepte une liste de mots de définition de la position et de la forme du sprite et les dessine tant que la ligne inférieure d'une occurrence et la ligne supérieure de la suivante sont séparées par au moins une ligne vidéo (notez que ceci se fait sans intervention du Copper).

Le Blitter

Le Blitter est une zone de la puce d'animation qui contrôle un canal DMA dédié au dessin de lignes et à la manipulation de zones rectangulaires du champ de jeu. Son nom vient d'un terme plus ancien, bit-bit, qui signifie "transfert de bloc en mode point". Jay Miner l'appelle un "Bimmer", pour "bit-mapped image manipulator", en raison de ses capacités étendues, mais "Blitter" est utilisé exclusivement dans la documentation de l'Amiga.

Lorsqu'il manipule des blocs d'une image, le Blitter (lorsqu'il est correctement configuré) gère un certain nombre de tâches "domestiques" qui, dans d'autres ordinateurs, occupent une grande partie du temps processeur. Ces tâches comprennent :
  • Le masquage des bits juste à l'extérieur de l'image qui appartiennent au même mot mémoire que les bits désirés.
  • Le décalage de l'image de plusieurs bits horizontalement pour correspondre à l'alignement des mots de la destination.
  • Le remplissage d'une zone délimitée à gauche et à droite par deux lignes non horizontales d'un pixel (c'est la base de sa capacité de remplissage de zone).
Le Blitter se distingue des autres unités bit-bit par sa capacité à combiner jusqu'à trois zones sources de l'une des 256 manières suivantes pour devenir la zone de destination (si nous appelons les sources A, E, et O et leurs inverses Ä, Ë, et Ö, celles-ci se combinent de huit façons : AEO, AEÖ, AËO...ÄËÖ. Il y a 256 combinaisons possibles de ces huit termes).

Lorsqu'il est utilisé pour dessiner des lignes, le Blitter peut dessiner des lignes comme 1s, 0s, ou un motif spécifié ; il peut également dessiner des lignes d'une largeur d'un bit, qui sont nécessaires pour délimiter une zone à remplir.

Dans ses deux opérations de traçage de lignes et de manipulation de zones, le Blitter doit d'abord effectuer une quantité modérée de calculs de "gestion interne". Étant donné la vitesse et la simplicité de l'opération résultante, les calculs de configuration ne sont pas une surcharge déraisonnable ; cependant, vous pouvez traiter le Blitter à un niveau plus élevé en utilisant certaines routines graphiques en ROM.

Routines d'animation

Les routines d'animation qui font partie de la ROM de l'Amiga constituent la base de l'animation couleur la plus sophistiquée que le marché des ordinateurs personnels ait jamais vue. L'une des démonstrations que nous avons vues, Robocity, montrait cinq personnages de dessins animés se déplaçant sur l'écran. La résolution était très bonne... ce n'est qu'en regardant de près que l'on pouvait voir les "saccades" qui prouvaient que l'on ne regardait pas un dessin animé fait à la main.

L'animation est réalisée par le biais de quelques appels de sous-routines qui dessinent une liste liée des éléments à animer. L'élément de base du sous-système d'animation est le "GEL" ou "Graphic ELement" (élément graphique). Il existe quatre types de GEL : VSprites, BOB, AnimComp et AnimObj.

VSprite signifie "sprite virtuel". Un VSprite est une structure de données en mémoire, étroitement liée à un sprite matériel, qui est gérée par les routines d'animation. En laissant les routines gérer la correspondance entre les VSprites et les sprites matériels, vous pouvez (avec certaines restrictions) définir plus de huit VSprites et laisser les routines s'occuper automatiquement des détails. Les VSprites peuvent également être découpés pour ne s'afficher que dans une certaine tranche horizontale de l'écran.

BOB est l'abréviation de "Blitter object". Un BOB est une image qui agit comme un sprite, mais les routines d'animation utilisent le Blitter pour "coller" l'image sur le champ de jeu et (éventuellement) restaurer l'image qui était "sous" le BOB. Un BOB est défini par la combinaison d'une structure de données BOB et d'une structure de données VSprite, qui pointent toutes deux l'une vers l'autre. Un avantage d'un BOB par rapport à un VSprite est qu'un BOB est dessiné dans un champ de jeu - cela signifie qu'il peut être de n'importe quelle largeur et qu'il peut avoir autant de couleurs que le champ de jeu (jusqu'à 32). Les BOB peuvent également être coupés pour n'apparaître que dans une certaine fenêtre rectangulaire.

Une AnimComp est un composant d'animation, une partie d'un AnimObj, un objet d'animation. Si votre AnimObj est la figure d'un homme qui marche, ses AnimComp comprendront probablement des BOB pour un torse, une tête, deux bras et deux jambes. Chaque AnimComp comprend plusieurs vues du même objet (par exemple, bras plié, bras tendu) avec un temps associé qui doit s'écouler avant de passer d'une vue à l'autre. Une fois que tout cela est assemblé, des appels répétés à la routine Animate substituent de nouvelles vues (déterminées par leurs constantes de temps) dans la liste liée de GEL avant de dessiner les éléments de la liste.

Vous pouvez réaliser une animation par dessin séquentiel en spécifiant une série de vues qui décrivent un mouvement répété et en spécifiant un décalage à ajouter à la position de l'objet chaque fois que les routines passent de la dernière vue à la première. Par exemple, prenons l'exemple d'un chat marchant de deux pas vers la droite en six vues, de sorte que la vue 1 semble naturelle lorsqu'elle est affichée après la vue 6. En spécifiant le décalage horizontal correct vers la droite (qui est ajouté chaque fois que l'image revient à la vue 1), la routine Animate dessinera automatiquement les six vues dans l'ordre et la position corrects pour que le chat semble marcher sur toute la largeur de l'écran.

Vous pouvez également demander à la routine Animate de réaliser une animation de contrôle de mouvement, dans laquelle la prochaine position d'un BOB est automatiquement calculée à partir de sa position actuelle et de quatre valeurs de vitesse et d'accélération sur les axes X et Y (vous pouvez également réaliser cette animation avec un "anneau" de vues de BOB qui se succèdent comme dans une animation de dessin séquentiel.

Une autre routine, DoCollision, détecte deux types de collisions, les collisions GEL à GEL et les collisions limites (collisions de GEL avec des fenêtres limites rectangulaires) ; la routine exécute alors une routine de gestion des collisions donnée à partir d'une table de 16 routines possibles. Les GEL peuvent être codés de façon à ce que seuls certains types de collisions soient enregistrés (utile dans un jeu, par exemple, pour détecter les collisions missile-cible mais pas les collisions missile-missile).

Texte

L'Amiga traite le texte comme un type particulier de graphisme. Les polices sont décrites par une structure de données de police de texte (TF) qui permet la création de caractères mono-espacés ou proportionnels de n'importe quelle hauteur. Pour gagner de la place avec des polices plus grandes, une police peut définir entre 1 et 255 caractères. Deux polices, Topaz 8 et Topaz 9, sont présentes dans la ROM Amiga. La première donne 40 caractères par ligne en résolution normale. 80 en haute résolution ; la seconde donne respectivement 30 et 60 caractères par ligne. Des polices supplémentaires peuvent être chargées et retirées de la RAM selon les besoins.

L'Amiga utilise la routine ROM TxWrite pour dessiner un message donné à un emplacement donné. Le texte peut être dessiné dans l'une des deux couleurs de "stylo" définies par l'utilisateur et dans l'un des trois modes de dessin :
  • JAM1 : un mode de surimpression.
  • JAM2 : un mode qui dessine à la fois le caractère dans une couleur et "l'espace blanc" derrière lui dans une autre.
  • Complement : inverse chaque pixel correspondant à un pixel du caractère dessiné.
Comme sur le Macintosh d'Apple, les polices peuvent être modifiées en combinant plusieurs styles : souligné, italique, gras et étendu. Cependant, contrairement au Macintosh, la routine de dessin de texte de l'Amiga recherche une police définie séparément qui contient le ou les styles nécessaires. Si cela échoue, une future révision de la routine de dessin de texte peut essayer de modifier la version "normale" existante de la police (c'est la seule façon d'obtenir des styles de police sur le Macintosh).

Audio matériel

L'Amiga comprend quatre canaux matériels pour le son qui sont largement contrôlés par des circuits DMA, indépendants du 68000. Des routines de contrôle audio dans une partie de la ROM de l'Amiga étendent ces capacités, vous permettant de travailler avec les capacités sonores de l'Amiga à un niveau conceptuel plus élevé et de manipuler les canaux sonores "à la volée" sans "bruit" de la sortie.

Les quatre canaux audio, numérotés de 0 à 3, sont convertis en signaux analogiques, filtrés à travers un filtre passe-bas, et mélangés en deux signaux de sortie séparés, l'un combinant les canaux 0 et 3, l'autre, les canaux 1 et 2. Le filtre commence à atténuer les fréquences entre 5,5 kHz et 7,5 kHz et élimine efficacement toutes les fréquences supérieures. Cela permet d'éliminer une grande partie du crénelage, qui est une distorsion qui se produit lorsqu'un signal échantillonné trop peu fréquemment est lu.

Les canaux sonores peuvent être contrôlés directement par le 68000, ce qui vous donne un contrôle total sur le son mais empêche le 68000 d'effectuer d'autres tâches. Dans la plupart des cas, vous pouvez obtenir le son dont vous avez besoin en laissant les canaux DMA produire le son à partir d'une table de valeurs (appelée table de son) qui décrit un ou plusieurs cycles de la forme d'onde nécessaire.

Dans l'Amiga, chaque canal DMA audio comprend des registres qui donnent l'intensité sonore du canal, pointent vers une table de 16 bits d'octets de table sonore (les valeurs sont récupérées un mot à la fois et doivent être stockées sur des limites d'octets paires), et établissent le temps qui doit s'écouler avant que le prochain octet sonore soit envoyé. Ce dernier est un registre de période, qui contient une valeur qui est décrémentée toutes les 279 ns ; la valeur suivante de la table des sons est envoyée lorsque le compteur atteint zéro, et le registre est remis à sa valeur initiale. Lorsque le pointeur de la table sonore atteint sa dernière valeur, le pointeur est remis au début de la table. De cette façon, le canal audio continue à produire la forme d'onde donnée sans surveillance jusqu'à ce qu'il soit explicitement désactivé.

Les canaux audio 0 à 2 peuvent être attachés aux canaux directement au-dessus d'eux pour moduler la sortie du canal supérieur. Lorsqu'un canal est rattaché, les mots de 16 bits qui constituent sa table de sons ne sont pas interprétés comme deux valeurs sonores de 8 bits. Au lieu de cela, les mots de données sont interprétés comme des valeurs de volume ou de période pour la valeur actuelle du canal modulé (c'est-à-dire que la valeur de volume détermine l'intensité sonore actuelle du canal, et la valeur de période détermine le temps qui s'écoule avant que le canal n'envoie la valeur suivante dans sa table de sons). Vous pouvez manipuler ces valeurs pour provoquer une modulation d'amplitude, une modulation de fréquence ou les deux.

Audio logiciel

La ROM contient trois types de routines. La première, les routines d'allocation de canal, vous permet d'allouer, d'utiliser et d'écarter un canal sans garder la trace du canal en question. Si vous avez plus de quatre canaux "virtuels" ouverts, les quatre avec les plus hautes priorités sont affectés aux canaux audio matériels réels.

Deuxièmement, les routines de contrôle DMA contrôlent la façon dont le canal DMA audio manipule le canal audio matériel via les différents registres et la table des sons. En outre, vous pouvez faire en sorte que le canal envoie un bit de signal spécifié par l'utilisateur à une tâche existante (qui peut ensuite déclencher un événement) lorsque le canal audio a joué un nombre donné de répétitions de la table des sons ; cela permet aux tâches de manipuler l'Amiga en fonction de l'activité du canal audio.

Troisièmement, les routines de génération d'enveloppe automatisent la tâche consistant à faire varier l'enveloppe d'amplitude qui détermine la lenteur ou la rapidité avec laquelle une note change de volume lorsqu'elle est jouée. Pour utiliser ces routines, vous devez créer un tableau de quatre valeurs de pente/destination qui décrivent une enveloppe ADSR (attack, decay, sustain, release). L'enveloppe ADSR vous indique à quelle vitesse la note gagne en volume dès qu'elle commence, quelle est sa valeur maximale, à quelle vitesse elle décroît une fois qu'elle atteint cette valeur, à quel niveau elle reste tant que la note est maintenue, et à quelle vitesse elle revient à zéro une fois que la note est relâchée. Vous pouvez dessiner une telle enveloppe avec quatre segments de ligne : l'Amiga définit l'enveloppe ADSR en donnant la pente et les valeurs de l'axe des y de destination pour chaque segment de ligne. Comme pour le DMA audio, on peut demander au logiciel concerné d'envoyer un bit de signal à une tâche donnée lorsque l'enveloppe est terminée.

Un morceau de code potentiellement significatif est la bibliothèque de routines pour la synthèse vocale, incluse en standard dans l'ordinateur Amiga. Il s'agit de routines transitoires qui sont chargées du disque vers la mémoire lorsque cela est nécessaire ; elles sont capables de "parler" un texte anglais normal dans une variété de hauteurs et de vitesses via l'un des canaux sonores. Nous avons écouté les routines et trouvé que leur sortie était fortement infléchie mais compréhensible même avec les yeux fermés (un test auquel échouent de nombreux algorithmes de synthèse vocale).

Intuition

Intuition, l'interface utilisateur de l'Amiga, se situe au-dessus du système d'exploitation de disque et fournit l'interface orientée icônes, manoeuvrable à la souris et utilise la métaphore du bureau popularisée par le Macintosh d'Apple. Intuition complète la philosophie architecturale et les capacités graphiques de l'ordinateur en gérant un système de fenêtrage complexe et en donnant accès à des capacités multitâches.

Intuition permet aux programmes de s'exécuter simultanément, chacun dans sa propre fenêtre. Chaque programme ouvre un terminal virtuel qui a accès à toutes les ressources du système. Même si plusieurs programmes peuvent s'exécuter simultanément, un seul peut accepter des entrées et afficher sa barre de menu. Vous pouvez sélectionner le programme qui effectue ces opérations en cliquant sur sa fenêtre ; cette fenêtre affiche également les messages de commande spéciaux du système. Différents programmes peuvent partager l'affichage vidéo, ou un seul programme peut créer plusieurs terminaux virtuels.

Pour gérer l'affichage simultané de différentes résolutions et modes graphiques, Intuition utilise des écrans, qui sont des zones rectangulaires occupant toute la largeur de l'écran vidéo. Les écrans ont des résolutions, des palettes de couleurs et une hauteur prédéfinies et contiennent une ou plusieurs fenêtres. Une barre en haut de chaque écran identifie l'écran.

Tous les écrans ont des menus déroulants. L'appui sur le bouton droit de la souris, qui appelle généralement un menu, transforme la barre d'écran en une barre de menu (une bande contenant les noms des menus qui s'appliquent à la fenêtre actuellement active). La barre d'écran contient également deux cases qui, lorsqu'elles sont cliquées avec le bouton gauche de la souris (généralement responsable de la sélection des éléments), déplacent l'écran vers le haut ou le bas de la pile d'écrans. Vous pouvez sélectionner des éléments de menu de la manière conventionnelle, bien qu'il existe plusieurs nouvelles fonctionnalités. Les menus déroulants, par exemple, peuvent avoir jusqu'à deux niveaux (voir photo 6).

ordinateur personnel Amiga
Figure 6 : Affichage du Workbench en 640x200

Les menus peuvent contenir des options qui, une fois sélectionnées, persistent jusqu'à ce que d'autres choix, mutuellement exclusifs, soient faits. Les programmes peuvent vous permettre d'utiliser des combinaisons de touches de commande/lettres pour sélectionner les éléments de menu les plus utilisés.

Les programmeurs disposent d'une grande souplesse dans la conception des menus. Par exemple, les menus peuvent apparaître en format multicolonne et contenir des graphismes. Les éléments de menu peuvent, lorsqu'ils sont sélectionnés, être marqués d'une coche, et ils peuvent automatiquement afficher les alternatives des touches de commande ou des lettres.

Les fenêtres, qui apparaissent dans les écrans, peuvent gérer toutes les fonctions graphiques, textuelles et d'animation de l'Amiga. Comme Intuition ouvre les programmes d'application dans des fenêtres, les applications doivent spécifier leurs exigences en matière de graphismes, de texte et de couleurs en sélectionnant ou en créant un écran approprié. Intuition gère autant d'écrans et de fenêtres que la mémoire le permet, mais une seule fenêtre et, par extension, un seul écran peuvent recevoir des entrées à la fois. En tant que terminal virtuel, les programmes n'ont pas besoin de savoir s'ils sont actifs ; ils peuvent continuer à traiter des données tant qu'ils n'ont pas besoin d'entrée externe.

Vous pouvez activer une fenêtre soit en y plaçant le pointeur à l'écran et en cliquant sur le bouton de la souris, soit en y déplaçant une icône. La fermeture d'une fenêtre entraîne la réactivation de la dernière fenêtre activée. Les fenêtres peuvent inclure plusieurs caractéristiques, y compris des barres de défilement verticales et horizontales, des barres de titre, des zones de déplacement de la fenêtre (utilisées pour déplacer la fenêtre vers une nouvelle position), des arrangeurs de profondeur (qui déplacent la fenêtre vers le haut ou le bas d'une pile de fenêtres), des boîtes de dimensionnement (qui vous permettent de changer la taille de la fenêtre), et des boîtes de fermeture (qui ferment une fenêtre).

Intuition gère les fenêtres d'arrière-plan, qui s'ouvrent derrière toutes les autres fenêtres et ne peuvent pas être déplacées, dimensionnées ou arrangées en profondeur. Le programme d'application est entièrement responsable du maintien de son contenu, et les fenêtres normales apparaissent par-dessus. Un programme graphique, par exemple, peut utiliser une fenêtre de fond comme zone de dessin principale et appeler une fenêtre normale pour vous montrer une palette de couleurs parmi lesquelles choisir.

Les programmeurs peuvent spécifier si une application rafraîchit sa fenêtre lorsqu'elle est partiellement couverte et découverte, ou si de la mémoire doit être allouée pour sauvegarder les parties cachées de la fenêtre. Un troisième choix, "super bit map", réserve suffisamment de mémoire pour stocker une image plus grande que celle que le système de fenêtrage affichera. Intuition ajuste et affiche automatiquement la plus grande partie possible du "super bit map". Les programmeurs peuvent utiliser cette technique pour créer des fenêtres dont le contenu défile. Ils peuvent également déterminer l'endroit où les fenêtres apparaîtront, la couleur à utiliser pour dessiner la bordure et le texte, si la fenêtre aura une bordure et s'il faut inclure un titre de fenêtre.

Requêtes, alertes et gadgets

Les requêtes sont des fenêtres d'information qui attendent une saisie au clavier ou à la souris. Normalement, vous devez cliquer avec le bouton gauche de la souris sur une zone "OK" avant de continuer, bien que vous puissiez passer à une autre fenêtre (la requête sera toujours là lorsque vous reviendrez à la première fenêtre). Avec un seul appel, les programmeurs peuvent attacher des requêtes à une fenêtre ou au double-clic du bouton de la souris.

Les programmeurs ont accès à des requêtes système prédéfinis, comme la requêtes "Please Insert Disk XXXX" (Veuillez insérer la disquette XXXX). Toutefois, pour utiliser une requête personnalisée, le programmeur doit spécifier des éléments tels que des gadgets (voir ci-dessous), des bordures, le texte de la requête et, si nécessaire, des images bitmap conçues à la main.

Les alertes sont des écrans spéciaux qui contiennent des informations absolument cruciales. Elles diffèrent des requérants en ce sens qu'aucun écran ou fenêtre ne peut les masquer et que les utilisateurs doivent agir immédiatement sur l'information avant de poursuivre. Les alertes de récupération exigent des réponses immédiates ; les alertes sans issue indiquent aux utilisateurs que le système est tombé en panne.

Les écrans, les fenêtres, les requêtes et les alertes utilisent tous des gadgets, qui sont des périphériques d'entrée attachés aux fenêtres, aux requêtes et aux alertes. Les gadgets du système comprennent les gadgets de taille de fenêtre, les zones de déplacement de fenêtre/écran, les organisateurs de profondeur et les boîtes de fermeture.

Les programmeurs peuvent concevoir leurs propres gadgets en spécifiant les formes et les couleurs des bordures, en décrivant la boîte de sélection du gadget, en fournissant le texte du gadget, en fournissant un tampon mémoire pour la réponse du gadget et en définissant le comportement du gadget.

En plus des gadgets système, les programmeurs peuvent choisir parmi les gadgets booléens, les chaînes de caractères, les nombres entiers et les gadgets proportionnels. Les gadgets booléens sont des gadgets vrai/faux qui renvoient une valeur uniquement lorsqu'ils sont sélectionnés. Les gadgets de type chaîne renvoient une chaîne de caractères à partir du clavier, tandis que les gadgets de type nombre entier renvoient des valeurs entières. Les gadgets proportionnels, qui renvoient une valeur proportionnelle à leur position sur l'axe horizontal ou vertical (ou les deux), sont similaires aux barres de défilement du Macintosh. Un programmeur peut personnaliser l'apparence du bouton (l'élément qui glisse le long de l'axe de déplacement) pour lui donner une forme différente de la forme rectangulaire par défaut.

Le Workbench (l'établi)

Intuition inclut le Workbench, une interface de commande à base d'icônes et de fenêtres. La zone Workbench est un écran à quatre couleurs avec une résolution de 640x200 pixels. C'est à la fois un "écran" sur lequel les disques s'ouvrent et les programmes s'exécutent, ainsi qu'une "application" qui garde la trace des objets du Workbench et affiche des informations à l'aide des fenêtres d'Intuition. Le Workbench s'ouvre automatiquement lorsque vous entrez dans un disque qui l'inclus. En ouvrant la bibliothèque Workbench, les programmeurs peuvent accéder aux fonctions du Workbench pour créer et manipuler le Workbench et ses objets.

Dans le Workbench, les utilisateurs peuvent ouvrir et fermer les disques, les outils, les projets, les tiroirs, le presse-papiers et la corbeille. L'ouverture d'un outil (terme Amiga pour désigner un programme d'application) crée une fenêtre sur l'écran actuel. Les outils créent des projets - des fichiers associés à l'outil (un fichier document, par exemple, est le projet d'un traitement de texte). L'ouverture d'un outil ouvre automatiquement une fenêtre qui liste les noms des projets disponibles. L'ouverture de l'icône d'un projet ouvre automatiquement l'outil qui lui est associé.

Le Workbench gère également la sélection étendue, une méthode permettant de sélectionner plusieurs éléments qui seront traités dans l'ordre où ils ont été sélectionnés. Par exemple, vous pouvez sélectionner un traitement de texte et trois projets (documents) ; le traitement de texte travaillera alors sur les projets dans l'ordre dans lequel ils ont été sélectionnés.

Les tiroirs sont des icônes du Workbench qui contiennent des outils, des projets et d'autres tiroirs ; lorsqu'ils sont ouverts, ils affichent leur contenu sous forme d'icônes dans une fenêtre. Pour ajouter un élément au tiroir, faites glisser l'icône de l'élément dans la fenêtre d'un tiroir ouvert ou déposez-la sur l'icône d'un tiroir fermé. Vous pouvez supprimer un élément en déplaçant son icône sur la corbeille, un tiroir spécial dans chaque tiroir de disque qui contient les objets supprimés.

Le presse-papiers est un objet spécial qui vous permet de transférer des données entre les outils (programmes). Le presse-papiers stocke le dernier texte, les derniers graphismes ou les dernières données coupées d'un projet dans un fichier en mémoire (ou sur le disque si la coupe est trop importante pour la mémoire). En utilisant le presse-papiers, vous pouvez transférer rapidement des informations entre les outils ou les projets.

Les programmeurs peuvent également concevoir des écrans personnalisés, dans lesquels ils peuvent spécifier des choses comme la taille et la position de l'écran, le nombre de couleurs disponibles, les titres de l'écran et la police par défaut.

Le Workbench contient également un programme appelé "Preferences" qui vous permet de définir des éléments tels que le temps maximum pour que deux clics soient considérés comme un double-clic, le type de moniteur, la vitesse de répétition des touches du clavier, l'intervalle avant qu'elles ne commencent à se répéter et la présence de périphériques facultatifs, notamment les imprimantes, les modems et les pavés tactiles.

Le programme Preferences peut également vous donner accès à une interface de ligne de commande (CLI), qui vous permet d'effectuer des travaux en tapant des commandes. L'interface de ligne de commande, qui s'ouvre dans une fenêtre sous Workbench, n'est pas très documentée dans les manuels standard et vous ne verrez normalement pas l'icône qui lui est associée. L'interface CLI utilise des commandes similaires à celles de MS-DOS de Microsoft. Elle peut, par exemple, examiner les répertoires, exécuter des programmes et rediriger les entrées et les sorties ; en fait, elle donne aux programmeurs l'accès au système d'exploitation qui se trouve "sous" le Workbench.

Avertissements

L'aperçu de ce produit est inhabituel dans la mesure où nous avons examiné l'Amiga dans un état antérieur à ce que nous faisons habituellement pour les autres aperçus de produits. Nous nous sentons justifiés de le faire pour deux raisons : premièrement, le matériel était dans son état final (les puces spécialisées fonctionnaient sur la carte mère de la version de production, bien que les puces PROM [mémoire morte programmable] ne contenaient pas la version finale du code ROM) ; deuxièmement, l'Amiga devrait être annoncé au moment où vous lirez ces lignes, et nous pensons que la technologie utilisée ici est remarquable. Byte publiera une revue officielle de l'Amiga dès que nous pourrons mettre la main sur une version définitive de la machine.

Nous avons rédigé cet aperçu du produit après avoir passé deux jours avec l'équipe d'ingénieurs Amiga, étudié quatre volumes de documentation technique et plusieurs manuels d'utilisation, puis tenu des conversations téléphoniques. Au moment où nous avons vu la machine, ni le code ROM ni le système d'exploitation n'avaient été "gelés", ce qui a limité la quantité de logiciels que nous avons pu voir sur l'interface utilisateur Workbench, à plusieurs programmes de démonstration et à une première version du logiciel de dessin Graphicraft.

Toutes les captures d'écran de cet article proviennent d'un logiciel fonctionnel (bien qu'encore inachevé), mais la plupart de ce que nous avons écrit sur la partie logicielle de l'Amiga provient de la documentation ou des ingénieurs. Selon Commodore/Amiga, le BASIC qui sera fourni avec le système aura des capacités graphiques et sonores étendues, pilotées par des appels aux routines de la ROM. La liste 1 donne une liste de produits pour l'Amiga dont nous avons appris l'existence par leurs fabricants respectifs.

Liste 1

Voici une liste des matériels et logiciels annoncés pour l'Amiga.

Matériels
  • Disque dur de 20 mégaoctets, bande de sauvegarde de 20 mégaoctets, carte multifonctions, modem 2400-bps (Tecmar).
  • Disque laser, numériseur couleur, genlock (permet à l'écran de l'ordinateur de superposer un signal vidéo externe (Commodore).
Logiciels
  • Pascal, éditeur de liens, Overlay Loader, assembleur de macros (MetaComCo).
  • Turbo Pascal (Borland International).
  • Logo (The LISP Company).
  • Propaint, Business Graphics, Graphicraft, Animation (Island Graphics).
  • Enable/Write (The Software Group).
  • Textcraft (Arktronics).
  • Musicraft (Commodore).
  • Harmony et clavier musical à quatre octaves, Pitchrider (Cherry Lane Technologies).
  • Compilateur C (Lattice).
  • General Ledger, Accounts Receivable. Accounts Payable (Chang Laboratories).
  • 7 Cities of Gold, One on One, Archon, Adventure Construction Set, Pinball Construction Set, Skyfox, Financial Cookbook, Deluxe Music Construction Set, Black Knight, Video Construction Set, Return To Atlantis (Electronic Arts).
  • Communications package (Software 66).
  • Welcome Aboard, Print Shop, SynCalc, Mindwheel (Broderbund).
  • Keyboard Cadet, The Halley Project (Mindscape).
  • Toutes les aventures fictives d'Infocom.
Conclusions

Nous avons été impressionnés par le détail et la vitesse des graphismes en couleur de l'Amiga et par la qualité de son système sonore. Les caractéristiques de l'Amiga - ses puces spécialisées, sa gestion du multitâche, ses multiples canaux DMA, son bus système partagé, son coprocesseur pour l'affichage, ses routines système en ROM, etc. - indiquent une complexité de conception matérielle que nous n'avons jamais vue auparavant dans les ordinateurs personnels (il est intéressant de noter que la complexité du Macintosh réside dans son logiciel et que, selon plusieurs développeurs tiers qui ont utilisé les deux ordinateurs, le Macintosh est plus difficile à programmer). L'effet synergique de ces caractéristiques explique la vitesse, la qualité et le faible coût de l'Amiga.

Nous sommes également très heureux de l'inclusion de la bibliothèque de synthèse vocale dans l'Amiga. Cela signifie que n'importe quel programme Amiga peut potentiellement créer une sortie vocale, ce qui n'a jamais été courant dans les ordinateurs personnels parce que ce n'était pas, jusqu'à présent, une fonctionnalité standard.

Le matériel semble bon - nous l'avons vu fonctionner - mais nous avons vu très peu de logiciels fonctionner réellement (un programme de dessin, le "bureau" Workbench, et quelques programmes de démonstration). Cependant, nous pensons que cette machine sera un grand succès ; si cela se produit, l'Amiga aura probablement un grand effet sur les autres sociétés d'ordinateurs personnels et sur l'industrie en général.


[Retour en haut] / [Retour aux articles]