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

9/8.07 - Défilement d'un message alphanumérique sur l'écranCoding Classeurs Weka
9/8.7 Défilement d'un message alphanumérique sur l'écran

Ce programme va être présenté dans deux versions : Basic et Assembleur. Il vous sera également possible d'entrer les données hexadécimales correspondant aux codes opératoires sous Basic.

Version Basic

Un message alphanumérique quelconque peut être affiché n'importe où sur l'écran, en mode 0, 1 ou 2. Pour cela, il faut placer le message à afficher dans la variable M$. Les coordonnées absolues d'affichage du premier caractère sur l'écran sont placées dans les variables X (abscisse) et Y (ordonnée). La vitesse de défilement est enfin indiquée dans la variable V. L'affichage est déclenché en faisant un « GOSUB 1000 », comme le montre l'exemple suivant :

Le décalage se fait en trois étapes :

– isoler la première lettre de la chaîne ;
– copier les caractères suivants dans la chaîne de départ ;
– placer lé caractère isolé en fin de chaîne. Cette manipulation est faite lignes 1100 et 1110.
La boucle d'attente paramétrée se fait ligne 1120. Elle consiste à faire une boucle FOR NEXT dont la longueur dépend de la vitesse définie dans la variable V.

Le listing du programme est le suivant :

Version Assembleur

Même si la vitesse d'exécution d'un programme écrit en Assembleur n'est plus à démontrer, vous serez peut-être surpris par le programme qui suit.
Il reprend les concepts exposés pour le programme de défilement Basic. Trois routines du FIRMWARE sont utilisées pour faciliter l'écriture du programme. Il s'agit de :
– TXT SET CURSOR (#BB75) qui positionne le curseur à un endroit quelconque de l'écran ;
– TXT OUTPUT qui affiche un caractère à la position courante du curseur ;
– KM READ KEY qui lit le code d'une éventuelle touche actionnée sur le clavier.

Le programme se décompose en cinq parties :
– recherche de la longueur du texte à afficher. Précisons à ce sujet que le texte à afficher doit être suivi du caractère terminateur « nul » de code ASCII 0 ;
– affichage de la chaîne jusqu'au terminateur ;
– rotation de la chaîne,
– ralentisseur. Il consiste en une boucle qui utilise l'ordre DJNZ. Cette boucle contient 6 ordres NOP qui n'ont aucune action particulière, si ce n'est demander un cycle machine pour être exécutés.
– test, si une touche a été actionnée. Si oui, arrêt du programme et retour à l'appelant.

Ces diverses actions se retrouvent dans l'organigramme ci-dessous :

Le listing Assembleur est le suivant :




Pour faciliter l'interfaçage, un programme Basic peut appeler ce pro­gramme Assembleur de la façon suivante :

L'abscisse correspond à la deuxième donnée, l'ordonnée à la troisième donnée.
Les données de la ligne 120 correspondent au programme Assembleur suivant :

Il est également possible de saisir les codes hexadécimaux correspon­dant au programme Assembleur dans un programme Basic. Le listing du programme est alors le suivant :

Si vous décidez d'entrer les codes du programme assembleur sous Basic, vérifiez les codes entrés grâce au programme de checksum (voir Partie 9, chap. 8.4).
Pour cela, tapez « MERGE » suivi du nom sous lequel vous avez sauvegardé le programme de checksum. Exécutez le programme de checksum en tapant « RUN 50000 ». Les données de vérification sont les suivantes :

E6 F2 9D 97 37 E6 12

Si une ou plusieurs des données de vérification ne correspondent pas avec celles données ci-dessus, vérifiez la ligne correspondante.

Remarque :
Plusieurs données nulles ont été rajoutées en fin de listing afin d'assurer la compatibilité avec le programme de checksum.

Page précédente : 9/8.06 - Récupération d'un fichier effacé par la commande ùERA
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.7-desktop/c
Page créée en 494 millisecondes et consultée 1055 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.