★ CODING ★ CLASSEURS WEKA ★ Comment exploiter toutes les ressources et augmenter les performances de votre AMSTRAD CPC ★ |
6/5.1 Fichiers musicaux sous interruptions | Coding Classeurs Weka |
6/5 Logiciels6/5.1 Fichiers musicaux sous interruptions Les programmes qui suivent vous permettront de créer simplement des fichiers musicaux exécutables sous interruptions (IT en abrégé), et donc pendant qu'un autre programme se déroule. Deux programmes sont présentés :
Examinons en détail le système d'IT existant sur le circuit sonore AY3-8912. ACTIVATION DU PROCESSUS SONORE SOUS IT Tout d'abord, signalons aux personnes qui ne sont pas habituées à manipuler les IT que les choses se déroulent en deux temps : 1°) Déclaration de l'IT et armement, 2°) Définition de la routine qui sera exécutée à chaque IT.
1°) Déclaration de l'IT et armement : Pour déclarer l'IT, nous ferons appel à la macro du firmware « INITEV » (KL INIT EVEN BLOCK #BCEF), dont le but est de définir le type d'IT et son adresse d'exécution (Reportez-vous en 4/2.7 pour avoir plus de détails sur cette macro). Pour lancer l'IT, nous faisons appel à la macro du firmware « ADDEVE » (KL ADD TICKER # BCE9) dont le but est de définir l'intervalle de temps entre deux IT consécutives. (Pour plus de détails, reportez-vous à la partie 4 chap. 2.7). 2°) Définition de la routine qui sera exécutée à chaque IT : Ces deux routines appelées, il faut définir la routine qui sera exécutée à chaque IT. La première opération à faire dans une telle routine est de dévalider les interruptions (Dl), la deuxième est de sauvegarder les registres qui risquent d'être écrasés (PUSH AF, BC, DE, HL, IX et IY). Ensuite, la routine d'IT peut être décrite. Dans notre cas, si l'IT est exécutée pour la première fois, il faudra définir une enveloppe de volume par la macro du firmware « ENV ». Reportez-vous à la partie 4 chap. 2.7 pour avoir plus de détails. Ensuite, que ce soit la première fois ou non, nous allons activer la voie de droite (1 ), puis les voies de droite et de gauche simultanément (4), puis la voie de gauche (2) par la macro du firmware « SOUND ». Reportez-vous à la partie 4 chap. 1.2.7 pour avoir plus de détails. Si le morceau est fini, le pointeur de notes sera remis au début du morceau ; autrement dit, le morceau s'exécutera sans fin. L'IT doit se terminer par la restitution des registres (POP IY, IX, HL, DE, BC, AF) dans l'ordre inverse où ils ont été sauvegardés, et par la revalidation des interruptions (EI), d'où l'organigramme suivant (Voir page 3) . Cet organigramme donne lieu au programme suivant:
Lignes 1 à 14 : Déclarations diverses. CRÉATION DE FICHIERS MUSICAUX EXÉCUTABLES SOUS INTERRUPTIONS Si vous possédez une partition et si vous savez la déchiffrer, il vous sera très simple de créer des fichiers musicaux exécutables sous IT par l'éditeur musical que nous présentons ici. Cet éditeur ne permet de générer que des notes ayant la même durée. Si vous désirez créer des notes ayant des longueurs différentes, il sera nécessaire de : 1°) modifier le programme d'IT en définissant une enveloppe de volume différente pour chaque longueur de note, 2°) valider l'enveloppe correspondant à la durée de note à jouer avant chaque émission de note. Dès le début du programme, un menu apparaît à l'écran. Vous pouvez :
L'écriture du morceau fait aussi appel à un menu. Vous pouvez :
L'option « exécution du morceau » fait entendre les trois voies simultanément, du début à la fin du morceau, en exécutant le programme d'interruptions cité précédemment. L'option « Sauvegarde » permet de créer un fichier musical directement utilisable par le programme d'IT. Ce fichier pourra être repris par la suite par l'éditeur musical, ou servir de support sonore à l'exécution d'un jeu (par exemple). L'option « Chargement » permet de mettre en mémoire un fichier musical afin d'y faire des modifications ou d'en continuer l'écriture. L'éditeur musical correspond au listing suivant :
Lignes 1160 à 1210 : Chargement du programme musical sous IT. Le sous-programme assembleur utilisé est le programme d'exécution de musique sous IT précédemment analysé. Remarques : — Pour arrêter la musique, faites POKE &900D,0
|