Fonction 23h |
Taille d'un fichier | |
---|---|---|
CP/M 80 |
Description
Cette fonction permet de calculer la taille d'un fichier.
Entrée
Registre | Valeur ou description |
---|---|
C | 23h |
DE | Cette paire de registres permet d'indiquer l'adresse d'une structure FCB. |
Sortie
Ensemble de champs d'enregistrement aléatoire
Remarques
- Lors du calcul de la taille d'un fichier, la paire de registres DE adresse un FCB au format de mode aléatoire (les octets r0, r1 et r2 sont présents). Le FCB contient un nom de fichier non ambigu étant utilisé dans l'analyse du répertoire. Au retour, les octets d'enregistrement aléatoires contiennent la taille du fichier virtuel, étant, en fait, l'adresse d'enregistrement de l'enregistrement suivant la fin du fichier. Suite à un appel à la fonction 23h, si l'octet d'enregistrement de poids fort r2 est 01, le fichier contient le nombre d'enregistrements maximum 65536. Sinon, les octets r0 et r1 constituent une valeur de 16 bits comme précédemment (r0 est l'octet le moins significatif), étant la taille du fichier.
- Les données peuvent être ajoutées à la fin d'un fichier existant en appelant simplement la fonction 35 pour définir la position d'enregistrement aléatoire à la fin du fichier, puis en effectuant une séquence d'écritures aléatoires commençant à l'adresse d'enregistrement prédéfinie.
- La taille virtuelle d'un fichier correspond à la taille physique lorsque le fichier est écrit séquentiellement. Si le fichier a été créé en mode aléatoire et qu'il existe des trous dans l'allocation, le fichier peut contenir moins d'enregistrements que la taille indiquée. Par exemple, si seul le dernier enregistrement d'un fichier de 8 mégaoctets est écrit en mode aléatoire (c'est-à-dire le numéro d'enregistrement 65535), la taille virtuelle est de 65536 enregistrements, bien qu'un seul bloc de données soit réellement alloué.
Dernière mise à jour : Lundi, le 18 juillet 2022