![]() Page réalisée par: Philippe Moreau UPJV |
Nous avons ici sélectionné une partie des Appels système implémentés dans la suite de logiciels qui va nous permettre de travailler. Cette suite, Easy68K est accessible en téléchargement, et a été développée par une équipe qui avait à sa tête le Professeur Chuck Kelly de l'université Monroe du Michigan.
les différents Appels ont, là encore, été regroupés par catégories.
- Une première série correspond aux appels liés aux entrées/sorties textuelles, fin de programme et horloge système. C'est le complément des routines déjà vues. On conviendra que l'ensemble des routines associées seront stockées dans le fichier "bibliothèque" de nom: BIBLIO.X68
- Une deuxième série correspond aux appels liés à l'environnement (fenêtres et périphériques). On conviendra que l'ensemble des routines associées seront stockées dans un fichier "bibliothèque" de nom: BIBPERIPH.X68
- Une troisième série correspond aux appels liés au graphisme. On conviendra que l'ensemble des routines associées seront stockées dans un fichier "bibliothèque" de nom: BIBGRAPH.X68
- La quatrième et dernière série correspond aux appels liés à la manipulation de fichiers. Là encore, on conviendra que l'ensemble des routines associées seront stockées dans un fichier "bibliothèque" de nom: BIBFICH.X68
Rappel : On va ici donner des noms correspondants aux différents appels. Ces noms (des routines et des
bibliothèques) sont à respecter dans vos programmes afin que tout le monde évoque la même fonctionnalité derrière
un même label.
Nom de la routine | N° de la routine valeur pour D0 |
Action réalisée |
---|---|---|
SAISCAR | 5 | Lit un caractère au clavier (renvoie le code ASCII du caractère tapé dans D1.B) |
AFFCAR | 6 | Affiche un caractère à l'écran (c'est le caractère dont le code ASCII est dans D1.B) |
FINPRG | 9 | Termine le programme |
GET_TIME | 8 | Récupère le nombre de centièmes de secondes depuis minuit (le résultat est dans D1.L) |
POS_CURS | 11 | Positionne le curseur "Texte" à l'emplacement Lig,Col
où D1.W contient
Col sur 8 bits Lig sur 8 bits
Rmq1: le 0,0 est placé en haut à gauche. Rmq2: En mettant $FF00 dans D1.W on provoque un effacement d'écran. |
GET_AFFCAR | 22 | Récupère le code ASCII du caractère affiché
à l'écran en position Lig,Col. Avant D1.L contient Lig sur 16 bits Col sur 16 bits et Après, D1 contient le code ASCII sur 8 bits |
Nom de la routine | N° de la routine valeur pour D0 |
Action réalisée |
HARDWARE | 32 | En fonction de la valeur de D1:
- D1.B=$00, affiche la fenêtre "HardWare" - D1.B=$01, renvoie l'adresse de l'afficheur 7-segments dans D1.L - D1.B=$02, renvoie l'adresse des LEDs dans D1.L - D1.B=$03, renvoie l'adresse des interrupteurs dans D1.L |
RESOLUTION | 33 | Si D1.L=0, on récupère la résolution de la fenêtre
d'affichage dans D1.L sous la forme : - D1.L = Largeur sur 16 bits Hauteur sur 16 bits Sinon, la taille de la fenêtre d'affichage est modifiée, en interprétant D1.L par : - D1.L = Largeur sur 16 bits Hauteur sur 16 bits Rmq : La largeur doit être de 640 mini et la hauteur de 480 mini |
GET_MOUSE | 61 | Permet de récupérer les informations sur la souris (et quelques
informations "clavier") en fonction de D1. Avec D1 à 0, on a en retour : - D0.B = C A S D M R L où C,A,S donne l'état des touches Ctrl, Alt et Shift du clavier et M, R, L donne l'état des boutons Milieu, Droit et Gauche de la souris. - et D1.L= Coord Y sur 16 bits Coord X sur 16 bits (0 ,0) en haut à gauche |
MOUSE_IRQ | 60 | Pour info, si nécessaire, cet appel permet de décider les prises en compte de la souris sous interruptions |
Nom de la routine | N° de la routine valeur pour D0 |
Action réalisée |
SET_PEN_COLOR | 80 | Initialise la couleur du crayon avec D1.L = $00BBVVRR où les trois octets de droite représentent les intensités de BBleu VVert et RRouge |
SET_FILL_COLOR | 81 | Initialise la couleur du remplissage avec D1.L = $00BBVVRR |
DRAW_PIX | 82 | Dessine un pixel avec la couleur du crayon en X,Y avec X=D1.W et Y=D2.W |
GET_PIX_COLOR | 83 | Récupère dans D0.L la couleur du pixel situé en X,Y avec X=D1.W et Y=D2.W |
DRAW_LINE | 84 | Dessine une ligne avec la couleur du crayon de X1,Y1 à X2,Y2 avec X1=D1.W , Y1=D2.W , X2=D3.W et Y2=D4.W |
DRAW_TO | 85 | Dessine une ligne avec la couleur du crayon de la position actuelle à X,Y avec X=D1.W et Y=D2.W |
MOVE_TO | 86 | Va se positionner à X,Y avec X=D1.W et Y=D2.W |
DRAW_FILL_RECT | 87 | Dessine un rectangle "plein" avec la couleur du remplissage et la couleur du crayon pour le contour. Rectangle dont les coordonnées du point haut gauche sont X1,Y1 et celles du bas droite sont X2,Y2 avec X1=D1.W , Y1=D2.W , X2=D3.W et Y2=D4.W |
DRAW_FILL_ELLIPSE | 88 | Dessine une ellipse "pleine" avec la couleur du remplissage et la couleur du crayon pour le contour. Ellipse inscrite dans un rectangle dont les coordonnées du point haut gauche sont X1,Y1 et celles du bas droite sont X2,Y2 avec X1=D1.W , Y1=D2.W , X2=D3.W et Y2=D4.W |
POT_DE_PEINTURE | 89 | Colorie tous les pixels qui sont de la même couleur et en contact avec le pixel en X,Y avec X=D1.W et Y=D2.W. Ce coloriage se fait avec la couleur de remplissage. |
DRAW_RECT | 90 | Dessine un rectangle avec la couleur du crayon pour le contour. Rectangle dont les coordonnées du point haut gauche sont X1,Y1 et celles du bas droite sont X2,Y2 avec X1=D1.W , Y1=D2.W , X2=D3.W et Y2=D4.W |
DRAW_ELLIPSE | 91 | Dessine une ellipse avec la couleur du crayon pour le contour. Ellipse inscrite dans un rectangle dont les coordonnées du point haut gauche sont X1,Y1 et celles du bas droite sont X2,Y2 avec X1=D1.W , Y1=D2.W , X2=D3.W et Y2=D4. |
WIDTH_PEN | 93 | Définit la largeur du crayon en pixels (dans D1.B) |
DRAW_STRING | 95 | "Dessine" une chaîne de caractères dont l'adresse est contenue dans A1 (terminée par zéro) en X,Y avec X=D1.W et Y=D2.W (rmq : la fonction 22 n'est bien évidemment plus active) |
SWAP_SCREEN | 94 | Affiche à l'écran le buffer d'écran virtuel (voir N°92 cas 17) |
DRAW_MODE | 92 | Définit le mode de dessin suivant la valeur de D1.B
- D1.B=17 Permet de dessiner dans l'écran virtuel - D1.B=16 Revient au dessin dans l'écran actuel D'autres cas (sans donner toute la liste) - D1.B=0 Dessine en Noir - D1.B=1 Dessine en Blanc - D1.B=3 Dessine en Inversant la couleur de fond - D1.B=5 Dessine en Inversant la couleur de crayon - D1.B=6 Dessine en Inversant la couleur de fond et en faisant un OU logique avec la couleur de crayon - D1.B=7 Dessine en Inversant la couleur de fond et en faisant un ET logique avec la couleur de crayon - EtcÉ |
Nom de la routine | N° de la routine valeur pour D0 |
Action réalisée |
CLOSE_ALL_FILE | 50 | Ferme tous les fichiers (il est recommandé de le faire avant toute manipulation sur des fichiers) |
OPEN_FILE | 51 | Ouvre le fichier dont le nom se trouve à l'adresse contenue dans A1 D1.L contient ensuite le N°Identifiant le fichier |
NEW_FILE | 52 | Idem ci-dessus lorsque le fichier dont le nom se trouve à l'adresse contenue dans A1 n'est pas trouvé D1.L contient ensuite le N°Identifiant le fichier |
READ_FILE | 53 | Lit D2.L octets dans le fichier dont le N°Identifiant est dans D1.L et stocke le résultat dans un buffer dont l'adresse est dans A1. Au retour D2.L contient le nombre d'octets réellement lus. |
WRITE_FILE | 54 | Ecrit D2.L octets dans le fichier dont le N°Identifiant est dans D1.L en prenant les octets dans un buffer dont l'adresse est dans A1. |
CLOSE_FILE | 56 | Ferme le fichier dont le N°Identifiant se trouve dans D1.L |
DELETE_FILE | 57 | Efface le fichier dont le nom se trouve à l'adresse contenue dans A1 |