PROGRAM STB IMPLICIT INTEGER (A-Z) INTEGER*2 WORDS(64), EF BYTE BYTES(128), INFILE(32), OUTFIL(32), SYMBOL(6), BY(2) C EQUIVALENCE (WORDS, BYTES), (EF, BY) C DATA INFILE, OUTFIL / 64 * 0 / C WRITE (5, 10) 10 FORMAT ( '$ Enter STB file name: ') READ (5, 20, END = 900) INFILE 20 FORMAT( 32A1) C OPEN (UNIT = 1, NAME = INFILE, TYPE = 'OLD', READONLY) C WRITE (5, 30) 30 FORMAT ( '$ Enter output file name: ') READ (5, 20, END = 900) OUTFIL C OPEN (UNIT = 2, NAME = OUTFIL, TYPE = 'NEW', 1 CARRIAGECONTROL = 'LIST') C 100 READ ( 1, 110, END = 500) MAX, (BYTES(I), I = 1, MAX) 110 FORMAT( Q, 128A1) C IF (WORDS(1) .EQ. 1) GOTO 120 IF (WORDS(1) .EQ. 5) GOTO 120 GOTO 100 C 120 MAX = MAX - 2 ! skip word 1 MAX = MAX / 2 ! bytes to words DO 200 J = 2, MAX, 4 CALL R50ASC ( 6, WORDS(J), SYMBOL) EF = WORDS(J + 2) IF (BY(1) .NE. '110'O) GOTO 200 C C WRITE (2, 150) WORDS(1), SYMBOL, BY, WORDS(J + 3) C150 FORMAT( 2X, I2, 2X, 6A1, 2( 2X, O3), 2X, O6) C WRITE (2, 150) SYMBOL, WORDS(J + 3) 150 FORMAT( 6A1, 1X, O6) 200 CONTINUE GOTO 100 C 500 CLOSE (UNIT = 1) CLOSE (UNIT = 2) 900 CALL EXIT C END