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é