Programmer sur Amiga (part I)
Par Thomas Reiss le vendredi 2 novembre 2007, 14:16 - Scène - Lien permanent
Après quelques semaines de tatonnement, j'ai réussi à programmer quelques petites choses inutiles sur mon Amiga. Voici le récit de mes aventures, sous la forme d'un petit mémento à l'attention de programmeur connaissant déjà la programmation du 68000.
Conflit de générations
Plusieurs générations d'Amiga se sont succédée, et à chaque saut son petit lot de nouveautés et d'améliorations.
Les premiers Amiga, essentiellement les Amiga 1000, ainsi que les Amiga 500 et 2000, sont architecturés autour d'un processeur 68000 et du chipset OCS, pour Original Chip Set. Ces composants singuliers pour l'époque font toute la supériorité de l'Amiga sur les autres plate-formes du moment, dont l'Atari ST, qui n'est qu'une piètre machine à écrire en comparaison.
A cette première génération a succédé une seconde, introduite par l'Amiga 3000, les chipsets ECS, pour Enhanced Chip Set. Quelques améliorations ont été apportées, mais toutefois sans révolutions. Les Amiga 500+ et les Amiga 600 intègrent ce chipset, de même que certains Amiga 500 et 2000 sortis au-delà de 1990.
Enfin, la sortie de l'Amiga 1200 et de l'Amiga
4000 a introduit l'AGA, pour Advanced Graphics Architecture. Les
changements sont plus marquants, mais à l'image du STe face au ST (et le fameux
too little, too late
), mais la révolution attendue n'est pas là. Seule
la partie graphique a évoluée, les autres composants n'ayant pas évolués.
A l'AGA devait succéder une quatrième génération qui devait être porteuse de
révolution, mais elle n'est finalement jamais sortie, suite à la faillite de
Commodore et de tout le cinéma qui s'en ait suivi.
On pourrait considérer qu'il y ait finalement une quatrième génération avec
toutes les machines boostées à coup de cartes 68060 et PowerPC, mais ce n'est
absolument pas le propos de ce petit billet. Ici, on programme salement, on
tratouille directement les registres sans se soucier du système et on aime
ça !
Choisir son arme
De tous ces chipsets, il faut choisir sa cible. Le mieux est, dans un
premier temps, de s'intéresser au chipset OCS, l'original, le rustique, celui
qui a détaché l'Amiga du lot. Les chipsets ECS et AGA seront également abordés,
mais essentiellement pour souligner leurs différences et montrer ce qu'il faut
faire pour les rendre compatible avec l'ancètre.
Rien n'empêchera d'aller voir l'AGA, il y a un peu de documentation disponible
sur ce dernier chipset, dont le document de Randy sur l'AGA que j'ai placé en
pièce jointe.
Le plus dur n'est pas à faire
La partie la plus compliquée quand on débute sur une nouvelle plate-forme
est de disposer d'une routine dite d'init ou de startup, qui
va nous permettre de prendre la main sur le système pour nous offrir un terrain
d'expérimentation, et surtout nous rendre la main correctement, en restaurer le
système comme il était avant l'exécution de notre programmation tout vilain qui
tape dans les registres.
Un système d'exploitation peut être vu comme les toilettes, il convient de
rendre ce lieu
dans l'état dans lequel on l'a trouvé en arrivant. C'est
un principe de base qui va surtout nous permettre d'économiser beaucoup de
temps et aussi donner la satisfaction d'avoir un programme qui marche.
Dans le numéro #3 du diskmag Trashcan, Flynn/Capsule fournie une routine d'init fiable, certe un peu crade, qui va nous servir de base pour découvrir les méandres de l'Amiga. Le principal défaut de cette routine est sa facheuse tendance à désactiver complètement le système, mais pour une démo orientée pour l'Amiga 500, c'est parfait.
Ce qui vous attend
Cette petite mise en bouche vient de poser le décor, mais encore rien de concret. La partie suivante se contentera de présenter les outils indispensables au codeur en herbe. Nous enchaînerons par la suite sur quelques effets basiques sans autre intérêt que de découvrir les entrailles de l'Amiga.
Je posterai la suite quand elle sera prête, j'espère être assez régulier car
je n'ai rien de prêt à l'avance.




