L'unité DOS de Turbo Pascal fournit les éléments nécessaires à l'appel des interruptions du DOS et du 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 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;
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 permet de gérer le clavier. Elle possède deux fonctions principales.
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.
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 permet de gérer la souris. Elle possède de nombreuses fonctions.
Test de présence de la souris et initialisation.
Montre le pointeur de la souris.
Cache le pointeur de la souris.
Lecture de la position et de l'état des boutons.