Section courante

A propos

Section administrative du site

Interruption 21h

Fonction 29h

Fixer un ou des nom(s) de fichier(s) dans un FCB
CP/M, DOS 1.0+, OS/2, Windows NT

Description

Cette fonction permet de fixer un ou des nom(s) de fichier(s) en utilisant l'ancienne méthode du FCB (File Control Block).

Entrée

Registre Valeur ou description
AH 29h
DS:SI Cette paire de registres permet d'indiquer l'adresse du nom de fichier sous le format d'une chaîne de caractères ASCIZ.
ES:DI Cette paire de registres permet d'indiquer l'adresse du tampon FCB du fichier. Vous pouvez utiliser le bloc de FCB normal :
Déplacement Longueur Description
00h 1 octet Ce champ contient l'unité (0 = unité courante, 1=A:, 2=B:, 3=C:, 4=D:,...)
01h 8 octets Ce champ contient le nom du fichier avec des espaces s'il n'est pas assez long
09h 3 octets Ce champ contient l'extension du fichier avec des espaces s'il n'est pas assez long
0Ch 2 octets (1 mot) Ce champ contient le numéro du bloc courant
0Eh 2 octets (1 mot) Ce champ contient la taille de l'enregistrement
10h 4 octets (2 mots) Ce champ contient la taille du fichier
14h 2 octets (1 mot) Ce champ contient la date de la dernière modification
16h 2 octets (1 mot) Ce champ contient l'heure de la dernière modification
18h 8 octets Ce champ est réservé pour un usage interne ou futur
20h 1 octet Ce champ contient le numéro de l'enregistrement courant
21h 4 octets Ce champ contient le numéro de l'enregistrement pour l'accès séquentiel
ou le bloc de FCB étendue :
Déplacement Longueur Description
00h 1 octet Ce champ contient un identificateur de FCB étendu (FFh)
01h 5 octets Ce champ est réservé pour un usage interne ou futur
06h 1 octet Ce champ contient les attributs de fichier
07h 1 octet Ce champ contient l'unité (0 = unité courante, 1=A:, 2=B:, 3=C:, 4=D:,...)
08h 8 octets Ce champ contient le nom du fichier avec des espaces s'il n'est pas assez long
10h 3 octets Ce champ contient l'extension du fichier avec des espaces s'il n'est pas assez long
13h 2 octets (1 mot) Ce champ contient le numéro du bloc courant
15h 2 octets (1 mot) Ce champ contient la taille de l'enregistrement
17h 4 octets (2 mots) Ce champ contient la taille du fichier
1Bh 2 octets (1 mot) Ce champ contient la date de la dernière modification
1Dh 2 octets (1 mot) Ce champ contient l'heure de la dernière modification
1Fh 8 octets Ce champ est réservé pour un usage interne ou futur
27h 1 octet Ce champ contient le numéro de l'enregistrement courant
28h 4 octets Ce champ contient le numéro de l'enregistrement pour l'accès séquentiel
AL Ce registre permet d'indiquer les paramètres de transmission :
Bits Description
0 Ce bit permet d'indiquer que les séparateurs d'entête dans la chaîne de caractères:
Code Description
0 Ce code indique qu'ils ne seront pas vérifiés
1 Ce code indique qu'ils seront vérifiés
1 Ce bit permet d'indiquer le comportement pour les unités de disque:
Code Description
0 Ce code indique que l'unité de disque sera modifiée. Si le nom de fichier transmis ne comporte pas d'unité de disque, la valeur 0 (unité courante) sera inscrite dans le tampon FCB.
1 Ce code indique que l'unité de disque dans le tampon FCB ne sera modifiée que si le nom de fichier transmis contient une unité de disque
2 Ce bit permet d'indiquer le comportement pour les noms de fichiers:
Code Description
0 Ce code indique que le nom de fichier sera modifié. Si le nom de fichier transmis ne contient pas de nom de fichier, le nom de fichier sera remplit avec des espaces s'il n'est pas assez long (Code ASCII 32) dans le FCB.
1 Ce code indique que le nom du fichier contenu dans le FCB ne sera modifié que si le nom de fichier referme un nom de fichier.
3 Ce bit permet d'indiquer le comportement pour les extensions de fichiers :
Code Description
0 Ce code indique que l'extension de fichier sera modifié. Si l'extension de fichier transmis ne contient pas d'extension de fichier, l'extension de fichier sera remplit avec des espaces s'il n'est pas assez long (Code ASCII 32) dans le FCB.
1 Ce code indique que l'extension du fichier contenu dans le FCB ne sera modifié que si l'extension de fichier referme un extension de fichier.
4 à 7 Tous ses bits doivent contenir la valeur 0.

Sortie

Registre Valeur ou description
AL Ce registre permet d'indiquer le résultat de l'opération :
Valeur Description
0 Cette code indique que le nom du fichier n'avait pas des caractères de type générique
1 Cette code indique que le nom du fichier avait des caractères de type générique
2 Cette code indique que l'unité de disque spécifié n'est pas valide
DS:SI Cette paire de registre permet d'indiquer l'adresse du premier caractère du nom de fichier dans le tampon de nom de fichier spécifié
ES:DI Cette paire de registre permet d'indiquer l'adresse du tampon FCB

Remarques

Références

La Bible du PC: Programmation système - Sixième Edition, Edition Micro-Application, Michael Tischer, 1996, ISBN: 2-7429-0544-8, page 1512 à 1513.
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 179 à 181.

Dernière mise à jour : Jeudi, le 3 mars 2016