Obligement - L'Amiga au maximum

Dimanche 25 août 2019 - 18:33  

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
 · Articles en d'autres langues


Twitter

Suivez-nous sur Twitter




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


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
 · Systèmes d'exploitation
 · Trombinoscope Alchimie 7
 · Vidéos


Téléchargement

 · Documents
 · Jeux
 · Logiciels
 · Magazines
 · Divers


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Programmation : GFA Basic - timer.device
(Article écrit par Pierre-Philippe Launay et extrait d'Amiga News Tech - janvier 1992)


En quelques années, GFA Basic a acquis une immense renommée, au point d'être possédé par environ un million de personnes. Et c'est un juste retour des choses après ses débuts difficiles. Comme tout nouveau produit, il avait souffert de nombreux bogues de jeunesse.

GFA Basic est maintenant plus performant que le C dans de nombreux domaines (NDLR : cet avis n'engage que l'auteur !). Et on va le prouver. J'utilise la version 3.52F mais attention, la dernière version disponible en France est la 3.042 (ni 3.1, ni 3.2, ni 3.3, ni même 3.4). Il faut également signaler qu'il existe plusieurs ouvrages, publiés par Micro Application, qui traitent du GFA Basic version Amiga.

Un logiciel professionnel se reconnaît à la simplicité de son codage et à la puissance de son exécutable. Pour commencer la série, je voulais frapper un grand coup en proposant un plasma, géré sur toutes les lignes et non pas une ligne sur deux comme cela se voit trop souvent dans les démos. Micro Application me dit qu'il serait plus professionnel de montrer la gestion d'un périphérique logique ("device"). Mais voilà, c'est compliqué pour des lecteurs ne connaissant que l'aspect BASIC du GFA.

Sauf peut-être le timer.device. Et en plus, on s'aperçoit de l'ignoble vérité : GFA est souvent plus rapide que Lattice C, de 1% à 15%. Le programmeur recherche toujours trois choses : la simplicité, la rapidité et la synchronisation. Le délai se calcule fréquemment avec les fonctions TIMER, DELAY et PAUSE. Pour plus de précision, on utilise également souvent le blanc vertical avec le registre VPOSR. Ou mieux, on ouvre le dispositif approprié. Le timer.device permet de gérer les deux chronomètres internes de l'Amiga grâce aux unités UNIT VBLANK et UNIT MICROHZ.

UNIT_BLANK (valeur 1) sélectionne le chronomètre de synchronisation sur le retour du faisceau d'électrons. C'est celui des longs moments (précision de 0,02 seconde). Avec UNIT_MICROHZ (valeur 0), on sélectionne le chronomètre du CIA 8520, ultra précis, mais qui accapare trop le microprocesseur pour être valable sur des durées dépassant la seconde.

Peut-on programmer directement le matériel en GFA Basic ? Oui, mais ce n'est pas élégant. La vraie solution passe donc par le timer.device, qui assurera la pérennité de vos applications avec l'évolution de l'Amiga.

Le codage commence par charger instantanément une image de cinq plans de bits. Heureux utilisateurs des disquettes ANT, vous êtes des privilégiés car vous aurez l'exécutable IMENSITE et la source IMENSITE.GFA (deux fois 75 ko, dont une bonne partie pour l'image). On crée ensuite une structure de port que l'on étend à 40 octets. Puis l'on ouvre le dispositif périphérique timer.device et l'on nomme les parties intéressantes de la structure timerequest%. On est prêt, timer.device peut commencer à s'amuser.

Il charge donc le nombre de secondes écoulées depuis la création de l'univers, le premier janvier 1978, peu de temps avant la naissance des mammouths préhistoriques. Après ces milliards et ces milliards de secondes, il affiche sa différence. Le programme est fortement inspiré des pages 677 et suivantes de la Nouvelle Bible de l'Amiga.

Rassasié, on referme le tout puis on passe à la deuxième partie qui utilise la fonction CurrentTime de la bibliothèque Intuition. Une fois compilé, le codage se synchronise au début de la seconde suivante pour éviter les aberrations de mesure, puis il teste la ou les fonctions désirées. Une boucle à vide met 64 cycles en GFA Basic compilé avec un plan de bits de 320 pixels sur 256. Ce résultat varie bien sûr selon les autres tâches en cours. Je trouve de 62 à 65 sur un Amiga 500, 68000 à 7 MHz, lecteur externe, 1 Mo de mémoire. En Lattice C, on aura 70 cycles et plus. De même, pour afficher la lettre A avec printf('A'), on met 10 535 cycles en Lattice C, contre 10 490 en GFA qui déteste pourtant le PRINT. En utilisant des fonctions spécifiques GFA Basic, on descend à 1409 cycles, et moins quand on ruse.

Puis on passe à la troisième partie, qui ne dure que le temps que reste enfoncé le bouton de la souris.

GFA Basic
GFA Basic
GFA Basic


[Retour en haut] / [Retour aux articles]