Obligement - L'Amiga au maximum

Jeudi 22 juin 2017 - 14:00  

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


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Programmation : Assembleur - faire bouger un BOB avec le Blitter
(Article écrit par Roméo Rapido et extrait d'Amiga News - février 1991)


Comme promis le mois dernier, vous allez enfin pouvoir déplacer un abominable BOB grâce à monsieur Blitter. Nous utiliserons, pour déplacer la bestiole, la manette et la routine de gestion de manette d'il y a quelques mois. Vous remarquerez que si vous déplacez rapidement ce pseudo-lutin, vous ne verrez que quatre positions alors qu'il en est affiché environ 300 horizortalement et 230 verticalement. Ceci est dû ai fait que nous n'attendons pas le passage du spot et que Blitter a le temps de faire moult Blits en un balayage de l'écran. Assez palabré, envoyez la purée.

Comme d'habitude, ce bout de code est à greffer sur les morceaux que je vous est fourni les mois précédents.

Quelques définitions supplémentaires :

Assembleur

Il convient de modifier quelque peu l'appel de la fonction principale :

Assembleur

Fonction qui permet de tester l'attribut "busy" du Blitter pour savoir s'il bosse ou pas :

Assembleur

Attention, c'est ici que les choses sérieuses commencent.

Assembleur
Assembleur
Assembleur

Routine de déplacement de l'objet proprement dite.

Assembleur
Assembleur
Assembleur

Vous avez certainement remarqué que le "SaveBack", comme la restauration de celui-ci utilise un Blit de deux mots de large, alors que le BOB ne fait que 16 bits de large. Cela provient du fait que ce dernier peut être à cheval sur deux mots de 16 bits et donc, pour simplifier les opérations (calcul d'adresses, de modulos, etc.), il est préférable de rallonger toutes les lignes du tampon mémoire de sauvegarde de un mot.

De même, le BOB est "blitté" sur deux mots alors qu'il n'en fait qu'un de large. C'est là que le modulo "-2" intervient. Comme il est blitté deux mots par ligne, à chaque ligne le Blitter prend un mot d'avance. Il est donc nécessaire de le faire reculer de un mot pour que l'adresse de départ de la ligne suivante soit correcte.

Les registres "BLTAFWM" et "BLTALWM" trouvent là une application fort intéressante, puisqu'il permettent de masquer les octets de début et de fin du BOB qui appartiennent à la ligne précédente et à la ligne suivante et qui ne doivent pas être transférés.


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