Interruption 67h |
Fonction 57h, Sous-Fonction 00h |
Copie de la mémoire |
|---|---|---|
| Pilote EMM 4.0+ | ||
Description
Cette fonction permet d'effectuer une copie d'une zone de mémoire.
Entrée
| Registre | Valeur ou description | |||||
|---|---|---|---|---|---|---|
| AX | 5700h | |||||
| 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 de descripteur 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 champs permet d'indiquer l'identificateur Handle de destination de mémoire | ||||
| 0Eh | 2 octets | Ce champs permet d'indiquer le déplacement de la destination de mémoire. | ||||
| 10h | 2 octets | Ce champs 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
- Une longueur de zéro octet n'est pas une erreur. La longueur maximale d'un déplacement 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, le déplacement sera effectué de manière à ce que la destination reçoive une copie intacte des données d'origine et qu'un état différent de zéro soit renvoyé.
Références
Quick Reference: Programmer avec les extensions de MS-DOS, Edition Microsoft PRESS, Ray Duncan, 1991, ISBN: 2-266-04057-X, page 86 à 87.
Dernière mise à jour : Jeudi, le 3 mars 2016
