12- Utilisation des interruptions DOS et BIOS

L'unité DOS de Turbo Pascal fournit les éléments nécessaires à l'appel des interruptions du DOS et du BIOS.

Appel d'une interruption DOS ou BIOS

L'appel d'une interruption se fait en indiquant son numéro et donnant des valeurs aux registres du micro-processeur.

Le type Registers

Le type Registers reproduit les différents registres du microprocesseur. Il est défini par :

Type Registers = record
	case Integer of
	0:(AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags:Word);
	1:(AH,AL,BL,BH,CL,CH,DL,DH:Byte);
	End;

La procédure INTR

Intr(NumInter,Regs);

C'est cette procédure qui permet l'appel d'une interruption.

NumInter est de type Byte et représente le numéro de l'interruption; Regs est de type Registers.

Avant l'appel de l'interruption Regs contient les paramètres d'entrée, après l'appel Regs contient les paramètres de sortie.

L'interruption 16h et le clavier

L'interruption 16h permet de gérer le clavier. Elle possède deux fonctions principales.

Fonction 00h

On appelle cette fonction en plaçant 0 dans AH. Cette fonction attend que l'utilisateur appuie sur une touche, puis renvoie le code ASCII dans AL et le "Scan Code" dans AH. Les touches spéciales (flèches, F1 à F10, etc...) ont un code ASCII égal à 0; on les identifie avec le "Scan Code". Les caractères sont lus dans le buffer du BIOS : zone mémoire de 16 octets située à l'adresse 0040h:001Eh.

Fonction 01h

On appelle cette fonction en plaçant 1 dans AH. La présence d'un caractère est indiquée par le bit ZF du registre Flags : bit à 1 si un caractère est disponible, à 0 dans le cas contraire.

L'interruption 33h et la souris

L'interruption 33h permet de gérer la souris. Elle possède de nombreuses fonctions.

Fonction 00h

Test de présence de la souris et initialisation.

Fonction 01h

Montre le pointeur de la souris.

Fonction 02h

Cache le pointeur de la souris.

Fonction 03h

Lecture de la position et de l'état des boutons.


Chapitre précédent
Chapitre suivant