FTN4 SUBROUTINE EOTWR(LU1,TAPE,HDR,TDCB,TDSZ,P5,IERR) +,92069-16194 REV.2013 790416 C C C***************************************************************** C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS RESERVED. C NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, REPRODUCED, OR C TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT THE PRIOR C WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. C****************************************************************** C C C SOURCE: 92069-18194 C RELOC: 92069-16194 C C C****************************************************************: C C C************************************************************* C EOTWR HANDLES AN EOT FOR A MAG TAPE LU. C C EOTWR ASSUMES THAT THE HEADER PASSED IN IN HDR STILL HAS THE C REEL NUMBER OF THE OLD TAPE REEL IN HDR(21). C C IF P5=AB, A NEGATIVE ERROR IS RETURNED IN IERR. C IF P5 .NE. AB, THE USER IS PROMPTED ON LU1 TO MOUNT A NEW TAPE. C************************************************************** C FORMAL PARAMETERS C INTEGER LU1,TAPE(1),HDR(1),TDCB(1),TDSZ,P5,IERR C******************************************************** C LOCAL VARIABLES. C INTEGER RESPON INTEGER MESS1(25),NUM(3) DATA MESS1/2H S,2HAV,2HE ,2HTA,2HPE,2H O,2HN ,2HLO,2HGI, & 2HCA,2HL ,2HDE,2HVI,2HCE,2H X,2HXX,2HXX,2HX ,2HAS, & 2H A,2HAA,2HAA,2HA ,2HNN,2HN / C************************************************************** C IF (TAPE(4) .NE. 1) CALL DBER2(LU1,7777,6HXXXXXX,6HEOTWR ,2HAB) IF (P5 .EQ. 2HAB) GO TO 9000 C************************************************************ C REQUEST NEW TAPE BE MOUNTED. C CALL REIO(2,LU1,2H ,1) CALL REIO(2,LU1,2H ,1) C C CONVERT LU NUMBER TO ASCII AND PUT IT IN THE MESSAGE C CALL CNUMD(TAPE,NUM) CALL SMOVE(NUM,1,6,MESS1,30) C C GET THE HEADER AND PUT IT IN THE MESSAGE C CALL SMOVE(HDR,17,22,MESS1,40) C C CONVERT THE REEL NUMBER AND PUT IT IN THE HEADER C CALL CNUMD(HDR(21),NUM) CALL SMOVE(NUM,4,6,MESS1,47) CALL REIO(2,LU1,MESS1,25) CALL REIO(2,LU1,2H ,1) C C TELL THEM TO MOUNT NEXT TAPE C 2525 CONTINUE CALL REIO(2,LU1,36H MOUNT NEXT REEL ON LOGICAL DEVICE _,-36) CALL CNUMD(TAPE,NUM) CALL REIO(2,LU1,NUM,3) C C GET RESPONSE C CALL READY(LU1,RESPON,IERR) IF (IERR .LT. 0) GO TO 9000 C************************************************************* C BY HERE, YOU KNOW THE USER HAS MOUNTED NEW TAPE AND TYPED YES. C CHECK THAT THE NEW TAPE IS ALL SET TO GO. C CALL TLOCL(LU1,TAPE,IERR) IF (IERR .LT. 0) RETURN CALL RING(LU1,TAPE,2HXX,IERR) IF (IERR .LT. 0) RETURN C*********************************************************** C CHECK THAT YOU'RE AT LOAD POINT. C CALL SOT(LU1,TAPE,P5,IERR) IF (IERR .LT. 0) GO TO 9000 C*************************************************** C BY HERE, YOU KNOW THAT NEW TAPE HAS BEEN MOUNTED. C 3000 CONTINUE IERR=0 HDR(21)=HDR(21)+1 CALL EWRIT(TDCB,IERR,HDR,24) CALL DBER2(LU1,IERR,TAPE,6HEOTWR ,2HXX) RETURN C************************************************************ C ABORT AT EOT. C 9000 CONTINUE CALL REIO(2,LU1,25H ABORTING AT END OF TAPE.,-25) CALL DBER2(LU1,236,6HXXXXXX,6HEOTWR ,2HXX) C REWIND THE TAPE AND DESTROY IT.(USER MAY HAVE REMOVED IT.) IERR=-236 RETURN END