Table des matières
- Interruption 08h: (IRQ0) Interruption temporisateur
- Interruption 09h: (IRQ1) Interruption clavier
- Interruption 0Ah (IRQ2)
- Interruption 0Eh (IRQ6): Contrôleur de lecteur
Introduction
Ces interruptions sont utilisées afin de s'occuper de processus très court devant avoir lieu en arrière-plan. Ces également avec ces services qu'au réussit encore aujourd'hui sous Linux, OS/2, Windows 3.1, 95, 98, NT et 2000,... à provoquer un mécanisme semblant du multi-tâche. Ces interruptions ne doivent jamais être appelée directement car c'est le rôle de l'électronique (les puces tous le tour du CPU, mieux connus sous le nom de contrôleur) s'occupant de faire déclencher ces interruptions. Grâce à ces interruptions, on pourra gérer l'horloge interne, le clavier, les port série, modem, l'imprimante, les disques durs, les cartes réseaux et à peu près toutes les cartes branchés à l'ordinateur.
- Interruption 08h: (IRQ0) Interruption temporisateur : Cette interruption est appelée périodiquement à
toutes les 18,2 fois par seconde (c'est la valeur d'origine et peut donc être modifiable). Elle s'occupe principalement
d'incrémenter un double mot en emplacement mémoire (0040h:006Ch) en fonction de minuit. Minuit représente
00h00. Et il est donc rendu 18 après une seconde, 36 après trois seconde et ainsi de suite.
- Procedure IRQ0(Flags,CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP:Word);Interrupt;Begin
- ASM
- STI
- END;
- If MemL[$0040:$6C]=1573040Then Begin
- MemL[$0040:$6C]:=0;
- Mem[$0040:$70]:=1;
- End
- Else
- Inc(MemL[$0040:$6C]);
- Dec(Mem[$0040:$40]);
- If Mem[$0040:$40]=0Then Begin
- Mem[$0040:$3F]:=Mem[$0040:$3F]and$F0;
- Port[$3F2]:=$0C;
- End;
- ASM
- INT 01Ch
- CLI
- END;
- Port[$20]:=$20;
- End;
- Interruption 09h: (IRQ1) Interruption clavier : Cette interruption est utilisée afin de gérer de façon brut le clavier. Le clavier comporte un processeur Intel portant l'appellation 8048 (ou 8042 sur l'AT). Ce processeur surveille le clavier et enregistre si une touche est enfoncée ou relâchée. Pour que le système puisse réagir de façon appropriée, il appelle dans ce cas l'interruption 9 à travers le contrôleur d'interruption. Cette interruption appelle alors une routine du BIOS lisant le caractère au clavier et le place dans le tampon clavier. Mais certaines touches sont redirigés par cette interruption vers une autre interruption ou ont des traitements particuliers; Les Voici :
- Interruption 0Ah (IRQ2) : Cette interruption gère habituellement en arrière plan la deuxième imprimante. Toutefois, dans le cas d'appareil clone comme le Tandy, il pourra arriver qu'il soit utiliser en plus pour la gestion du disque dur. En plus, les cartes de son MIDI de Roland l'utilise parfois. Cette interruption peut-être masqué par le bit 2 du port E/S 21h.
- Interruption 0Eh (IRQ6) : Contrôleur de lecteur : Cette interruption est utilisée pour avertir le
système que l'opération est terminé. Pour ce faire, il appelle l'interruption 15h, Fonction 91h, Sous-Fonction 01h (pour lecteur de disquette).
L'apparence de l'interruption 0Eh (IRQ6) ressemblerait à ceci en Turbo Pascal 6 ou postérieur:
Touche | Action particulière |
---|---|
Ctrl+Break | Efface le Tampon Clavier, Insère le code 0000h dans le tampon, appelle l'interruption 1Bh et fixe le drapeau à 0040h:0071h. |
SysReq | Appelle l'interruption 15h, fonction 85h (AH=85h). |
Ctrl+NumLock | Place le système en état d'attente de la prochaine interruption 09h. |
Ctrl+Alt+Del | Fait un appelle directe à l'adresse 0FFFFh:00h. |
Shift+PrtScr | Appelle l'interruption 05h. |
En aucun cas cette interruption ne pourra être appelée par un programme.
Valeur de Scan code obtenue à l'aide du Port E/S 60h qu'utilise cette interruption:
Les codes 56h à E1h sont seulement valide pour les claviers ayant aux moins 101/102 touches.
Les codes 5Ah à 76h sont seulement valide pour les claviers ayant aux moins 122 touches.
Cette interruption peut-être masqué en fixant le bit 1 à 1 du port E/S 21h.
Le système d'exploitation DR-DOS redirige cette interruption.
Références
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 25 à 26.