Interruption 21h |
Fonction 30h |
Lecture du numéro de la version DOS |
---|---|---|
DOS 2.0.+, OS/2, Windows NT |
Description
Cette fonction permet de demander la version proposé du système d'exploitation.
Entrée
Registre | Valeur ou description | |
---|---|---|
AH | 30h | |
A partir du DOS Version 5+ | ||
AL | Ce registre permet d'indiquer l'indicateur d'informations supplémentaire : | |
Option | Description | |
00h | Numéro OEM | |
01h | Drapeau de version |
Sortie
Registre | Valeur ou description | ||
---|---|---|---|
AL | Ce registre permet d'indiquer le numéro de version principal | ||
AH | Ce registre permet d'indiquer le numéro de version complémentaire (sous-version) : | ||
AL (Version) | AH (Sous-version) | Description | |
00h (0) | 00h (0) | DOS Version 1.0, 1.10 ou 1.25 | |
02h (2) | 00h (0) | MS-DOS Version 2.0 | |
02h (2) | 01h (1) | MS-DOS Version 2.1 | |
02h (2) | 0Ah (10) | MS-DOS Version 2.10 | |
02h (2) | 0Bh (11) | MS-DOS Version 2.11 | |
03h (3) | 00h (0) | MS-DOS Version 3.0 | |
03h (3) | 05h (5) | MS-DOS Version 3.5 | |
03h (3) | 0Ah (10) | MS-DOS Version 3.10 | |
03h (3) | 14h (20) | MS-DOS Version 3.20 | |
03h (3) | 15h (21) | MS-DOS Version 3.21 ou MS-DOS 3.21 Enhanced Amdek | |
03h (4) | 00h (0) | MS-DOS Version 4.0, MS-DOS Version 4.01, PC DOS version 4.00 ou IBM DOS 4. | |
05h (5) | 00h (0) | MS-DOS Version 5.0, IBM DOS 5 ou PC DOS 5.00.1 | |
05h (5) | 00h (0) | Boite DOS de Windows Server 2003 | |
05h (5) | 02h (2) | PC DOS 5.02 | |
05h (5) | 05h (5) | Boite DOS de Windows NT | |
06h (6) | 00h (0) | MS-DOS Version 6.0 ou PC DOS 6.1 | |
06h (6) | 14h (20) | MS DOS 6.20 ou MS DOS 6.21 | |
06h (6) | 16h (22) | MS DOS 6.22 | |
06h (6) | 1Eh (30) | PC DOS 6.30 | |
07h (7) | 00h (0) | Le MS-DOS de Windows 95 ou le PC DOS 2000. | |
07h (7) | 0Ah (10) | Windows 95, Windows 98 ou Windows 98 SE ou PC DOS 7.1. | |
08h (8) | 00h (0) | Le MS-DOS de Windows Millenium | |
0Ah (10) | Boite de compatibilité d'OS/2 version 1.x | ||
14h (20) | Boite de compatibilité d'OS/2 version 2.x | ||
14h (20) | 1Eh (30) | La machine virtuelle DOS d'OS/2 Warp 3 | |
14h (20) | 28h (40) | La machine virtuelle DOS d'OS/2 Warp 4 | |
... | ... | Autres versions de DOS | |
BH | Ce registre permet d'indiquer la version du code OEM si DOS version 5+ et demander comme option |
Remarques
- L'interruption 21h, fonction 30h a été ajoutée sous DOS 2.0 et renvoie la version principale dans le registre AL, la version mineure dans le registre AH, le numéro OEM dans le registre BH et le numéro de série utilisateur 24 bits dans le couple de registres BL:CX. Le numéro OEM est 00h pour le DOS d'IBM ou FFh pour le DOS de Microsoft. Les OEM peuvent utiliser d'autres valeurs. Le numéro de série de l'utilisateur est généralement inutilisé et retourne 0. Cette fonction n'est pas définie dans DOS 1.x et retournera donc AL = 0.
- Veillez à ne pas quitter de manière précipité le programme si un environnement DOS version 1 est détecté. Par exemple, l'interruption 21h, fonction 4Ch (Terminate Process with Return Code), interruption 21h, fonction 40h (Write to File or Device), et l'identificateur de descripteur Handle d'erreur ne sont pas disponibles dans DOS version 1. Dans ce cas, un programme doit afficher un message d'erreur à l'aide de l'Interruption 21h, fonction 09h, puis terminez par l'interruption 20h ou l'interruption 21h, fonction 00h.
- Sous DOS 4.0x, le numéro de version renvoyé par l'interruption 21h, fonction 30h est soumis à une table interne de liaison (basé sur SETVER) retournant de faux numéros de version pour des programmes spécifiques à l'aide d'une liste incorporée dans les fichiers noyaux IBMDOS.COM ou MSDOS.SYS.
- Sous DOS 5.0 et versions ultérieures, le numéro de version retourné par l'interruption 21h, fonction 30h est soumis à SETVER.
- Sous DOS 5.0 et versions ultérieures, si AL = 1 lors de l'entrée dans l'interruption 21h fonction 30h, un indicateur de version indiquant si DOS est dans la ROM (08h) ou non (00h) est retourné dans BH au lieu du numéro OEM.
- L'interruption 21h, fonction 3306h a été ajoutée sous DOS 5.0, afin de toujours retourner la vraie version de DOS. Cette fonction renvoie la version majeure en BL, la version mineure en BH, la révision en DL et l'indicateur de version en DH. Seuls les systèmes d'exploitation PC DOS 5.00.1 et PC DOS 2000 renvoient une révision non nulle. L'indicateur de version indique si le DOS est dans la ROM (bit 3 défini) ou chargé dans la mémoire HMA (bit 4 défini).
Exemple
L'exemple permet de retourner correctement la version du DOS :
Références
La Bible du PC: Programmation système - Sixième Edition, Edition Micro-Application, Michael Tischer, 1996, ISBN: 2-7429-0544-8, page 1515.
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 186 à 187.
Dernière mise à jour : Jeudi, le 3 mars 2016