LOGICAL*1 OPT(20),OPND1(20),OPND2(20),OUT(132),ASC(2) INTEGER*2 IBUFF(258),IASC EQUIVALENCE (IASC,ASC) TYPE 5 5 FORMAT ('$Input Filename > ') ACCEPT 6,ILEN,OPT 6 FORMAT (Q,20A1) OPT(ILEN+1) = 0 OPEN (UNIT=1,NAME=OPT,TYPE='OLD',ACCESS='DIRECT', 1 RECORDSIZE=128,READONLY) TYPE 7 7 FORMAT ('$Output > ') ACCEPT 6,ILEN,OPT CALL ASSIGN(2,OPT,ILEN) TYPE 8 8 FORMAT ('$Output Buffer Length > ') ACCEPT 9,ILEN 9 FORMAT (I3) IOFF = 3 OLDBUF = -1 C DO 100,IBLK=1,17 C READ (1'IBLK) (IBUFF(I),I=3,258) 10 DO 15,I=1,20 OPT(I) = "40 OPND1(I) = "40 OPND2(I) = "40 15 CONTINUE IPC1 = IPC CALL DISASS(IBUFF(IOFF),OPT,OPND1,OPND2,ICNT,IPC) IF ((OLDBUF.EQ.0).AND.(IBUFF(IOFF+ICNT).EQ.0)) GOTO 90 OLDBUF = IBUFF(IOFF) C LENOPT = 20 LENOP1 = 20 LENOP2 = 20 DO 17,I=20,1,-1 IF (OPT(I).EQ."40) LENOPT = I-1 IF (OPND1(I).EQ."40) LENOP1 = I-1 IF (OPND2(I).EQ."40) LENOP2 = I-1 17 CONTINUE C LENOPT = LENOPT + 1 OPT(LENOPT) = "11 IF (LENOP2.EQ.0) GOTO 20 LENOP1 = LENOP1 + 1 OPND1(LENOP1) = "54 20 DO 30,I=1,132 OUT(I) = "40 30 CONTINUE ENCODE (6,70,OUT) IPC1 70 FORMAT (O6) OUT(7) = "11 J = 8 DO 72,I=1,LENOPT OUT(J) = OPT(I) J = J + 1 72 CONTINUE IF (LENOP1.EQ.0) GOTO 80 DO 74,I=1,LENOP1 OUT(J) = OPND1(I) J = J + 1 74 CONTINUE IF (LENOP2.EQ.0) GOTO 80 DO 76,I=1,LENOP2 OUT(J) = OPND2(I) J = J + 1 76 CONTINUE 80 IF (J.LT.40) J = 40 OUT(J) = ';' J = J + 1 ENCODE (7*ICNT,82,OUT(J)) (IBUFF(I),I=IOFF,IOFF+ICNT-1) 82 FORMAT (O7) J = 64 C DO 86,I=1,ICNT IASC = IBUFF(IOFF+I-1) DO 84,K=1,2 IF (ASC(K).LT."40) ASC(K) = "40 84 CONTINUE OUT(J) = ASC(1) OUT(J+1) = ASC(2) J = J + 2 86 CONTINUE WRITE (2,88) (OUT(I),I=1,ILEN) 88 FORMAT (' ',132A1) 90 IOFF = IOFF+ICNT IF (IOFF.LT.257) GOTO 10 IOFF = IOFF - 256 IF (IOFF.LT.2) IBUFF(1) = IBUFF(257) IF (IOFF.LT.3) IBUFF(2) = IBUFF(258) 100 CONTINUE CALL EXIT END