Obligement - L'Amiga au maximum

Mardi 17 octobre 2017 - 06:06  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

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

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


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


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Point de vue : 20e anniversaire de l'Amiga 500
(Article écrit par Gilles Dridi - novembre 2007)


En cette année 2007, on fête le vingtième anniversaire de la sortie de l'Amiga 500, ordinateur multimédia conçu par Commodore-Amiga et destiné au grand public. L'Amiga 500 compléta la gamme composée de l'A1000 (le modèle d'origine) et l'A2000 (plutôt haut de gamme).

Amiga 500

En 1987, j'étais en terminal et je possédais un Amstrad 6128 qui me procurait déjà de belles mélodies synthétiques. A cette époque, j'étais comme tous les jeunes de ma génération accro aux radios FM. C'est donc par le son et non par l'image que j'ai été impressionné par l'Amiga 500.

L'Amiga ou une machine qui fait battre son coeur !

En effet, je me suis rendu à Paris, dans le magasin Ami (quel drôle de nom pour celui qui allait me vendre un "Amiga" dont la traduction est, je le rappelle "amie" en espagnol) non loin de la place de la République, où j'ai rencontré la machine au premier étage, grâce à des vendeurs passionnés dont je ne souviens plus le nom mais qui ont, ensuite, fondé leur propre magasin appelé MAD. Alors introduit dans la maison, au premier étage, j'ai entendu le générique de la série Miami Vice (Deux Flics à Miami). J'ai cru à de la radio. Il s'agissait d'une lecture en continu de données échantillonnées à partir d'une disquette avec une qualité FM. Moi, qui croyait que seuls de lourds matériels dans les radios FM permettaient de faire de la diffusion de "musique" de qualité ; j'étais époustouflé par cette démo.

L'Amiga 500 a fait battre le coeur de plus d'un !

Ainsi, l'Amiga, pour bon nombre d'entre nous, c'est la possibilité de jouer une musique, de lire des données à partir du lecteur de disquette pour l'intro d'un jeu ou d'une démo et de faire des affichages de fou en 3D ou d'autres animations avec une indépendance des trois opérations. Comment cela est-il possible ?

A l'origine était le multitâche

L'Amiga c'est d'abord un système d'exploitation multitâche : faire tourner plusieurs programmes en même temps. Mais c'est, en plus, un multitâche "préemptif", c'est-à-dire que l'on interdit à une tâche de continuer à monopoliser le processeur lorsque son quantum de temps est fini. Rien n'interdit, d'ailleurs, de changer la priorité d'un programme pour qu'il soit prioritaire mais c'est dangereux et inutile.

Il faut savoir que les priorités avec AmigaOS ne sont utiles que pour les programmes systèmes : les "devices", ou périphériques logiciels, sont dans ce que l'on peut appeler un anneau de haute priorité. Les programmes utilisateurs font des requêtes qui sont satisfaites par des programmes système plus prioritaires. Nous traiterons un exemple plus tard dans cet article. Et pourtant, on se souvient tous avoir bêtement voulu accélérer un programme de "ray-tracing" par la dangereuse commande "ChangeTaskPri". Le ray-tracing est essentiellement du calcul mathématique qui ne peut être accéléré que par des coprocesseurs arithmétiques.

Qu'est-ce qui fait vraiment la différence entre un Amiga et un PC ?

La différence c'est le "DMA time slot allocation", une planification des tâches élémentaires de transfert-mémoire. Ainsi, l'allocation des espaces de temps commence par le transfert des données disque, puis des données audio, puis des données bitplanes et lutins (sprites). Ainsi, chaque machine RISC (Reduced Instruction Set Computer - ensemble réduit d'instruction, tel que le Copper, mais citons aussi le Blitter (pour remplir, faire des lignes) et Paula pour la synthèse FM et le disque)) est aidée par un canal DMA, dont l'ordre vient de nous être donné, qui s'échine à transférer des données d'une partie à une autre de la mémoire "chip" (pour créer des animations) ou vers des registres du "chipset" (pour alimenter un convertisseur de son numérique-analogique) directement sans l'intervention du processeur central (un 680x0). D'où le nom DMA (Direct Memory Access).

L'Amiga a été pensé comme une machine multimédia dès le départ et pas le PC. Comme pour le ray-tracing à l'époque, la compression de données est aujourd'hui le grand consommateur de cycles processeur. Peut-être que le processeur Cell changera cela ?

PlayStation 3
Une machine avec une architecture processeur dans l'esprit Amiga ?

Comment avoir une machine multimédia avec les nouveaux systèmes Amiga (AmigaOne/AmigaOS 4, Pegasos/MorphOS, PC/AROS...) qui n'utilisent pourtant pas le puces spécifiques ?

A vrai dire, je ne sais pas précisément (je n'ai pas d'AmigaOne). Mais mon avis est que le logiciel, par exemple les bibliothèques graphiques de l'Amiga pour exploiter les modes vidéo et les opérations élémentaires graphiques, est si bien conçu au niveau de l'API (Application Programming Interface) qu'il a été possible d'avoir une indépendance vis-à-vis du matériel. Et là, on touche à la multiprogrammation. Le DOS d'un PC n'est pas prévu pour être multiprogrammé car les appels système passent par des interruptions logicielles : disons qu'il est conçu avec un esprit de protection du système vis-à-vis des utilisateurs, or une interruption n'est pas réentrante (NdA : une routine réentrante peut être appelée par d'autres programmes alors qu'un premier programme l'a déjà appelée et est "dedans").

Thinking Machines
Tiens une Thinking Machines !

AmigaOS, lui, est fourbu à la multiprogrammation. Tous les appels à l'API, ici aux bibliothèques Amiga, demandent aux programmes qui les utilisent d'allouer leurs propres espaces de travail pour leur donnée ; ce qui autorise la réentrance. Dans le cas des périphériques logiciels, le niveau de priorité de la tâche qui traite la requête équivaut à un niveau d'interruption en mettant en attente, ou non, les requêtes suivantes. Nous allons l'expliquer.

Le point fort, c'est le passage de message : il existe au niveau du noyau (Exec) et au niveau de l'AmigaDOS avec les paquets. L'AmigaDOS ou la commande-disque (dir DF0:) que vous avez lancée, communiquent avec les processus DOS "DF0:" qui, à son tour, interroge le "trackdisk.device" ou plutôt une des unités, une pour chaque lecteur de disquette. Les unités sont des émanations virtuelles des unités physiques d'un même périphérique matériel. En fait, celles-ci sont aussi des processus mais leur port-message est inversé par rapport aux processus DOS. On se retrouve donc avec des programmes qui communiquent (et des priorités qui définissent la hiérarchie des opérations classiques d'exploitation : interroger le disque, faire de la synthèse vocale, des animations...). Cela est comparable à un réseau de machines avec en mode client : les commandes lancées sous AmigaDOS, et en mode serveur : les "devices" ou périphériques logiciels ; les processus DOS tel "DF0:", "DF1", etc. sont eux, en mode client et serveur.

Conclusion

L'Amiga 500 a été la machine qu'il fallait avoir en 1987. Pourtant mon premier programme était un traceur de courbes sous MS Basic ! J'aurais pu l'écrire sous un Mo5 ! C'est une machine compacte, innovante et remplie d'astuces matérielles et logicielles ; les demomakers s'y sont donnés à coeur joie. Bravo à eux pour leurs démos. Idem pour le domaine vidéo-ludique avec des jeux comme Shadow Of The Beast qui permirent de montrer l'énorme avance technologique de l'Amiga par rapport à ses concurrents "ludiques" de l'époque : Atari et Amstrad.

Le logiciel est vraiment ce qui fait la différence aujourd'hui entre les matériels : PC, Mac, consoles de jeux, super calculateur... et AmigaOS a plus qu'un atout. On peut penser qu'un jour un langage comme le C++ facilitera l'écriture des "devices" pour leur création et pour gérer ces dispositifs virtuels. Enfin, le BCPL, ancêtre du langage C a été remplacé partout par du C dans l'AmigaDOS. A-t-on perdu la possibilité d'interpréter du code facilement au niveau de l'AmigaDOS ? Pourtant au niveau d'ExecSG (le noyau d'AmigaOS 4) un MiniShell a été (ré-)introduit...

Remarque : j'espère que le langage Java ne restera pas longtemps en manque pour AmigaOS 4, sinon on pourra se tourner vers l'interprète REBOL : cocorico !

Références


[Retour en haut] / [Retour aux articles]