Interruption 21h |
Fonction 33h, Sous-Fonction 06h |
Demande le numéro de la véritable version du DOS |
---|---|---|
DOS 5.0+, OS/2, Windows NT |
Description
Cette fonction permet de connaître la véritable version du système d'exploitation.
Entrée
Registre | Valeur ou description |
---|---|
AX | 3306h |
Sortie
Registre | Valeur ou description | ||
---|---|---|---|
AL | Ce registre vaut FFh s'il s'agit d'une véritable version du DOS | ||
BL | Ce registre permet d'indiquer le numéro de version principal | ||
BH | Ce registre permet d'indiquer le numéro de version complémentaire (sous-version) : | ||
BL (Version) | BH (Sous-version) | Description | |
00h (0) | 00h (0) | DOS Version 1.0 | |
02h (2) | 01h (1) | MS-DOS Version 2.1 | |
05h (5) | 00h (0) | MS-DOS Version 5.0 | |
05h (5) | 00h (0) | Boite DOS de Windows Server 2003 | |
05h (5) | 05h (5) | Boite DOS de Windows NT | |
07h (7) | 00h (0) | Le MS-DOS de Windows 95 | |
07h (7) | 0Ah (10) | Windows 95 | |
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 | |
DL | Ce registre permet d'indiquer la Révision (bits 0 à 2, les autres 0) | ||
DH | Ce registre permet d'indiquer le drapeau du modèle d'adaptation : | ||
Bits | Description | ||
3 | Ce bit vaut 1 lorsque le DOS est en mémoire ROM | ||
4 | Ce bit vaut 1 lorsque le DOS est en mémoire HMA |
Remarques
- Cette fonction renvoie toujours le vrai numéro de version, contrairement à la fonction 30h (AH=30h) de l'interruption 21h, dont la valeur de retour peut être modifiée avec la commande SETVER.
- En raison du conflit du redirecteur CBIS, les programmes doivent vérifier si BH est inférieur à 100 (64h) et BL est au moins égal à 5 ??avant d'accepter le BX renvoyé comme véritable numéro de version ; cependant, même cela n'est pas entièrement fiable lorsque ce redirecteur est chargé.
- Sous les systèmes d'exploitation MS-DOS, PC DOS, DR DOS, PTS-DOS et S/DOS, cette fonction n'utilise aucune des piles internes DOS et est donc entièrement réentrante.
- Le système d'exploitation OS/2 version 2.1 renverra BX=0A14h (version 20.10). Les systèmes d'exploitation Windows 95 et Windows 95 SP1 renvoient la version 7.00 ; Windows 95 OSR2 et OPK3 (OSR2.5) renvoient la version 7.10. La boîte DOS de Windows NT renvoie BX=3205h (version 5.50). Le système d'exploitation Novell DOS 7 renvoie 6.00, que certains logiciels affichent comme IBM DOS version 6.10 (en raison de l'incompatibilité de version dans le vrai IBM DOS mentionné pour INT 21/AH=30h) ; les versions jusqu'à la mise à jour 15 renvoient toutes le code de révision 00h. Les systèmes d'exploitation Windows 95 et Windows 95 SP1 renvoient la version 7.00 ; Windows 95 OSR2 renvoie la version 7.10. Advanced WinDOS 2.10/2.11/2.21 de Heiko Goeman renvoie DOS 5.00, révision 0.6.10 (en raison de l'incompatibilité de version dans le vrai IBM DOS mentionné pour INT 21/AH=30h) ; les versions via Novell DOS 7 Update 15.2 (janvier 1996) renvoient toutes le code de révision 00h. La révision DOS est entreposée dans les bits de 0 à 7 du champ patch_version dans la structure PCM_HEADER du fichier IBMDOS.COM. Les drapeaux de version (DH) sont entreposés dans les bits 8 à 15 de patch_version, mais sont mis à jour au moment de l'exécution pour refléter l'état réel. Le champ patch_version est également signalé comme DX dans INT 21/AX=4452h.
- Contrairement à MS-DOS, sous Novell DOS 7+, le IBMDOS.COM permettra également de SETVER la "vraie" version DOS retournée comme avec INT 21/AX=3000h et INT 21/AX=3001h.
- Le IBMDOS.COM du DR-DOS 7.02+ (depuis le 10/01/1998) reconnaît désormais les chemins optionnels vers les noms de fichiers entreposés dans la liste SETVER. Auparavant, de telles entrées n'étaient jamais trouvées. Cela permet un modèle en trois étapes de versions SETVER : la priorité la plus élevée = l'entrée avec le chemin correspond. priorité moyenne = l'entrée sans chemin correspond. priorité la plus basse = utiliser la version globale (SETVER /G). En mode /X, une sous-version définie de y = 128..255 sera signalée comme 0..127 sous-version DOS, les sous-versions de y = 100..127 seront utilisées pour signaler cette valeur comme version BDOS (64h..7Fh) avec INT 21/AX=4452h à la place tandis que les bits 0 à 6 de la révision DOS entreposés dans PCM_HEADER dans le fichier IBMDOS.COM seront utilisés pour signaler la sous-version BH DOS 0..127 (généralement cette contient 0, mais il peut être corrigé avec d'autres valeurs en révision 0 uniquement), tant qu'il est exécuté sur un noyau DR-DOS 72h ou 73h BDOS. Par conséquent, s'il y a des changements dans l'implémentation de SHARE sans changer la version de BDOS, DR-DOS SHARE 2.05 peut toujours être arrêté de l'installation en changeant la révision DOS dans PCM_HEADER en quelque chose dans la plage 128..255.. Sous Novell DOS 7+, la version SETVER affecte également le numéro de version WORD entreposé au déplacement +40h dans la PSP de chaque programme. Cela est vrai même pour les sous-versions spéciales de 100..255.
- Le DR DOS 5.0 et le DR DOS 6.0 renvoient un CF=1/AX=0001h pour les sous-fonctions INT 21/AH=33h autres que 00h à 02h et 05h, tandis que MS-DOS renvoie AL=FFh pour les sous-fonctions non valides.
- La liste des programmes et des versions associés sont contenu dans le périphérique SETVERXX contenu le pilote SETVER.
Dernière mise à jour : Jeudi, le 3 mars 2016