APPLICATIONSCREATION 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:

  • 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

★ EDITEUR: Amstrad Magazine
★ ANNÉE: 1985
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR: Bernard Auré
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listings:
» RSX-MUSIC    (Amstrad  Magazine)    FRENCHDATE: 2020-04-30
DL: 290
TYPE: ZIP
SiZE: 4Ko
NOTE: 40 Cyls
.HFE: Χ

» RSX-MUSIC    (Amstrad  Magazine)    FRENCH    LISTINGDATE: 2020-05-27
DL: 294
TYPE: PDF
SiZE: 964Ko
NOTE: 5 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » 60 Rsx Commands
» Applications » Pride Utilities - Rsx Printer Pac 2
» Applications » Rsx - Alpha Rom
» Applications » Benutzeroberflaeche CEUS v2.0/CEUS Desktop v2.0
» Applications » RSX Sprint
» Applications » RSX Background printing (Popular Computing Weekly)
Je participe au site:
» Vous avez des infos personnel ?
» 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 142 millisecondes et consultée 1898 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.