C FILEID.FTN 2-SEP-82 C C THIS PROGRAM ACCEPTS A FILE ID AS INPUT, FOR C WHICH IT OUTPUTS THE FILE NAME AND OWNER UIC C BYTE BYTBUF(26),NUMBUF(6),MAPAR(512),NUMBY(4) INTEGER*4 I4,NUM,J4,JCNT INTEGER*2 I2(2) COMMON MR,IR,IBITS(16) COMMON /BITMAP/ IDXMAP(256) COMMON /FILHDR/ NXTHDR(256) EQUIVALENCE (NXTHDR(1),MAPAR(1)) EQUIVALENCE (BYTBUF(1),ICNT) EQUIVALENCE (I4,I2(1)) EQUIVALENCE (I4,NUMBY(1)) C C OPEN THE INDEX FILE ON SY: AND READ IN THE HOME BLOCK TO IDXMAP C CALL OPNIDX IR=2 CALL READI IDXSIZ=IDXMAP(1) LASTIR=IR+IDXSIZ C C FIND OUT WHICH PHYSICAL BLOCK NUMBER TO FIND THE FILE FOR C 5 WRITE(5,10) 10 FORMAT('$ENTER FILE ID AND SEQUENCE NUMBER> ') READ(5,11,END=100) ID1,ID2 11 FORMAT(2O7) IF(ID1.EQ.0) GOTO 100 C C NXT=ID1 MR=NXT+2+IDXSIZ CALL READM MOFF=MAPAR(2)+1 ! OFFSET TO IDENT AREA IOFF=MAPAR(1)+1 ! OFFSET TO MAP AREA 29 CALL R50ASC(9,NXTHDR(IOFF),BYTBUF) DO 31 IC0=1,9 IF(BYTBUF(IC0).EQ.' ') GOTO 32 31 CONTINUE 32 BYTBUF(IC0)='.' CALL R50ASC(3,NXTHDR(IOFF+3),NUMBUF) DO 18 L=1,3 IC0=IC0+1 IF(NUMBUF(L).EQ.' ') GOTO 17 BYTBUF(IC0)=NUMBUF(L) 18 CONTINUE IC0=IC0+1 17 BYTBUF(IC0)=';' IT=NXTHDR(IOFF+4) DO 24 IC2=1,7 IT=IT/8 IF(IT.EQ.0) GOTO 23 24 CONTINUE 23 ENCODE(IC2,22,NUMBUF) NXTHDR(IOFF+4) 22 FORMAT(O) DO 38 L=1,IC2 IC0=IC0+1 38 BYTBUF(IC0)=NUMBUF(L) LL=NXTHDR(3) DO 39 NC=1,5 LL=LL/8 IF(LL.LE.0) GOTO 37 39 CONTINUE 37 WRITE(5,34) NXT,NXTHDR(3),(BYTBUF(L),L=1,IC0),MAPAR(10),MAPAR(9) 34 FORMAT(1X,O11,',',O,T20,A1,4X,'OWNER: [',O3,',',O3,']') IF(ID2.EQ.NXTHDR(3)) GOTO 5 WRITE(5,55) 55 FORMAT(T10,'***** WARNING ***** FILE SEQUENCE NUMBER MISMATCH') GOTO 5 100 CALL IDXCLO STOP END