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