Détails des fonctions du LINE-A
Initialization
DC.W $A000
Cette fonction est la première fonction à déclencher. Car
elle va nous retourner plusieurs informations dont une qui nous permettra de
passer des paramètres comme des coordonnées, des couleurs,… aux
fonctions Line-A. (voir tableau ci-dessus)
En entrée: rien
En sortie: D0.L et A0.L pointe sur un tableau de pointeurs
des variables utilisées par le line-A.
L'adresse 4(A0) donnera l'adresse du tableau CONTRL, 8(A0) celui de INTIN, …
A1.L : adresse d'un tableau sur les 3 adresses de départ des trois headers
des police de caractères du système.
A2.L : pointeur sur un tableau de pointeur sur les 16 routines du line-A.
Put pixel
DC.W $A001
Cette fonction permet d'afficher un point aux coordonnées X et Y
En entrée: INTIN[0] = pixel value.
PTSIN[0] = x.
PTSIN[1] = y.
En sortie: RIEN.
Remarque : Il n'y a pas de gestion du clipping donc attention au valeurs des
coordonnées.
Get pixel
DC.W $A002
Cette fonction permet de connaître la couleur utilisée aux positions
X, Y.
En entrée: PTSIN[0] = x.
PTSIN[1] = y.
En sortie: d0 = Couleur utilisée.
Remarque : Il n'y a pas de gestion du clipping donc attention au valeurs des
coordonnées.
Draw Line
DC.W $A003
Cette fonction dessine un segment de droite aux coordonnées (x1,y),(x2,y2).
En entrée: _X1 = coordonnée x du point de départ.
_Y1 = coordonnée y du point de départ.
_X2 = coordonnée x du point de d'arrivée.
_Y2 = coordonnée y du point de d'arrivée.
Pour définir la couleur de la droite:
_FG_BP_1 = Valeur du bit pour le plan 0.
_FG_BP_2 = Valeur du bit pour le plan 1.
_FG_BP_3 = Valeur du bit pour le plan 2.
_FG_BP_4 = Valeur du bit pour le plan 3.
(Voir chapitre sur correspondances couleurs/plans
)
Pour définir le motif de la ligne:
_LN_MASK = line style mask.
_WRT_MODE = mode d'affichage.
_LSTLIN = à positionner à -1 si mode est XOR, sinon le champ est
ignoré.
En sortie: rien
Horizontale Line
dc.w $A004
Dessine une ligne de (x1,y1) à (x2,y1).
En entrée: _X1 = Coordonnée x1.
_Y1 = Coordonnée y1.
_X2 = Coordonnée x2.
Pas besoin de définir un Y2 puisque y2 = y1 (Ligne horizontale !)
Pour définir la couleur de la droite:
_FG_BP_1 = Valeur du bit pour le plan 0.
_FG_BP_2 = Valeur du bit pour le plan 1.
_FG_BP_3 = Valeur du bit pour le plan 2.
_FG_BP_4 = Valeur du bit pour le plan 3. (Voir chapitre sur correspondances
couleurs/plans )
_WRT_MODE = mode d'affichage.
_PATPTR = pointeur sur le motif de remplissage (motif de la ligne ici)
_PATMSK = Nombre de mots pour les motifs - 1.
_MULTIFILL = flag pour le motif de remplissage polychrome (0 : monochrome, 1
: polychrome).
En sortie: rien.
Le traitement du motif est un peu particulier:
On peut définir autant de mots que l'on veut pour le motif. L'adresse
pointant sur ces motifs sera stockée dans _patptr. On indique alors le
nombre de motifs - 1 dans _patmsk.
Pour afficher un motif simple, il suffit de mettre 0 dans _patptr.
A savoir: le premier motif affiché dépendra de la valeur de y.
si y=0 => le premier motif, si y=1 => le second motif, …
Filled rectangle
dc.w $A005
Affichage d'un rectangle rempli par un motif aux coordonnées (x1,y1),
(x2,y2).
En fait, cette fonction utilise la précédente fonction pour remplir
le rectangle (un rectangle c'est une série de lignes horizontales…).
En entrée:
_X1 = coordonnée x du point de départ
_Y1 = coordonnée y du point de départ
_X2 = coordonnée x du point d'arrivée
_Y2 = coordonnée y du point d'arrivée
_FG_BP_1 = Valeur du bit pour le plan 0.
_FG_BP_2 = Valeur du bit pour le plan 1.
_FG_BP_3 = Valeur du bit pour le plan 2.
_FG_BP_4 = Valeur du bit pour le plan 3. (Voir chapitre sur correspondances
couleurs/plans )
_WRT_MODE = mode d'affichage.
_PATPTR = pointeur sur le motif de remplissage (motif de la ligne ici)
_PATMSK = Nombre de mots pour les motifs - 1.
_MULTIFILL = flag pour le motif de remplissage polychrome (0 : monochrome, 1
: polychrome).
_CLIP = ativer ou non le clipping.
_XMN_CLIP = Coordonnée x du coin supérieur gauche de la fenêtre
de clipping
_YMN_CLIP = Coordonnée y du coin supérieur gauche de la fenêtre
de clipping
_XMX_CLIP = Coordonnée x du coin supérieur droit de la fenêtre
de clipping
_YMX_CLIP = Coordonnée y du coin supérieur droit de la fenêtre
de clipping
En sortie : rien
Filled polygon
dc.w $A006
Dessine un polygone rempli(utilise aussi dc.w $A004).
En entrée: PTSIN[] = tableau des sommets du polygone
((x1,y1),(x2,y2)...,(xn,yn),(x1,y1)) CONTRL[1] = nombre de sommets
_Y1 = coordonnée en y de la ligne pour remplir le polygone
_FG_BP_1 = Valeur du bit pour le plan 0.
_FG_BP_2 = Valeur du bit pour le plan 1.
_FG_BP_3 = Valeur du bit pour le plan 2.
_FG_BP_4 = Valeur du bit pour le plan 3. (Voir chapitre sur correspondances
couleurs/plans )
_WRT_MODE = mode d'affichage.
_PATPTR = pointeur sur le motif de remplissage (motif de la ligne ici)
_PATMSK = Nombre de mots pour les motifs - 1.
_MULTIFILL = flag pour le motif de remplissage polychrome (0 : monochrome, 1
: polychrome).
_CLIP = ativer ou non le clipping.
_XMN_CLIP = Coordonnée x du coin supérieur gauche de la fenêtre
de clipping
_YMN_CLIP = Coordonnée y du coin supérieur gauche de la fenêtre
de clipping
_XMX_CLIP = Coordonnée x du coin supérieur droit de la fenêtre
de clipping
_YMX_CLIP = Coordonnée y du coin supérieur droit de la fenêtre
de clipping
Attention, cette fonction ne ferme pas toute seule le polygone. Il faudra donc
bien repriser le premier point pour fermer ce polygone.
Show mouse
dc.w $A009
Cette fonction va afficher le curseur de la souris
En entrée:
Contrl(1) = 0
Contrl(3) = 1
Intin(0) = 0, le curseur est visible dans tous les cas ou 1, le curseur ne devient
visible que lorsque le compteur est à 0.
Ce compteur est automatiquement géré: il s'incrémente à
chaque appel à show mouse et se décrémente à chaque
hide mous (fonction suivante).
En sortie: rien
Hide mouse
dc.w $A00A
Cette fonction va désactiver la souris
En entrée:
Contrl(1) = 0
Contrl(3) = 1
Intin(0) = 0, le curseur est caché dans tous les cas ou 1, le curseur
ne sera caché que lorsque le compteur est à 0.
Ce compteur est automatiquement géré: il s'incrémente à
chaque appel à show mouse et se décrémente à chaque
hide mouse.
En sortie: rien
Transform mouse
dc.w $A00B
Cette fonction va nous permettre de modifier la forme de la souris.
Il faut pour cela se définir un masque et l'image du curseur. Le masque
sera utiliser pour effacer tout les points qui ne sont pas positionné
dans l'image du curseur, ceci quelque soit l'image à l'écran.
Par contre, il pourra y avoir un effet de transparence pour chaque point non
positionné dans le masque. En général, on choisira des
couleurs différentes entre le masque et le curseur afin d'être
certain de pouvoir voir le curseur de la souris quelque soit le fond de l'écran.
En entrée:
Intin (3) = index de couleur du masque (en général 1)
Intin (4) = index de couleur des points (en général 1)
Intin (5) à Intin (20) = motif du masque
Intin (21) à Intin (36) = motif du curseur
En sortie: rien
A suivre ...