Interruption 21h |
Fonction 65h |
Demande des informations étendues de pays |
---|---|---|
DOS 3.3+, OS/2, Windows NT |
Description
Cette fonction permet de demander des informations étendues de pays.
Entrée
Registre | Valeur ou description | ||
---|---|---|---|
AH | 65h | ||
AL | Ce registre permet d'indiquer la sous-Fonction : | ||
Sous-Fonction | Description | ||
01h | Cette sous-fonction permet de demander les informations internationale de type général | ||
02h | Cette sous-fonction permet de demander un pointeur sur une table des majuscules | ||
04h | Cette sous-fonction permet de demander un pointeur sur une table des fichiers en majuscules | ||
05h | Cette sous-fonction permet de demander un pointeur sur une table des terminaisons | ||
06h | Cette sous-fonction permet de demander un pointeur sur une table de correspondance | ||
07h | Cette sous-fonction permet de demander un pointeur sur une table de caractères DBCS | ||
20h | Cette sous-fonction permet de convertir un caractère en majuscule. DOS 4.0+ | ||
21h | Cette sous-fonction permet de convertir une chaîne de caractère en majuscule. DOS 4.0+ | ||
BX | Ce registre permet d'indiquer le code de page souhaité (FFFFh=Active le périphérique CON) | ||
CX | Ce registre permet d'indiquer la longueur du tampon recevant l'information si la sous-fonction n'est pas 21h. Si sous-fonction égale à 21h, ce registre permet d'indiquer la longueur de la chaîne de caractères. | ||
DX | Ce registre permet d'indiquer l'identificateur de pays (FFFFh=par défaut) | ||
ES:DI | Cette paire de registres permet d'indiquer l'adresse du tampon recevant l'information | ||
DL | Si sous-fonction égale à 20h, indique que le caractère a mettre en majuscule. | ||
DS:DX | Si sous-fonction égale à 21h, indique que la chaîne de caractère a mettre en majuscule. |
Sortie
Registre | Valeur ou description | ||||
---|---|---|---|---|---|
FC | Ce registre de drapeau de retenue permet d'indiquer le résultat de l'opération : | ||||
Valeur | Description | ||||
0 | Cette valeur permet d'indiquer que l'opération a été un succès, dans ce cas : Si appelé avec AL=00h alors DS:SI=Adresse de la table des octets d'entête. Si appelé avec AL=01h alors ES:DI=Pointeur sur les données de pays: |
||||
Déplacement | Longueur | Description | |||
00h | 1 octet | Ce champ contient le code d'identification des informations | |||
01h à 02h | 2 octets (1 mot) | Ce champ contient la longueur du tampon suivant | |||
03h à 04h | 2 octets (1 mot) | Ce champ contient le code d'identification du pays | |||
05h à 06h | 2 octets (1 mot) | Ce champ contient le numéro de code de page | |||
07h à 08h | 2 octets | Ce champ indique le format de la date: | |||
Code | Description | ||||
0 | État-Unis: Mois-Jour-Année | ||||
1 | Europe: Jour-Mois-Année | ||||
2 | Japon: Année-Mois-Jour | ||||
09h à 0Dh | 5 octets | Ce champ indique une chaîne de caractères ASCIIZ du symbole de la monnaie | |||
0Eh | 1 octet | Ce champ indique le code ASCII du symbole des séparateurs des milliers | |||
0Fh | 1 octet | Ce champ contient le code ASCII 0 | |||
10h | 1 octet | Ce champ indique le code ASCII du symbole des séparateurs des décimales | |||
11h | 1 octet | Ce champ contient le code ASCII 0 | |||
12h | 1 octet | Ce champ indique le code ASCII du symbole des séparateurs de date | |||
13h | 1 octet | Ce champ contient le code ASCII 0 | |||
14h | 1 octet | Ce champ indique le code ASCII du symbole des séparateurs de l'heure | |||
15h | 1 octet | Ce champ contient le code ASCII 0 | |||
16h | 1 octet | Ce champ indique le format de la monnaie: | |||
Bit | Description | ||||
0 | Ce champs indique que la monnaie est situé avant la valeur (0) ou la monnaie est situé après la valeur (1) |
||||
1 | Ce champs indique qu'il n'y a pas d'espace entre la valeur et le symbole de la monnaie (0) ou qu'il y a un espace entre la valeur et le symbole de la monnaie (1) |
||||
17h | 1 octet | Ce champ indique la précision d'un nombre dans sa partition fractionnaire | |||
18h | 1 octet | Ce champ indique le format horaire: | |||
Bit | Description | ||||
0 | Ce champ indique que l'horloge a deux cycles de 12 heures (0) ou que l'horloge a un cycle de 24 heures (1) |
||||
19h à 1Ch | 4 octets (double mot) | Ce champ contient l'adresse d'une fonction de conversion de caractères | |||
1Dh à 1Eh | 2 octets (1 mot) | Ce champ contient le symbole de séparateur de liste de données | |||
1Fh à 28h | 10 octets | Réservés | |||
Si appelé avec AL=02h alors DL=Valeur du drapeau de console d'intermédiaire Si appelé avec AL=02h, 04h, 06h ou 07h alors ES:DI=Pointeur sur les données de pays: |
|||||
Déplacement | Longueur | Description | |||
00h | 1 octet | Ce champ contient le code d'identification des informations (2, 4, 6 ou 7) | |||
01h à 02h | 4 octets (double mot) | Ce champ contient un pointeur sur la table | |||
1 | Cette valeur permet d'indiquer une erreur, dans ce cas : | ||||
Registre | Description | ||||
AX | Ce registre permet d'indiquer le code d'erreur : | ||||
Valeur | Description | ||||
01h | Cette erreur permet d'indiquer que le numéro de la fonction n'est pas valide |
Remarques
- Les informations renvoyées par cette fonction sont un sur-ensemble des informations retournées par l'interruption 21h, fonction 38h.
- Cette fonction peut échouer si le code de pays ou le numéro de page de codes n'est pas valide ou si la page de codes ne correspond pas au code de pays.
- La fonction échoue si la longueur de tampon spécifiée est inférieure à 5 octets. Si la mémoire tampon pour recevoir les informations fait au moins 5 octets mais est trop courte pour les informations demandées, les données sont tronquées et aucune erreur n'est renvoyée.
- Les tables en majuscules et en majuscules de nom de fichier ont une longueur maximale de 130 octets. Les deux premiers octets contiennent la taille de la table; les octets suivants contiennent les équivalents en majuscules, le cas échéant, pour les codes de caractères de 80 à FFh. L'utilisation principale de ces tableaux est de cartographier les voyelles accentuées ou autrement modifiées à leurs équivalents voyelles simples. Le texte convertie à l'aide de ce tableau peut être envoyé aux périphériques ne prenant pas en charge l'ensemble de caractères graphiques IBM, ou utilisé pour créer des noms de fichiers ne nécessitant pas de configuration de clavier spéciale pour la saisie.
- La table de classement a une longueur maximale de 258 octets. Les deux premiers octets contiennent la longueur de la table et les octets suivants contiennent les valeurs à utiliser pour les codes de caractères correspondants (0 à FFh) pendant une opération de tri. Ce tableau cartographie les caractères ASCII majuscules et minuscules aux mêmes codes de classement afin que les tris ne respectent pas la casse, et il cartographie les voyelles accentuées à leurs équivalents de voyelle simple.
- Dans certains cas, une table de traduction tronquée peut être présentée au programme par DOS. Les applications doivent toujours vérifier la longueur au début du tableau, pour s'assurer qu'il contient un code de conversion pour le caractère particulier d'intérêt.
- Le Novell DOS 7 Update 15 plante si vous appeler l'interruption 21 avec les valeurs AX=6521h et CX=0000h.
Dernière mise à jour : Jeudi, le 3 mars 2016