PROGRAM LOCATE C C LOCATE HEADER FILES, MUST BE ABLE TO READ [0,0]INDEXF.SYS C C W.P. HELMAN, "THE MULTI-TASKER", V11 NO2 AUGUST 1979 C C 1. EDIT FOR DEVICE IN CALL ASNLUN AND FOR OWNER'S UIC C BEFORE COMPILING AND TASK-BUILDING (MARKED ) C C 2. FOR RSX11M THE DISK MUST NOT BE LOGICALLY MOUNTED. C 3. THE FIRST COLUMN OF NUMBERS IN THE FILE HEADER.DAT C IS THE LOGICAL BLOCK NUMBER (DECIMAL) OF THE C FILE NAMED, AND WILL BE NEEDED FOR SUBSEQUENT C PROGRAMS. C BYTE B(512),NAME(9),EXT(3) INTEGER*2 A(256),IPR(6),ISB(2),NBLK(2) INTEGER*4 NBLOCK EQUIVALENCE (NBLOCK,NBLK),(A,B) C DATA IPR(2)/512/ DATA IFNAM,IFTYP,IFVER/"30,"33,"34/ ! FILE ID POINTERS <*> DATA JUIC1,JUIC2,JCRDT/"12,"11,"110/ ! MAY BE SYSTEM DEPENDENT <*> DATA IFNO,ICHH,IESQN,IUSE/2,7,"57,"63/ ! <*> C CALL GETADR(IPR,A) TYPE 100 100 FORMAT('$DEVICE: ') ACCEPT 101,IDEV 101 FORMAT(1A2) TYPE 102 102 FORMAT('$UNIT = ') ACCEPT *,IUNIT CALL ASNLUN(1,IDEV,IUNIT) OPEN (UNIT=1,NAME='[0,0]INDEXF.SYS',TYPE='OLD',READONLY) OPEN (UNIT=2,NAME='HEADER.DAT',TYPE='NEW') C 10 NBLOCK=NBLOCK+1 ! GET NEXT LOGICAL BLOCK IPR(5)=NBLK(1) IPR(4)=NBLK(2) CALL WTQIO("10400,1,6,,ISB,IPR,IDS) ! READ BY VIRTUAL BLOCK IF(ISB(1).EQ."366) STOP ! END OF FILE IF(ISB(1).NE.1) TYPE 61,NBLOCK,ISB,IDS ! TEST FOR ERROR IF((A(1).NE."27027).OR.(A(4).NE."401)) GOTO 50 ! TEST FOR HEADER <*> IF(A(IFNO).EQ.0) GOTO 50 ! DELETED IF(A(ICHH).LT.0) GOTO 50 ! MARKED FOR DELETE D IF((B(JUIC1).NE."22).OR.(B(JUIC2).NE.2)) GOTO 50 !UIC OF OWNER CALL R50ASC(9,A(IFNAM),NAME) CALL R50ASC(3,A(IFTYP),EXT) IVERS=A(IFVER) D IF((IVERS.GT.255).OR.(IVERS.LT.0)) GOTO 50 WRITE(5,11) A(2),A(3),NAME,EXT,IVERS,(B(I),I=JCRDT,JCRDT+"14), 1 B(JUIC1),B(JUIC2),A(ICHH) WRITE(2,11) A(2),A(3),NAME,EXT,IVERS,(B(I),I=JCRDT,JCRDT+"14), 1 B(JUIC1),B(JUIC2),A(ICHH) 50 CONTINUE GOTO 10 C 11 FORMAT(X,O7,',',O5,X,9A1,'.',3A1,';',O5,2X,2A1,'-',3A1,'-', 1 2A1,X,2A1,':',2A1,':',2A1,' [',O3,',',O3,'] ',O7) C 61 FORMAT(' QIO ERROR, BLOCK:',O13,' ISB(1),ISB(2),$DSW =',3O7) END