d .TITLE CREDIR .IDENT /V01.01 (01-84)/ ,; CREATION DU FICHIER DIRECTORY ; 1ER ARGUMENT : IDENTIFICATION DU DIRECTORY COURANT ; 2EME ARGUMENT : DESCRIPTEUR DU DIRECTORY A CREER X; 3EME ARGUMENT : UIC DU PROPRIETAIRE ; 4EME ARGUMENT : CANAL  $FIBDEF  $IODEF  $ATRDEF L $FH2DEF  $FATDEF ; INITIALISATION DU FIB (28 OCTETS) x .PSECT $CODE,PIC,USR,CON,REL,LCL,SHR,EXE,RD,NOWRT,LONG  .ENTRY CREDIR,^M @ CLRL FIB+FIB$L_ACCTL  BISL2 #FIB$M_WRITE,FIB+FIB$L_ACCTL  CLRL FIB+FIB$W_FID l CLRW FIB+FIB$W_FID+4  MOVC3 #6,@4(AP),FIB+FIB$W_DID 4 CLRL FIB+FIB$L_WCC  CLRW FIB+FIB$W_NMCTL  BISW2 #FIB$M_SUPERSEDE,FIB+FIB$W_NMCTL ` CLRW FIB+FIB$W_EXCTL BISW2 #FIB$M_EXTEND!FIB$M_ALCON!FIB$M_FILCON,FIB+FIB$W_EXCTL ( MOVL #1,FIB+FIB$L_EXSZ ; INITIATION DU CHAMP ATTRIBUT MOVAL ATTR,R6 T MOVW #ATR$S_UIC,(R6)+ MOVW #ATR$C_UIC,(R6)+  MOVAL UIC,(R6)+ MOVL @12(AP),UIC ;STOCKAGE DE ;L'UIC MOVW #ATR$S_RECATTR,(R6)+ H MOVW #ATR$C_RECATTR,(R6)+ MOVAL RECATTR,(R6)+  MOVW #ATR$S_FPRO,(R6)+ t MOVW #ATR$C_FPRO,(R6)+  MOVAL FPRO,(R6)+ ;PROTECTION < MOVW #ATR$S_UCHAR,(R6)+  MOVW #ATR$C_UCHAR,(R6)+  MOVAL UCHAR,(R6)+ h CLRL (R6)  CLRL UCHAR 0 BISW2 #FH2$M_CONTIG!FH2$M_DIRECTORY,UCHAR ;CARACTERIS. ; INITIALISATION DU CHAMP RECATTR  MOVB #FAT$C_VARIABLE,RECATTR+FAT$B_RTYPE ;VARIABLE \ MOVB #FAT$M_NOSPAN,RECATTR+FAT$B_RATTRIB ;NOSPAN  MOVW #512,RECATTR+FAT$W_RSIZE ;LONGUEUR D'ENREGIST. $ CLRW RECATTR+FAT$L_HIBLK ;FIN DE FICHIER  MOVW #1,RECATTR+FAT$L_HIBLK+2 ;FIN DE FICHIER  CLRW RECATTR+FAT$L_EFBLK ;FIN DE FICHIER P MOVW #2,RECATTR+FAT$L_EFBLK+2 ;FIN DE FICHIER  CLRW RECATTR+FAT$W_FFBYTE ;1ER OCTET LIBRE  CLRB RECATTR+FAT$B_BKTSIZE | CLRB RECATTR+FAT$B_VFCSIZE  MOVW #512,RECATTR+FAT$W_MAXREC D CLRW RECATTR+FAT$W_DEFEXT ; CREATION  $QIOW_S CHAN=16(AP),FUNC=#IO$_CREATE!IO$M_CREATE!IO$M_ACCESS,- p P1=DFIB,P2=8(AP),P5=#ATTR,IOSB=IOSB  BLBC R0,ERR 8 MOVL IOSB,R0 ;STATUS  BLBC R0,ERR ; ECRITURE DU PREMIER BLOC d $QIOW_S CHAN=16(AP),FUNC=#IO$_WRITEVBLK,P1=BUFFER,-  P2=#512,P3=#1,IOSB=IOSB , BLBC R0,ERR1  MOVL IOSB,R0 ;STATUS  BLBC R0,ERR1 X; FERMETURE  MOVC5 #1,#0,#0,#28,FIB  $QIOW_S CHAN=16(AP),FUNC=#IO$_DEACCESS,P1=DFIB,-  IOSB=IOSB  BLBC R0,ERR L MOVL IOSB,R0  BLBC R0,ERR ERR: RET x; FERMETURE EN CAS D'ERREUR D'ECRITURE ERR1: MOVC5 #1,#0,#0,#28,FIB @ $QIOW_S CHAN=16(AP),FUNC=#IO$_DEACCESS,P1=DFIB,-  IOSB=IOSB  BLBC R0,ERR l MOVL IOSB,R0 BLBC R0,ERR 4! .PSECT $LOCAL,PIC,USR,CON,REL,LCL,NOSHR,NOEXE,RD,WRT,LONG !IOSB: .BLKL 2 !DFIB: .LONG 28 `" .LONG FIB "FIB: .BLKB 28 (#ATTR: .BLKL 9 #RECATTR: .BLKL 5 # .LONG 0[3] T$FPRO: .WORD ^XA888 $UCHAR: .BLKL 1 %UIC: .BLKL 1 %BUFFER: .WORD -1 % .BYTE 0[510] H& .END