Section courante

A propos

Section administrative du site

00h à 07h 08h à 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h 21h 22h 23h 24h 25h 26h 27h 28h 29h 2Ah 2Bh 2Eh 2Fh 33h 41h 4Bh 59h 5Ch 67h 7Ah 80h à F0h Rechercher

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 registre permet d'indiquer l'adresse du nom de fichier sous le format d'une chaine 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

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