C C C----------------------------------------------------------------------------- C C PROGRAM: T A P E O F C C AUTHOR: Jan H. Belgraver C C DATE: 28-OCT-83 C C VERSION: 1.0 C C MODIFIED BY: C C PURPOSE: Writing IOF (two tape marks) to a tape after LBN=1. C C DESCRIPTION: C C INPUT FILES: None C C OUTPUT FILES: None C C LUNS: 1 MM: C 5 TI: C C BATCH: Not used C C EVENT FLAGS: 1 C C CALL: C C ARGUMENTS: NAME DESCRIPTOIN C I C O C I/O C C CALLS TO: None C C PARAMETERS: NAME DESCRIPTION C C BUILDING: None C C----------------------------------------------------------------------------- C C C C PROGRAM T A P E O F PARAMETER BSIZE = 64 LOGICAL*1 BUF(BSIZE), IOST(4) INTEGER*2 IPARM(6) INTEGER*4 BLOCK EQUIVALENCE (IPARM(1), BLOCK) DATA IODET /"2000/ ! Detach unit DATA IOEOF /"3000/ ! EOF DATA IORWD /"2400/ ! Rewind tape, but don't unload DATA IOWLB / "400/ ! Write logical block BLOCK = 1 IPARM(2)= BSIZE CALL ASSIGN (2, 'MM:') ! LUN=2 is required by INITMM CALL INITMM (1) ! Init for write IPARM(1)= "4000 ! Function code for 1600 b.p.i. CALL WTQIO (IOSTC, 2, 2,, IOST, IPARM) ! Set to 1600 bpi IF (IOST(1) .NE. 1) GOTO 910 CALL GETADR (IPARM(1), BUF(1)) ! Get buffer adress CALL WTQIO (IOWLB, 2, 2,, IOST, IPARM) ! Write block IF (IOST(1) .NE. 1) GOTO 910 CALL WTQIO (IOEOF, 2, 2,, IOST) ! Write 1st tapemark IF (IOST(1) .NE. 1) GOTO 910 CALL WTQIO (IOEOF, 2, 2,, IOST) ! Write 2nd tapemark IF (IOST(1) .NE. 1) GOTO 910 CALL WTQIO (IORWD, 2, 2,, IOST) ! Rewind tape IF (IOST(1) .NE. 1) GOTO 910 GOTO 990 910 WRITE (5,911) IOST(1) 911 FORMAT (' [TAPEOF] - IOST ERROR = ', I4) 990 CALL QIO (IODET, 2, 2,, IOST) ! Detach MM: STOP END