★ CODING ★ GAMESLIST ★ ASSEMBLEUR ACPC N°25 ★ |
L'AS HUIT DU SERRE PAN |
Coucou ! me revoilà. On était resté le mois dernier avec un écran et ses couleurs et un cadre fait par des CHR$(143). Le Border était également mis, mais notre cage à serpent restait vide. On saute dans la gueule du loup (quel cirque !). Avant toute chose, on modifie le programme précédent en remplaçant le CHR$(143) par CHR$(232), qui représente un carré vide. Pourquoi ? Parce que lors des tests de collision, on utilisera l'équivalent de COPY CHR$ du Basic et le carré plein du caractère ASCII 143 est pris par cette routine comme un espace (CHR$(32)), et croyez-moi, c'est le caca assuré. Je vous donne le programme tout entier. Il peut être saisi et lancé par un CALL 40000. Pour plus de détails, suivez le guide (c'est moi, qu'il faut suivre, OK ?). LE GUI DADDY Il a dit qu'on initialise les variables avant de lancer le prog. Vous verrez plus tard à quoi elles correspondent. On entre ensuite dans une nouvelle ère, qui est la boucle principale du jeu. Pour cela, je me dois de vous explica-turer la technique employée pour le bon déroulement de ce mini jeu.
Cela représente, d'une façon simple, un organigramme. Sans ce genre de plan, vous aurez beaucoup de mal à écrire des programmes en assembleur. DECOR PTIT CON Vous comprenez maintenant la procédure logique que va suivre le programme, hummmm ? Il ne nous reste plus qu'à décortiquer les sous-routines pour que la lumière soit. LE CLAVIER Le premier CALL appelle la routine qui doit tester et éventuellement stocker la touche du clavier enfoncée par le joueur. Lors de l'initialisation, on place dans l'octet TOUCHE la valeur 243 qui est la trace de la touche fléchée pointant à droite. On utilise la mnémonique DJNZ, qui crée ainsi une boucle de 256, car vous le voyez comme moi, le registre -B est chargé avec la valeur 0. En le décrémentant aussi zarbi que cela paraisse, il passe à 255 ; l'inverse serait vrai parce que incrémenter 255 sur un registre 8 bits donne zéro. Dans les deux cas, le Flag (ou drapeau en français ou encore Carry pour les copines) C est mis et vous permet le cas échéant de faire des branchements conditionnels (voir Cent Pour Cent 24). Revenons à nos bêtes qui broutent dans la prairie. Le vecteur BB1B teste le clavier. Si une touche est enfoncée, sa valeur ASCII sera mise dans l'accu et le Flag C sera mis à 1. Donc, si après l'appel de Victor, la Carry n'est pas mise à 1, on saute la ligne qui stocke la touche et on boucle 256 sur cet appel système (rassurez-vous, ça va très vite). Il va de soi que si le joueur appuie sur une touche, on note comme un grand sa valeur dans l'octet portant le label TOUCHE. Quand notre boucle est finie, on revient au point d'appel par l'instruction RET. DE PLUS EN PLUS LONG La deuxième sous-routine remplace la tête de serpent par un caractère formant son corps. On emploie dans ce cas le PEN 3. Inutile de revenir sur le père BB90 ? Le label XY est formé par deux octets. Dans le premier se trouve la valeur en X de la tête (1 à 40), alors que le deuxième garde bien au chaud la valeur de cette même tête en Y Etant donné que pour positionner le curseur à l'écran (LOCATE ou BB75) on doit placer dans H le numéro de la colonne en coordonnées logiques, et dans L le numéro de la rangée en coordonnées logiques, on peut faire direct LD HL,(XY) qui charge d'un coup les deux registres. BB75, je ne reviens pas sur lui car vous êtes censés le connaître par cœur. Afficher le caractère 230 me paraît également très clair. LA SUITE Les sous-prgrammes ne sont pas écrits dans l'ordre de leur apparition dans la boucle principale, mais cela ne change rien. La suite physique des sous-routines nous mène à l'affichage de la tête. Est-il vraiment utile de vous expliquer ce sous-programme qui ressemble comme deux gouttes d'eau au précédent ? Nous verrons le mois prochain la suite et la fin de notre petit jeu. Dans l'attente de cette promesse, étudiez ce qui a été dit. Mettez-y votre grain de sel si vous le voulez et, pourquoi pas, essayez de comprendre la suite qui ne doit pas poser trop de problème pour peu que vous vous donniez un peu de mal. On m'a souvent demandé conseil pour l'achat de livres traitant de l'assembleur pour débutants. Les Clefs pour Amstrad sont évidemment indispensables pour la suite de votre travail, même si ce livre est introuvable. Par contre, je ne saurais trop vous conseiller l'Assembleur de l'Amstrad CPC464 et 664 édité chez PSI (si vous ne le trouvez pas, il vous reste la solution de vous jeter dans la Seine ou sous le premier métro venant de la Porte d'Orléans). Il est truffé de bons tuyaux et aurait pu s'appeler Hoggy (eh oui, Hoggy les bons tuyaux). Un dernier conseil pour tous ceux qui aiment l'assembleur : allez faire un tour du côté de la rue Belleville dans te XLXe à Paris. Au 79, vous trouverez un petit restau antillais hyper sympa qui mérite d'être visité le samedi soir, car... PS : Le mois passé, j'ai oublié de mettre dans le panier des sauts conditionnels les instructions JR. Voilà qui est réparé. Zède, le Snake charmeur , A100% n°25 |
Page précédente : Assembleur ACPC n°24 |
|