CODINGCLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★

5/07.1 - Effets vidéo sur CPC (28e Complément)Coding Classeurs Weka
5/7 - La mémoire d'écran

5/7.1 Effets vidéo sur CPC

Peut-être avez-vous remarqué dans certains jeux ou utilitaires, des effets vidéo agréables, au demeurant fort simples, mais qui produisent toujours leur effet de surprise.

Nous vous proposons dans ce chapitre de créer quelques instructions sous forme de RSX qui vous permettront d'effectuer des présentations intéressantes sur l'écran de votre micro-ordinateur préféré.

Ces nouvelles instructions, utilisent pour la plupart les registres du composant s'occupant de la gestion de l'écran des CPC, c'est-à-dire le 6845 de chez Motorola. Nous vous conseillons à cette occasion de relire les pages de la Partie 2 Chapitre 3.2 traitant de ce composant.

Programmation du 6845

Après avoir pris connaissance des registres du 6845, vous savez maintenant que pour accéder à l'un des registres de programmation de celui-ci (registres de contrôle R0 à R17), il vous faut donner le numéro de ce registre dans le registre d'adresse AR.

Le registre d'adresse AR se trouve à l'adresse numéro &BC00, le (ou les) registre(s) de contrôle se trouvant à l'adresse &BD00.

Ainsi en Basic, pour charger le registre de synchronisation horizontal avec la valeur &4F, il faudra entrer :

OUT &BC00,2 : REM NUMERO DU REGISTRE R2
OUT &BD00,&4F : REM MODIFICATION

Cela donne, en assembleur :

LD A,2 ; NUMERO DU REGISTRE
LD BC,0BC00H ; ADRESSE AR
OUT (C),A ; ACCES R2
LD A,04FH ; VALEUR
LD BC,0BD00H ; ADRESSE REGISTRE CONTROL
OUT (C),A ; MODIFICATION

Les nouvelles instructions Basic
|INIT6845

Comme nous allons modifier les caractéristiques des registres du 6845, nous avons, en premier lieu, pensé à créer une instruction permettant de reconfigurer l'état d'initialisation de ce composant.
Cette instruction vous permettra aussi, lorsque vous voudrez expérimenter quelques effets personnels, de restaurer l'écran qui sera peut-être perdu.

|SCROLLPRINT

Cette instruction dont la syntaxe est la suivante :

|SCROLLPRINT,positionx,positiony,@TEXTE$

permet d'afficher à la position positionx,positiony (comme LOCATE positionx,positiony), le message situé dans la variable alphanumérique TEXTES.

Rien de bien original nous direz-vous ! Si ! Le message s'affichera caractère par caractère, avec un effet de scrolling arrière surprenant.

|ROULEH

Cette instruction fait disparaître le contenu de l'écran de votre CPC avec un effet de rouleau horizontal.

Il est possible de restaurer instantanément le contenu de celui-ci grâce à l'instruction |INIT6845.

Une utilisation intéressante consisterait à créer cet écran suite à l'utilisation de |ROULEH, c'est-à-dire en mode non visualisation, puis de le faire apparaître instantanément.

|DEROULEH

Cette instruction effectue le mouvement inverse sur l'écran du CPC et restitue le contenu caché de l'écran en le déroulant.

|TREMBLE

Cette instruction provoque le tremblement de l'écran dans le sens vertical.

L'arrêt de l'effet de cette instruction s'effectue par l'utilisation de |INIT6845.

|ONDULE

Cette instruction enivre votre écran en provoquant une légère ondulation du contenu de celui-ci.

Vous pourrez accentuer ou adoucir celui-ci en modifiant le réglage du bouton de synchronisation de votre moniteur.

Pour annuler cet effet, un seul remède : |INIT6845.

|ECRASE

Cette instruction provoquera un effet d'écrasement de toute l'image située sur l'écran. Effet qui pourra faire croire à un défaut sur l'ordinateur d'un de vos amis.
Là encore, on restitue l'état initial de l'écran à l'aide de |INIT6845.

|DESTROY

Pour aller plus loin dans la dégradation fictive de votre écran, voici une instruction qui modifie complètement la synchronisation de l'écran et qui en surprendra certainement plus d'un !

Le service après-vente vous conseille d'entrer, en mode aveugle, ou à tâtons, l'instruction |INIT6845.

Le programme Assembleur

L'écriture de ce programme créant de nouvelles instructions passe automatiquement par l'assembleur, mais, rassurons tout de suite les programmeurs férus du Basic, nous leur fournirons le chargeur adéquat.

Le listing assembleur est le suivant :







Lignes 9 à 34 : définitions des équivalences utilisées
Lignes 54 à 115 : définition des instructions
Lignes 129 à 166 : instruction |INIT6845
Lignes 173 à 195 : instruction |ROULEH
Lignes 201 à 223 : instruction |DEROULEH
Lignes 229 à 236 : instruction |TREMBLE
Lignes 242 à 249 : instruction |ECRASE
Lignes 257 à 355 : instruction |SCROLLPRINT
Lignes 363 à 370 : instruction |DESTROY
Lignes 376 à 383 : instruction |ONDULE

Le chargeur Basic:


Après sauvegarde et vérification, vous lancerez ce programme et suivrez les instructions affichées à l'écran.

Pour utilisation, vous entrerez dans votre programme les lignes suivantes :

10 MEMORY &9FFF
20 OPENOUT "TRUC."
30 MEMORY HIMEM - 1
40 CLOSEOUT
50 LOAD "EFFETVID.BIN",&A000
60 CALL &A000

Programme de démonstration

Nous vous conseillons, pour une première utilisation, d'entrer le programme de démonstration suivant, qui permet de s'assurer du bon fonctionnement du programme, surtout si vous avez utilisé le chargeur Basic.



Après lancement, vous verrez apparaître tous les effets décrits plus haut.

Page précédente : 5/07 - La mémoire d'écran
Je participe au site:

» 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.732-desktop/c
Page créée en 149 millisecondes et consultée 375 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.