	INCLUDE 'ACCESS.ENT/LIST'
C
C
C
	BYTE NAME_LISTE(60)	! nom de la liste des fichiers
	BYTE FICHLIST(60)
C
C  description des enregistrements
	BYTE NAME_LU(60)	! nom du fichier 
	CHARACTER LIBRE		! R SI RESERVE , L SI LIBRE
	CHARACTER PROPRIO*12	! nom du reservataire		
	CHARACTER DATE_R*9
C
	CHARACTER*6 CAR_RECORD
	INTEGER*2 I,RECORD,NB_RECORD
	INTEGER*4 RET_STATUS,ERREUR
	LOGICAL*1 FIN,LISTING,EXCLUDE,SELECT
C
	INTEGER CLI$GET_VALUE,CLI$PRESENT
	EXTERNAL CLI$_PRESENT,CLI$_DEFAULTED,CLI$_ABSENT,CLI$_NEGATED
C
C
	LISTING = .FALSE.
	SELECT = .FALSE.
	EXCLUDE = .FALSE.
C
C   acquisition du nom de la liste passe avec la commande
C
	RET_STATUS = CLI$GET_VALUE ('PROJET',%DESCR(NAME_LISTE))
	IF (.NOT. RET_STATUS) THEN
		TYPE 1003
		GOTO 90000
	END IF
C
C   ouverture du fichier controlant les acces
C
	OPEN (UNIT=2,NAME=NAME_LISTE,STATUS='OLD',ACCESS='DIRECT',
     1         ERR=299,IOSTAT=ERREUR)
	IF (ERREUR .NE. 0) THEN
		TYPE 1002
		GOTO 90000
	END IF
C
C   test du switch /OUTPUT
C	
	IF (CLI$PRESENT('OUTPUT')) THEN
	    LISTING = .TRUE.
	    RET_STATUS = CLI$GET_VALUE ('OUTPUT',%DESCR(FICHLIST))
	    IF (.NOT. RET_STATUS) THEN
		TYPE 1003
		GOTO 90000
	    END IF
	    OPEN (UNIT=6,NAME=FICHLIST,STATUS='NEW',DISPOSE='KEEP',
     1             ERR=599,IOSTAT=ERREUR)
	    IF (ERREUR .NE. 0) THEN
		TYPE 1010
		GOTO 90000
	    END IF
	    CALL DATE (DATE_R)
	    WRITE (6,3000) (NAME_LISTE(I),I=1,60),DATE_R
3000	    FORMAT (1X,//,10X,'NOM DE LA LISTE : ',60A1,' DATE : ',A9,//,
     1           10X,'NOM FICHIER',27X,'L = LIBRE',8X,'NOM',11X,'DATE',/,
     2           48X,'R = RESERVE','  UTILISATEUR',//)
	END IF
C
C   test du switch /SELECT
C
	IF (CLI$PRESENT('SELECT')) THEN
	    SELECT = .TRUE.
	END IF
C
C   test du switch /EXCLUDE
C
	IF (CLI$PRESENT('EXCLUDE')) THEN
	    EXCLUDE = .TRUE.
	END IF
C
C
	FIN = .FALSE.
	READ (2'1,ERR=399) CAR_RECORD
	DECODE (6,1202,CAR_RECORD) NB_RECORD
1202	FORMAT (I6)
	RECORD = 1
	DO WHILE (.NOT. FIN)
C
	    RECORD = RECORD + 1
	    IF (RECORD .GT. NB_RECORD+1) GOTO 400
	    READ (2'RECORD,ERR=399) 
     1         (NAME_LU(I),I=1,60),LIBRE,PROPRIO,DATE_R
C
	    IF (LISTING) THEN
		WRITE (6,2000,ERR=599)
     1                (NAME_LU(I),I=1,60),LIBRE,PROPRIO,DATE_R
2000		FORMAT (1X,60A1,' ',A1,' ',A12,' ',A9)
	    ELSE
		TYPE 2001,(NAME_LU(I),I=1,54),LIBRE,PROPRIO,DATE_R
2001		FORMAT (1X,54A1,' ',A1,' ',A12,' ',A9)
	    END IF
C
	END DO
C
400	CONTINUE
	CALL EXIT (1)
C
299	CONTINUE
	TYPE 1002
	GOTO 90000
399	CONTINUE
	TYPE 1004
	GOTO 90000
599	CONTINUE
	TYPE 1010,(FICHLIST(I),I=1,40)
	GOTO 90000
C
1002	FORMAT (1X,' je n''ai pas reussi a ouvrir le fichier liste')
1003	FORMAT (1X,' erreur dans un parametre')
1004	FORMAT (1X,' erreur de lecture de la liste')
1009	FORMAT (1X,' ERREUR=',I9,'  IOSB(1,4)=',4(I9))
1010	FORMAT (1X,' probleme avec le fichier ',40A1)
C
C
90000	CONTINUE
	CALL EXIT (0)
	END
