FTN4,L,T PROGRAM MVCP3(19,90),91750-16212 REV.2013 800409 C C *************************************************************** C * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS * C * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * C * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* C * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C *************************************************************** C C PROGRAM TO MOVE ABSOLUTE RTE FILE !COPY3 TO MPE PROG FILE C COPY3K.PUB.SYS. THE PROG IS USED AS P-TO-P SLAVE FOR C RMOTE'S MO (FILE MOVE) COMMAND. C C SOURCE: 91750-18212 C C RELOCATABLE: 91750-16212 C C DATE: JULY 12, 1979 C C PROGRAMMER: DMT C C C RUN FROM RMOTE WITH C $RU,MVCP3,,, C ALL THREE PARAMETERS ARE OPTIONAL. IS USED TO REPORT C ERROR MESSAGES. DEFAULT IS THE VALUE RETURNED FROM LOGLU. C IS THE FMP SECURITY CODE FOR !COPY3. DEFAULT IS 0. C IS THE FMP CARTRIDGE FOR !COPY3. DEFAULT IS 0. C INTEGER FOPEN INTEGER DCB(144), P(5), BUFFER(128), NAME(3), MNAME(8), SIZE(2) C C RTE FILE NAME (!COPY3) DATA NAME/2H!C,2HOP,2HY3/ C MPE FILE NAME DATA MNAME/2HCO,2HPY,2H3K,2H.P,2HUB,2H.S,2HYS,0/, SIZE/0,0/ C C PICK UP SCHEDULING PARAMETERS CALL RMPAR(P) LULOG = P(1) IF(LULOG.LT.1)LULOG = LOGLU(IDUMMY) C C RESUME RMOTE'S SESSION VIA CALL TO PRCNM WITH 5TH PRAM IF(P(5) .GE. 0) GO TO 960 CALL PRCNM(P(5)) C OPEN UP THE RTE FILE CALL OPEN(DCB,IERR,NAME,0,P(2),P(3)) IF(IERR.GE.0) GO TO 10 C RTE FILE ERROR! REPORT IT... WRITE(LULOG,125)IERR,NAME,P(2),P(3) 125 FORMAT(10X"FMP ERROR"I6" OPENING "3A2":"I5":"I5) GO TO 910 C C MAKE SURE THE RTE FILE'S TYPE IS 1 10 IF(IERR .EQ. 1)GO TO 15 WRITE(LULOG,127)NAME,IERR 127 FORMAT(10X,3A2" IS FILE TYPE"I6", NOT TYPE 1") GO TO 910 C C GET THE SIZE OF THE TYPE-1 RTE FILE TO DETERMINE MPE SIZE 15 CALL LOCF(DCB,IERR,IREC,IRB,IOFF,JSEC) IF(IERR .GE. 0) GO TO 20 WRITE(LULOG,130)IERR,NAME 130 FORMAT(10X"FMP ERROR"I6" ON LOCF TO "3A2) GO TO 910 20 SIZE(2) = JSEC/2 C CREATE THE MPE FILE IFNUM = FOPEN(MNAME,2000B,104B,128,0,0,0,1,1,SIZE,1,1,1029) IF(ICC(M).EQ.0) GO TO 25 C MPE FILE ERROR! REPORT IT... CALL FCHEK(IFNUM,IERR) WRITE(LULOG,135)IERR,(MNAME(I), I=1,7) 135 FORMAT(10X"MPE ERROR"I6" OPENING "7A2) GO TO 910 C C TRANSFER DATA 25 WRITE(LULOG,137)NAME,(MNAME(I), I=1,7) 137 FORMAT(10X"BEGINNING TRANSFER OF "3A2" TO "7A2) 30 CALL READF(DCB,IERR,BUFFER,128,LGTH) C CHECK FOR END-OF-FILE IF(IERR .EQ. -12) GO TO 1000 C CHECK FOR ERROR IF(IERR .GE. 0) GO TO 40 C ERROR IN READING RTE FILE... WRITE(LULOG,140)IERR,NAME 140 FORMAT(10X"FMP ERROR"I6" READING "3A2) GO TO 900 C MAKE SURE RTE FILE IS THE PROPER FORMAT 40 IF(LGTH .EQ. 128) GO TO 60 C BAD LENGTH WRITE(LULOG,145)NAME 145 FORMAT(10X"BAD LENGTH IN FILE "3A2) GO TO 900 60 CALL FWRIT(IFNUM,BUFFER,128,0) IF(ICC(M).GE.0) GO TO 30 C ERROR IN WRITING MPE FILE... CALL FCHEK(IFNUM,IERR) WRITE(LULOG,150)IERR,(MNAME(I), I=1,7) 150 FORMAT(10X"MPE ERROR"I6" WRITING "7A2) C C ERROR. CLOSE BOTH FILES AND ABORT. 900 CALL FCLOS(IFNUM,4,0) 910 CALL CLOSE(DCB) 950 CALL EXEC(6,0,3) C 960 WRITE(LULOG,961) 961 FORMAT(/10X"MVCP3 MUST BE RUN FROM RMOTE (AFTER LOGON TO MPE)"/) GO TO 950 C 970 CALL FCHEK(IFNUM,IERR) WRITE(LULOG,971)IERR,(MNAME(I), I=1,7) 971 FORMAT(10X"MPE ERROR"I6" CLOSING "7A2) GO TO 950 C C GOOD COMPLETION... 1000 CALL CLOSE(DCB) CALL FCLOS(IFNUM,11B,0) IF(ICC(M) .NE. 0)GO TO 970 END