Interruption 67h |
Fonction 57h, Sous-Fonction 01h |
Échange de la mémoire |
---|---|---|
Pilote EMM 4.0+ |
Description
Cette fonction permet d'échanger le contenu de zones de mémoires.
Entrée
Registre | Valeur ou description | |||||
---|---|---|---|---|---|---|
AX | 5701h | |||||
DS:SI | Cette paire de registres permet d'indiquer l'adresse du tampon: | |||||
Déplacement | Taille | Description | ||||
00h | 4 octets | Ce champ permet d'indiquer la taille de la zone en octets | ||||
04h | 1 octet | Ce champ permet d'indiquer le type de la zone source: | ||||
Valeur | Description | |||||
00h | Cette valeur permet d'indiquer que le type de source est de la mémoire conventionnel, soit sous la barrière des 640 Ko. | |||||
01h | Cette valeur permet d'indiquer que le type de source est de la mémoire étendue. | |||||
05h | 2 octets | Ce champ permet d'indiquer l'identificateur Handle de la source de mémoire | ||||
07h | 2 octets | Ce champ permet d'indiquer le déplacement de la source de mémoire | ||||
09h | 2 octets | Ce champ permet d'indiquer le segment de mémoire source ou numéro de page logique | ||||
0Bh | 1 octet | Ce champ permet d'indiquer le type de la zone destination: | ||||
Valeur | Description | |||||
00h | Cette valeur permet d'indiquer que le type de source est de la mémoire conventionnel, soit sous la barrière des 640 Ko. | |||||
01h | Cette valeur permet d'indiquer que le type de source est de la mémoire étendue. | |||||
0Ch | 2 octets | Ce champ permet d'indiquer l'identificateur Handle de destination de mémoire | ||||
0Eh | 2 octets | Ce champ permet d'indiquer le déplacement de la destination de mémoire. | ||||
10h | 2 octets | Ce champ permet d'indiquer le segment de destination de mémoire ou numéro de page logique. |
Sortie
Registre | Valeur ou description | |||||
---|---|---|---|---|---|---|
AH | Ce registre permet d'indiquer le résultat de la fonction de l'EMM: | |||||
Valeur | Description | |||||
00h | Cette valeur permet d'indiquer que tout va bien. | |||||
80h | Cette valeur permet d'indiquer une erreur interne, l'EMM est endommagé ou détruit. | |||||
81h | Cette valeur permet d'indiquer un problème de fonctionnement de l'électronique de l'EMS. | |||||
84h | Cette valeur permet d'indiquer que le numéro de la fonction est incorrecte. | |||||
8Fh | Cette valeur permet d'indiquer que le numéro de la sous-fonction est incorrecte. |
Remarques
- Le format du tampon contrôlant l'opération d'échange est le même que pour l'interruption 67h, fonction 57h, sous-fonction 00h.
- Un échange de zéro octet n'est pas une erreur. La longueur maximale d'un échange est de 1 Mo. Si la longueur dépasse une seule page de mémoire étendue, des pages de mémoire étendue consécutives (autant que nécessaire) fournissent ou reçoivent les données.
- Si les adresses source et destination se chevauchent, l'échange n'est pas effectué et une erreur est renvoyée.
Références
Quick Reference: Programmer avec les extensions de MS-DOS, Edition Microsoft PRESS, Ray Duncan, 1991, ISBN: 2-266-04057-X, page 87 à 88.
Dernière mise à jour : Jeudi, le 3 mars 2016