APPLICATIONSPROGRAMMATION ★ DEFSPR, LISPR et CREGET: AMSTRAD PLEIN DE LUTINS ★

Defspr - Lispr - Creget (Amstrad Magazine)Applications Programmation

Généralement plus connus sous le nom de “sprites”, ces mystérieux objets ont la particularité de se superposer à un décor et d'y évoluer sans provoquer d'effacement. Les sprites, qui peuvent à juste titre être considérés comme des mini-mémoires écran autonomes, sont gérés d'ordinaire par un composant spécifique (coprocesseur vidéo) sur des machines telles que le Commodore 64 et les MSX. L'absence d'une telle bénédiction sur les modèles Amstrad, nécessite l'emploi d'un programme capable de régler à lui seul, tous les problèmes issus de l'intrusion d'un ou plusieurs lutins dans la mémoire écran ; à savoir principalement : la sauvegarde momentanée de la zone écran occupée par un sprite et sa restitution après déplacement.

Voici donc pour l'agrément de vos programmes, une petite merveille de routine bien évidemment perfectible, destinée à l'élevage des lutins sur 464, 664 ou 6128. Leur création s'effectuera selon les trois étapes suivantes :

1 - Dessin du lutin et sauvegarde des données

Le programme "DEFSPR" est un éditeur proposant une matrice de 30 colonnes sur 16 lignes, soit en mode 0 :4 caractères sur 2. Toutes les fonctions principales sont incluses : remplissage, suppression, insertion, copie, rotation de lignes ou de colonnes, décalages et miroirs horizontaux ou verticaux du sprite complet, renseignement sur les canaux ou les encres, verrouillage d'une encre pour une écriture en continu, sauvegarde ou chargement d'une matrice, new, recopie du tampon à l'écran et le fin du fin, une page d'aide. Le sprite une fois dessiné, l'option "Q" décide de l'allocation mémoire avant sauvegarde (les sprites étant traités différemment selon leur taille), à condition de suivre à la lettre les recommandations suivantes :

— "Serrez" le lutin dans le coin haut/gauche de la grille à l'aide des commandes appropriées.

— Placez le curseur dans le coin bas/droite du lutin.

— Tapez "Q" et répondez "O" à la question "Curseur placé ?". Un sprite sauvé ne sera utilisé que dans l'espace qui lui aura été préalablement alloué. Vous disposez donc par cet utilitaire, d'un outil raisonnable facilitant toute conception en matière de sprites.

2 - Rappel des sprites créés, numérotation et rangement optimisé

Le programme “LISPR” charge les sprites les uns à la suite des autres, leur alloue un numéro d'ordre et les range en RAM sous un format utilisable. Après lancement, le programme affiche le catalogue de la disquette où figure les fichiers précédemment créés. Le nombre de fichiers désirés est ensuite demandé ainsi que le nom de chacun. L'ordre d'appel constitue l'ordre de rangement des sprites (en fait, leur numéro). Il est possible d'utiliser douze sprites simultanément (ce nombre est limité en raison de l'espace mémoire). Une fois tous les lutins stockés, “LISPR” charge le programme binaire “PSPR“ à la suite des données et sauve le tout sous le nom de “sprHIMEN”. Pourquoi “sprHI-MEN" ? Pour cause d'amnésies éventuelles. Ainsi, le MEMORY à effectuer avant le chargement de la routine vous est astucieusement rappelé.

3 - Utilisation des sprites dans un programme basic

Votre programme basic doit impérativement débuter par la ligne suivante :

10 MEMORY &XXXX : LOAD"SPRXXXX.BIN"

L'utilisation d'un sprite s'effectue par la fonction :

CALL &9800, X +numéro du sprite, abscisse, ordonnée, mode
— Le numéro du sprite est l'identification du lutin (de 1 à 12).

— La valeur de X permet de jouer facilement avec l'effet scrolling ou le changement de pages écran. A 0, le lutin est normalement effacé puis réaffiché aux nouvelles coordonnées. A 64 (&40), le sprite est laissé à son ancienne position, il n'est ni effacé, ni réaffiché. A 128 (&80), le lutin effacé n'est pas réaffiché.

— L'abscisse spécifie la position horizontale du côté gauche du lutin. Cette valeur doit être comprise entre 0 et 159-L, où L est la longueur du sprite. L'ordonnée est la position verticale du haut du lutin qui doit se situer entre H (hauteur du lutin) et 199.

— Le mode précise le type d'affichage (0, 1, 2 ou 3). En mode 0, nous avons affaire à un vrai sprite. En mode 1, le sprite est affiché comme un caractère. En mode 2, un OU logique est effectué entre le sprite et le fond. En mode 3, un XOR logique confère au lutin un aspect surréaliste.

Si vous ne désirez pas voir des morceaux d'écran disparaître purement et simplement sous des sprites, utilisez le principe LIFO : le dernier lutin affiché doit être le premier enlevé lors des chevauchements. Voilà pour la partie utilisation.

Sauvegarde des programmes

— Sauvez le programme basic "DEFSPR".

— Sauvez le programme basic "LISPR”. Utilisez une cassette différente si vous pratiquez encore ce type de sauvegarde et supprimez dans ce cas la fonction CAT de la ligne 20.

— Tapez et lancez le programme "CRE-GET". En l'absence d'erreur dans les DATA, le fichier binaire GET9800 ainsi créé se sauvegarde automatiquement (à la suite de “LISPR").

— Tapez ensuite et lancez le programe "CREPUT" qui sauvegarde de la même manière le fichier binaire PSPR.BIN (à la suite de GET9800).

Vous aurez droit prochainement aux listings sources commentés de GET9800.BIN et de PSPR.BIN, ainsi qu'à quelques explications complémentaires. Patience...

AMSTRAD MAGAZINE n)29

★ EDITEUR: AMSTRAD MAGAZINE
★ ANNÉE: 1987
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEURS: Denis JARRIL , Stéphane SCHREIBER
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» DefSPR-LisSPRDATE: 2013-09-09
DL: 242
TYPE: ZIP
SiZE: 10Ko
NOTE: Extended DSK/40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » Graphic - CPC 34 - Animation et Gestion de Sprites (CPC Revue)
» Applications » Bankman nos seus Programas (Amstrad Magazine)
» Applications » Creat - Créateur de Chargeur Basic (Cahiers de l'Amstrad)
» Applications » Turbo Lader Science
» Applications » NPS Micro-Cobol
» Applications » ACU Basic Bugbuster (Amstrad Computer User)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 830 millisecondes et consultée 1774 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.