SUBROUTINE DIRECT C C C AUTHOR: C PAUL D. CLAYTON C REPUBLIC MANAGEMENT SYSTEMS INC. C ONE NESHAMINY INTERPLEX, SUITE 306 C TREVOSE, PA. 19044 C C ******************************************************* C * * C * * C * * C * DIRECT INQUIRIES TO: * C * * C * PAUL D. CLAYTON * C * REPUBLIC MANAGEMENT SYSTEMS * C * ONE NESHAMINY INTERPLEX, SUITE 306 * C * TREVOSE, PA. 19044 C * * C * NO WARRANTY OR REPRESENTATION, EXPRESS OR * C * IMPLIED, IS MADE WITH RESPECT TO THE * C * CORRECTNESS, COMPLETENESS, OR USEFULNESS * C * OF THIS SOFTWARE, NOR THAT USE OF THIS * C * SOFTWARE MIGHT NOT INFRINGE PRIVATELY * C * OWNED RIGHTS. * C * * C * NO LIABILITY IS ASSUMED WITH RESPECT TO * C * THE USE OF, OR FOR DAMAGES RESULTING FROM * C * THE USE OF THIS SOFTWARE * C * * C ******************************************************* C * * C * THIS SOFTWARE WAS DESIGNED FOR USE ON A * C * PDP-11/70 OPERATING UNDER IAS V3.0. * C * * C ******************************************************* C C C THIS MODULE WILL PRINT A DIRECTORY OF A RT-11 FORMATTED TAPE C TO EITHER THE USER TERMINAL OR THE LINE PRINTER. C C INCLUDE 'RT11.COM' ! ADD IN THE COMMON VARIABLES C BYTE VTST(9),ETST(4) DATA VTST/'V','O','L','1','R','T','1','1','A'/ DATA ETST/'E','O','F','1'/ C OUTLU = 5 !INITIALIZE LOGICAL UNIT FOR TREMINAL IF ( (ISWIT.AND.ILPSW) .NE. 0 ) OUTLU = 6 !PRINTER INSTEAD CALL RDTAPE (MAGLU,BUFF,512,ISTAT,ISW) !READ IN FIRST RECORD IF ( ISTAT(1).GE.0 .AND. ISW.GE.0 ) GOTO 8 WRITE (5,6) 6 FORMAT(/,' ERROR READING VOLUME BLOCK FROM THE TAPE.') RETURN C 8 CONTINUE DO 10 I = 1,9 IF ( BUFF(I) .NE. VTST(I) ) GOTO 20 10 CONTINUE GOTO 30 20 CONTINUE WRITE (5,15) 15 FORMAT (/,' THE VOLUME IS NOT RT-11 FORMAT.') RETURN 30 CONTINUE CALL TIME ( BUFF(10) ) ! GET THE CURRENT TIME CALL DATE ( BUFF(1) ) ! AND CURRENT DATE WRITE (OUTLU,40) IDEV,IDNM,(BUFF(I),I=1,9),(BUFF(I),I=10,17) 40 FORMAT (/,T3,'RT-11 DIRECTORY ON ',1A2,O1,/' ',T3,9A1,T15, - 8A1,/) C 50 CONTINUE CALL RDTAPE (MAGLU,BUFF,512,ISTAT,ISW) ! READ NEXT RECORD D WRITE (5,55)ISTAT(1),ISTAT(2) D55 FORMAT (/,' ERROR CODE FROM READ IS ',I6,3X,I6) IF ((ISTAT(1).GE.0).OR.(ISTAT(1).EQ.-10).AND.(ISW.GE.0)) - GOTO 57 WRITE (5,56) 56 FORMAT (/,' ERROR READING THE TAPE UNIT FOR LISTING DIRECTORY') RETURN C 57 CONTINUE IF ( ISTAT(1) .NE. -10 ) GOTO 58 TAPMRK = TAPMRK + 1 IF ( TAPMRK .EQ. 2 ) RETURN GOTO 50 !LOOP BACK FOR NEXT RECORD 58 CONTINUE TAPMRK = 0 !RESET THE TAPE MARK COUNTER DO 60 I = 1,4 IF ( ETST(I) .NE. BUFF(I) ) GOTO 50 ! CHECK FOR EOF1 LABEL 60 CONTINUE WRITE (OUTLU,70) (BUFF(I),I=5,14),(BUFF(I),I=55,60) 70 FORMAT (T3,10A1,T18,6A1) GOTO 50 END