★ CODING ★ Inititation à l'assembleur ★ |
Assembleur ACPC n°34 |
LA FIN D'UNE EPOQUE EPIQUE OPAQUE Ce titre est là pour vous apprendre que le mois prochain, nous changerons de formule. Nous. reprendrons l'initiation à l'assembleur à son début. Ainsi, les récents acquéreurs de CPC pourront, eux-aussi, participer à cette rubrique. Si nous avons décidé de remanier cette rubrique (lorsque je dis nous c'est en fait surtout Poum), c'est pour essayer de mieux coller au marché des machines et des logiciels. Cela fait maintenant deux ans que nous n'avons pas passé les bases de l'assembleur en revue ; il est onc bien temps de remédier à ce lacune. Mais nous ferons cela un autre jour. En effet, il nous faut. avant tout. en finir avec l'article débuté il y a deux mois. Il s'agissait d'un programme permettant de calculer une trajectoire spiralée centripète rectangle. Comme nous vous avions prévenu, ce genre de sottise cachait une surprise que voici, made in RingardSoft. Cette routine de calcul d'adresse sert en fait simplement à promener un sprite à l'écran. Encore faut-il que vous disposiez d'un de ces lutins. Ce sont les DATAs du programme Basic qui génèrent le nôtre. Il contient en fait une petite boule qui doit faire précisément 8 octets de large sur 16 lignes, soit 32 x 16 pixels en MODE 1. Le sprite, une fois réalisé, a besoin d'un petit programme pour l'afficher. Celui-ci est contenu dans le listing assembleur ci-contre. Il y a deux mois, nous vous avons servi un petit listing de calcul que vous devez merger à la suite de celui proposé aujourd'hui. Vous disposerez ainsi d'une routine implantable en 40000. Les étiquettes sont correctes, donc aucune modification majeure, si ce n'est la suppression des directives d'assemblage du premier source. Cela fait, générez le binaire et sauvez Ie sous le nom AS34.bin. Tapez le Basic et envoyez la purée. Vous obtiendrez normalement une petite animation à en perdre la boule. FLI P-FLAP : FLOP Quelques explications sur la technique employée. Elle est fort .simple et basée sur la manipulation de quatre écrans simultanément. Il s'agit en fait d'afficher un sprite sur le premier, de le rendre physique, d'afficher sur le second avec un déplacement, de le rendre aussi visible et de faire de même pour les deux autres. Après cela, recommencer jusqu'à ce que boat ou break s'ensuive. Comme un déplacement est généré entre chaque flipping, il en découle une animation. Pour les gens en peine de vocabulaire informatique, un écran logique est une zone mémoire considérée comme un écran, sur laquelle sont générés des affichages. Cette banque n'est pas obligatoirement visible sur le moniteur. Un écran physique est aussi une zone mémoire qui est, contrairement à la première, obligatoirement à l'écran mais pas forcément soumise à des modifications. Le flipping est l'art de rendre quelques pages écran logiques et physiques tour à tour. Le listing est divisé en deux parties. La routine AFF et ses appels. Pour chaque écran, nous retrouvons la même structure quatre fois en début de listing: 1 Affichage de la boule sur l'écran logique par soft. Pas de grosse ruse dans cette partie si ce n'est que chaque sous-routine modifie directement l'adresse de base d'écran (MODIF+ 1). Dans AFF, l'adresse de l'écran visé est ajoutée à la base (&C000) et l'affichage peut alors commencer. Pour chaque pixel du sprite, s'il est différent de zéro, l'emplacement écran est nettoyé avant d'être fusionné avec la couleur désirée pour le point. S'il y a des AND dans tous les sens, c'est à cause de la structure à la mords-moi le bip de cette vidéo au goût étrange venu d'ailleurs. Cette manipulation est, bien entendu, réalisée pour les 128 octets représentant le sprite. UN P'TIT COUP D'VOP Si Annie aime les sucettes du même goût. notre Robby centpourcentesque ne crache pas sur les Yop à la fraise. Quoiqu'en ce moment, il serait plutôt lait chocolaté. Je ne sais pas pourquoi je vous raconte tout cela mais c'est trop tard, c'est déjà écrit. Bref, si vous changez de module de calcul de trajectoire commençant à l'étiquette CALCUL, en prenant par exemple des tables contenant des courbes sinusoïdales, tout fonctionne de la même manière. Il ne tient qu'à vous d'optimiser la routine, histoire de faire quelque chose de plus propre, Faut dire que ce programme est un premier jet et que toute modification est obligatoire, si ce n'est nécessaire. Nous sommes ici pour vous inciter à programmer en vous donnant des astuces et des idées. Si nous vous mâchions le travail. vous ne seriez plus des artistes de la programmation, mais des zombies de l'informatique, A bon entendeur; assemblage. Que la vie vous soit douce et Dams docile. C'est encore une fois le moment de nous quitter, histoire de mieux se retrouver dans quelques jours. Nous vous saluons en vous rappelant que votre courrier sera toujours le bienvenu.
Sined le barbare, ACPC n°34 Fev91, p56-57
|