Fonction 22h |
Écriture aléatoire |
CP/M 80 |
Description
Cette fonction permet d'effectuer une écriture aléatoire.
Entrée
Registre |
Valeur ou description |
C |
22h |
DE |
Cette paire de registres permet d'indiquer l'adresse d'une structure FCB. |
Sortie
Registre |
Valeur ou description |
A |
Ce registre permet d'indiquer un code de retour. Les codes d'erreur renvoyés dans le registre A suite à une lecture aléatoire sont répertoriés ci-dessous : |
01h |
Cette valeur permet d'indiquer que la lecture de données est non écrites. |
02h |
Cette valeur permet d'indiquer qu'il n'a pas retourné en mode aléatoire. |
03h |
Cette valeur permet d'indiquer qu'il est impossible de fermer l'étendue actuelle. |
04h |
Cette valeur permet de chercher dans une mesure non écrite. |
05h |
Cette valeur permet d'indiquer qu'une nouvelle étendue d'enregistrement ne peut pas être créée en raison d'un débordement de répertoire. |
06h |
Cette valeur permet d'indiquer qu'il recherche la fin physique passée du disque. |
Remarques
- La fonction 22h est lancée de la même manière que l'appel de la fonction 21h, sauf que les données sont écrites sur le disque à partir
de l'adresse DMA actuelle. En outre, si l'extension de disque ou le bloc de données étant la cible de l'écriture n'a pas encore été alloué, l'allocation est effectuée avant
que l'opération d'écriture ne se poursuive. Comme dans l'opération de lecture aléatoire, le numéro d'enregistrement aléatoire n'est pas modifié suite à l'écriture. Le numéro
d'étendue logique et les positions d'enregistrement actuelles du FCB sont définis pour correspondre à l'enregistrement aléatoire en cours d'écriture. De nouveau, des
opérations de lecture ou d'écriture séquentielles peuvent commencer après une écriture aléatoire, avec la notation que l'enregistrement actuellement adressé est soit lu soit
réécrit à nouveau lorsque l'opération séquentielle commence. Vous pouvez également simplement avancer la position d'enregistrement aléatoire après chaque écriture pour obtenir
l'effet d'une opération d'écriture séquentielle. Notez que la lecture ou l'écriture du dernier enregistrement d'une étendue en mode aléatoire ne provoque pas un changement
d'étendue automatique comme c'est le cas en mode séquentiel.
- Les codes d'erreur renvoyés par une écriture aléatoire sont identiques à l'opération de lecture aléatoire avec l'ajout du code d'erreur 05, indiquant qu'une nouvelle
extension ne peut pas être créée en raison d'un débordement de répertoire.
Dernière mise à jour : Lundi, le 18 juillet 2022