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: - Le ou les canaux sur lesquels doit être produite la note désirée est un entier compris entre 0 et 7: pour envoyer la note sur l'un des canaux A,B ou C du PSG, il convient de mettre à 1 le bit correspondant (respectivement bits 0,1 et 2),
- L'octave est un entier compris entre 0 et 7 (de l'octave la plus grave à l'octave la plus aïgue).
- La note est un entier compris entre 0 et 11 (de sorte que les 12 demi-tons de chaque octave sont atteints).
- Le volume est un entier compris entre 0 et 15.
Cette nouvelle instruction se présente donc sous la forme: MUSIC, canaux, octave, note, volume. 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 ★ AMSTRAD CPC ★ DOWNLOAD ★ |
CPCrulez[Content Management System] v8.7-desktop/c Page créée en 142 millisecondes et consultée 1898 foisL'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. |
|
|
|