Les articles Amstrad >Les produits Amstrad > Les CPC > Programmation > Assembleur > 6.2 : les vecteurs systèmes [fr-en] (Amstradeus)

6.2 : les vecteurs systèmes [fr-en] (Amstradeus)

[fr]

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 ;DUREE

Cet 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.

. BBCO : 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.
[/fr]
[en]

THE SOUNDS
BCA7: Initializes the sound manager.
This vector cuts all sounds being played or to be played and reinitializes the envelopes (volume, frequency).
CA: none.
CF: the registers AF, HL, BC abd DE are modified.

BCAA: places the sound on the requested channel (Basic SOUND instruction)
CA: HL points out to the sound data table of 9 bytes which must be located it the RAM zone between &4000 and &C000.
CF: if the channel is not saturated (5 sounds in queue) the sound is placesd on the channel and CARRY = 1, HL is modified otherwise CARRY = 0.
Anyway, the registers AF, BC, DE and IX are modified.
The data table is not organized as the Basic SOUND command. Here is the order of the parameters:

ORG 40000
LD HL,SOUNDS
JP &BCAA
SOUNDS DEFB 1 ;CHANNEL
DEFB 2 ;VOLUME ENVELOPE
DEFB 3 ;TONE ENVELOPE
DEFW 1000 ;FREOUENCY
DEFB 31 ;NOISE
DEFB 15 ;VOLUME
DEFW 300 ;LENGTH

This example is the same as the SOUND 1,1000,300,15,2,3,31 command. You can see that the frequency as well as the length of the sound are placed in two bytes.

Note that the negative values have the same role as in Basic

BCAD: Tests the sound channels state (Basic SQ instruction)
The enter value for the three sound channels are 1 for A, 2 for B and 4 forc C.

The channel mix cannot be done with this vector
CA: A = # of the channel to be tested
CF: A = state of the channel
The registers F, BC, DE and HL are modified.

BCB6: stops momentaneously every sound.
CA: none
CF: the registers AF, BC and HL are modified.

BCB9: liberates the sounds stopped with the BCB6 routine.
CA: none
CF: the registers AF, BC, DE and IX are modified.

BCBC: creation of a volume envelope (ENV).
CA: A = # of the envelope (1 it 15).
HL: points out to the envelope data (15 bytes).
CF: HL is incremented of 16, AF, HL and BC are modified.

BCBF : Creation of a frequency envelope (ENT).
CA: A = # of the envelope (1 it 15).
HL points out to the envelope data (15 bytes).
CF: HL is incremented by 16. AF, HL and BC are modified.

BCC2 : gives the address of the volume envelope datas.
CA: A = # of the envelope (1 it 15).
CF: if OK, CARRY = 1. HL points out to the data and BC = the envelope length.
The registers F and DE are modified.

BCC5 : gives the address of the frequency envelope data.
CA: A = # of the envelope (1 it 15).
CF: if OK, CARRY = 1. HL points out the data and BC = the envelope length.
The registers F and DE are modified.

We'll see, in the next chapter, the following of the vectors used for the disk access, the graphic mode and the screen manager.

THE GRAPHIC MANAGER
If the screen of the CPC is always in the graphic mode, there are primitives for the text management and the graphic specialization. Just know, for the next chapters, that a coordinate called absolute refers to the origin (point 0,0) of the screen, while a relative coordinate refers to the actual position of the cursor. Example: the cursor being at 10,10, a relative positioning of 10,10 will force it to 20,20 while an absolute moving of the same values would not have moved it.

. BBBA : initialization of the graphic manager.
The pen takes the colour 1, the cursor positions itself at the left bottom of the screen. Everything gets back to zero.
CA: nothing to do;
CF: no return;
: the registers AF, BC, DE and HL are modified.

. BBBD : manager blanked.
CA: nothing happens.
CF: same thing.
: the registers AF, BC, DE and HL are modified.

. BBCO : absolute positioning of the cursor
With this call, you'll do the BASIC "MOVE".
CA: DE contains the "x" vertical position.
: HL contains the "y" vertical position.
CF: nothing
The registers AF, BC, DE and HL are modified.

. BBC3 : relative positioning of the cursor.
In Basic, we would say MOVER.
CA: DE contains the horizontal shift
: HL contains the vertical shift.
CF: blop.
: The register AF, BC, DE and HL are modified.

. BBC6 : reading of the cursor position.
The cursor is in Basic in XPOS, YPOS.
CA: the color of the mailman, on Friday.
CF: DE contains XPOS
: HL contains YPOS
: The register AF is modified.

. BBC9 : positionning of the cursor origin.
CA: DE contains the horizontal position x
: HL contains the vertical position y
CF: ain't life great?
: the registers AF, BC, DE and HL are modified.

. BBCC : reading of the drawing origin.
As above (BBC9) but for the reading. CA: nothing. CF: DE contains the horizontal position x.
HL: contains y
: the registers are preserved. . BBCF : definition of the horizontal limits of the graphic window.
It's possible to force a cliping of the graphic screen.
This vector allows to set the horizontal limits of this zone.
CA: DE contains the right border position.
: HL contains the left border position.
CF: the graphic screen is modified: the AF, BC, DE and HL registers are modified.

. BBD2 : definition of the vertical limits of the graphic window.
This vector allows to set the vercial limits of the clipping zone.
CA: DE contains the bottom border position.
: HL contains the upper border position.
CF: the carry will ring thrice.
: the AF, BC, DE and HL registers are modified.

. BBD5 : reading of the horizontal limits of the graphic window.
This vector allows to read the horizontal limits of the clipping zone.
CA: None.
CF: DE contains the right border position.
: HL contains the left border position.
: the AF register is modified.

. BBD8 : reading of the vertical limits of the graphic window
This vector allows to read the vertical limits of the clipping zone
CA: DE contains the bottom border position
: HL contains the upper border position
CF: no witness
: the register AF is modified.

. BBDB : graphic window cleared
CA: nothing
CF: nothing. The registers AF, BC, DE and HL are modified.

. BBDE : sets the position for the pen colour
CA: A contains the colour
CF: great
: the register AF is modified.

. BBE1 : reading of the pen colour
CA: peanuts
CF: A contains the colour
: the register AF is modified.

. BBE4 : sets the position of the paper colour
CA: A contains the colour
CF: without
: the register AF is modified.

. BBE7 : reading of the paper colour
CA: what?
CF: A contains the colour
: the register AF is modified.

. BBEA : sets the position of a dot ont the screen
CA: DE contains x
: HL contains y
CF: la la la la
: the registers AF, BC, DE and HL are modified

. BBED : sets the position of a dot on the screen in coordinates relative to the actual position of the cursor
CA: DE contains x
: HL contains y
CF: what a void
: the registers AF, BC, DE and HL are modified

. BBF0 : tests a dot with specified absolute coordinates
CA: DE contains x
: HL contains y
CF: A contains the dot colour
: the registers BC, DE and HL are modified

. BBF3 : tests a point with relative coordinates
CA: DE contains the relative x
: HL contains the relative y
CF: A contains the colour of the dot
: the registers BC, DE and HL are modified

. BBF6 : draws a line
The starting point is the actual position of the cursor.
CA: DE contains the x coordinate of the final point.
: HL contains the y coordinate of the final point.
CF: keep slim
: the registers AF, BC, DE and HL are modified.

. BBF9 : draws a line
The starting point is the actual position of the cursor
CA: DE contains the x coordinate relative to the final point
: HL contains the y coordinate relative to the final point
CF: follow the light
: the registers AF, BC, DE and HL are modified.

. BBFC : writing of a character in graphic mode at the current position of the cursor
CA: A contains the ASCII code of the character to be written
CF: yo man!
: the registers AF, BC, DE and HL are modified.
[/en]

  Voir cet article au format PDF Imprimer cet article

* Donathon 2018 *

310 €

 

 

 

 En savoir plus

RECHERCHE
Chat
 Smiles  Loading...
Connexion
Nom d'utilisateur :

Mot de passe :

Se souvenir de moi



Mot de passe oublié?

Inscrivez-vous!
EN LIGNE
16 utilisateur(s) en ligne (1utilisateur(s) en ligne sur Les articles Amstrad)

Membres: 5
Invités : 11

Golem13, Moonbeam, eboulat, BDCIRON, rity, plus...
Musiques CPC

Lecteur MP3
CPC-Scene Radio

 

 

ROLAND RADIO

 

Informations
________________________________

Suivre Amstrad.eu

________________________________

Autres Créations web

________________________________

 

Declaration CNIL : 1005884

Association : 0540200002843

Charte

Avertissements

Plan du site

Carte de France des membres

 

 

 

Facebook.

Twitter.

RSS forum.

RSS News.

Contact.

 

Gaston-Phoebus.com

Amstrad.eu

untour.fr

Cathydeco.com

Higoogle

Harloup.fr

** Faire un don **

 

Conception Phenix © 2000 - 2014