La commande XIO

 

Cette commande permet d'utiliser les extensions du CIO.

 

Syntaxe:XIO code,#channel,aux1,aux2,device:file name

Par exemple, la fonction DRAWTO qui est une fonction du XIO et qui a pour code : 17

10 GRAPHICS 7
20 COLOR 1
30 PLOT 0,0

40 POSITION 10,10
50 POKE 765,COLEUR
60 XIO 18,#6,0,0,"S:"

(Voir le chapitre sur le graphisme : Tracer des points/droites)

Ou encore la commande OPEN qui a pour code 3:

XIO 3 #1,4,0,"K:"

 

La plus intéressante en Basic sera celle permettant de faire un fill-in. Les autres fonctions étant déjà disponibles avec des instructions Basic.

La fonction FILL-IN va permettre de remplir des objets. Son principe est le suivant:

Elle va suivre le trajet d'un segment de droite et, pour chaque point de ce segment de droite, elle va créer un segment horizontale qui démarre aux coordonnées du point en cours et qui se termine au bord de l'écran s'il n'y a pas de point sur son parcours, ou, si un point se trouve sur son parcours, juste avant ce point.

Ce segment de droite qu'elle va suivre correspondant à des coordonnées de départ qui sera à définir par la fonction PLOT. Les coordonnées d'arrivée seront à définir avec l'instruction POSITION.

Ce segment peut fort bien être tracé de haut en bas ou de bas en haut. Par contre, le remplissage horizontal se fera toujours de gauche à droite.

En fait, ce n'est ni plus ni moins qu'un simple plot x1,y1:drawto x2,y2 avec une option de traçage horizontal de gauche à droite qui sera fait pour tous les points entre (x1,y1) et (x2,y2).

Cependant, elle a quelques inconvénients:

- Si un dessin est déjà présent sur l'écran dans la zone de la figure à remplir, le remplissage ne sera pas total car interrompu par les points du dessin déjà présents. Elle ne fonctionnera donc pas correctement si la figure est une figure concave.

- Le tracé horizontal se fait toujours de gauche à droite. Pour une figure fermée à remplir (Ex.un rectangle à remplir), il faudra savoir où l'on se trouve par rapport à la figure à dessiner: à droite ou à gauche, si à gauche alors on peut faire le remplissage, si à droite, on ne fait rien car le remplissage serait en dehors de la figure.

- Enfin, c'est une commande excessivement lente.

 

Mais elle a au moins le mérite d'exister !

Comment l'utiliser:

 

10 PLOT X0,Y0
20 POSITION X1,Y1
30 POKE 765,COULEUR
40 XIO 18,#6,0,0,"S:"

En ligne 10, on indique la position d'origine

En ligne 20, la position finale

En ligne 30, on positionne la couleur de remplissage

En ligne 40, on lance la commande XIO

 

A vous de dessiner une figure à remplir et à définir les valeurs X0,Y0,X1 et Y1.

 

Convertir cela en assembleur ne me semble pas bien difficile...

Mais je ne l'ai jamais essayé, mais bon, vous trouverez un exemple avec la fonction DRAWTO dans le chapitre sur le graphisme : Tracer des points/droites !