Un titre comme ce lui-là, ça vous la coupe non? Comme vous avez dû le comprendre, nous allons ce mois-ci passer en revue la suite des vecteurs que nous avions commencés à énumérer dans le numéro précédent. Après le son, le clavier et le mode texte, nous allons attaquer ce qui suit. Comme nous le disons souvent et comme nous aimons nous répéter, les vecteurs, même s'ils ne sont pas hyper optimisés ni superbement adaptés, n'en restent pas moins de super outils. Faciles d'emploi et collant bien à notre machine, il suffit de leur donner quelques indications, d'appeler la bonne adresse, et de récolter le boulot tout frais pondu sans s'être cassé la margoulette sur quelque problème de tempo ou de décalage de m..., provoqué par je ne sais quel circuit en vadrouille. Bref, je pose les registres, j'appelle à l'aide et je ramasse mes billes sont les mamelles de l'utilisation de ces vecteurs. Trop simples pour être délaissés. Comme nous l'avions fait le mois dernier, nous vous donnons 4 indications par vecteur passé en revue: - l'adresse d'appel (indispensable voire primordiale) ;
- un bref commentaire sur la raison d'être (ce qu'il fait) ;
- les conditions d'appel passées dans les registres;
- les conditions finales, c'est-à-dire les résultats de l'action émise ainsi que les registres ou zones modifiés.
Avec cela, il ne vous reste plus qu'à caler sans vous faire coller ni recaler: du culot, saperlipopette. 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. Nous allons voir ensemble la seconde rubrique, car la première a été étudiée le mois passé. 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 :
- 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 :
- 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 cliping. - 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 :
- 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 :
- 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 :
- CF :
- Chouette;
- Le registre AF est modifié.
BBE1 : lecture de la couleur des tracés (stylo) Et de plus, pratique. - CA :
- CF :
- A contient la couleur;
- Le registre AF est modifié.
BBE4 : positionnement de la couleur du fond Je dirai même plus. - CA :
- CF :
- Sans;
- Le registre AF est modifié.
BBE7 : lecture de la couleur du fond Plus! - CA :
- 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.
LE GESTIONNAIRE D'ECRAN Comme vous l'avez vu, les vecteurs précédents se contentaient de modifier la mémoire vidéo sans faire appel au hardware. Nous allons maintenant énumérer les vecteurs qui s'interfacent entre le matériel et le logiciel de haut niveau. Conversion de numéros d'encre en valeurs pokables, utilisation des décalages d'écran, gestion des modes... Sachez encore la chose suivante: ce que nous nommons un masque est une configuration binaire qui permet d'isoler des bits d'un octet. Il offre la possibilité en l'occurrence de ne garder que les bits d'un seul pixel. A vous de décaler ce masque pour isoler le bon pixel dans l'octet. Roulez, jeunesse. BBFF : initialisation totale du gestionnaire Tout est remis à zéro, les encres, les modes, les adresses... - CA :
- CF :
- Rien;
- Les registres AF, BC, DE et HL sont modifiés.
BC02 : réinitialisation partielle Moins bulldozer que la première, elle sert à remettre les meubles en place sans bouleverser le gestionnaire. - CA :
- CF :
- Comme en entrée;
- Les registres AF, BC, DE et HL sont modifiés.
BC05: positionne l'offset de départ de la mémoire vidéo Vous connaissez le principe du scrolling ? Avec cela, vous n'aurez plus de mal à le gérer. Tout se fait tout seul. Attention! la position part de 0 et n'utilise donc pas l'adresse réelle mais le déplacement. De plus, le bit de poids faible est inactif. Les valeurs efficaces sont donc toutes les valeurs paires partant de zéro. - CA :
- HL contient l'offset de départ;
- CF :
- Aucune;
- Les registres AF et HL sont modifiés.
BC08: positionne l'adresse de l'écran en mémoire vive C'est l'octet de poids fort de l'adresse en RAM que vous devez passer à cette routine (#40 ou #CO pour &4000 ou &C000). - CA :
- A contient une des deux valeurs citées;
- CF :
- Rien;
- Les registres AF et HL sont modifiés.
BC0B: lecture de l'adresse de l'écran en RAM Comme le vecteur précédent mais en lecture. - CA :
- CF :
- A contient le poids fort de l'adresse visée;
- Les registres AF et HL sont modifiés.
BC0E : changement de mode Que dire de plus expressif ? - CA :
- A contient le numéro du mode;
- CF :
- Rien;
- Les registres AF, BC, DE et HL sont modifiés.
BC11 : lecture du mode vidéo courant Vive la mode. - CA :
- CF :
- A contient le numéro du mode;
- Le registre AF est modifié.
BC14: effacement de l'écran Le bleu avec le beau ready. - CA :
- CF :
- Non plus;
- Les registres AF, BC, DE et HL sont modifiés.
BC17 : lecture de la surface de l'écran en caractères Cela permet de connaître la surface de travail du gestionnaire. - CA :
- CF :
- B contient le nombre de colonnes de l'écran en caractères;
- C contient le nombre de lignes en caractères.
BC1A: calcule l'adresse de caractère Cela permet d'obtenir l'adresse d'un caractère en mémoire vidéo, en fonction des coordonnées passées. - CA :
- H contient la colonne et L la ligne;
- CF :
- HL contient l'adresse en RAM;
- B est la largeur du caractère affiché;
- Le registre AF est modifié.
BC1D : calcule ('adresse réelle d'un point graphique en fonction de ses coordonnées Pas de commentaires. - CA :
- DE contient l'abscisse du point;
- HL contient l'ordonnée du point;
- CF :
- HL contient l'adresse réelle du point en RAM ;
- B+ 1 contient le nombre de pixels par octets;
- C contient le masque de conversion;
- Les registres AF et DE sont modifiés.
Je pense que ça suffit pour le moment, nous poursuivrons donc nos investigations le mois prochain. Sined le coupé (sport), ACPC n°44 juil92, p30-31 ★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.7-desktop Page créée en 055 millisecondes et consultée 2318 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. |
|
|