Obligement - L'Amiga au maximum

Vendredi 29 mars 2024 - 15:35  

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

 


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]