| ★ APPLICATIONS ★ CREATION MUSICAL ★ Extension RSX/MUSIC ★ |
| Music (Amstrad Magazine) | Applications Creation Musical |
L'Amstrad est équipé d'un générateur de son, programmable, assez sophistiqué, le AY-3-8912 de General Instruments. Celui-ci dispose de 3 canaux sur chacun desquels il est possible de programmer un signal de période et d'amplitude données.Le Basic de l'Amstrad dispose d'une seule instruction, SOUND, pour gérer le PSG (Programmable Sound Register). Celle-ci offre de nombreuses possibilités, mais ne permet pas de créer directement une note de musique, dans une octave donnée. SOUND réclame impérativement la période correspondante. Le programme assembleur ci-dessous pallie cette carence: il complète le Basic par l'instruction |MUSIC qui demande quatre arguments:
Elle est aisément ajoutée au Basic, de l'Amstrad grâce à la souplesse de la ROM Basic et du système d'exploitation, qui offrent la possibilité de définir ses propres instructions sous la forme d'extensions du Basic, dites extensions RSX (pour Resident System Extensions). Le listing assembleur indique justement la marche à suivre pour créer une telle extension. Il est nécessaire de protéger la zone mémoire occupée par l'instruction en éxécutant un MEMORY &8FFF, et d'initialiser la nouvelle instrumention par un CALL &9000. Dès lors, le Basic reconnaîtra |MUSIC comme une instruction à part entière. Il est également possible d'utiliser cette instruction dans un programme en langage machine. Les quatre arguments sont alors transmis dans les registres B,C,D et E du Z-80, et il convient d'appeler la routine MUSIC (se reporter au listing). L'instruction fait également appel à la routine LECTUR qui permet la lecture des registres du PSG, et qui donne un exemple de programmation du port parallèle 8255 qui assure la liaison entre le circuit sonore et le microprocesseur. Attention avant de taper le programme, remplacer les “ùMUSIC” par “|MUSIC” et les £ par #. AMSTRAD MAGAZINE n°3
|