Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Programmation  Plateforme  Compilateur  Outils  Emulateur  Annexe  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Les remarques
Les opérateurs
Les instructions conditionnelles
Les instructions de boucles
Type de données élémentaire
Référence des registres
Mode d'adressage du processeur
Structure de données
Référence des instructions par catégories
Référence, lexique et dictionnaire des instructions 80x86
Les symboles prédéfinies
Les directives
Mode 8080
Mode réel
Mode protégé
Mode virtuel 8086
Mode SMM
Format du descripteur de segment
Format du TSS
Format du SMM
Format BCD
Format des nombres réels
8086/8088
Série NEC V20/V30
80286
80386
Pentium
Pentium Pro
AVX-512
MMX (MultiMedia eXtensions)
MPX (Memory Protection Extensions)
SGX (Software Guard Extensions)
SHA extensions
SMX (Safer Mode Extensions)
SSE (Streaming SIMD Extensions)
SSE2 (Streaming SIMD Extensions 2)
SSE3 (Streaming SIMD Extensions 3)
SSSE3 (Supplemental Streaming SIMD Extensions 3)
SSE4.1 (Streaming SIMD Extensions 4.1)
SSE4.2 (Streaming SIMD Extensions 4.2)
TSX (Transactional Synchronization Extensions)
VMX (Virtual-Machine eXtensions)
x86-64
Les boucles
Les chaînes
les comparaisons
Les conversions
Les décalages de bits
Les drapeaux
Les opérateurs
Saut conditionnel
Saut inconditionnel
Les transferts de données
Utilisation de la pile
Accès mémoire
Ensemble d'instructions pour les applications 80386
BIOS compatible au micro-ordinateur IBM PC
Démarrage du système
Détermination de la version du BIOS
Détermination du type de PC
Fonctions de sortie de l'écran du BIOS
Détermination de la configuration du système à l'aide du BIOS
Détermination de la RAM disponible à l'aide du BIOS
Accéder à la disquette depuis le BIOS
Accéder au disque dur depuis le BIOS
Accéder au port série depuis le BIOS
L'interruption de la cassette
Accéder au clavier depuis le BIOS
Accéder à l'imprimante à partir du BIOS
Lecture de la date et de l'heure à partir du BIOS
Variables du BIOS
Bonjour
Application
Détection
Mathématique
Temps
Stationnement de voiture
BIOS SCSI
CMOS de XT
DesqView
Valeur absolue (ABS)
Triangle Pascal
Année bissextile
DOS
GeoWorks
86-DOS
MS-DOS 2
MS-DOS 6
A86
LZASM
MASM
NASM
TASM
CodeView
Free Hex Editor Neo
OllyDbg
SoftICE
Turbo Debugger
DOSBox
emu8086
PCE - PC Emulator
PCem
Interruptions
Port d'entrée/sortie
RAM de l'IBM PC
Téléchargement
00h à 07h: Processeur
08h à 0Fh: Périphériques (IRQ0 à IRQ7)
10h: Gestionnaire vidéo
13h: Accès aux disques
14h: Gestion des ports séries
15h: Extension d'Entrée/Sortie
16h: Gestion du clavier
17h: Gestion de l'imprimante
21h: Service DOS
2Ah: Interface de service réseau
2Fh: Multiplexe
33h: Interface du pilote de souris
59h: GSS Computer Graphics Interface
5Ch: Réseau BIOS (NetBIOS)
67h: Gestionnaire EMM/EMS
00h: Mode vidéo
01h: Sélection du type de curseur
10h, F0h: Tseng Labs HiColor
4Fh: Pilote VESA
5Fh: Realtek RTVGA
6Fh: Video 7
18h: Demande des informations SCSI
01h: Écrit dans la RAM non-volatile (Amstrad PC1512)
02h: Lecture dans la RAM non-volatile (Amstrad PC1512)
10h: Gestionnaire principal TopView
89h: Entrée en mode protégé
64h: OS/2 API DOS32StartSession
FFh, 92h: Détecte la présence du pilote «PREDIR.EXE»
16h: Windows & DPMI
0Ah: Détection de Windows
84h: Demande le point d'entrée
86h: Détection du mode DPMI
87h: Détecte l'installation DPMI
8Eh: Machine virtuel et application
Préface
Notes légal
Dictionnaire
Recherche

Variables du BIOS

Les autres sections du BIOS décrivaient différentes interruptions du BIOS et leurs fonctions. Ces fonctions nécessitent un segment de mémoire pour entreposer les variables et les données. Pour cette raison, le BIOS réserve la zone de mémoire entre les adresses 0040:000 et 0050:0000 pour l'entreposage des variables internes. Le contenu de la plupart de ces variables peut être lu à l'aide de certaines fonctions du BIOS ou en utilisant l'accès direct. Parfois, l'accès direct est la méthode la plus simple des deux, mais il augmente les chances qu'un programme ne s'exécute pas correctement sur certains PC. Étant donné que le BIOS peut varier d'un PC à l'autre, différentes versions du BIOS peuvent utiliser des emplacements de mémoire individuels dans cette zone de différentes manières. Lorsque vous travaillez avec des PC standard et compatibles (par exemple, IBM, Tandon,...), vous pouvez supposer que l'affectation de mémoire fournie ici reste constante entre les machines.

La liste suivante décrit les variables individuelles, leurs objectifs et leurs adresses. L'adresse indiquée est l'adresse de déplacement de l'adresse de segment 0040h. Par exemple, une variable avec l'adresse de déplacement 10h a l'adresse 0040:0010 ou 10h.

00h à 07h

Pendant le processus de démarrage, une routine BIOS détermine la configuration de son PC. Il détermine, entre autres, le nombre d'interfaces série (RS-232) installées. Ces numéros d'interface sont stockés sous forme de quatre mots dans les emplacements de mémoire 0040:0000 à 0040:0007. Chacun de ces mots représente l'une des quatre cartes pouvant être installées pour la transmission asynchrone de données. L'octet de poids faible est d'abord entreposé, suivi de l'octet de poids fort. Comme peu de PC disposent de quatre cartes série, les mots représentant une carte manquante contiennent la valeur 0.

0Bh à 0Fh

Pendant le processus de démarrage, une routine BIOS détermine la configuration de son PC. Il détermine, entre autres, le nombre d'interfaces parallèles installées. Ces numéros de carte sont entreposés sous forme de quatre mots dans les emplacements de mémoire 0040:0008 à 0040:000F. Chacun de ces mots désigne l'une des quatre cartes pouvant être installées pour la transmission parallèle des données. L'octet de poids faible est d'abord stocké, suivi de l'octet de poids fort. Comme peu de PC ont quatre cartes parallèles à leur disposition, les mots représentant une carte manquante contiennent la valeur 0.

10h à 11h

Ce mot représente la configuration matérielle du PC telle qu'appelée par l'interruption 11h du BIOS. Semblable aux deux mots ci-dessus, cette configuration est déterminée lors du processus de démarrage. Les objectifs des bits individuels de ce mot sont normalisés pour le PC et le XT, mais peuvent différer dans certains autres ordinateurs.

12h

Cet octet entrepose les informations recueillies lors de l'auto-test du système, exécuté pendant le processus de démarrage et après un démarrage tardif. Les routines du BIOS utilisent également cet octet pour reconnaître les touches actives. Il n'a aucune utilité pratique pour le programmeur.

13h à 14h

Ce mot indique la capacité de RAM du système en kilo-octets. Ces informations sont également collectées pendant le processus de démarrage et peuvent être lues à l'aide de l'interruption 12h du BIOS.

15h à 16h

Ces deux octets testent le matériel pendant le processus de démarrage. Ils n'ont plus aucune utilité après chaque test matériel.

17h

C'est ce qu'on appelle l'octet d'état du clavier car il contient l'état du clavier et des différentes touches. La fonction 02h de l'interruption clavier du BIOS 16h lit cet octet. L'accès à cet octet permet à l'utilisateur d'activer ou de désactiver la touche Insert ou Caps Lock. Les quatre bits supérieurs de cet octet peuvent être modifiés par l'utilisateur ; les quatre bits inférieurs doivent rester intacts. Voici les drapeaux de l'état clavier :

Bit Description
0 1=Touche SHIFT de droite est enfoncé
1 1=Touche SHIFT de gauche est enfoncé
2 1=Touche CTRL est enfoncé
3 1=Touche ALT est enfoncé
4 1=SCROLL LOCK est activé
5 1=NUM LOCK est activé
6 1=CAPS LOCK est activé
7 1=INSERT est activé

18h

Cet octet est similaire à l'octet 17h ci-dessus, à la différence que cet octet indique l'état actif des touches SysReq et Break. Voici les drapeaux de l'état clavier étendue :

Bit Description
0 1=Touche CTRL est enfoncé
1 1=Touche ALT est enfoncé
2 1=Touche SysReq est enfoncé (AT et quelques XT)
3 1=Mode pause activé
4 1=Touche BREAK est enfoncé
5 1=NUM LOCK est enfoncé
6 1=CAPS LOCK est enfoncé
7 1=INSERT est enfoncé

19h

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.

1Ah à 1Bh

Ce mot contient l'adresse du prochain caractère à lire dans le tampon du clavier (voir aussi 1Eh à 3Dh).

1Ch à 1Dh

Ce mot contient l'adresse du dernier caractère du tampon du clavier (voir aussi 1Eh à 3Dh).

1Eh à 3Dh

Cette zone de mémoire contient le véritable tampon du clavier. Étant donné que chaque caractère entreposé dans la mémoire tampon du clavier nécessite 2 octets, sa capacité de 32 octets offre un espace pour un maximum de 16 caractères. Pour un caractère ASCII normal, la mémoire tampon entrepose le code ASCII, puis le code de balayage du caractère. Le code de balayage est le numéro de la touche activée ayant généré le caractère ASCII. Si le caractère dans la mémoire tampon du clavier utilise un code étendu (par exemple, une touche de curseur), alors le premier octet contient la valeur 0 et le deuxième octet contient le code de touche étendu. L'ordinateur lit constamment les caractères de la mémoire tampon du clavier. Si le tampon n'est pas plein, des caractères peuvent être ajoutés. L'adresse du prochain caractère à lire dans la mémoire tampon du clavier est entreposée dans le mot à l'emplacement mémoire 0040:001Ah. Lorsqu'un caractère est lu, le caractère se déplace de 2 octets vers la fin du tampon en mémoire. Lorsqu'un caractère a été lu à partir du dernier emplacement mémoire du tampon, ce pointeur se réinitialise au début du tampon.

Il en va de même pour le pointeur à l'emplacement mémoire 0040:001C, indiquant la fin du tampon clavier. Si vous ajoutez un nouveau caractère, il est entreposé dans la mémoire tampon du clavier à l'emplacement indiqué par ce pointeur. Puis le pointeur est incrémenté de 2 pour se déplacer vers la fin du tampon. Si un nouveau caractère est entreposé au dernier emplacement mémoire du tampon, ce pointeur revient au début du tampon.

La relation entre les pointeurs de début et de fin indique quelque chose sur l'état du tampon. Deux conditions sont particulièrement intéressantes. La première est la condition lorsque les deux pointeurs contiennent la même adresse (aucun caractère n'est actuellement disponible dans la mémoire tampon du clavier). L'autre condition est lorsqu'un caractère doit être ajouté à la fin du tampon du clavier, mais l'ajout de 2 au pointeur de fin le pointerait vers le pointeur de début. Cela signifie que la mémoire tampon du clavier est pleine, c'est-à-dire qu'aucun caractère supplémentaire ne peut être accepté.

3Eh

Les quatre bits les plus bas correspondent au nombre de unités de disque PC installés (vous avez droit à un maximum de quatre unités de disque). Ces octets indiquent également si les variateurs connectés doivent être calibrés. C'est généralement le cas après qu'une erreur se soit produite lors d'un accès en lecture, en écriture ou en recherche. Lorsqu'une erreur se produit, le bit correspondant dans cet octet est mis à 0.

3Fh

Les quatre bits inférieurs de cet octet indiquent si le moteur de l'unité de disque actuel est en mouvement. Un 1 dans le bit correspondant l'indique. De plus, le bit 7 est toujours activé lorsque l'accès en écriture est en cours.

40h

Cet octet contient une valeur numérique indiquant la période de temps jusqu'à ce qu'un moteur d'unité de disque s'arrête. Étant donné que le BIOS ne peut accéder qu'à un seul unité de disque à la fois, cette valeur fait référence au dernier unité auquel on a accédé. Suite à l'accès à cet unité, le BIOS place la valeur 37 dans ce registre. Pendant chaque interruption de minuterie (qui se produit environ 18,2 fois par seconde), la valeur de cet octet est décrémentée de 1. Lorsqu'elle atteint finalement 0, le moteur du disque est arrêté. Cela se produit après environ deux secondes.

41h

Cet octet contient l'état du dernier accès au disque. Lorsque l'octet contient la valeur 0, la dernière opération de disque a été effectuée de manière ordonnée. Une autre valeur signale qu'un code d'erreur a été interdit par le contrôleur de disque.

42h à 48h

Ces sept octets indiquent l'état du contrôleur de disque NEC. Ils indiquent également l'état du contrôleur de disque dur sur les systèmes de disque dur.

49h

Cet octet contient le mode d'affichage actuel tel que rapporté par le BIOS. Il s'agit de la même valeur indiquée lorsque l'utilisateur active un mode d'affichage par la fonction 0 de l'interruption vidéo 10h du BIOS.

4Ah

Ce mot contient le nombre de colonnes de texte par ligne d'affichage dans le mode d'affichage courant.

4Ch

Ce mot contient le nombre d'octets nécessaires à l'affichage d'une page écran dans le mode d'affichage courant, tel que rapporté par le BIOS. En mode texte 80x25 caractères, il s'agit de 4 000 octets.

4Eh à 4Fh

Ce mot contient l'adresse de la page d'écran en cours actuellement sur le moniteur, par rapport au début de la RAM de la carte vidéo. La RAM vidéo de la carte couleur commence à B800:0000 pour la première page écran et à B800:1000 pour la deuxième page écran en mode texte 80x25 caractères. Cette variable contient généralement la valeur 1000h.

50h à 5Fh

Ces 16 octets contiennent la position actuelle du curseur pour chaque page d'écran. Le BIOS peut contrôler un maximum de 8 pages d'écran. Le BIOS réserve deux octets pour chaque page d'écran. L'octet de poids faible indique la colonne de l'écran, qui peut avoir des valeurs allant de 0 à 39 (en mode 40 colonnes) ou de 0 à 79 (en mode 80 colonnes). L'octet de poids fort indique la ligne d'écran, qui peut avoir des valeurs allant de 0 à 24. Si vous modifiez les valeurs dans ce tableau, la position immédiate du curseur clignotant reste inchangée, mais le changement deviendra perceptible la prochaine fois que vous saisirez des caractères dans la page d'affichage correspondante.

Vous pouvez utiliser ces octets pour positionner le curseur, mais nous ne recommandons pas cette méthode.

60h

Cet octet contient la ligne de départ du curseur clignotant, pouvant prendre des valeurs allant de 0 à 7 (carte graphique couleur) ou de 0 à 14 (carte graphique monochrome). Changer le contenu de cet octet ne change pas l'apparence du curseur, car il doit d'abord être transmis par le BIOS au contrôleur vidéo.

61h

Cet octet contient la ligne de fin du curseur clignotant, pouvant prendre des valeurs allant de 0 à 7 (carte graphique couleur) ou de 0 à 14 (carte graphique monochrome). Changer le contenu de cet octet ne change pas l'apparence du curseur, car il doit d'abord être transmis par le BIOS au contrôleur vidéo.

62h

Cet octet contient le numéro de la page écran actuellement affichée.

63h à 64h

Ce mot contient le port de la carte vidéo. Si un PC contient plusieurs cartes vidéo, la valeur entreposée sera l'adresse de la carte vidéo actuellement active.

65h

Le contenu du sélecteur de mode d'une carte contrôleur vidéo dicte le mode d'affichage actuel. La valeur actuelle est entreposée dans cet emplacement de mémoire.

66h

Une carte couleur en mode graphique moyenne résolution peut afficher 320x200 pixels en quatre couleurs différentes. Trois de ces couleurs proviennent de l'une des deux palettes de couleurs. Cet octet contient la palette de couleurs actuellement active (0 ou 1).

67h à 6Bh

Les premières versions du BIOS du PC pouvaient utiliser un enregistreur à cassette pour le stockage des données. Ces premières versions du BIOS utilisaient ces cinq octets pour l'accès à la cassette lors de l'entreposage des données. Les modèles XT et AT, n'ayant pas cette interface, utilisent ces emplacements de mémoire en relation avec l'extension de la RAM.

6Ch à 6Fh

Ces quatre octets agissent comme un compteur 32 bits pour le BIOS et le DOS. Le compteur est incrémenté de 1 à chacune des 18,2 interruptions du temporisateur par seconde. Cela permet la mesure et l'affichage du temps. La valeur de ce compteur peut être lue et définie avec l'interruption 1Ah du BIOS. Si 24 heures se sont écoulées, il se remet à 0 et compte à partir de là.

70h

Cet octet contient un 0 lorsque la routine de temporisation est comprise entre 0 et 24 heures. L'octet 70h passe à 1 lorsque la routine du compteur de temps dépasse sa limite de 24 heures. Pour chaque compte de 24 heures suivant, cet octet reste à 1. Si l'interruption 1Ah de minuterie du BIOS est utilisée pour régler l'heure, cet octet est réinitialisé à 0.

71H

Cet octet indique si une interruption clavier se produit ou non après que l'utilisateur a appuyé sur Ctrl+C ou Ctrl+Break. Si le bit 7 de cet octet contient la valeur 1, une interruption clavier s'est produite.

72h à 73h

Pendant le processus de démarrage, une commande de réinitialisation est envoyée au contrôleur du clavier. Pendant la durée de cette remise à zéro, le mot à cet emplacement prend la valeur 1234h.

Variable XT du BIOS

Les configurations matérielles du XT permettent l'introduction de variables supplémentaires. Voici une liste des variables BIOS trouvées dans XT et AT.

74h à 77h

Ces quatre octets sont utilisés uniquement par les systèmes de disque dur pour le contrôle du disque dur.

78h à 7Bh

Chacun de ces quatre octets renvoie l'état de l'un des quatre ports d'imprimante.

7Ch à 7Fh

Chacun de ces quatre octets renvoie l'état de l'un des quatre ports de communication désynchronisé (RS-232).

80h à 81h

Ce mot contient le début de la mémoire tampon du clavier comme adresse de déplacement par rapport à l'adresse de segment 0040. Puisque la mémoire tampon du clavier commence normalement à l'adresse 0040:001E, cet emplacement mémoire contient généralement la valeur 1Eh.

82h à 83h

Ce mot contient la fin de la mémoire tampon du clavier comme adresse de déplacement par rapport à l'adresse de segment 0040. Comme la mémoire tampon du clavier se termine normalement à l'adresse 0040:003E, cet emplacement mémoire contient généralement la valeur 3Eh.

Variables AT du BIOS

Les fonctionnalités avancées de l'AT nécessitent encore plus de variables BIOS. Voici une liste des variables BIOS trouvées uniquement sur les modèles AT.

88h

Cet octet contient la dernière vitesse de transmission de données de l'unité de disque ou du disque dur.

8Ch à 96h

Cette intervalle mémoire contient les variables nécessaires lors de l'accès disque, disque dur.

97h

Cet octet réserve un drapeau de clavier indiquant l'état de la LED (diode électroluminescente) du clavier AT.

98h à A0H

Cette intervalle de mémoire accepte les variables de l'horloge temps réel alimentée par batterie.

Tous les membres de la famille PC (PC, XT et AT ont une variable dans l'emplacement mémoire 0050:0000. Cette variable fonctionne en conjonction avec la routine de copie papier (interruption 5) pour empêcher la sortie de l'imprimante durant l'impression d'une autre copie papier. La routine de copie papier teste pour savoir si ce drapeau a une valeur de 0. Si c'est le cas, et qu'aucune copie papier n'est en cours d'impression, le drapeau passe à 1. Le BIOS peut vérifier cette variable pour voir si une impression est en cours. Après une impression réussie, ce drapeau se remet à 0. Si une erreur a été détectée lors de l'accès à l'imprimante, ce drapeau est mis à la valeur 255 et la procédure d'impression est abandonnée.



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Mardi, le 7 février 2023