Programmation des Entrées / Sorties sur ordinateur

Transcription

Programmation des Entrées / Sorties sur ordinateur
Programmation des Entrées / Sorties sur ordinateur compatible PC
Introduction à la programmation des pilotes de périphériques
et des entrées-sorties industrielles
( Systèmes d'exploitation MS-DOS )
Architecture matérielle: carte mère et processeur................................................................................2
La carte système du PC XT.............................................................................................................2
Le processeur 8088..........................................................................................................................3
Les registres du 8088 et les indicateurs d'état du processeur...........................................................4
Les registres principaux..............................................................................................................4
Les indicateurs d'état du processeur............................................................................................4
Architecture du processeur 8088 ....................................................................................................5
Organisation de la mémoire segmentée sous Ms-Dos.....................................................................6
Carte mémoire du PC.......................................................................................................................7
Le Jeu d'instructions (machine ou assembleur) du processeur 8088..............................................8
Les interruptions matérielles............................................................................................................9
Liste de interruptions matérielles (PC XT)...............................................................................10
Le mécanisme de prise en compte des interruptions matérielles..............................................11
Table des vecteurs d'interruption..............................................................................................12
Transmission série .............................................................................................................................14
Transmission série ou parallèle.................................................................................................14
Transmission série asynchrone : bits start et stop.....................................................................14
L'interface normalisée RS232 entre un ordinateur et un modem..................................................15
Le connecteur standard Canon 25 broches ..............................................................................15
"Câble modem nul" ou "câble croisé".......................................................................................15
Le circuit de transmission série 8250............................................................................................16
Les registres du 8250................................................................................................................16
Les adresses (ports d'entrée/sortie) du 8250 pour le port COM1..............................................16
Registre de contrôle de ligne (0x3fb)........................................................................................17
Registre de contrôle de modem (0x3fc)....................................................................................17
Registre d'état de la ligne(0x3fd)..............................................................................................18
Registre d'état du modem (0x3fe).............................................................................................18
Registre diviseur de débit (0x3f8-0x3f9)..................................................................................18
Registre de mise en service des interruptions (0x3f9)..............................................................19
Registre d'identification des sources d'interruption (0x3fa)......................................................19
Annexe : données techniques PC & DOS..........................................................................................20
L'interruption logicielle 0x21: les fonctions du système MsDos...................................................20
Adresses utiles du DOS.................................................................................................................22
La table des vecteurs d’interruptions PC/MsDos..........................................................................24
Groupe Isaip-Esaip
P. Bodin – P. Trégouët
Architecture matérielle: carte mère et processeur
La carte système du PC XT
➢
Processeur + circuit de démultiplexage des bus adresse/données/contrôle
➢
Contrôleur d'interruptions 8259 : 8 niveaux d'interruption
sur PC AT : 2 contrôleur 8259 et 15 niveaux d'interruption
➢
Espace d'adressage de la mémoire : 20 bits = 1Mo.
Mémoire morte et mémoire vive + vérification des erreurs et interruption NMI
➢
Espace d'adressage des ports entrées-sorties : 16 bits = 64 ko
Circuits d'entrées-sorties: adresses des ports + N° d'interruption matérielle
Le processeur 8088
Alimentation : GND et VCC
Bus d'adresse : AD0 à A19
Bus de données : AD à AD7
Interruption :
non masquable : NMI
demande : INTR
acquittement : INTA
Demande de lecture / écriture : RD, WR
Adresse de port E-S ou adresse mémoire : IO/M
Les registres du 8088 et les indicateurs d'état du processeur
Les registres principaux
Les indicateurs d'état du processeur
O : Overflow (débordement)
D : Direction d'incrémentation
I : Interruption : 1 les interruptions sont masquées, 0 les interruptions sont autorisées
T : Trace
S : Signe : 1 le nombre est négatif, 0 le nombre est positif
Z : Zero : 1 le résultat de l'opération précédente est nul, 0 : l le résultat est non nul
A : Auxiliary carry
P : Parité
C : Carry : 1 : retenue dans l'addition de 2 mots de 16 bits.
Architecture du processeur 8088
L'unité d'exécution (EU)réalise les opération arithmétiques et logiques en décodant
l'instruction en cours
L'unité d'interface de bus (BIU) calcule les adresses physiques à partir d'un numéro de
segment d'un n° d'octet dans ce segment.
Calcul des adresses
physiques sur 20 bits
à partir d'un numéro
de segment sur 16 bits
et d'un numéro d'octet
dans ce segment sur 16
bits
Organisation de la mémoire segmentée sous Ms-Dos
Carte mémoire du PC
Choix du concepteur du processeur :
La table des vecteurs d'interruption se trouve à l'adresse 00000
L'adresse de démarrage de l'ordinateur est en FFFF0 (appartient au BIOS, en ROM)
Choix du concepteur de la carte mère :
La mémoire vidéo se trouve à l'adresse A4000
L'adresse du BIOS et des données du BIOS
Choix des concepteurs du système d'exploitation :
L'adresse d'implantation des programmes utilisateurs
Le Jeu d'instructions (machine ou assembleur) du processeur 8088
Les interruptions matérielles
Que se passe-t-il quand se produit une interruption matérielle ?
1. Lorsque survient une interruption matérielle, un signal électrique est transmis
au contrôleur d'interruption. Cette interruption matérielle (ce signal électrique)
vient en fait d'un contrôleur de périphérique (clavier, réseau, disque etc..). Un
contrôleur d'interruption (type Intel 8259) peut gérer 8 demandes
d'interruption différentes.
2. Le contrôleur d'interruption s'il a été programmé pour accepter cette demande
d'interruption va transmettre au processeur cette demande, en activant le signal
"demande d'interruption" du processeur.
3. Si le processeur est dans un mode interruptible (interruptions non masquées) le
processeur demandera au contrôleur d'interruption quel est le numéro de
l'interruption à traiter, et en fonction de ce numéro, il trouvera dans la table des
vecteurs d'interruption l'adresse mémoire du programme que le développeur
système a prévu pour traiter cette interruption (cet événement)
Le chronogramme suivant montre à quelle tâche est dédiée l'activité du processeur
1. le processeur exécute son programme principal
2. un événement se produit qui déclenche le traitement de cet événement
3. à la fin de l'interruption, le programme principal dispose à nouveau du
processeur et reprend son exécution à l'endroit où il avait été interrompu :
l'interruption ne change absolument rien dans le déroulement du programme
interrompu, sauf un retard de quelques millièmes de secondes (voire moins)
Le traitement d'une
interruption doit être
très court
programme de
traitement de
l'interruption (handler)
programme principal en
cours de traitement
changement
de contexte
pour exécuter
le programme de
traitement de
l'événement
1
retour au
programme
interrompu
2
3
Liste de interruptions matérielles (PC XT)
Interruption
Vecteur
Evénement associé
IRQ0
08
Horloge (canal 0)
IRQ1
09
Clavier
IRQ2
0A
interface graphique couleur
IRQ3
0B
interface série COM2
IRQ4
0C
interface série COM1
IRQ5
0D
disque dur (XT)
IRQ6
0E
lecteur de disquettes
IRQ7
0F
imprimante
Le mécanisme de prise en compte des interruptions matérielles
➢
➢
➢
Le contrôle des interruptions au niveau du processeur repose sur l'indicateur IF (interrupt
flag) qui active ou désactive la prise en compte des interruptions par le processeur.
En assembleur : STI ou CLI
En langage C : enable() ou disable()
Le contrôle des interruptions au niveau du contrôleur 8259 repose sur le registre de masque
des interruptions qui active ou désactive la prise en compte d'un niveau d'interruptions
donné.
En assembleur : out 21H, valeur
En langage C : outporb (0x21,valeur)
Le programmeur doit par ailleurs indiquer au 8259 la fin du traitement d'une interruption en
écrivant la valeur 0x20 sur le port d'adresse 0x20
En assembleur : out 20H, 20H
En langage C : outporb (0x20, 0x20)
Table des vecteurs d'interruption
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
MAT.
MAT.
MAT.
MAT.
MAT.
MAT.
MAT.
MAT.
BIOS
BIOS
BIOS
BIOS
BIOS
DOS
DOS
DOS
CPU division par zéro
CPU pas à pas
CPU NMI, impossible à masquer (défaut dans RAM)
CPU Point d’arrêt atteint (déclenchement par une instruction d’un octet)
CPU débordement numérique
Touche copie écran (interruption exploitée par le BIOS)
Instruction inconnue (80286 seulement)
Réservé
IRQ0 : Timer (appel 18,2 fois par seconde), chaîne sur 1Ch (très utilisée par les
programmes TSR
IRQ1 : clavier (routine BIOS)
IRQ2 : second 8259 (AT uniquement)
IRQ3 : interface série 2
IRQ4 : interface série 1
IRQ5 : disque dur
IRQ6 : disquette
IRQ7 : imprimante
BIOS : Fonctions vidéo (mode vidéo, curseur, crayon optique, page écran,
défilement, etc.)
BIOS : Configuration constatés du système
BIOS : Taille de la mémoire RAM (au delà de 1Mo, 15h (88h))
BIOS : Fonctions disquette/disque dur
BIOS : Accès aux interfaces série
Imprimante parallèle, BIOS : Fonctions étendues au cassette ou joysticks
Clavier
Accès aux imprimantes parallèles
Appel du Basic en ROM (risque de plantage si il n’y a pas de Basic en ROM)
Démarrage à chaud (<Ctrl> + <Alt> + <Del>) risque de plantage, utiliser plutôt
0040 : 0072)
Compeur horaire (incrémenté 18,2 fois par seconde) et horloge temps réel (sur
pile)
Touche break actionnée
Appelé après chaque INT 8
Adresse de la table des paramètres vidéo
Adresse de la table des paramètres disquette
Adresse des caractères graphiques
Terminaison du programme
Fonctions DOS
Adresse de routine (pas d’interruption) DOS fin de programme (utilisée par 20h,
21h (0h, 21h, 4Ch)), copié PSP
23
DOS
24
25
DOS
26
DOS
27
DOS
28 à
2E
2F
30 à
32
33
34 à
3F
40
41
42 à
45
46
47 à
49
4A
4B à
66
67
68 à
6F
70
71
72
73
74
75
76
77
78 à
7F
80 à
F0
F1 à
FF
DOS
Adresse de routine (pas d’interruption) <Ctrl> + <Break> (sauvegardé dans le
PSP)
Adresse de routine (pas d’interruption) d’erreur sauvegardé dans le PSP)
Lecture de secteurs logiques disquette/disque dur (Attention : laisse 2 octets sur la
pile)
Ecriture de secteurs logiques disquette/disque dur (Attention : laisse 2 octets sur la
pile)
Fin de programme, laisser résident (.com seulement, ne ferme pas les fichiers) 21h
31 h est préférable
Réservé pour différentes fonctions non encore documentées du DOS
Multiplexeur : interface d’accès aux programmes résident du DOS
Réservé pour différentes fonctions non encore documentés du DOS
Souris (avec numéro de fonction sur 16 bits (AX))
Réservé pour différentes fonctions non encore documentés du DOS
BIOS : Fonctions disquettes
Adresse table des paramètres disque dur 1
Réservé
Adresse table des paramètres disque dur 2
Librement définissable par le programme utilisateur
Heure alarme atteinte, définie par 1Ah 06h (AT seulement)
Librement définissable par le programme utilisateur
Gestion EMS : EMM (Expand Memory Manager)
Inutilisé
MAT.
MAT.
MAT.
MAT.
MAT.
MAT.
MAT.
MAT.
IRQ08 : Horloge temps réel (AT seulement)
IRQ09 : (AT seulement)
IRQ10 : (AT seulement)
IRQ11 : (AT seulement)
IRQ12 : (AT seulement)
IRQ13 : 80287 NMI (AT seulement)
IRQ14 : Disque dur : fin d’accès (AT seulement)
IRQ15 : (AT seulement)
inutilisé
Utilisé à l’intérieur de l’interpréteur Basic
inutilisé
Transmission série
Transmission série ou parallèle
Transmission série asynchrone : bits start et stop
L'interface normalisée RS232 entre un ordinateur et un modem
ETTD
ETCD
ETCD
modem
Réseau
téléphonique
commuté
ETTD

ETTD : équipement
terminal de traitement de
données (équivalent à un
ordinateur)

ETCD : équipement
terminal de
communication de
données (équivalent à un
modem)
modem
Interface RS232
Le connecteur standard Canon 25 broches
Affectation des différents signaux aux broches du connecteur Canon
broche
2
3
4
5
6
7
8
20
22
Direction
Sortie >
< Entrée
Sortie >
< Entrée
< Entrée
< Entrée
Sortie >
< Entrée
Fonction
Données transmises
Données reçues
RTS - Demande pour émettre - request to send
CTS - Prêt à émettre - clear to send
DSR – Modem prêt - data set ready
Mise à la terre
DCD – Connection établie - data carrior detection
DTR – Ordinateur prêt - data terminal ready
RI – Détection de sonnerie - ring indication
"Câble modem nul" ou "câble croisé"
Le circuit de transmission série 8250
Les registres du 8250
Les adresses (ports d'entrée/sortie) du 8250 pour le port COM1
Porte d’accès
3F8H*
3F8H*
3F8H **
3F9H **
3F9H*
3FAH
3FBH
3FCH
3FDH
3FEH
*
**
Entrée ou sortie
Sortie
Entrée
Sortie
Sortie
Sortie
Entrée
Sortie
Sortie
Entrée
Entrée
Registre choisi
Registre d’attente de transmission
Registre de réception de données
Diviseur de débit (poids faible)
Diviseur de débit (poids fort)
Registre de mise en service des interruptions
Registre d’identification d’interruptions
Registre de contrôle de ligne
Registre de contrôle de modem
Registre d’état de ligne
Registre d’état de modem
Bit 7 du registre de contrôle de ligne = 0
Bit 7 du registre de contrôle de ligne = 1
Registre de contrôle de ligne (0x3fb)
Registre de contrôle de modem (0x3fc)
Registre d'état de la ligne(0x3fd)
Registre d'état du modem (0x3fe)
Registre diviseur de débit (0x3f8-0x3f9)
Débit désiré
en bauds
50
75
110
134,5
150
300
600
1200
1800
2000
2400
3600
4600
7200
9600
Valeurs à placer dans les registres diviseurs de débit
Poids fort (3F9)
Poids faible (3F8)
09H
00H
06h
00h
04h
17h
03h
59h
01h
00h
00h
80h
00h
00h
00h
60h
00h
40h
00h
3Ah
00h
30h
00h
20h
00h
16h
00h
10h
00h
0Ch
Registre de mise en service des interruptions (0x3f9)
Registre d'identification des sources d'interruption (0x3fa)
4 types d'interruptions (correspondant à 4 événements) sont générés par le 8250
avec une priorité croissante croissante de 00 à 11
Annexe : données techniques PC & DOS
L'interruption logicielle 0x21: les fonctions du système MsDos
Si une fonction se termine sans erreur, le sémaphore de report (Carry Flag) et positionné à zéro et
AX contient en général une donnée valide ou zéro selon la fonction.
Si une erreur intervient, le sémaphore de report est positionné à 1 et AX contient un code d’erreur.
Une des fonctions (59H) permet d’obtenir plus de détails sur l’erreur, ainsi qu’une action
recommandée.
AH
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
Fonction
Fin de programme : identique à INT 20H.
Entrée au clavier : attend un caractère, l’affiche à l’écran et le retourne dans AL. Si on a frappé Ctrl + Break,
déclenche INT 23H.
Affichage à l’écran du caractère dans DL
Lit un caractère sur la carte de transmission asynchrone et le range dans AL.
Envoie le caractère dans DL à la carte de transmission asynchrone.
Imprime (imprimante) le caractère contenu dans DL.
Entrées-sorties directes. Si (DL) = 0FFH,DL reçoit un caractère du clavier s’il en existe. Si (DL) est différent
de 0FFH, DL contient un caractère envoyé à l’écran.
Entrée directe : attend qu’un caractère soit frappé (à moins qu’il n’y en ait un de prêt) et l’envoie dans AL, sans
affichage. Pas de vérification de la frappe de Ctrl + Break.
Entrée du clavier, comme (1), mais sans affichage.
Chaîne de caractères : DS : DX doit pointer une chaîne de caractères en mémoire, se terminant par le symbole S
(soit 24H). Chaque caractère de la chaîne est affiché (comme en 2).
Entrée du clavier vers la mémoire tampon.
Vérification de l’état de l’unité d’entrée.
Vidage du tampon du clavier, puis exécution de l’une des fonctions 1, 6, 7, 8 et A dont le numéro est dans AL.
Restauration de disque.
Sélection de disque.
Ouverture du fichier.
Fermeture du fichier.
Recherche de la première entrée.
Recherche de l’entrée suivante.
Suppression de fichier.
Lecture séquentielle
Ecriture séquentielle.
Création de fichier.
Changement de nom de fichier.
Utilisé par le DOS en interne.
AL renvoie le code de l’unité à disque par défaut.
Initialisation de l’adresse de transfert du disque.
Informations de la table des fichiers.
Table des fichiers pour unité spécifique.
Utilisés par le DOS en interne.
Lecture sélective
Ecriture sélective
Taille du fichier
Initialisation de la zone d’enregistrement sélectif.
Initialisation du vecteur d’interruption.
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
Création d’un nouveau segment de programme.
Lecture du bloc sélective.
Ecriture du bloc sélective.
Analyse de noms de fichiers.
Obtention de la date, renvoyée dans CX : DX avec CX pour l’année (1980 à 2099) mais en binaire, DH
Initialisation de la date.
Obtention de l’heure, renvoyée dans CX : DX avec l’heure dans CH, les minutes dans CL, les secondes dans
DH et les centièmes dans DL.
Initialisation du l’heure.
Commutateur de vérification.
Obtention de la zone DTA.
Initialisation du numéro de version du DOS.
Fin de traitement en restant résidant.
Vérification de Ctrl+Break.
Utilisé par le DOS en interne.
Obtention d’un vecteur n°AL ES : BX
Obtention d’espace libre sur disque.
Utilisé par le DOS en interne.
Retour d’information en fonction du pays.
Création d’un sous-répertoire (MD)
Suppression d’un répertoire (RD)
Changement de répertoire (CD)
Création d’un fichier (CREAT).
Ouverture d’un fichier.
Fermeture d’un code d’identité de fichier.
Lecture à partir d’un fichier ou d’une unité.
Ecriture dans un fichier ou d’une unité.
Suppression d’un fichier.
Déplacement de pointeur de fichier.
Changement de mode de fichier.
Contrôle d’entrées-sorties pour les unités.
Duplication d’un code d’identité de fichier.
Duplication forcée d’un code d’identité.
Obtention du répertoire courant.
Affectation de la mémoire.
Libération de la mémoire attribuée.
Modification de blocs de mémoire attribués.
Chargement ou execution d’un programme.
Fin d’un traitement (EXIT) et retour au DOS : à utiliser à la place de INT 20H.
Retrouver le code de retour d’un sous-traitement (WAIT).
Trouver le premier fichier correspondant.
Trouver le prochain fichier correspondant.
Utilisés par le DOS en interne.
Obtention de l’état de la vérification.
Utilisés par le DOS en interne.
Changement de nom de fichier.
Obtention/initialisation de la date de l’heure d’un fichier.
Adresses utiles du DOS
Adresse
00-01
02-03
04-05
06-07
08-09
OA-0B
0C-0D
0E-0F
10
Segment
40
40
40
40
Fonction
Adresse de base de l'interface COM 1.
Adresse de base de l'interface COM 2.
Adresse de base de l'interface COM 3.
Adresse de base de l'interface COM 4.
Adresse de base de l'interface imprimante 1.
Adresse de hase de l'interface imprimante 2.
Adresse de base de l'interface imprimante 3.
Adresse de base de l'interface imprimante 4
Indicateur de configuration matérielle.
Bit U : démarrage sur disquette.
Bit 1 : processeur mathématique
Bit 2 : souris (seulement sur PS/2).
Bit 3 : réservé.
Bits 5-4 : mode vidéo.
- 00 réservé
- 01 40 x 25 couleurs
- 10 80 x 25 couleurs
- 11 80 x 25 monochrome.
11
40
13-14
17
40
40
18
40
1A
1C
3E
40
40
40
Bits 7-6 : nombre de disques -1.
Indicateur de configuration matérielle.
Bits 1-0 : réservés.
Bits 3-2 : nombre de RS232.
Bit 4 : adaptateur jeux.
Bit 5 : réservé au PCjr.
Bit 7-6 : nombre d’imprimantes.
Capacité mémoire totale en kilo-octets.
Etat du clavier.
Bit 0 : SHIFT droit enfoncé.
Bit 1 : SHIFT gauche enfoncé.
Bit 2 : CTRL enfoncé.
Bit 3 : ALT enfoncé.
Bit 4 : SCROLL LOCK actif.
Bit 5 : NUM LOCK actif.
Bit 6 : CAPS LOCK actif.
Bit 7 : INSERT actif.
Etat du clavier.
Bit 0 : CTRL gauche enfoncé.
Bit 1 : AT gauche enfoncé.
Bit 2 : SYSREQ enfoncé.
Bit 3 : PAUSE activé.
Bit 4 : SCROLL LOCK enfoncé.
Bit 5 : NUM LOCK enfoncé.
Bit 6 : CAPS LOCK enfoncé.
Bit 7 : INSERT enfoncé.
Pointeur sur le début du tampon clavier.
Pointeur sur la fin du tampon clavier.
Sémaphore des disques nécessitant un recalibrage (bits 0, 1, et 2).
3F
40
40
41
42
40
40
40
49
4A-4B
4C-4D
4E-4F
50-5F
40
40
40
40
40
60-61
62
63-64
65
66
6C-6F
70
71
72
74
75
78-7B
7C-7F
80-81
82-83
84-8A
8B-95
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
Paramètres de disques.
Bit 7 : Lecture/Ecriture en cours.
Bits 5-4 : numéro du disque sélectionné.
Bits 2-1-0 : indiquent le disque dont le moteur tourne.
Timer d’arrêt du moteur des disquettes.
Statut de la dernière opération sur disquette.
Statut du contrôleur de disquette.
B7: TIME-OUT.
B6 : SEEK FAILED.
B5: contrôleur en erreur.
B4: erreur de CRC en lecture.
B3: erreur DMA.
B2: secteur non trouvé.
B1 : marque d'adresse non trouvée.
B0: conjoint à B1, indique que le disque est
protégé.
Mode écran.
Nombre de colonnes par ligne.
Taille de la mémoire d’écran.
Adresse de départ de la mémoire d’écran.
Position du curseur dans les 8 pages écran possibles (ligne-colonne 2
octets par écran).
Type de curseur (lignes de balayage).
Numéro de la page active.
Adresse du contrôleur d'écran.
Contenu du registre 3 x 8 du contrôleur d'écran.
Contenu du registre 3 x 9 du contrôleur d'écran (palette).
Heure exprimée sur 4 octets en 1/18 de seconde.
Indicateur de passage par 24 h.
Etat de la touche BREAK.
Sémaphore de réinitialisation.
Statut de la dernière opération avec le disque dur.
Nombre de disques durs.
Valeurs des time-out pour les imprimantes (4 valeurs).
Valeurs des time-out pour Ies ports de communication.
Offset du pointeur de début de tampon clavier.
Offset du pointeur de fin de tampon clavier.
Données relatives à la gestion de l'écran.
Données relatives à la gestion des disques (sauf sur les PC, et PC/XT datés
du 11/8/82).
La table des vecteurs d’interruptions PC/MsDos
00
01
02
03
04
05
06
07
08
Processeur
09
0A
0B
0C
0D
0E
0F
10
MAT.
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
Processeur
Processeur
Processeur
Processeur
MAT.
MAT.
MAT.
MAT.
MAT.
MAT.
MAT.
BIOS
BIOS
BIOS
BIOS
BIOS
DOS
DOS
DOS
CPU division par zéro
CPU pas à pas
CPU NMI, impossible à masquer (défaut dans RAM)
CPU Point d’arrêt atteint (déclenchement par une instruction d’un octet)
CPU débordement numérique
Touche copie écran (interruption exploitée par le BIOS)
Instruction inconnue (80286 seulement)
Réservé
IRQ0 : Timer (appel 18,2 fois par seconde), chaîne sur 1Ch (très utilisée par les
programmes TSR
IRQ1 : clavier (routine BIOS)
IRQ2 : second 8259 (AT uniquement)
IRQ3 : interface série 2
IRQ4 : interface série 1
IRQ5 : disque dur
IRQ6 : disquette
IRQ7 : imprimante
BIOS : Fonctions vidéo (mode vidéo, curseur, crayon optique, page écran,
défilement, etc.)
BIOS : Configuration constatés du système
BIOS : Taille de la mémoire RAM (au delà de 1Mo, 15h (88h))
BIOS : Fonctions disquette/disque dur
BIOS : Accès aux interfaces série
Imprimante parallèle, BIOS : Fonctions étendues au cassette ou joysticks
Clavier
Accès aux imprimantes parallèles
Appel du Basic en ROM (risque de plantage si il n’y a pas de Basic en ROM)
Démarrage à chaud (<Ctrl> + <Alt> + <Del>) risque de plantage, utiliser plutôt
0040 : 0072)
Compeur horaire (incrémenté 18,2 fois par seconde) et horloge temps réel (sur
pile)
Touche break actionnée
Appelé après chaque INT 8
Adresse de la table des paramètres vidéo
Adresse de la table des paramètres disquette
Adresse des caractères graphiques
Terminaison du programme
Fonctions DOS
Adresse de routine (pas d’interruption) DOS fin de programme (utilisée par 20h,
21h (0h, 21h, 4Ch)), copié PSP
23
24
25
DOS
26
DOS
27
DOS
28 à
2E
2F
30 à
32
33
34 à
3F
40
41
42 à
45
46
47 à
49
4A
4B à
66
67
68 à
6F
70
71
72
73
74
75
76
77
78 à
7F
80 à
F0
F1 à
FF
DOS
DOS
Adresse de routine <Ctrl> + <Break> (sauvegardé dans le PSP)
Adresse de routine d’erreur (sauvegardé dans le PSP)
Lecture de secteurs logiques disquette/disque dur
(Attention : laisse 2 octets sur la pile)
Ecriture de secteurs logiques disquette/disque dur
(Attention : laisse 2 octets sur la pile)
Fin de programme, laisser résident (.com seulement, ne ferme pas les fichiers) 21h
31 h est préférable
Réservé pour différentes fonctions non encore documentées du DOS
Multiplexeur : interface d’accès aux programmes résident du DOS
Réservé pour différentes fonctions non encore documentés du DOS
Souris (avec numéro de fonction sur 16 bits (AX))
Réservé pour différentes fonctions non encore documentés du DOS
BIOS : Fonctions disquettes
Adresse table des paramètres disque dur 1
Réservé
Adresse table des paramètres disque dur 2
Librement définissable par le programme utilisateur
Heure alarme atteinte, définie par 1Ah 06h (AT seulement)
Librement définissable par le programme utilisateur
Gestion EMS : EMM (Expand Memory Manager)
Inutilisé
MAT.
MAT.
MAT.
MAT.
MAT.
MAT.
MAT.
MAT.
IRQ08 : Horloge temps réel (AT seulement)
IRQ09 : (AT seulement)
IRQ10 : (AT seulement)
IRQ11 : (AT seulement)
IRQ12 : (AT seulement)
IRQ13 : 80287 NMI (AT seulement)
IRQ14 : Disque dur : fin d’accès (AT seulement)
IRQ15 : (AT seulement)
inutilisé
Utilisé à l’intérieur de l’interpréteur Basic
inutilisé