BYTE FILLIN(90) INTEGER*2 IFN1,IFN2 C THIS PROGRAM WILL ACCEPT A FILENAME ON THE PDP11 AND GENERATE C A DATA-GENERAL FORMAT TAPE. ALL RECORDS WRITTEN TO THE TAPE WILL C BE 85 CHARACTERS LONG (TEXT) AND BE C FOLLOWED BY 2 WORDS OF FILE NUMBER. LEGAL FILE NUMBERS ARE IN C THE RANGE 0-99 BUT THIS WILL NOT BE CHECKED. FOR THE MOMENT, THE C ASSUMPTION IS THE FILE NUMBERS ARE BOTH BINARY AND IDENTICAL. BYTE RECBUF(514),TEXT(85,6) EQUIVALENCE (RECBUF(1),TEXT(1,1)),(IFN1,RECBUF(511)) EQUIVALENCE (IFN2,RECBUF(513)) C FIRST POSITION TO BEGINNING OF DESIRED FILE WRITE (5,1) 1 FORMAT (' ENTER DESIRED FILE NUMBER,I2 ') WRITE (5,2444) 2444 FORMAT(' FILE NUMBER NEGATIVE MEANS NO POSITIONING,', 1 ' POSITIVE WILL POSITION TAPE') READ (5,2)IFN1 2 FORMAT(I2) IFN2=IFN1 IF (IFN1.LT.0) IFN1=0 IF (IFN1.GT.0) CALL MREWIN DO (N=1,IFN1) CALL MSKIPF(1) FIN FIN C TAPE SHOULD BE POSITIONED CORRECTLY NOW. NOTE NO REWIND. IF (IFN2.LT.0) WRITE(5,3) 3 FORMAT(' ENTER DESIRED FILE NO., NO POS.') READ(5,2)IFN1 FIN IFN2=IFN1 C IF HE ENTERS A NEGATIVE FILE NUMBER ALLOW HIM TO WRITE TO TAPE C WITHOUT POSITIONING FIRST. NOTE WE WRITE 2 EOF AND BACKSPACE C OVER THE LAST TO COMPLETE A FILE SO EOT IS ALWAYS THERE. C C NOW INITIALIZE OUR POINTERS C IREC=01 WRITE(5,5) 5 FORMAT(' ENTER FILENAME TO DUMP ') CALL GETCML(FILLIN,3HGCD,MCRSZ) CALL ASSIGN(1,FILLIN,MCRSZ) CALL FDBSET(1,'READONLY','SHARE') C LUN 1 NOW IS THE FILE WE ARE WRITING DO (IJK=1,32700) READ(1,6,ERR=999,END=999)(TEXT(NN,IREC),NN=1,80) 6 FORMAT(80A1) TEXT(81,IREC)=13 C 13 IS ASCII C.R. DO (NN=82,85) TEXT(NN,IREC)=0 FIN IREC=IREC+1 IF (IREC.GT.6) C A BUFFER IS FULL; WRITE IT OUT IREC=1 IFN1=IFN2 C FOR 7 TRACK OUTPUT TO DG SWAP BITS VIA BITSWP TO GET ONTO TAPE AS C DG EXPECTS. CALL BITSWP(RECBUF,514) CALL MWRITE(RECBUF,514,IERR) C BUFFER NOW WRITTEN. ZERO IT IN CASE NEXT=LAST DO (NM=1,510) RECBUF(NM)=0 FIN FIN FIN 999 CONTINUE C ENDFILE PROCESSING. WRITE ENDFILES ON TAPE C AND BACK OVER ONE OF TTHEM. CALL MWRITE(RECBUF,514,IERR) CALL MEOF(1) CALL MEOF(1) CALL MSKIPR(-1) C TAPE NOW HAS A VALID EOT BUT IF MORE IS WRITTEN ONLY 1 C EOF WILL APPEAR. CALL EXIT END