Partie 7 : les vecteurs système II LES SONS BCA7 : Initialise le gestionnaire sonore. Ce vecteur coupe tous les sons joues ou en attente et réinitialise les différentes enveloppes (volume, fréquence). CA : Aucune. CF : les registres AF,HL,BC et DE sont modifies. BCAA: Place un son sur le canal demande (l'instruction SOUND du Basic) CA : HL pointe sur une table de données sonores de 9 octets qui doit se trouver dans la zone Ram entre &4000 et &C000. CF : Si le canal n'est pas sature (cinq sons en attente) le son est place sur le canal et CARRY = 1, HL est modifie sinon, CARRY = 0. En tout cas, les registres AF, BC, DE et IX sont modifies. La table des données n'est pas organisée comme la commande SOUND du Basic. Voici l'ordre de placement des paramètres: ORG 40000 LD HL,SONS JP &BCAA SONS DEFB 1 ;CANAL DEFB 2 ;ENVELOPPE DE VOLUME DEFB 3 ;ENVELOPPE DE TON DEFW 1000 ;FREOUENCE DEFB 31 ;BRUIT DEFB 15 ;VOLUME DEFW 300 ;DUREECet exemple équivaut à la commande SOUND 1,1000,300,15,2,3,31. Vous constatez que la fréquence tout comme la durée du son sont placées sur deux octets.Notez enfin que les valeurs négatives remplissent les mêmes rôles qu'en Basic . BCAD : Teste l'état des canaux sonores (l'instruction SQ du Basic). La valeur d'entrée pour les trois canaux sonores sont 1 pour le canal A, 2 pour le canal B et 4 pour le canal C. Le mélange des canaux n'est pas réalisable par ce vecteur. CA : A = Numéro du canal à tester. CF : A = l'état du canal. Les registre F, BC, DE et HL sont modifies. BCB6 : Arrête momentanément tous les sons. CA: Aucune. CF : Les registres AF, BC et HL sont modifies. BCB9 : Libère les sons arrêtes avec la routine BCB6. CA : Aucune (si ce n'est l'utilisation de la routine précédente). CF : Les registres AF, BC, DE et IX sont modifies. BCBC : Création d'une enveloppe de volume (ENV). CA : A = numéro de l'enveloppe (1 it 15). HL pointe sur les données de l'enveloppe (15 octets). CF : HL est augmente de 16, AF, HL et BC sont modifies. BCBF : Création d'une enveloppe de fréquence (ENT). CA : A = numéro de l'enveloppe (1 it 15). HL pointe sur les données de l'enveloppe (15 octets). CF: HL est augmente de 16, AF, HL et BC sont modifies. BCC2 : Donne l'adresse des données d'une enveloppe de volume. CA : A = numéro de l'enveloppe (1 it 15). CF : Si OK, CARRY = 1, HL pointe sur les données et BC = la longueur de l'enveloppe. Les registres F et DE sont modifies. BCC5: Donne l'adresse des données d'une enveloppe de fréquence. CA : A = numéro de l'enveloppe (1 it 15). CF : Si OK, CARRY = 1, HL pointe sur les données et BC = la longueur de l'enveloppe. Les registres F et DE sont modifies. Nous verrons, des le prochain numéro, la suite des vecteurs utilisés pour les accès disque, le mode graphique sans oublier le gestionnaire écran. LE GESTIONNAIRE GRAPHIQUE Si l'écran du CPC est toujours en mode graphique, il existe des primitives pour la gestion texte et la spécialisation graphique. Sachez tout de même, pour la suite, qu'une coordonnée dite absolue se réfère à l'origine (au point 0,0) de l'écran, alors qu'une coordonnée relative se réfère à la position actuelle du curseur. Exemple: le curseur étant en 10,10, un positionnement relatif de 10,10 le forcera en 20,20 alors qu'un déplacement absolu des mêmes valeurs ne l'aurait pas déplacé. Sur ce, c'est parti... . BBBA : initialisation du gestionnaire graphique Le stylo prend la couleur 1, le curseur se positionne en bas à gauche de l'écran. Tout est remis à zéro. CA : rien à faire; CF : pas de retour; : les registres AF, BC, DE et HL sont modifiés. . BBBD : remise à zéro du gestionnaire Je dirai que cet appel ne change rien à rien. Le curseur reste à sa place, la couleur ne change pas... Bref, tout est comme si de rien n'était. CA : que dalle CF : ma cache; : les registres AF, BC, DE et HL sont modifiés. . BBC0 : positionnement absolu du curseur Avec cet appel, vous réalisez le MOVE Basic. Positionnement aux coordonnées absolues à l'écran. CA : DE contient la position horizontale X (abscisse) ; : HL contient la position verticale y (ordonnée) ; CF : bézef; les registres AF, BC, DE et HL sont modifiés. . BBC3 : positionnement relatif du curseur En Basic, on dirait MOVER. Le déplacement du curseur est relatif à sa position actuelle. CA : DE contient le décalage horizontal; : HL contient le décalage vertical; CF : blop ; : les registres AF, BC, DE et HL sont modifiés. . BBC6 : lecture de la position du curseur Le curseur est sous Basic en XPOS,YPOS. Ce sont ces deux variables que nous allons récupérer d'un coup d'un seul. CA : la couleur de la bicyclette du facteur, le vendredi; CF : DE contient XPOS ; : HL contient YPOS ; : le registre AF est modifié. . BBC9 : positionnement de l'origine du curseur ORIGIN n'est pas ici le nom de la société d'édition bien connue, mais l'endroit de l'écran servant de références aux positionnements absolus du curseur. CA : DE contient la position horizontale X (abscisse) ; : HL contient la position verticale y (ordonnée) par rapport au coin en bas à gauche de l'écran; CF : il fait beau, n'est-il pas? : les registres AF, BC, DE et HL sont modifiés. . BBCC : lecture de l'origine des tracés Comme ci-dessus (BBC9) mais en lecture. CA : honni soit qui mal y pense; CF : DE contient l'abscisse; : HL contient l'ordonnée; : les registre sont préservés. . BBCF : définitions des limites horizontales de la fenêtre graphique Il est possible de forcer un cliping sur l'écran graphique. Ainsi, tout tracé ne débordera pas du rectangle défini. Ce vecteur permet de délimiter horizontalement cette zone. CA : DE contient la position du bord droit; : HL contient la position du bord gauche; CF : l'écran graphique est modifié; : les registres AF, BC, DE et HL sont modifiés. . BBD2 : définitions des limites verticales de la fenêtre graphique Ce vecteur permet de délimiter verticalement la zone de clipping. CA : DE contient la position du bord bas; : HL contient la position du bord haut; CF : la carry sonnera trois fois; : les registres AF, BC, DE et HL sont modifiés. . BBD5 : lecture des limites horizontales de la fenêtre graphique Ce vecteur permet de lire les limites horizontales de la zone de clipping. CA : None ; CF : DE contient la position du bord droit; : HL contient la position du bord gauche; : le registre AF est modifié. . BBD8 : lecture des limites verticales de la fenêtre graphique Ce vecteur permet de lire les limites verticales de la zone de cliping. CA : DE contient la position du bord bas; : HL contient la position du bord haut; CF : pas de témoin; : le registre AF est modifié. . BBDB : effacement de la fenêtre graphique Le ménage à l'écran CA : rien du tout; CF : du tout;: les registres AF, BC, DE et HL sont modifiés. . BBDE : positionne la couleur des tracés (stylo) Quoi de plus conventionnel. CA : A contient la couleur; CF : chouette; : le registre AF est modifié. . BBE1 : lecture de la couleur des tracés (stylo) Et de plus, pratique. CA : hibou; CF : A contient la couleur; : le registre AF est modifié. . BBE4 : positionnement de la couleur du fond Je dirai même plus. CA : A contient la couleur; CF : sans; : le registre AF est modifié. . BBE7 : lecture de la couleur du fond Plus! CA : c'est à quel sujet ? CF : A contient la couleur; : le registre AF est modifié. . BBEA : positionnement d'un point à l'écran en coordonnées absolues On connaît cela. CA : DE contient l'abscisse; : HL contient l'ordonnée; CF : califourchon; : les registres AF, BC, DE et HL sont modifiés. . BBED : positionnement d'un point à l'écran en coordonnées relatives à la position actuelle du curseur Rien de neuf. CA : DE contient l'abscisse relative; : HL contient l'ordonnée relative; CF : les mots me manquent pour définir ce vide; : les registres AF, BC, DE et HL sont modifiés. . BBF0 : teste un point aux coordonnées absolues spécifiées Je me lasse. CA : DE contient l'abscisse; : HL contient l'ordonnée; CF: A contient la couleur du point; : les registres BC, DE et HL sont modifiés. . BBF3 : teste un point aux coordonnées relatives Dans la vie, tout est relatif. CA : DE contient l'abscisse relative; : HL contient l'ordonnée relative; CF : A contient la couleur du point; : les registres BC, DE et HL sont modifiés. . BBF6 : tracé d'une droite en absolu Le point de départ est la position actuelle du curseur. Seuls les points d'arrivée doivent être précisés en coordonnées absolues. CA : DE contient l'abscisse du point d'arrivée; : HL contient l'ordonnée du point d'arrivée; CF : gardez la ligne; : les registres AF, BC, DE et HL sont modifiés. . BBF9 : tracé d'une droite en relatif Le point de départ est la position actuelle du curseur. CA : DE contient l'abscisse relative du point d'arrivée; : HL contient l'ordonnée relative du point d'arrivée; CF : suivez la ligne jaune; : les registres AF, BC, DE et HL sont modifiés. . BBFC : écriture d'un caractère en mode graphique à la position courante du curseur CA : A contient le code ascii du caractère à écrire; CF : Yop ; : les registres AF, BC, DE et HL sont modifiés. ★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser... |
CPCrulez[Content Management System] v8.73-desktop Page créée en 525 millisecondes et consultée 2730 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. |
|
|