PROGRAM TAPDSK C C This program will take a block of data put onto tape by either C ADORDA or DR2TAP and will put it out to a user named disk file C in either I6 or List-Directed format. C PARAMETER LEN = 1280, LENBYT = 2560 CHARACTER*1 FORM, ANS CHARACTER*20 NAME INTEGER IN, OUT, READ, WRITE, INPUT(LEN) INTEGER LUNIN, LUNOUT, ISTAT(2), SKIP DATA READ, WRITE, SKIP/ 1, 2 ,8 / DATA LUNIN, LUNOUT/ 1, 2 / C C Suppress End-Of-File message : C CALL ERRSET(24,.TRUE.,.FALSE.,.TRUE.,.FALSE.,15) C C Get the input tape drive number : C WRITE(5,110) 100 READ(5,*,END=500)IN 110 FORMAT(1X,$'Enter the input tape drive number (0 or 1) : ') IF(IN.NE.1.AND.IN.NE.0)THEN WRITE(5,120) GOTO 100 120 FORMAT(1X,$'Please enter 0 or 1 : ') END IF CALL ASNLUN(LUNIN,'MM',IN) C C Find out if the user wants I6 or List-Directed Format : C WRITE(5,140) 130 READ(5,150,END=500)FORM 140 FORMAT(1X,'Which format do you want the output data in 1 -',/,1X,$' Integer-6 (I) or List-Directed(L) : ') 150 FORMAT(A1) IF(FORM.NE.'I'.AND.FORM.NE.'L')THEN WRITE(5,160) GOTO 130 160 FORMAT(1X,$'Please enter "I" or "L" : ') END IF C C Find out how many blocks to skip forward : C 165 WRITE(5,170) READ(5,*,END=500)ISKIP 170 FORMAT(1X,$'How many blocks do you want to skip? ') IF(ISKIP.NE.0)CALL TAPEIO(SKIP,LUNIN,ISTAT,ISKIP,) C C Read in a block of data : C 180 CALL TAPEIO(READ,LUNIN,ISTAT,INPUT,LENBYT) C C Get the disk data file name and open the new file: C WRITE(5,190) READ(5,200,END=500)NAME 190 FORMAT(1X,$'Enter data file name : ') 200 FORMAT(A20) OPEN(UNIT=LUNOUT,NAME=NAME,TYPE='NEW') IF(FORM.EQ.'I')THEN !Integer Format C C Write the data to disk in I6 format : C DO 210 I=1,LEN WRITE(LUNOUT,220)INPUT(I) 210 CONTINUE 220 FORMAT(I6) ELSE !List-Directed Output C C Write the data to disk in List-Directed format: C DO 230 I=1,LEN WRITE(LUNOUT,*)INPUT(I) 230 CONTINUE END IF CLOSE(UNIT=LUNOUT) C C Does the user want another pass ? C WRITE(5,240) READ(5,150,END=500)ANS 240 FORMAT(1X,$'Do you want another pass? [Y/N] ') IF(ANS.EQ.'Y')GOTO 165 500 WRITE(5,*)'TAPDSK -- EXITING' CALL EXIT END