Détermination du type de PC
L'utilisation de certaines fonctions du BIOS est davantage destinée à l'identification du modèle qu'à l'identification de la version du BIOS. Ils indiquent le type de PC utilisé. Ils indiquent également quand le BIOS a des fonctions supplémentaires (par exemple, le BIOS AT est mieux équipé que le BIOS PC et BIOS XT). Ces fonctions supplémentaires gèrent essentiellement la sortie de chaîne de caractères à l'écran, l'accès à l'horloge en temps réel (standard sur l'AT) et la RAM supplémentaire au-delà de la limite de mémoire de 1 mégaoctet (également standard sur l'AT).
Un programme appelant ces fonctions doit d'abord s'assurer que l'ordinateur utilisé est bien un AT, et que les fonctions adressées sont disponibles. Le programmeur peut utiliser l'octet d'identification de modèle situé dans le dernier emplacement mémoire de la ROM-BIOS à l'adresse F000:FFFE. Cet octet peut contenir les codes suivants :
Code | Description |
---|---|
251 ou FBh | PC XT avec carte maîtresse 256/640 |
252 ou FCh | AT, XT/286 |
253 ou FDh | PC Junior d'IBM. |
254 ou FEh | XT et PC portable |
255 ou FFh | PC |
Remarque : Ces valeurs ne sont pas tout à fait exactes. De nombreux compatibles PC/XT indiquent des valeurs complètement différentes dans l'octet d'identification du modèle. La règle empirique suivante peut être utilisée : un octet d'identification de modèle de 252 identifie un AT ; tout autre numéro indique un PC/XT.
Seuls les ordinateurs IBM PC ont des numéros d'identification de modèle fiables garantis à l'emplacement de mémoire F000:FFFE. Cela peut ne pas être le cas pour les ordinateurs compatibles. Utilisez le programme DEBUG du DOS pour obtenir l'octet d'identification du modèle. Appelez DEBUG avec :
debug |
Saisissez la séquence de commandes suivante :
d f000:fffe 1 1 |
L'identification du modèle apparaît sous forme de nombre hexadécimal à l'écran.
Accès à l'octet d'identification du modèle à partir des programmes
L'identification du modèle peut être obtenue directement à partir d'un programme. Voici un petit programme assembleur pour effectuer cette tâche :
Les langages de niveau supérieur peuvent également trouver l'octet d'identification. Le programme BASICA/GWBASIC suivant utilise l'instruction PEEK pour lire l'identification du modèle :
Le Turbo Pascal utilise le tableau MEM pour lire l'identification du modèle :