C* DSMNDE - NEXT DIRECTORY ENTRY C C 12/10/79 LEN - ADDED SUPPORT FOR MORE UIC'S TO SCAN C SUBROUTINE DSMNDE (FID, NR, ILREC, IDVEC, LDIR, LEOF) C C FID - X1LU FILE ID BLOCK FOR DIRECTORY FILE C NR - NEXT RECORD TO READ C ILREC - LAST RECORD IN FILE C IDVEC - 8 WORD DIRECTORY ENTRY C LDIR - MATCH .DIR EXTENSION, LDIR=.TRUE. C LEOF - END OF FILE REACHED, LEOF=.TRUE. IF SO. C INCLUDE 'DSMCM.COM/NOLIST' C DIMENSION FID(3), IDVEC(8) C DATA IDDIR/3RDIR/, IBLK50/3R / DATA IGRP/4/, IOWN/5/, IEXT/7/ C LBITON(IBIT) = IAND(IBIT,IFLAGS) .NE. 0 C LEOF = .FALSE. C 100 CONTINUE IF (NR .GT. ILREC) GO TO 300 CALL X1DR (FID, NR, 8, IDVEC) IF (IDVEC(1) .EQ. 0) GO TO 100 ! NULL ENTRY, GET NEXT IF (.NOT. LDIR) GO TO 320 C C MUST HAVE .DIR EXTENSION AND LETTERS 7-9 OF FILESPEC MUST BE BLANK C IF (IDVEC(IEXT).NE.IDDIR .OR. IDVEC(6).NE.IBLK50) GO TO 100 IF (LALL) GO TO 320 C C COMPARE DIRECTORY FILE SPEC FOR MATCH AND WILD-CARD MATCHES C LOOP ON NUMBER OF UIC'S SPECIFIED C DO 200 I=1, NDSCAN IFLAGS = IGPFLG(I) ! SET FLAGS FOR THIS UIC SPEC D D TYPE 1010,IFLAGS,IDSWGR,IDSWOW,IGRP50(I),IDVEC(IGRP), D 1 IOWN50(I),IDVEC(IOWN) D1010 FORMAT (' ',7O7) D IF (LBITON(IDSWGR)) GO TO 120 IF (IDVEC(IGRP) .NE. IGRP50(I)) GO TO 200 C 120 CONTINUE IF (LBITON(IDSWOW)) GO TO 140 IF (IDVEC(IOWN) .NE. IOWN50(I)) GO TO 200 140 CONTINUE D TYPE 1020 D1020 FORMAT (' MATCH') GO TO 320 ! MATCH 200 CONTINUE GO TO 100 C 300 CONTINUE LEOF = .TRUE. C 320 CONTINUE RETURN END