Voici une référence des adresses mémoire
exploiter par le système d'exploitation DOS ou
compatible. Vous remarquerez que les adresses ne sont pas diviser en
Segment:Offset mais plutôt en adresse physique en mémoire.
Vous devrez conserver les 4 chiffres du haut pour le segment et
garder le dernier du bas pour l'offset. A NOTER toutefois que bien
que je ne voulais pas copier des auteurs de livre et ne pas respect
leurs droits, il devient parfois difficile de ne pas avoir des
similitudes pour une raison fort simple, il y a trop d'auteurs
(Aide-Mémoire de Les
Interruptions Du MS-DOS de Philippe Mercier, La Bible du PC
Programmation Système de Michaël Tischer, Le Livre d'Or
PC de Martin Althaus, Turbo Pascal 7 utile de François
Gervais, les livres de Microsoft Press,...) ayant traiter
de se sujet lors des années 1980, 1990 et ils ont carrément
épuiser toutes les possibilités de dire les termes...
J'ose croire que si un de ses auteurs parcours cette page, il se
persuadera pas de m'actionner parce qu'il y a deux ou trois mots
pareils à son livre.
| 00000h à 003FCh |
1 Ko |
Table des vecteurs d'interruption |
| 00400h à 004FFh |
256 octets |
Ces adresses sont utilisées par la ROM BIOS
(sans oublier ceux des cartes vidéo EGA ou
postérieur) ainsi que par de nombreuses applications DOS
afin de pouvoir reconnaître correctement le matériel
installer et d'agir en conséquence. Il est cependant peut
flexible sur de nombreux aspect.
|
| 00400h à 00401h |
2 octets (1 mot) |
On utilise cette adresse de base (port d'entrée/sortie)
pour le COM1 ou désigne régulièrement
la souris série affectant du même coup le COM3.
|
| 00402h à 00403h |
2 octets (1 mot) |
On utilise cette adresse de base (port d'entrée/sortie)
pour désigné le COM2
|
| 00404h à 00405h |
2 octets (1 mot) |
On utilise cette adresse de base (port d'entrée/sortie)
pour désigné le COM3
|
| 00406h à 00407h |
2 octets (1 mot) |
On utilise cette adresse de base (port d'entrée/sortie)
pour désigné le COM4
|
| 00408h à 00409h |
2 octets (1 mot) |
On utilise cette adresse de base (port d'entrée/sortie)
pour désigné le LPT1
|
| 0040Ah à 0040Bh |
2 octets (1 mot) |
On utilise cette adresse de base (port d'entrée/sortie)
pour désigné le LPT2
|
| 0040Ch à 0040Dh |
2 octets (1 mot) |
On utilise cette adresse de base (port d'entrée/sortie)
pour désigné le LPT3
|
| 0040Eh à 0040Fh |
2 octets (1 mot) |
On utilise cette adresse de base (port d'entrée/sortie)
pour désigné le LPT4
|
| 00410h à 00411h |
2 octets (1 mot) |
Ce mot contient divers information sur l'équipement de
la machine actuellement installé.
|
| 0 |
Contient la valeur 1 advenant qu'il y ait au moins une unité
de disquette installé sur la machine.
|
| 1 |
Contient la valeur 1 si un coprocesseur mathématique
est installé sur la machine.
|
| 2 et 3 |
Lors des premiers PC, on utilisait ces bits pour
indiquer la mémoire RAM disponible par le système
sur la carte mère des PC et XT uniquement.
|
| 4 et 5 |
Indique la carte vidéo installé exploiter au
démarrage de la machine:
|
| 00b |
Carte vidéo adaptateur spécial comme les cartes
EGA, VGA ou PGA...
|
| 01b |
Mode texte 40x25 en 16 couleurs |
| 10b |
Mode texte 80x25 en 16 couleurs |
| 11b |
Mode texte 80x25 en monochrome |
| 6 et 7 |
Indique le nombre d'unité de disquette installé: |
| 00b |
1 lecteur |
| 01b |
2 lecteurs |
| 10b |
3 lecteurs |
| 11b |
4 lecteurs |
| 8 à 10 |
Indique le nombre de ports série de format RS-232
installé.
|
| 12 |
Aura la valeur 1 si une manette de jeux est installé
|
| 13 |
Vaudra 1 si les modèle d'imprimante pour port série
est installé.
|
| 14 et 15 |
Indique le nombre d'imprimante connecté
|
| 00412h |
1 octet |
Auto-test: Cet octet sert à stocker
certaines informations pendant l'auto-test du système,
étant effectué au cours de l'opération de
démarrage du système (avant que le système
d'exploitation ne soit lancer), y compris lors d'un démarrage
à chaud. Il est utilisé par la suite par les
routines du BIOS pour détecter la frappe de
certaines touches mais il ne présente aucun intérêt
pratique pour le programmeur.
|
| 00413h à 00414h |
2 octets (Mot) |
La taille mémoire exprimée en Kilo-octets:
A cet adresse de la mémoire figure un mot indiquant la
capacité (RAM) de la mémoire conventionnel
(celle se trouvant sous la barre des 1 Mo)
en Ko. Cette donnée
est également calculés au cours de l'opération
de lancement du système et elle peut être lue à
l'aide de l'interruption 12h du BIOS.
|
| 00415h à 00416h |
2 octets (Mot) |
Tester: Une fois de plus, ces 2 octets sont exploités
uniquement pendant l'opération du démarrage du
système pour tester l'électronique. Ils n'ont plus
aucune signification par la suite.
|
| 00417h |
1 octet |
Premier ensemble d'État du clavier: Cet
octet est appelé "octet d'état du clavier"
puisqu'il indique l'état du clavier et de certaines
touches spéciales. On pourra lire le contenu de cet octet
grâce à la fonction 02h de l'INTERRUPTION 16h
(clavier du BIOS). En accédant à cet octet,
il est autre possible d'activer ou de désactiver les
modes INSERT ou majuscules (CAPS) sur les BIOS
AT ou postérieur. Seuls les 4 bits de plus fort poids
de cet octet sont utiles à cet effet et il préférable
d'éviter d'affecter les 4 bits inférieurs.
|
| 0 |
Vaut 1 si la touche Shift droite est actionnée |
| 1 |
Vaut 1 si la touche Shift gauche est actionnée |
| 2 |
Vaut 1 si une/des touches Ctrl sont actionnées |
| 3 |
Vaut 1 si la touche Alt est actionnée |
| 4 |
Vaut 1 si la touche Scroll Lock activée |
| 5 |
Vaut 1 si la touche Num Lock est activée |
| 6 |
Vaut 1 si la touche Caps Lock est activée |
| 7 |
Vaut 1 si le mode INSERT activé |
| 00418h |
1 octet |
Deuxième ensemble
d'État du clavier: La signification de cet octet se
rapproche drôlement de celle de l'octet de l'adresse 00417h
avec cependant la différence que ce n'est pas l'état
des modes INSERT ou majuscules étant mentionné
mais davantage la position, "enfoncée" ou "non
enfoncée", des touches correspondantes
|
| 0 |
Vaut si 1 la touche Ctrl
gauche est enfoncée (à partir du AT ou
postérieur)
|
| 1 |
Vaut si 1 la touche Alt
gauche est enfoncée (à partir du AT ou
postérieur)
|
| 2 |
Vaut si 1 la touche SysReq
est enfoncée (à partir du AT ou postérieur)
|
| 3 |
Vaut si 1 si le mode Pause est activé |
| 4 |
Vaut si 1 la touche Break est enfoncée |
| 5 |
Vaut si 1 la touche Num Lock est enfoncée |
| 6 |
Vaut si 1 la touche Caps Lock est enfoncée |
| 7 |
Vaut si 1 la touche INSERT est enfoncée |
| 00419h |
1 octet |
ALT+Code ASCII: Cet octet
est utilisé lorsqu'on enfonce une combinaison de touche
ALT+Code ASCII. Il conserva donc la valeur tapée
lorsqu'on enfonce la touche ALT suivie d'un code ASCII.
|
| 0041Ah |
2 octets (1 mot) |
Cet octet contient l'adresse du
prochain caractère à extraire à partir du
tampon clavier, il s'agit de l'adresse de début.
|
| 0041Ch |
2 octets (1 mot) |
Cet octet contient l'adresse du
dernier caractère (fin) du tampon clavier.
|
| 0041Eh |
32 octets (16 mots) |
Tampon clavier: C'est dans
cette zone de mémoire qu'est situé le véritable
tampon clavier. Comme chaque caractère stocké dans
le tampon clavier occupe 2 octets, sa taille est de 32 octets. Il
pourra donc recevoir 16 touches au maximum. Pour un caractère
ASCII normal, c'est d'abord le code ASCII du
caractère, suivi de sa correspondance au niveau du code
clavier, étant mémorisé ici. Le code clavier
spécifier est le numéro de la touche ayant produit
le caractère ASCII. Toutefois, si le caractère
figurent dans le tampon clavier et que celui-ci possède un
code étendu (par exemple une touche de déplacement),
alors le premier octet contiendra 0 et le deuxième octet
indiquera le code de la touche étendue. Le tampon
lui-même est conçu comme une sorte de mémoire
en anneau dans lequel on en insère tant qu'elle n'est pas
pleine. L'adresse du prochain caractère à lire
dans le tampon clavier est fournie par le mot à l'adresse
0041Ah. Lorsqu'un caractère est lu, ce pointeur est
avancée de 2 octets vers la fin du tampon. Si un
caractère a été lu dans la dernière
cellule de mémoire du tampon, le pointeur est à
nouveau fixé sur le début du tampon. Il en va
exactement de même avec le pointeur placé à
l'adresse 0041Ch, indiquant la fin du tampon clavier. Lorsqu'un
nouveau caractère est entré, il est stocké,
dans le tampon clavier, à l'endroit désigné
par ce pointeur. Il est ensuite augmenté de 2 pour se
rapprocher de la fin du tampon. Si un nouveau caractère
vient d'être inséré dans le dernier
emplacement tampon, le pointeur est à nouveau fixé
sur le début tampon. La rapport entre le pointeur de début
et le pointeur de fin du tampon est ainsi d'une grande importance
pour juger de l'état du tampon. Deux situations revêtent
à cet égard une signification particulière.
Il s'agit tout d'abord du cas où les 2 pointeurs
contiennent la même adresse. Ce terme exprime tout
simplement qu'il n'y a pour le moment aucun caractère dans
le tampon clavier. Le second cas est celui où on tente
d'ajouter un caractère au-delà de la "fin"
du tampon clavier. Cela supposerait que le pointeur de fin fût
augmenté de 2 pour "rattraper" le pointeur de
début. Ou par conséquent que le tampon clavier est
plein et qu'il ne peut plus recevoir d'autres caractères.
Si le début (0041Ah) = Fin(0041Ch), le tampon est vide.
|
| 0A0000h à 0AFFFFh |
64 Ko |
Adresse de la mémoire graphique des modes supérieur
au carte CGA.
|
| 0B0000h à 0B7FFFh |
32 Ko |
Adresse de la mémoire vidéo des cartes
monochromes ou des modes émuler correspondant à celui-ci.
|
| 0B8000h à 0BFFFFh |
32 Ko |
Adresse de la mémoire vidéo des cartes couleurs CGA et de leur mode vidéo ainsi que de tous les
modes texte couleurs.
|
| C00F9h |
20 octets |
Chaîne de caractère signature du BIOS
ayant la forme «ATI Technologies Inc» du
fabricant ATI.
|
| C0110h |
29 octets |
Chaîne de caractère signature du BIOS
ayant la forme «ATI VGA EDGE-16, BIOS V5-1.01»
du fabricant ATI.
|
| C0110h |
21 octets |
Chaîne de caractère signature du BIOS
ayant la forme «VGA1024, BIOS V5-1.01» du
fabricant ATI.
|
| C011Eh |
7 octets |
Chaîne de caractère signature du BIOS
ayant la forme «V5-1.01» du fabricant ATI
d'une carte VGA1024.
|
| C0126h |
7 octets |
Chaîne de caractère signature du BIOS
ayant la forme «V5-1.01» du fabricant ATI
d'une carte VGA EDGE-16.
|
| C0181h |
9 octets |
Chaîne de caractère signature du BIOS
ayant la forme «IT - VGA2» du fabricant Inform
Tech.
|
| C94F9h |
23 octets |
Chaîne de caractère signature du BIOS
ayant la forme «Super BIOS II Formatter» du
fabricant Western digital.
|
| 0E0000h à 0EFFFFh |
64 Ko |
Cette banque de mémoire est souvent utiliser pour la
mémoire EMS ou ces émulateurs. Sur certains
XT on le retrouvera pour la ROM supplémentaire.
|
| E0013h |
|
Chaîne de caractère signature du BIOS
ayant la forme «ROM DIAGNOSTICS (C) 1987, American
Megatrends Inc.» du fabricant American Megatrends.
|
| 0F0000h à 0FFFFFh |
Pouvant aller jusqu'à 64 Ko de mémoire. |
Ces adresses sont utiliser pour la ROM BIOS de
la carte mère.
|
| F0004h à 0F0010h |
12 octets |
Chaîne de caractère signature du BIOS
ayant la forme «AAAAMMMMIIII» du fabricant
American Megatrends.
|
| F0005h |
|
Chaîne de caractère signature du BIOS
ayant la forme «Copyright 1984,1985 Phoenix Software
Associates Ltd.» du fabricant WYSE dans ses
machines Amdek System/88.
|
| F0010h à 0F0017h |
8 octets |
Chaîne de caractère signature du BIOS
ayant la forme «07/07/91» du fabricant
American Megatrends.
|
| F0020h |
|
Chaîne de caractère signature du BIOS
ayant la forme «American Megatrends Inc.» du
fabricant American Megatrends.
|
| F0100h |
|
Chaîne de caractère signature du BIOS
ayant la forme «ROM BIOS (C) 1990 American Megatrends
Inc.» du fabricant American Megatrends.
|
| F0150h |
|
Chaîne de caractère signature du BIOS
ayant la forme «386DX-OP-PIc-25-F1-ZZ» du
fabricant American Megatrends.
|
| F0723h |
|
Chaîne de caractère signature du BIOS
ayant la forme «Real Time Clock Battery Problem
Detected» du fabricant WYSE dans ses machines
Amdek System/88.
|
| F079Ch |
|
Chaîne de caractère signature du BIOS
ayant la forme «Invalid Configuration information -
please run SETUP program» du fabricant WYSE dans
ses machines Amdek System/88.
|
| F1B20h |
|
Chaîne de caractère signature du BIOS
ayant la forme «American Megatrends Inc.» du
fabricant American Megatrends.
|
| F2004h |
|
Chaîne de caractère signature du BIOS
ayant la forme «WYSE COPR. IBM Compatible» du
fabricant WYSE dans ses machines Amdek System/88.
|
| F39C1h |
|
Chaîne de caractère signature du BIOS
ayant la forme «Non-System disk or disk error»
du fabricant WYSE dans ses machines Amdek System/88.
|
| F3F37h |
|
Chaîne de caractère signature du BIOS
ayant la forme «Rom Bios Ver 2.14» du
fabricant WYSE dans ses machines Amdek System/88.
|
| FB000h |
6 octets |
Chaîne de caractère signature du BIOS
ayant la forme «Zenith» du fabricant Zenith.
|
| FC02Bh |
5 octets |
Chaîne de caractère signature du BIOS
ayant la forme «Tandy» du fabricant Tandy.
|
| FC050h |
8 octets |
Chaîne de caractère signature du BIOS
ayant la forme «OLIVETTI» du fabricant
Olivetti.
|
| FC2FFh |
6 octets |
Chaîne de caractère signature du BIOS
ayant la forme «Zenith» du fabricant Zenith.
|
| FD900h |
Double mot |
Adresse de l'interruption 16h du Conterm Max. |
| FE004h |
6 octets |
Chaîne de caractère signature du BIOS
ayant la forme «Tandon» du fabricant Tandon.
|
| FE00Eh |
3 octets |
Chaîne de caractère signature du BIOS
ayant la forme «IBM» du fabricant IBM.
|
| FE719h |
Double mot |
Adresse de l'interruption 18h de la ROM Bios Phoenix
version 2.14 (1984, 1985)
|
| FE739h |
Double mot |
Adresse de l'interruption 14h de la ROM Bios Phoenix
version 2.14 (1984, 1985)
|
| FE82Eh |
Double mot |
Adresse de l'interruption 16h de la ROM Bios Phoenix
version 2.14 (1984, 1985)
|
| FEFD2h |
Double mot |
Adresse de l'interruption 17h de la ROM Bios Phoenix
version 2.14 (1984, 1985)
|
| FF841h |
Double mot |
Adresse de l'interruption 12h de la ROM Bios Phoenix
version 2.14 (1984, 1985)
|
| FF859h |
Double mot |
Adresse de l'interruption 11h de la ROM Bios Phoenix
version 2.14 (1984, 1985)
|
| FFA0Ah |
Double mot |
Adresse de l'interruption 02h de la ROM Bios Phoenix
version 2.14 (1984, 1985)
|
| FFF23h |
Double mot |
Adresse de l'interruption 06h, 07h et 0Ah de la ROM Bios
Phoenix version 2.14 (1984, 1985)
|
| FFF54h |
Double mot |
Adresse de l'interruption 05h de la ROM Bios Phoenix
version 2.14 (1984, 1985)
|
| FFFC2h |
4 octets |
Chaîne de caractère signature du BIOS
ayant la forme «WANG» du fabricant Wang.
|
| FFFF0h |
Variable |
Point d'entrée de la combinaison de touche
Ctrl+Alt+Delete lors
du démarrage à froid de tous bon compatible.
|
| FFFFEh |
1 octets |
Signature de modèle de PC |
| 055h (85) |
Conterm Max du fabricant du même nom. |
| 0FCh (252) |
PC AT ou postérieur |
| 0FDh (253) |
PC Junior d'IBM |
| 0FEh (254) |
PC XT |
| 0FFh (255) |
IBM PC ou compatible |