Obligement - L'Amiga au maximum

Mercredi 23 janvier 2019 - 14:56  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · 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 en d'autres langues


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Logiciels
 · Jeux
 · Scène démo
 · Divers


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

 


Programmation : AMOS - Améliorer les déroulement des démos
(Article écrit par Daisy Lionet et extrait d'Amiga News Tech - juin 1991)


Salut ! Daisy au clavier. Laissez-moi me présenter : je suis le chien de l'individu innommable dont vous venez de terminer l'article. Merci à Stéphane Schreiber de me permettre de m'exprimer enfin (NDLR : de rien !).

J'appartiens donc à la gente canine, et suis une superbe femelle de race indéfinie mais néanmoins harmonieuse, d'un caractère agréable et constant, avec une préférence pour les pantalons bruns qui ont plus de goût... Le malheur a voulu que j'atterrisse chez mon maître actuel. Je ne sais ce qu'il a pu vous raconter, mais moi je vais vous dire la vérité vraie : je suis l'unique auteur de d'AMOS. Eh oui, aussi incroyable que cela puisse paraître, François Lionet n'est qu'un imposteur ! Dès qu'il a découvert mes talents en programmation, il m'a attachée au clavier de l'Amiga et m'a obligée à produire 1 ko de langage machine par jour ! Si je n'avais pas atteint ce quota, je n'avais pas droit à ma nourriture.

Pour éviter de sombrer dans la dépression nerveuse, j'ai entrepris la programmation d'un bon nombre de démos dès qu'il avait le dos tourné. Tous les mois, si je suis encore en vie, je viendrai vous en proposer une. Mes démos ont en commun leur thème : l'OS, ce met délicieux que - hélas - je ne peux goûter très souvent !

Avant toute chose, allez donc voir le listing de notre première démo, au bas de l'article. Pour faire fonctionner cette démos, vous devez charger en mode direct une banque de musique. Choisissez-la de préférence plutôt rhytmée. Éteignez la lumière et fixez l'écran pendant quelques heures : vous aurez gagné un aller simple pour l'hôpital psychiatrique le plus proche.

Quelques mots sur cette superbe programmation. Pour obtenir les effets de moirage, la démo utilise une illusion d'optique que vous pouvez facilement recréer : dessinez des lignes parallèles proches sur une feuille de papier et sur un papier calque. Faites bouger la seconde feuille sur la première : les moires apparaissent aussitôt. On peut recréer un tel effet sur Amiga, en utilisant le dual-playfield.

La première partie du programme ouvre deux écrans dual-playfield d'une taille bien supérieure à celle de l'affichage. Les écrans sont ensuite cachés (SCREEN HIDE) pour procéder au dessin des cercles. Un petit écran est ouvert pour faire patienter, et la musique est démarrée.

Les deux écrans ne sont en fait que des vu-mètres. Le défilement est obtenu très facilement en modifiant les valeurs des offsets des écrans (CHANNEL TO SCREEN OFFSET). La voix 0 est affectée à la coordonnée en X de l'écran 0, la voix 1 à la coordonnée Y, les voix 2 et 3 aux coordonnées X et Y de l'écran 1. Tout le travail est effectué sous interruption grâce à deux chaînes AMAL.

Lesquelles chaînes AMAL ne diffèrent très peu : ne change que le numéro des voix dans l'instruction "=Vu()". Plutôt que de réécrire la chaîne en entier, il vaut mieux rechercher les instructions "Vu()" dans la première chaîne (INSTR), et modifier les numéros des voix avec l'instruction "MIDS". Vous pourrez même automatiser le processus pour plus de deux canaux.

Une fois AMAL initialisé, le programme dessine dans l'un des écrans de nombreux cercles concentriques, puis la chose la plus importante de la démo : l'OS ! Cette partie prend 23 secondes (le dessin de cercles n'est pas des plus rapides en AMOS : j'ai dû garder les routines de François).

L'animation est lancée par AMAL ON. Les deux écrans bougent alors automatiquement. Le programme n'a plus qu'à modifier les couleurs des écrans avec "FADE", et à tester l'appui sur une touche du clavier.

Vous pouvez insérer cette démo dans une autre, et faire, par exemple, un défilement de texte dans un troisième écran : l'animation étant faite par AMAL, vous pouvez continuer à travailler en AMOS.

Bon, j'espère avoir remonté le niveau de la rubrique AMOS de l'ANT. Il faut quand même avouer qu'on voit clairement, en lisant mes programmes, qu'il n'y a aucune comparaison entre lui et moi ! Le mois prochain si tout va bien, je vous proposerai une nouvelle démo.

Améliorer le déroulement des démos

La plupart des démos ont une animation au 1/50e de seconde. Le moindre petit défaut dans le déroulement saute immédiatement aux yeux.

Les deux petites procédures qui suivent vont vous permettre de bloquer tous les autres programmes de l'Amiga (dont celui du lecteur de disquette), vous pourrez ainsi récupérer à votre profit toute la puissance de la machine.

Attention : cette routine bloque tout l'Amiga, y compris le système de validation des disquettes. Vous ne devez pas appeler "FORBID" avant d'être sûr que la lumière du lecteur de disquette est éteinte !

Procedure F0RBID
F=Execall(-132)
End Proc
Procedure PERMIT
F=Execall(-138)
End Proc

Appelez "F0RBID" au début de votre programme et établissez le multitâche à la fin grâce à "PERMTT". La seule entrée de votre programme sera alors la souris. Le clavier, les ports, tout restera figé !

Note : F0RBID s'écrit avec un zéro à la place du "O", pour éviter que l'AMOS ne le prenne pour un For-Next... Si vous faites un FORBID (avec la lettre "O") sur une machine plus complexe qu'un A500, je vous conseille fortement d'effectuer une réinitialisation à la fin du programme : les auteurs du système de l'Amiga déconseillent fortement l'utilisation prolongée de cette instruction.

AMOS


[Retour en haut] / [Retour aux articles] [Article précédent]