      INTEGER FUNCTION ADDSET(C,SET,J,MAXSIZ)
      INTEGER J,MAXSIZ
      INTEGER C,SET(MAXSIZ)
      IF((J.LE.MAXSIZ))GOTO 10000
        ADDSET=0
        GOTO 10001
10000   SET(J)=C
        J=J+(1)
        ADDSET=1
10001 RETURN
      END
      INTEGER FUNCTION AMATCH(LIN,FROM,PAT,TAGBEG,TAGEND)
      INTEGER LIN(1),PAT(256)
      INTEGER FROM,TAGEND(9),TAGBEG(9)
      INTEGER OMATCH,PATSIZ
      INTEGER I,J,OFFSET,STACK
      STACK=0
      OFFSET=FROM
      J=1
      GOTO 10004
10002 J=J+(PATSIZ(PAT,J))
10004 IF((PAT(J).EQ.0))GOTO 10003
        IF((PAT(J).NE.170))GOTO 10005
          STACK=J
          J=J+(4)
          I=OFFSET
          GOTO 10008
10006     CONTINUE
10008     IF((LIN(I).EQ.0))GOTO 10007
            IF((OMATCH(LIN,I,PAT,J).NE.0))GOTO 10006
              GOTO 10007
10007     PAT(STACK+1)=I-OFFSET
          PAT(STACK+3)=OFFSET
          OFFSET=I
          GOTO 10002
10005     IF((PAT(J).NE.251))GOTO 10011
            I=PAT(J+1)
            TAGBEG(I)=OFFSET
            GOTO 10012
10011       IF((PAT(J).NE.253))GOTO 10013
              I=PAT(J+1)
              TAGEND(I)=OFFSET
              GOTO 10014
10013         IF((OMATCH(LIN,OFFSET,PAT,J).NE.0))GOTO 10015
                GOTO 10018
10016           STACK=PAT(STACK+2)
10018           IF((STACK.LE.0))GOTO 10017
                  IF((PAT(STACK+1).LE.0))GOTO 10016
                    GOTO 10017
10017           IF((STACK.GT.0))GOTO 10020
                  AMATCH=0
                  RETURN
10020           PAT(STACK+1)=PAT(STACK+1)-(1)
                J=STACK+4
                OFFSET=PAT(STACK+3)+PAT(STACK+1)
10015       CONTINUE
10014     CONTINUE
10012   CONTINUE
10010 GOTO 10002
10003 AMATCH=OFFSET
      RETURN
      END
      INTEGER FUNCTION ATOC(PTR,XSTR,SIZE)
      INTEGER PTR(3),SIZE
      INTEGER XSTR(1)
      INTEGER I
      INTEGER GITOC,CTOC
      INTEGER STR(18)
      I=0
      IF((PTR(1).GE.0))GOTO 10021
        I=I+(1)
        STR(I)=230
10021 I=I+(1)
      STR(I)=AND(RS(PTR(1),13),3)+176
      STR(I+1)=174
      I=I+(GITOC(AND(PTR(1),4095),STR(I+2),5,8)+1)
      STR(I+1)=174
      I=I+(GITOC(PTR(2),STR(I+2),7,-8)+1)
      IF((AND(PTR(1),4096).EQ.0))GOTO 10022
        STR(I+1)=174
        I=I+(GITOC(RS(PTR(3),12),STR(I+2),3,8)+1)
10022 ATOC=CTOC(STR,XSTR,SIZE)
      RETURN
      END
      SUBROUTINE BPONU$(CP)
      INTEGER * 4 CP
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER AAAAA0(24)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAAA0/233,238,160,226,240,239,238,245,164,186,160,227,225,23
     *8,167,244,160,232,225,240,240,229,238,0/
      CALL PL1$NL(BPLAB0)
      CALL REMARK(AAAAA0)
      RETURN
      END
      SUBROUTINE C$END
      INTEGER FD,I
      INTEGER CREATE
      INTEGER LIMIT
      INTEGER * 4 COUNT(1)
      COMMON /C$STC/LIMIT,COUNT
      INTEGER OUTFI0(10)
      DATA OUTFI0/223,243,244,223,227,239,245,238,244,0/
      FD=CREATE(OUTFI0,3)
      IF((FD.NE.-3))GOTO 10023
        CALL CANT(OUTFI0)
10023 LIMIT=LIMIT-(1)
      DO 10024 I=1,LIMIT
        CALL PRINT(FD,'*l*n.',COUNT(I))
10024 CONTINUE
10025 CALL CLOSE(FD)
      RETURN
      END
      SUBROUTINE C$INCR(STMT)
      INTEGER STMT
      INTEGER LIMIT
      INTEGER * 4 COUNT(1)
      COMMON /C$STC/LIMIT,COUNT
      COUNT(STMT)=COUNT(STMT)+(1)
      RETURN
      END
      SUBROUTINE CANT(STR)
      INTEGER STR(1)
      CALL PUTLIN(STR,-15)
      CALL ERROR(': can''t open.')
      RETURN
      END
      SUBROUTINE CATSUB(LIN,FROM,TO,SUB,NEW,K,MAXNEW)
      INTEGER FROM(10),TO(10),K,MAXNEW
      INTEGER LIN(102),NEW(MAXNEW),SUB(256)
      INTEGER ADDSET
      INTEGER I,J,JUNK,RI
      I=1
      GOTO 10028
10026 I=I+(1)
10028 IF((SUB(I).EQ.0))GOTO 10027
        IF((SUB(I).NE.-3))GOTO 10029
          I=I+(1)
          RI=SUB(I)+1--10
          J=FROM(RI)
          GOTO 10032
10030     J=J+(1)
10032     IF((J.GE.TO(RI)))GOTO 10026
            JUNK=ADDSET(LIN(J),NEW,K,MAXNEW)
          GOTO 10030
10029     JUNK=ADDSET(SUB(I),NEW,K,MAXNEW)
10033 GOTO 10026
10027 RETURN
      END
      INTEGER FUNCTION CHKARG(AP,RESULT)
      INTEGER AP,RESULT(26)
      INTEGER ARG(128)
      INTEGER LETTE0,POSIT0,I
      INTEGER GETARG
      LETTE0=0
      GOTO 10036
10034 AP=AP+(1)
10036 IF((GETARG(AP,ARG,128).EQ.-1))GOTO 10035
      IF((ARG(1).NE.173))GOTO 10035
        I=2
        GOTO 10039
10037   I=I+(1)
10039   IF((ARG(I).EQ.0))GOTO 10034
          GOTO 10040
10041       POSIT0=ARG(I)-225+1
          GOTO 10042
10043       POSIT0=ARG(I)-193+1
          GOTO 10042
10040     IF((225.GT.ARG(I)))GOTO 10044
          IF((ARG(I).GT.250))GOTO 10044
          GOTO 10041
10044     IF((193.GT.ARG(I)))GOTO 10045
          IF((ARG(I).GT.218))GOTO 10045
          GOTO 10043
10045     CONTINUE
            CHKARG=-3
            RETURN
10042     IF((RESULT(POSIT0).GE.0))GOTO 10046
            CHKARG=-3
            RETURN
10046     LETTE0=LETTE0+(1)
          RESULT(POSIT0)=LETTE0
        GOTO 10037
10035 CHKARG=LETTE0
      RETURN
      END
      INTEGER FUNCTION CHKSTR(STR,LEN)
      INTEGER STR(1)
      INTEGER LEN
      INTEGER I
      I=1
      GOTO 10049
10047 I=I+(1)
10049 IF((I.GT.LEN))GOTO 10048
      IF((STR(I).EQ.0))GOTO 10048
        IF((160.GT.STR(I)))GOTO 10051
        IF((STR(I).GE.255))GOTO 10051
        GOTO 10047
10051     CHKSTR=0
          RETURN
10048 IF((I.LE.LEN))GOTO 10052
        CHKSTR=0
        RETURN
10052 CHKSTR=1
      RETURN
      END
      INTEGER FUNCTION CHUNK$(BP,SEG,FD)
      INTEGER * 4 BP
      INTEGER SEG,FD
      INTEGER CODE,JUNK,TFD
      CALL SGDR$$(:1,FD,SEG+2,JUNK,CODE)
      IF((CODE.EQ.0))GOTO 10053
        GOTO 1
10053 CALL SRCH$$(:1+:100+:40000,FD,0,TFD,JUNK,CODE)
      IF((CODE.EQ.0))GOTO 10054
        GOTO 1
10054 CALL PRWF$$(:1,TFD,BP,2048,INTL(0),JUNK,CODE)
      CALL SRCH$$(:4,0,0,TFD,0,JUNK)
      CALL ERRPR$(:2,CODE,'reading subfile',15,'chunk$',6)
      IF((CODE.NE.0))GOTO 10055
        CHUNK$=-2
        RETURN
10055 CONTINUE
1     CHUNK$=-3
      RETURN
      END
      INTEGER FUNCTION CLOSE(FD)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER F
      INTEGER AAAAB0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((FD.EQ.-10))GOTO 10057
      IF((FD.EQ.-11))GOTO 10057
      IF((FD.EQ.-12))GOTO 10057
      IF((FD.EQ.-13))GOTO 10057
      IF((FD.EQ.-14))GOTO 10057
      IF((FD.EQ.-15))GOTO 10057
      GOTO 10056
10057   CLOSE=-2
        RETURN
10056 IF((FD.LT.1))GOTO 10059
      IF((FD.GT.128))GOTO 10059
      GOTO 10058
10059   CLOSE=-3
        RETURN
10058 F=FD*16-16+1
      IF((FDFLA0(F).NE.0))GOTO 10060
        CLOSE=-3
        RETURN
10060 IF((AND(FDFLA0(F),:000017).EQ.0))GOTO 10061
        CALL FLUSH$(FD)
10061 AAAAB0=FDDEV0(F)
      GOTO 10062
10063   CALL SRCH$$(:4,0,0,FDUNI0(F),0,ERRCO0)
        FDFLA0(F)=0
        IF((ERRCO0.NE.0))GOTO 10065
          CLOSE=-2
          RETURN
10066   IF((FD.EQ.1))GOTO 10067
          FDFLA0(F)=0
10067   CLOSE=-2
        RETURN
10068   FDFLA0(F)=0
        CLOSE=-2
        RETURN
10062 GOTO(10066,10063,10068),AAAAB0
10065 CLOSE=-3
      RETURN
      END
      SUBROUTINE COF$(STATE)
      INTEGER STATE(258)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      I=1
      GOTO 10071
10069 I=I+(1)
10071 IF((STATE(I).EQ.-3))GOTO 10070
        IF((FDFLA0(STATE(I)*16-16+1).EQ.0))GOTO 10069
          CALL CLOSE(STATE(I))
10072 GOTO 10069
10070 I=I+(1)
      GOTO 10075
10073 I=I+(1)
10075 IF((STATE(I).EQ.-3))GOTO 10074
        CALL SRCH$$(:4,0,0,STATE(I),0,ERRCO0)
      GOTO 10073
10074 TERMC0=1
      TERMB0(TERMC0)=0
      TERMD0=0
      RETURN
      END
      SUBROUTINE CPFIL$(IFD,OFD,RC)
      INTEGER IFD,OFD,RC
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER BUF(1024),CODE,RNW,JUNK
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      CODE=0
10076   CALL PRWF$$(:1+:0+:400,IFD,LOC(BUF),1024,INTL(0),RNW,ERRCO0)
        IF((RNW.LE.0))GOTO 10077
          CALL PRWF$$(:2+:0,OFD,LOC(BUF),RNW,INTL(0),JUNK,CODE)
10077 CONTINUE
      IF((ERRCO0.NE.0))GOTO 10078
      IF((CODE.NE.0))GOTO 10078
      GOTO 10076
10078 CONTINUE
      RC=-3
      IF((ERRCO0.NE.1))GOTO 10079
      IF((CODE.NE.0))GOTO 10079
        RC=-2
10079 RETURN
      END
      SUBROUTINE CPSEG$(IFD,OFD,RC)
      INTEGER IFD,OFD,RC
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER ENTRYA,ENTRYB,IFD2,OFD2,CODE,TYPE
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      RC=-3
      CALL SGDR$$(:2,IFD,ENTRYA,ENTRYB,ERRCO0)
      IF((ERRCO0.EQ.0))GOTO 10080
        RETURN
10080 CALL SGDR$$(:4,OFD,ENTRYB,ENTRYA,ERRCO0)
      IF((ERRCO0.EQ.0))GOTO 10081
        RETURN
10081 ENTRYB=-1
10082   ENTRYA=ENTRYB+1
        CALL SGDR$$(:6,IFD,ENTRYA,ENTRYB,CODE)
        IF((ENTRYB.NE.-1))GOTO 10083
          ERRCO0=0
          GOTO 10084
10083   IF((ERRCO0.EQ.0))GOTO 10085
          RETURN
10085   CALL SGDR$$(:1,OFD,ENTRYB,ENTRYA,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 10086
          RETURN
10086   CALL SRCH$$(:1+:100+:40000,IFD,0,IFD2,TYPE,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 10087
          RETURN
10087   CALL SRCH$$(:3+:100+:40000+LS(TYPE,10),OFD,0,OFD2,TYPE,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 10088
          CALL SRCH$$(:4,0,0,IFD2,0,CODE)
          RETURN
10088   IF((TYPE.LT.2))GOTO 10089
          CALL CPSEG$(IFD2,OFD2,CODE)
          GOTO 10090
10089     CALL CPFIL$(IFD2,OFD2,CODE)
10090   IF((CODE.NE.-3))GOTO 10091
          RETURN
10091   CALL SRCH$$(:4,0,0,IFD2,0,ERRCO0)
        CALL SRCH$$(:4,0,0,OFD2,0,ERRCO0)
      GOTO 10082
10084 RC=-2
      RETURN
      END
      INTEGER FUNCTION CREATE(PATH,MODE)
      INTEGER PATH(1)
      INTEGER MODE
      INTEGER FD
      INTEGER OPEN,TRUNC
      FD=OPEN(PATH,MODE)
      IF((FD.EQ.-3))GOTO 10092
        IF((TRUNC(FD).EQ.-3))GOTO 10093
          CREATE=FD
          RETURN
10093     CALL CLOSE(FD)
10092 CREATE=-3
      RETURN
      END
      INTEGER * 4 FUNCTION CTOA(STR,I)
      INTEGER STR(1)
      INTEGER I
      INTEGER * 4 FAULT,RING,SEG,WORD,BIT
      INTEGER * 4 GCTOL
10094 IF((STR(I).NE.160))GOTO 10095
        I=I+(1)
      GOTO 10094
10095 IF((STR(I).EQ.230))GOTO 10097
      IF((STR(I).EQ.198))GOTO 10097
      GOTO 10096
10097   I=I+(1)
        FAULT=:20000000000
        GOTO 10098
10096   FAULT=0
10098 RING=LS(RT(GCTOL(STR,I,8),2),28)
      IF((STR(I).NE.174))GOTO 10099
        I=I+(1)
10099 SEG=LS(RT(GCTOL(STR,I,8),12),16)
      IF((STR(I).NE.174))GOTO 10100
        I=I+(1)
10100 WORD=RT(GCTOL(STR,I,8),16)
      IF((STR(I).NE.174))GOTO 10101
        BIT=GCTOL(STR,I,8)
10101 CTOA=XOR(FAULT,RING,SEG,WORD)
      RETURN
      END
      REAL * 8 FUNCTION CTOD(STR,I)
      INTEGER STR(1)
      INTEGER I
      INTEGER J,S,PE(28)
      INTEGER GCTOI
      REAL * 8 V,E,PV(28)
      INTEGER DIG(16)
      LOGICAL NEG
      DATA PV/1D1,1D2,1D4,1D8,1D16,1D32,1D64,1D128,1D256,1D512,1D1024,1D
     *2048,1D4096,1D8192,1D-1,1D-2,1D-4,1D-8,1D-16,1D-32,1D-64,1D-128,1D
     *-256,1D-512,1D-1024,1D-2048,1D-4096,1D-8192/
      DATA PE/1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,-1,-2,-4,
     *-8,-16,-32,-64,-128,-256,-512,-1024,-2048,-4096,-8192/
10102 IF((STR(I).NE.160))GOTO 10103
        I=I+(1)
      GOTO 10102
10103 NEG=(STR(I).EQ.173)
      IF((STR(I).EQ.171))GOTO 10105
      IF((STR(I).EQ.173))GOTO 10105
      GOTO 10104
10105   I=I+(1)
10104 CONTINUE
10106 IF((STR(I).NE.176))GOTO 10107
        I=I+(1)
      GOTO 10106
10107 J=1
      GOTO 10110
10108 J=J+(1)
      I=I+(1)
10110 IF((J.GE.16))GOTO 10109
      IF((176.GT.STR(I)))GOTO 10109
      IF((STR(I).GT.185))GOTO 10109
        DIG(J)=STR(I)
      GOTO 10108
10109 S=0
      GOTO 10113
10111 S=S+(1)
      I=I+(1)
10113 IF((176.GT.STR(I)))GOTO 10112
      IF((STR(I).GT.185))GOTO 10112
      GOTO 10111
10112 IF((STR(I).NE.174))GOTO 10114
        I=I+(1)
        IF((J.NE.1))GOTO 10120
10116     IF((STR(I).NE.176))GOTO 10117
            I=I+(1)
            S=S-(1)
          GOTO 10116
10117   CONTINUE
10115   GOTO 10120
10118   J=J+(1)
        I=I+(1)
10120   IF((J.GE.16))GOTO 10119
        IF((176.GT.STR(I)))GOTO 10119
        IF((STR(I).GT.185))GOTO 10119
          DIG(J)=STR(I)
          S=S-(1)
        GOTO 10118
10119   CONTINUE
10121   IF((176.GT.STR(I)))GOTO 10122
        IF((STR(I).GT.185))GOTO 10122
          I=I+(1)
        GOTO 10121
10122 CONTINUE
10114 CONTINUE
10123 IF((J.LE.1))GOTO 10124
      IF((DIG(J-1).NE.176))GOTO 10124
        S=S+(1)
        J=J-(1)
      GOTO 10123
10124 DIG(J)=0
      IF((STR(I).EQ.229))GOTO 10126
      IF((STR(I).EQ.197))GOTO 10126
      GOTO 10125
10126   I=I+(1)
        S=S+(GCTOI(STR,I,10))
10125 V=0.0
      J=1
      GOTO 10129
10127 J=J+(1)
10129 IF((DIG(J).EQ.0))GOTO 10128
        V=V*10.0+(DIG(J)-176)
      GOTO 10127
10128 E=1.0
      GOTO 10130
10131   J=14
        GOTO 10134
10132   J=J-(1)
10134   IF((J.LE.0))GOTO 10136
          IF((S.LT.PE(J)))GOTO 10132
            S=S-(PE(J))
            E=E*(PV(J))
10135   GOTO 10132
10137   J=28
        GOTO 10140
10138   J=J-(1)
10140   IF((J.LE.14))GOTO 10136
          IF((S.GT.PE(J)))GOTO 10138
            S=S-(PE(J))
            E=E*(PV(J))
10141   GOTO 10138
10136   CTOD=V*E
      GOTO 10142
10130 IF((S.GT.0))GOTO 10131
      IF((S.LT.0))GOTO 10137
        CTOD=V
10142 IF((.NOT.NEG))GOTO 10143
        CTOD=-CTOD
10143 RETURN
      END
      INTEGER FUNCTION CTOI(STR,I)
      INTEGER STR(1)
      INTEGER I
10144 IF((STR(I).NE.160))GOTO 10145
        I=I+(1)
      GOTO 10144
10145 CTOI=0
      GOTO 10148
10146 I=I+(1)
10148 IF((176.GT.STR(I)))GOTO 10147
      IF((STR(I).GT.185))GOTO 10147
        CTOI=10*CTOI+(STR(I)-176)
      GOTO 10146
10147 RETURN
      END
      INTEGER * 4 FUNCTION CTOL(STR,I)
      INTEGER STR(1)
      INTEGER I
10149 IF((STR(I).NE.160))GOTO 10150
        I=I+(1)
      GOTO 10149
10150 CTOL=0
      GOTO 10153
10151 I=I+(1)
10153 IF((176.GT.STR(I)))GOTO 10152
      IF((STR(I).GT.185))GOTO 10152
        CTOL=10*CTOL+(STR(I)-176)
      GOTO 10151
10152 RETURN
      END
      INTEGER FUNCTION CTOMN(C,REP)
      INTEGER C,REP(4)
      INTEGER I
      INTEGER SCOPY
      INTEGER MNPOS(35)
      INTEGER MNTEXT(122)
      DATA MNTEXT/206,213,204,0,211,207,200,0,211,212,216,0,197,212,216,
     *0,197,207,212,0,197,206,209,0,193,195,203,0,194,197,204,0,194,211,
     *0,200,212,0,204,198,0,214,212,0,198,198,0,195,210,0,211,207,0,211,
     *201,0,196,204,197,0,196,195,177,0,196,195,178,0,196,195,179,0,196,
     *195,180,0,206,193,203,0,211,217,206,0,197,212,194,0,195,193,206,0,
     *197,205,0,211,213,194,0,197,211,195,0,198,211,0,199,211,0,210,211,
     *0,213,211,0,211,208,0,196,197,204,0/
      DATA MNPOS/34,1,5,9,13,17,21,25,29,33,36,39,42,45,48,51,54,57,61,6
     *5,69,73,77,81,85,89,93,96,100,104,107,110,113,116,119/
      I=AND(C,127)
      IF((0.GT.I))GOTO 10154
      IF((I.GT.32))GOTO 10154
        CTOMN=SCOPY(MNTEXT,MNPOS(I+2),REP,1)
        RETURN
10154   IF((I.NE.127))GOTO 10155
          CTOMN=SCOPY(MNTEXT,MNPOS(33+2),REP,1)
          RETURN
10155     REP(1)=C
          REP(2)=0
          CTOMN=1
          RETURN
      END
      INTEGER FUNCTION CTOP(STR,I,PSTR,LEN)
      INTEGER STR(1)
      INTEGER I,PSTR(1),LEN
      INTEGER MAX
      MAX=LEN*2
      CTOP=0
      GOTO 10158
10156 I=I+(1)
10158 IF((STR(I).EQ.0))GOTO 10157
      IF((CTOP.GE.MAX))GOTO 10157
        IF((AND(CTOP,1).NE.0))GOTO 10159
          PSTR(RS(CTOP,1)+1)=XOR(LS(STR(I),8),RT(PSTR(RS(CTOP,1)+1),8))
          GOTO 10160
10159     PSTR(RS(CTOP,1)+1)=XOR(LT(PSTR(RS(CTOP,1)+1),8),STR(I))
10160   CTOP=CTOP+(1)
      GOTO 10156
10157 RETURN
      END
      REAL FUNCTION CTOR(STR,I)
      INTEGER STR(1)
      INTEGER I
      REAL * 8 CTOD
      CTOR=CTOD(STR,I)
      RETURN
      END
      INTEGER FUNCTION CTOV(STR,I,VAR,LEN)
      INTEGER STR(1)
      INTEGER I,VAR(1),LEN
      INTEGER MAX
      MAX=(LEN-1)*2+2
      CTOV=2
      GOTO 10163
10161 I=I+(1)
10163 IF((STR(I).EQ.0))GOTO 10162
      IF((CTOV.GE.MAX))GOTO 10162
        IF((AND(CTOV,1).NE.0))GOTO 10164
          VAR(RS(CTOV,1)+1)=XOR(LS(STR(I),8),RT(VAR(RS(CTOV,1)+1),8))
          GOTO 10165
10164     VAR(RS(CTOV,1)+1)=XOR(LT(VAR(RS(CTOV,1)+1),8),STR(I))
10165   CTOV=CTOV+(1)
      GOTO 10161
10162 CTOV=CTOV-(2)
      VAR(1)=CTOV
      RETURN
      END
      INTEGER FUNCTION DATE(ITEM,STR)
      INTEGER ITEM
      INTEGER STR(1)
      INTEGER TD(28),DAY,MONTH,YEAR
      INTEGER ENCODE,PTOC,WKDAY,MAPUP
      INTEGER SNUM(2)
      INTEGER * 4 LNUM
      INTEGER IX(8)
      INTEGER DAYS(36)
      INTEGER IY(13)
      INTEGER MONTHS(86)
      INTEGER AAAAC0
      INTEGER AAAAD0(15)
      INTEGER AAAAE0(21)
      INTEGER AAAAF0(7)
      INTEGER AAAAG0(6)
      INTEGER AAAAH0(19)
      EQUIVALENCE (SNUM,LNUM)
      DATA DAYS/243,245,238,0,237,239,238,0,244,245,229,243,0,247,229,22
     *8,238,229,243,0,244,232,245,242,243,0,230,242,233,0,243,225,244,24
     *5,242,0/
      DATA IX/7,1,5,9,14,21,27,31/
      DATA MONTHS/202,225,238,245,225,242,249,0,198,229,226,242,245,225,
     *242,249,0,205,225,242,227,232,0,193,240,242,233,236,0,205,225,249,
     *0,202,245,238,229,0,202,245,236,249,0,193,245,231,245,243,244,0,21
     *1,229,240,244,229,237,226,229,242,0,207,227,244,239,226,229,242,0,
     *206,239,246,229,237,226,229,242,0,196,229,227,229,237,226,229,242,
     *0/
      DATA IY/12,1,9,18,24,30,34,39,44,51,61,69,78/
      DATA AAAAD0/170,172,178,240,175,170,172,178,240,175,170,172,178,24
     *0,0/
      DATA AAAAE0/170,178,172,172,176,233,186,170,178,172,172,176,233,18
     *6,170,178,172,172,176,233,0/
      DATA AAAAF0/170,179,172,172,176,233,0/
      DATA AAAAG0/170,243,228,225,249,0/
      DATA AAAAH0/170,243,228,225,249,172,160,170,243,160,170,233,172,16
     *0,177,185,170,233,0/
      IF((ITEM.LT.1))GOTO 10167
      IF((ITEM.GT.10))GOTO 10167
      GOTO 10166
10167   STR(1)=0
        DATE=0
        RETURN
10166 CALL TIMDAT(TD,12+16)
      AAAAC0=ITEM
      GOTO 10168
10169   DATE=ENCODE(STR,9,AAAAD0,TD(1),TD(2),TD(3))
        RETURN
10170   DATE=ENCODE(STR,9,AAAAE0,TD(4)/60,MOD(TD(4),60),TD(5))
        RETURN
10171   DATE=PTOC(TD(13),160,STR,33)
        RETURN
10172   DATE=ENCODE(STR,4,AAAAF0,TD(12))
        RETURN
10173   TD(1)=TD(1)-'00'
        TD(2)=TD(2)-'00'
        TD(3)=TD(3)-'00'
        DAY=RS(TD(2),8)*10+RT(TD(2),8)
        MONTH=RS(TD(1),8)*10+RT(TD(1),8)
        YEAR=RS(TD(3),8)*10+RT(TD(3),8)
        DATE=ENCODE(STR,20,AAAAG0,DAYS(IX(WKDAY(MONTH,DAY,YEAR)+1)))
        RETURN
10174   STR(1)=TD(12)
        DATE=0
        RETURN
10175   TD(1)=TD(1)-'00'
        TD(2)=TD(2)-'00'
        TD(3)=TD(3)-'00'
        DAY=RS(TD(2),8)*10+RT(TD(2),8)
        MONTH=RS(TD(1),8)*10+RT(TD(1),8)
        YEAR=RS(TD(3),8)*10+RT(TD(3),8)
        DATE=ENCODE(STR,50,AAAAH0,DAYS(IX(WKDAY(MONTH,DAY,YEAR)+1)),MONT
     *HS(IY(MONTH+1)),DAY,YEAR)
        STR(1)=MAPUP(STR(1))
        RETURN
10176   LNUM=TD(4)
        STR(1)=SNUM(1)
        STR(2)=SNUM(2)
        DATE=0
        RETURN
10177   LNUM=INTL(TD(4))*60+TD(5)
        STR(1)=SNUM(1)
        STR(2)=SNUM(2)
        DATE=0
        RETURN
10178   LNUM=(INTL(TD(4))*60+TD(5))*1000+(TD(6)*1000)/TD(11)
        STR(1)=SNUM(1)
        STR(2)=SNUM(2)
        DATE=0
        RETURN
10168 GOTO(10169,10170,10171,10172,10173,10174,10175,10176,10177,10178),
     *AAAAC0
      DATE=0
      RETURN
      END
      INTEGER FUNCTION DECODE(STR,SP,FMT,FP,AP,A1,A2,A3,A4,A5,A6,A7,A8,A
     *9,A10)
      INTEGER STR(1)
      INTEGER SP,FMT(1),FP,AP,A1(1),A2(1),A3(1),A4(1),A5(1),A6(1),A7(1),
     *A8(1),A9(1),A10(1)
      INTEGER CURSP,CURFP,CURAP
      INTEGER I,NUM,M,L,TP
      INTEGER DEFAU0,DEFAV0,DEFAW0
      INTEGER WIDTH,BASE,DELIM
      INTEGER CTOI,GCTOI,LENGTH
      INTEGER * 4 LN
      INTEGER * 4 CTOA,GCTOL
      INTEGER TERM,TMP(200)
      REAL LR
      REAL CTOR
      REAL * 8 LD
      REAL * 8 CTOD
      INTEGER AAAAI0
      INTEGER AAAAJ0
      INTEGER AAAAK0
      INTEGER AAAAL0
      INTEGER AAAAM0
      INTEGER AAAAN0
      INTEGER AAAAO0
      INTEGER AAAAP0
      INTEGER AAAAQ0
      INTEGER AAAAR0
      INTEGER AAAAS0
      INTEGER AAAAT0
      INTEGER AAAAU0
      INTEGER AAAAV0
      INTEGER AAAAW0
      INTEGER AAAAX0
      INTEGER AAAAY0
      INTEGER AAAAZ0
      INTEGER AAABA0
      INTEGER AAABB0
      INTEGER AAABC0
      LOGICAL NEG
      INTEGER AAABD0
      INTEGER AAABE0
      INTEGER AAABF0
      INTEGER AAABG0
      INTEGER AAABH0
      INTEGER AAABI0
      INTEGER AAABJ0
      INTEGER AAABK0
      INTEGER AAABL0
      INTEGER AAABM0
      INTEGER AAABN0
      DEFAU0=0
      DEFAV0=0
      DEFAW0=160
      GOTO 10199
10197 FP=FP+(1)
10199 IF((FMT(FP).EQ.0))GOTO 10198
        CURFP=FP
        CURSP=SP
        CURAP=AP
        IF((FMT(FP).EQ.170))GOTO 10200
          GOTO 10197
10200     AAAAI0=1
          GOTO 10179
10202     AAABA0=FMT(FP)
          GOTO 10203
10204       AP=WIDTH
          GOTO 10205
10206       DEFAU0=WIDTH
            DEFAV0=BASE
            DEFAW0=DELIM
          GOTO 10205
10207       AAAAP0=1
            GOTO 10186
10209       AAAAP0=2
            GOTO 10186
10211       AAAAQ0=1
            GOTO 10187
10213       AAAAR0=1
            GOTO 10188
10215       TERM=174
            AAAAN0=1
            GOTO 10184
10217       TERM=0
            AAAAN0=2
            GOTO 10184
10219       AAAAO0=1
            GOTO 10185
10221       AAAAS0=1
            GOTO 10189
10223       AAAAT0=1
            GOTO 10190
10225       AAAAU0=1
            GOTO 10191
10227       AAAAV0=1
            GOTO 10192
10229       AAAAW0=1
            GOTO 10193
10231       AAAAX0=1
            GOTO 10194
10233       AAAAY0=1
            GOTO 10195
10203     AAABB0=AAABA0-224
          GOTO(10213,10207,10235,10229,10235,10229,10204,10217,10223,   
     *  10235,10235,10225,10235,10231,10235,10215,10235,10227,10219,    
     * 10211,10206,10221,10235,10233,10209),AAABB0
10235     CONTINUE
10205   CONTINUE
10201 GOTO 10197
10198 DECODE=-1
      RETURN
10179 FP=FP+(1)
      IF((FMT(FP).NE.172))GOTO 10236
        WIDTH=DEFAU0
        GOTO 10237
10236   IF((FMT(FP).EQ.163))GOTO 10238
          AAAAK0=1
          GOTO 10181
10239     WIDTH=NUM
          GOTO 10240
10238     AAAAJ0=1
          GOTO 10180
10241     WIDTH=NUM
          FP=FP+(1)
10240 CONTINUE
10237 IF((FMT(FP).EQ.172))GOTO 10242
        BASE=DEFAV0
        GOTO 10243
10242   FP=FP+(1)
        IF((FMT(FP).EQ.163))GOTO 10244
          AAAAK0=2
          GOTO 10181
10245     BASE=NUM
          GOTO 10246
10244     AAAAJ0=2
          GOTO 10180
10247     BASE=NUM
          FP=FP+(1)
10246 CONTINUE
10243 IF((FMT(FP).EQ.172))GOTO 10248
        DELIM=DEFAW0
        GOTO 10202
10248   IF((FMT(FP+1).EQ.163))GOTO 10250
          DELIM=FMT(FP+1)
          FP=FP+(2)
          GOTO 10251
10250     IF((FMT(FP+2).NE.163))GOTO 10252
            DELIM=163
            FP=FP+(3)
            GOTO 10253
10252       AAAAJ0=3
            GOTO 10180
10254       DELIM=NUM
            FP=FP+(2)
10253   CONTINUE
10251 CONTINUE
10249 GOTO 10202
10180 AAABC0=AP
      GOTO 10256
10257   NUM=A1(1)
      GOTO 10258
10259   NUM=A2(1)
      GOTO 10258
10260   NUM=A3(1)
      GOTO 10258
10261   NUM=A4(1)
      GOTO 10258
10262   NUM=A5(1)
      GOTO 10258
10263   NUM=A6(1)
      GOTO 10258
10264   NUM=A7(1)
      GOTO 10258
10265   NUM=A8(1)
      GOTO 10258
10266   NUM=A9(1)
      GOTO 10258
10267   NUM=A10(1)
      GOTO 10258
10256 GOTO(10257,10259,10260,10261,10262,10263,10264,10265,10266,10267),
     *AAABC0
        AAAAZ0=1
        GOTO 10196
10268 CONTINUE
10258 AP=AP+(1)
      GOTO 10269
10181 NEG=(FMT(FP).EQ.173)
      IF((FMT(FP).EQ.171))GOTO 10271
      IF((FMT(FP).EQ.173))GOTO 10271
      GOTO 10270
10271   FP=FP+(1)
10270 NUM=CTOI(FMT,FP)
      IF((.NOT.NEG))GOTO 10273
        NUM=-NUM
10272 GOTO 10273
10182 FP=CURFP
      SP=CURSP
      AP=CURAP
      DECODE=-3
      RETURN
10183 IF((WIDTH.LE.0))GOTO 10274
        TP=1
        GOTO 10277
10275   TP=TP+(1)
        SP=SP+(1)
10277   IF((TP.GT.WIDTH))GOTO 10282
        IF((TP.GT.200))GOTO 10282
          IF((STR(SP).EQ.138))GOTO 10282
          IF((STR(SP).EQ.0))GOTO 10282
          GOTO 10278
10278     TMP(TP)=STR(SP)
        GOTO 10275
10280   TP=TP+(1)
10282   IF((TP.GT.WIDTH))GOTO 10281
        IF((TP.GE.200))GOTO 10281
          TMP(TP)=160
        GOTO 10280
10281   TMP(TP)=0
        GOTO 10293
10274   IF((DELIM.NE.160))GOTO 10284
10285     IF((STR(SP).NE.160))GOTO 10286
            SP=SP+(1)
          GOTO 10285
10286   CONTINUE
10284   TP=1
        GOTO 10289
10287   TP=TP+(1)
        SP=SP+(1)
10289   IF((TP.GE.200))GOTO 10288
          IF((STR(SP).EQ.138))GOTO 10288
          IF((STR(SP).EQ.0))GOTO 10288
          IF((STR(SP).EQ.DELIM))GOTO 10288
          GOTO 10290
10290     TMP(TP)=STR(SP)
        GOTO 10287
10288   TMP(TP)=0
        IF((STR(SP).NE.DELIM))GOTO 10292
          SP=SP+(1)
10292 CONTINUE
10283 GOTO 10293
10184 AAAAM0=1
      GOTO 10183
10294 IF((BASE.NE.0))GOTO 10295
        M=102
        GOTO 10296
10295   M=BASE
10296 TMP(TP)=TERM
      TMP(TP+1)=0
      I=1
      AAABD0=AP
      GOTO 10297
10298   CALL CTOP(TMP,I,A1,M)
      GOTO 10299
10300   CALL CTOP(TMP,I,A2,M)
      GOTO 10299
10301   CALL CTOP(TMP,I,A3,M)
      GOTO 10299
10302   CALL CTOP(TMP,I,A4,M)
      GOTO 10299
10303   CALL CTOP(TMP,I,A5,M)
      GOTO 10299
10304   CALL CTOP(TMP,I,A6,M)
      GOTO 10299
10305   CALL CTOP(TMP,I,A7,M)
      GOTO 10299
10306   CALL CTOP(TMP,I,A8,M)
      GOTO 10299
10307   CALL CTOP(TMP,I,A9,M)
      GOTO 10299
10308   CALL CTOP(TMP,I,A10,M)
      GOTO 10299
10297 GOTO(10298,10300,10301,10302,10303,10304,10305,10306,10307,10308),
     *AAABD0
        AAAAZ0=2
        GOTO 10196
10309 CONTINUE
10299 AP=AP+(1)
      GOTO 10310
10185 AAAAM0=2
      GOTO 10183
10311 IF((BASE.NE.0))GOTO 10312
        M=102
        GOTO 10313
10312   M=BASE
10313 AAABE0=AP
      GOTO 10314
10315   CALL CTOC(TMP,A1,M)
      GOTO 10316
10317   CALL CTOC(TMP,A2,M)
      GOTO 10316
10318   CALL CTOC(TMP,A3,M)
      GOTO 10316
10319   CALL CTOC(TMP,A4,M)
      GOTO 10316
10320   CALL CTOC(TMP,A5,M)
      GOTO 10316
10321   CALL CTOC(TMP,A6,M)
      GOTO 10316
10322   CALL CTOC(TMP,A7,M)
      GOTO 10316
10323   CALL CTOC(TMP,A8,M)
      GOTO 10316
10324   CALL CTOC(TMP,A9,M)
      GOTO 10316
10325   CALL CTOC(TMP,A10,M)
      GOTO 10316
10314 GOTO(10315,10317,10318,10319,10320,10321,10322,10323,10324,10325),
     *AAABE0
        AAAAZ0=3
        GOTO 10196
10326 CONTINUE
10316 AP=AP+(1)
      GOTO 10205
10186 AAAAM0=3
      GOTO 10183
10328 TP=1
10329 IF((TMP(TP).NE.160))GOTO 10330
        TP=TP+(1)
      GOTO 10329
10330 AAABF0=TMP(TP)
      GOTO 10331
10332   IF((BASE.NE.0))GOTO 10333
          M=0
          GOTO 10335
10333     M=1
10334 GOTO 10335
10336   M=1
      GOTO 10335
10337   M=0
      GOTO 10335
10331 IF(AAABF0.EQ.0)GOTO 10332
      AAABG0=AAABF0-175
      GOTO(10337,10336),AAABG0
      IF(AAABF0.EQ.198)GOTO 10337
      AAABG0=AAABF0-205
      GOTO(10337,10336,10338,10338,10338,10338,10336,10338,10338,10338, 
     *    10338,10336,10338,10338,10338,10338,10338,10338,10338,10338,  
     *   10338,10338,10338,10338,10337,10338,10338,10338,10338,10338,   
     *  10338,10338,10337,10336,10338,10338,10338,10338,10336,10338,    
     * 10338,10338,10338,10336),AAABG0
10338   AAAAL0=1
        GOTO 10182
10339 CONTINUE
10335 AAABH0=AP
      GOTO 10340
10341   A1(1)=M
      GOTO 10342
10343   A2(1)=M
      GOTO 10342
10344   A3(1)=M
      GOTO 10342
10345   A4(1)=M
      GOTO 10342
10346   A5(1)=M
      GOTO 10342
10347   A6(1)=M
      GOTO 10342
10348   A7(1)=M
      GOTO 10342
10349   A8(1)=M
      GOTO 10342
10350   A9(1)=M
      GOTO 10342
10351   A10(1)=M
      GOTO 10342
10340 GOTO(10341,10343,10344,10345,10346,10347,10348,10349,10350,10351),
     *AAABH0
        AAAAZ0=4
        GOTO 10196
10352 CONTINUE
10342 AP=AP+(1)
      GOTO 10353
10187 M=LENGTH(STR)
      IF((WIDTH.GT.M))GOTO 10354
        SP=WIDTH
        GOTO 10205
10354   SP=M
10355 GOTO 10205
10188 AAAAM0=4
      GOTO 10183
10357 I=1
      LN=CTOA(TMP,I)
10358 IF((TMP(I).NE.160))GOTO 10359
        I=I+(1)
      GOTO 10358
10359 IF((TMP(I).EQ.0))GOTO 10360
        AAAAL0=2
        GOTO 10182
10361 CONTINUE
10360 AAABI0=AP
      GOTO 10362
10363   CALL MOVE$(LN,A1,2)
      GOTO 10364
10365   CALL MOVE$(LN,A2,2)
      GOTO 10364
10366   CALL MOVE$(LN,A3,2)
      GOTO 10364
10367   CALL MOVE$(LN,A4,2)
      GOTO 10364
10368   CALL MOVE$(LN,A5,2)
      GOTO 10364
10369   CALL MOVE$(LN,A6,2)
      GOTO 10364
10370   CALL MOVE$(LN,A7,2)
      GOTO 10364
10371   CALL MOVE$(LN,A8,2)
      GOTO 10364
10372   CALL MOVE$(LN,A9,2)
      GOTO 10364
10373   CALL MOVE$(LN,A10,2)
      GOTO 10364
10362 GOTO(10363,10365,10366,10367,10368,10369,10370,10371,10372,10373),
     *AAABI0
        AAAAZ0=5
        GOTO 10196
10374 CONTINUE
10364 AP=AP+(1)
      GOTO 10205
10189 AAAAM0=5
      GOTO 10183
10376 IF((BASE.NE.0))GOTO 10377
        M=102
        GOTO 10378
10377   M=BASE
10378 I=1
      AAABJ0=AP
      GOTO 10379
10380   CALL CTOV(TMP,I,A1,M)
      GOTO 10381
10382   CALL CTOV(TMP,I,A2,M)
      GOTO 10381
10383   CALL CTOV(TMP,I,A3,M)
      GOTO 10381
10384   CALL CTOV(TMP,I,A4,M)
      GOTO 10381
10385   CALL CTOV(TMP,I,A5,M)
      GOTO 10381
10386   CALL CTOV(TMP,I,A6,M)
      GOTO 10381
10387   CALL CTOV(TMP,I,A7,M)
      GOTO 10381
10388   CALL CTOV(TMP,I,A8,M)
      GOTO 10381
10389   CALL CTOV(TMP,I,A9,M)
      GOTO 10381
10390   CALL CTOV(TMP,I,A10,M)
      GOTO 10381
10379 GOTO(10380,10382,10383,10384,10385,10386,10387,10388,10389,10390),
     *AAABJ0
        AAAAZ0=6
        GOTO 10196
10391 CONTINUE
10381 AP=AP+(1)
      GOTO 10205
10190 AAAAM0=6
      GOTO 10183
10393 IF((BASE.NE.0))GOTO 10394
        BASE=10
10394 I=1
      L=GCTOI(TMP,I,BASE)
10395 IF((TMP(I).NE.160))GOTO 10396
        I=I+(1)
      GOTO 10395
10396 IF((TMP(I).EQ.0))GOTO 10397
        AAAAL0=3
        GOTO 10182
10398 CONTINUE
10397 AAABK0=AP
      GOTO 10399
10400   A1(1)=L
      GOTO 10401
10402   A2(1)=L
      GOTO 10401
10403   A3(1)=L
      GOTO 10401
10404   A4(1)=L
      GOTO 10401
10405   A5(1)=L
      GOTO 10401
10406   A6(1)=L
      GOTO 10401
10407   A7(1)=L
      GOTO 10401
10408   A8(1)=L
      GOTO 10401
10409   A9(1)=L
      GOTO 10401
10410   A10(1)=L
      GOTO 10401
10399 GOTO(10400,10402,10403,10404,10405,10406,10407,10408,10409,10410),
     *AAABK0
        AAAAZ0=7
        GOTO 10196
10411 CONTINUE
10401 AP=AP+(1)
      GOTO 10205
10191 AAAAM0=7
      GOTO 10183
10413 IF((BASE.NE.0))GOTO 10414
        BASE=10
10414 I=1
      LN=GCTOL(TMP,I,BASE)
10415 IF((TMP(I).NE.160))GOTO 10416
        I=I+(1)
      GOTO 10415
10416 IF((TMP(I).EQ.0))GOTO 10417
        AAAAL0=4
        GOTO 10182
10418 CONTINUE
10417 AAABL0=AP
      GOTO 10419
10420   CALL MOVE$(LN,A1,2)
      GOTO 10421
10422   CALL MOVE$(LN,A2,2)
      GOTO 10421
10423   CALL MOVE$(LN,A3,2)
      GOTO 10421
10424   CALL MOVE$(LN,A4,2)
      GOTO 10421
10425   CALL MOVE$(LN,A5,2)
      GOTO 10421
10426   CALL MOVE$(LN,A6,2)
      GOTO 10421
10427   CALL MOVE$(LN,A7,2)
      GOTO 10421
10428   CALL MOVE$(LN,A8,2)
      GOTO 10421
10429   CALL MOVE$(LN,A9,2)
      GOTO 10421
10430   CALL MOVE$(LN,A10,2)
      GOTO 10421
10419 GOTO(10420,10422,10423,10424,10425,10426,10427,10428,10429,10430),
     *AAABL0
        AAAAZ0=8
        GOTO 10196
10431 CONTINUE
10421 AP=AP+(1)
      GOTO 10205
10192 AAAAM0=8
      GOTO 10183
10433 I=1
      LR=CTOR(TMP,I)
10434 IF((TMP(I).NE.160))GOTO 10435
        I=I+(1)
      GOTO 10434
10435 IF((TMP(I).EQ.0))GOTO 10436
        AAAAL0=5
        GOTO 10182
10437 CONTINUE
10436 AAABM0=AP
      GOTO 10438
10439   CALL MOVE$(LR,A1,2)
      GOTO 10440
10441   CALL MOVE$(LR,A2,2)
      GOTO 10440
10442   CALL MOVE$(LR,A3,2)
      GOTO 10440
10443   CALL MOVE$(LR,A4,2)
      GOTO 10440
10444   CALL MOVE$(LR,A5,2)
      GOTO 10440
10445   CALL MOVE$(LR,A6,2)
      GOTO 10440
10446   CALL MOVE$(LR,A7,2)
      GOTO 10440
10447   CALL MOVE$(LR,A8,2)
      GOTO 10440
10448   CALL MOVE$(LR,A9,2)
      GOTO 10440
10449   CALL MOVE$(LR,A10,2)
      GOTO 10440
10438 GOTO(10439,10441,10442,10443,10444,10445,10446,10447,10448,10449),
     *AAABM0
        AAAAZ0=9
        GOTO 10196
10450 CONTINUE
10440 AP=AP+(1)
      GOTO 10205
10193 AAAAM0=9
      GOTO 10183
10452 I=1
      LD=CTOD(TMP,I)
10453 IF((TMP(I).NE.160))GOTO 10454
        I=I+(1)
      GOTO 10453
10454 IF((TMP(I).EQ.0))GOTO 10455
        AAAAL0=6
        GOTO 10182
10456 CONTINUE
10455 AAABN0=AP
      GOTO 10457
10458   CALL MOVE$(LD,A1,4)
      GOTO 10459
10460   CALL MOVE$(LD,A2,4)
      GOTO 10459
10461   CALL MOVE$(LD,A3,4)
      GOTO 10459
10462   CALL MOVE$(LD,A4,4)
      GOTO 10459
10463   CALL MOVE$(LD,A5,4)
      GOTO 10459
10464   CALL MOVE$(LD,A6,4)
      GOTO 10459
10465   CALL MOVE$(LD,A7,4)
      GOTO 10459
10466   CALL MOVE$(LD,A8,4)
      GOTO 10459
10467   CALL MOVE$(LD,A9,4)
      GOTO 10459
10468   CALL MOVE$(LD,A10,4)
      GOTO 10459
10457 GOTO(10458,10460,10461,10462,10463,10464,10465,10466,10467,10468),
     *AAABN0
        AAAAZ0=10
        GOTO 10196
10469 CONTINUE
10459 AP=AP+(1)
      GOTO 10205
10195 AAAAM0=10
      GOTO 10183
10194 IF((WIDTH.GT.0))GOTO 10473
        IF((STR(SP).NE.138))GOTO 10475
          SP=SP+(1)
10474   GOTO 10475
10473   I=1
10476     CONTINUE
10477     IF((STR(SP).EQ.138))GOTO 10478
          IF((STR(SP).EQ.0))GOTO 10478
            SP=SP+(1)
          GOTO 10477
10478     IF((STR(SP).NE.138))GOTO 10479
            SP=SP+(1)
10479     I=I+(1)
        IF((I.LE.WIDTH))GOTO 10476
10475 IF((STR(SP).NE.0))GOTO 10205
      IF((FMT(FP+1).EQ.0))GOTO 10205
        FP=FP+(1)
        DECODE=-2
        RETURN
10196 CALL REMARK('in decode: attempt to use more than 10 fields.')
      TMP(1)=0
      GOTO 10482
10269 GOTO(10241,10247,10254),AAAAJ0
      GOTO 10269
10310 GOTO(10205,10205),AAAAN0
      GOTO 10310
10293 GOTO(10294,10311,10328,10357,10376,10393,10413,10433,10452,10205),
     *AAAAM0
      GOTO 10293
10273 GOTO(10239,10245),AAAAK0
      GOTO 10273
10483 GOTO(10339,10361,10398,10418,10437,10456),AAAAL0
      GOTO 10483
10482 GOTO(10268,10309,10326,10352,10374,10391,10411,10431,10450,10469),
     *AAAAZ0
      GOTO 10482
10353 GOTO(10205,10205),AAAAP0
      GOTO 10353
      END
      INTEGER FUNCTION DELARG(AP)
      INTEGER AP
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((AP.LT.0))GOTO 10485
      IF((AP.GE.ARGCA0))GOTO 10485
      GOTO 10484
10485   DELARG=-1
        RETURN
10484 I=AP+1
      GOTO 10488
10486 I=I+(1)
10488 IF((I.GE.ARGCA0))GOTO 10487
        ARGVA0(I)=ARGVA0(I+1)
      GOTO 10486
10487 ARGCA0=ARGCA0-(1)
      DELARG=-2
      RETURN
      END
      SUBROUTINE DELETE(SYMBOL,ST)
      INTEGER SYMBOL(1)
      INTEGER ST
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER ST$LU
      INTEGER NODE,PRED
      IF((ST$LU(SYMBOL,NODE,PRED,ST).NE.1))GOTO 10489
        MEMAA0(PRED+0)=MEMAA0(NODE+0)
        CALL DSFREE(NODE)
10489 RETURN
      END
      INTEGER * 4 FUNCTION DMARK$(F)
      INTEGER F
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER JUNK
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      CALL PRWF$$(:5,FDUNI0(F),INTL(0),0,DMARK$,JUNK,ERRCO0)
      IF((ERRCO0.EQ.0))GOTO 10490
        DMARK$=-3
        RETURN
10490 RETURN
      END
      SUBROUTINE DMPCM$(FD)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I,TBPPTR(2),TRTPTR(2)
      INTEGER ESTR(102),KSTR(102),NLSTR(102)
      INTEGER EOFSTR(102),ESCSTR(102),RTSTR(102)
      INTEGER AAABO0(30)
      INTEGER AAABP0(44)
      INTEGER AAABQ0(44)
      INTEGER AAABR0(44)
      INTEGER AAABS0(18)
      INTEGER AAABT0(15)
      INTEGER AAABU0(5)
      INTEGER AAABV0(3)
      INTEGER AAABW0(42)
      INTEGER AAABX0(35)
      INTEGER AAABY0(43)
      INTEGER AAABZ0(31)
      INTEGER AAACA0(13)
      INTEGER AAACB0(4)
      INTEGER AAACC0(3)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAABO0/211,239,230,244,247,225,242,229,160,212,239,239,236,24
     *3,160,195,239,237,237,239,238,160,193,242,229,225,186,170,238,0/
      DATA AAABP0/160,160,197,227,232,225,242,186,160,170,180,243,160,16
     *0,160,160,203,227,232,225,242,186,160,170,180,243,160,160,160,160,
     *206,236,227,232,225,242,186,160,170,180,243,170,238,0/
      DATA AAABQ0/160,160,197,239,230,227,232,225,242,186,160,170,180,24
     *3,160,160,197,243,227,227,232,225,242,186,160,170,180,243,160,160,
     *210,244,227,232,225,242,186,160,170,180,243,170,238,0/
      DATA AAABR0/160,160,201,243,240,232,225,238,244,239,237,186,160,17
     *0,180,249,160,160,195,240,245,244,249,240,229,186,160,170,233,160,
     *160,197,242,242,227,239,228,186,160,170,233,170,238,0/
      DATA AAABS0/160,160,203,233,236,236,223,242,229,243,240,186,160,17
     *0,243,170,238,0/
      DATA AAABT0/160,160,211,244,228,240,239,242,244,244,226,236,186,16
     *0,0/
      DATA AAABU0/160,170,179,233,0/
      DATA AAABV0/170,238,0/
      DATA AAABW0/160,160,208,225,243,243,247,228,186,160,170,182,243,16
     *0,160,208,242,244,228,229,243,244,186,160,170,243,160,160,208,242,
     *244,230,239,242,237,186,160,170,243,170,238,0/
      DATA AAABX0/160,160,194,240,236,225,226,229,236,186,160,170,225,16
     *0,170,225,160,160,210,244,236,225,226,229,236,186,160,170,225,160,
     *170,225,170,238,0/
      DATA AAABY0/160,160,195,237,228,243,244,225,244,186,160,170,233,16
     *0,160,195,239,237,245,238,233,244,186,160,170,233,160,160,198,233,
     *242,243,244,245,243,229,186,160,170,233,170,238,0/
      DATA AAABZ0/160,160,212,229,242,237,244,249,240,229,186,160,170,24
     *3,160,160,204,247,239,242,228,186,160,170,172,173,184,233,170,238,
     *0/
      DATA AAACA0/160,160,212,229,242,237,225,244,244,242,186,160,0/
      DATA AAACB0/160,170,249,0/
      DATA AAACC0/170,238,0/
      CALL CTOMN(ECHAR0,ESTR)
      CALL CTOMN(KCHAR0,KSTR)
      CALL CTOMN(NLCHA0,NLSTR)
      CALL CTOMN(EOFCH0,EOFSTR)
      CALL CTOMN(ESCCH0,ESCSTR)
      CALL CTOMN(RTCHA0,RTSTR)
      CALL PRINT(FD,AAABO0)
      CALL PRINT(FD,AAABP0,ESTR,KSTR,NLSTR)
      CALL PRINT(FD,AAABQ0,EOFSTR,ESCSTR,RTSTR)
      CALL PRINT(FD,AAABR0,ISPHA0,CPUTY0,ERRCO0)
      CALL PRINT(FD,AAABS0,KILLR0)
      CALL PRINT(FD,AAABT0)
      I=1
      GOTO 10493
10491 I=I+(1)
10493 IF((I.GT.6))GOTO 10492
        CALL PRINT(FD,AAABU0,STDPO0(I))
      GOTO 10491
10492 CALL PRINT(FD,AAABV0)
      CALL PRINT(FD,AAABW0,PASSW0,PRTDE0,PRTFO0)
      TBPPTR(1)=BPLAB0(2)
      TBPPTR(2)=BPLAB0(1)
      TRTPTR(1)=RTLAB0(2)
      TRTPTR(2)=RTLAB0(1)
      CALL PRINT(FD,AAABX0,TBPPTR(1),BPLAB0(3),TRTPTR(1),RTLAB0(3))
      CALL PRINT(FD,AAABY0,CMDST0,COMUN0,FIRST0)
      CALL PRINT(FD,AAABZ0,TERMT0,LWORD0)
      CALL PRINT(FD,AAACA0)
      I=1
      GOTO 10496
10494 I=I+(1)
10496 IF((I.GT.6))GOTO 10495
        CALL PRINT(FD,AAACB0,TERMA0(I))
      GOTO 10494
10495 CALL PRINT(FD,AAACC0)
      RETURN
      END
      SUBROUTINE DMPFD$(FD,OFD)
      INTEGER FD,OFD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER MFD
      INTEGER MAPSU
      INTEGER NAME(180)
      INTEGER F,JUNK
      INTEGER GFNAM$
      INTEGER * 4 POS
      INTEGER AAACE0
      INTEGER AAACF0(38)
      INTEGER AAACG0(14)
      INTEGER AAACH0(59)
      INTEGER AAACI0(66)
      INTEGER AAACJ0(41)
      INTEGER AAACD0
      INTEGER AAACK0,AAACL0,AAACM0,AAACN0
      INTEGER AAACO0(29)
      INTEGER AAACP0
      INTEGER AAACQ0(10)
      INTEGER AAACR0(10)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAACF0/196,245,237,240,160,239,230,160,230,233,236,229,160,22
     *8,229,243,227,242,233,240,244,239,242,160,170,233,160,225,244,160,
     *170,172,178,225,186,170,238,0/
      DATA AAACG0/160,225,244,160,247,239,242,228,160,170,236,170,238,0/
      DATA AAACH0/170,179,248,196,229,246,186,160,160,170,179,233,170,17
     *9,248,194,245,230,243,244,225,242,244,186,160,170,182,233,170,179,
     *248,194,245,230,229,238,228,186,160,170,182,233,170,179,248,194,22
     *7,239,245,238,244,186,160,170,179,233,170,238,0/
      DATA AAACI0/170,179,248,213,238,233,244,186,160,170,179,172,184,23
     *3,170,179,248,194,245,230,236,229,238,186,160,160,160,170,182,233,
     *170,179,248,195,239,245,238,244,186,160,160,170,182,233,170,179,24
     *8,198,236,225,231,243,186,160,160,170,182,172,173,184,172,176,233,
     *170,238,0/
      DATA AAACJ0/160,160,160,204,225,243,244,160,230,233,236,229,160,24
     *3,249,243,244,229,237,160,242,229,244,245,242,238,160,227,239,228,
     *229,160,247,225,243,160,170,233,170,238,0/
      DATA AAACO0/194,245,230,230,229,242,160,168,225,244,160,170,172,17
     *8,225,169,160,227,239,238,244,225,233,238,243,186,170,238,0/
      DATA AAACQ0/188,170,179,172,184,172,176,233,190,0/
      DATA AAACR0/188,170,179,172,184,172,176,233,190,0/
      MFD=MAPSU(FD)
      F=MFD*16-16+1
      CALL PRINT(OFD,AAACF0,MFD,LOC(FDESC0(F)))
      IF((GFNAM$(MFD,NAME,180).EQ.-3))GOTO 10498
        CALL PUTLIN(NAME,OFD)
        IF((FDDEV0(F).NE.2))GOTO 10499
          CALL PRWF$$(:5,FDUNI0(F),LOC(0),0,POS,0,JUNK)
          CALL PRINT(OFD,AAACG0,POS)
          GOTO 10500
10499     CALL PUTCH(138,OFD)
10500 CONTINUE
10498 CALL PRINT(OFD,AAACH0,FDDEV0(F),FDBUG0(F),FDBUI0(F),FDBCO0(F))
      CALL PRINT(OFD,AAACI0,FDUNI0(F),FDBUH0(F),FDCOU0(F),FDFLA0(F))
      CALL PRINT(OFD,AAACJ0,ERRCO0)
      IF((AND(FDFLA0(F),:000017).EQ.0))GOTO 10501
      IF((FDDEV0(F).NE.2))GOTO 10501
        AAACD0=F
        AAACE0=1
        GOTO 10497
10502 CONTINUE
10501 RETURN
10497 AAACK0=FDBUG0(AAACD0)
      CALL PRINT(OFD,AAACO0,LOC(FDBUF0(AAACK0+1)))
      AAACP0=AND(FDFLA0(AAACD0),:000017)
      GOTO 10503
10504   AAACL0=FDBUI0(AAACD0)
      GOTO 10509
10506   AAACL0=AAACK0+FDBUH0(AAACD0)+FDCOU0(AAACD0)
      GOTO 10509
10503 GOTO(10504,10506,10504,10506),AAACP0
        AAACL0=0
10505 GOTO 10509
10507 AAACK0=AAACK0+(1)
10509 IF((AAACK0.GE.AAACL0))GOTO 10508
        AAACM0=RS(FDBUF0(AAACK0+1),8)
        AAACN0=RT(FDBUF0(AAACK0+1),8)
        IF((AAACM0.LT.160))GOTO 10510
        IF((AAACM0.GE.255))GOTO 10510
          CALL PUTCH(AAACM0,OFD)
          GOTO 10511
10510     CALL PRINT(OFD,AAACQ0,AAACM0)
10511   IF((AAACN0.LT.160))GOTO 10512
        IF((AAACN0.GE.255))GOTO 10512
          CALL PUTCH(AAACN0,OFD)
          GOTO 10507
10512     CALL PRINT(OFD,AAACR0,AAACN0)
10513 GOTO 10507
10508 CALL PUTCH(138,OFD)
      GOTO 10502
      END
      SUBROUTINE DODASH(VALID,ARRAY,I,SET,J,MAXSET)
      INTEGER I,J,MAXSET
      INTEGER ARRAY(1),SET(MAXSET),VALID(1)
      INTEGER ESC
      INTEGER ADDSET,INDEX
      INTEGER JUNK,K,LIMIT
      I=I+(1)
      J=J-(1)
      LIMIT=INDEX(VALID,ESC(ARRAY,I))
      K=INDEX(VALID,SET(J))
      GOTO 10517
10515 K=K+(1)
10517 IF((K.GT.LIMIT))GOTO 10516
        JUNK=ADDSET(VALID(K),SET,J,MAXSET)
      GOTO 10515
10516 RETURN
      END
      INTEGER FUNCTION DOPEN$(PATH,FD,MODE,FTYPE,DELAY)
      INTEGER PATH(1)
      INTEGER FD
      INTEGER MODE,FTYPE,DELAY
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER AT,C,D,F,M,T,U,JUNK(3),FNAME(16)
      INTEGER GETTO
      LOGICAL MISSIN
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((GETTO(PATH,FNAME,JUNK,AT).NE.-3))GOTO 10518
        CALL AT$HOM(C)
        DOPEN$=-3
        RETURN
10518 IF((.NOT.MISSIN(DELAY)))GOTO 10519
        D=0
        GOTO 10520
10519   D=DELAY
10520 F=FD*16-16+1
      M=OR(MODE,:40000)
      CALL SRCH$$(M,FNAME,32,U,T,C)
10521 IF((D.EQ.0))GOTO 10522
      IF((C.NE.5))GOTO 10522
        CALL SLEEP$(INTL(500))
        CALL SRCH$$(M,FNAME,32,U,T,C)
        IF((D.EQ.-1))GOTO 10521
          D=D-(1)
10523 GOTO 10521
10522 ERRCO0=C
      IF((C.EQ.0))GOTO 10524
        IF((AT.NE.1))GOTO 10525
          CALL AT$HOM(C)
10525   DOPEN$=-3
        RETURN
10524 IF(MISSIN(FTYPE))GOTO 10526
        FTYPE=T
10526 IF((AT.NE.1))GOTO 10527
        CALL AT$HOM(C)
10527 FDUNI0(F)=U
      FDFLA0(F)=OR(FDFLA0(F),:002000+LS(RT(T,3),6))
      DOPEN$=FD
      RETURN
      END
      INTEGER FUNCTION DREAD$(BUF,NW,F)
      INTEGER BUF(1),NW,F
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER BP,BSIZE,BSTART,CT,N,NWR,OP,THRESH,U
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      N=NW
      OP=0
      U=FDUNI0(F)
      CT=-FDCOU0(F)
      BP=FDBUI0(F)-CT
      BSIZE=FDBUH0(F)
      BSTART=FDBUG0(F)
      THRESH=BSIZE/2
      ERRCO0=0
      GOTO 10528
10529   CALL MOVE$(FDBUF0(BP+1),BUF,N)
        CT=CT-(N)
        OP=N
        N=0
      GOTO 10532
10531   CALL MOVE$(FDBUF0(BP+1),BUF,CT)
        OP=CT
        N=N-(CT)
        CT=0
      GOTO 10532
10528 IF((CT.GE.N))GOTO 10529
      IF((CT.GT.0))GOTO 10531
10530 GOTO 10532
10533   CALL PRWF$$(:1,U,LOC(BUF(OP+1)),N,INTL(0),NWR,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 10535
        IF((ERRCO0.EQ.1))GOTO 10535
        GOTO 10536
10535     OP=OP+(NWR)
10534 GOTO 10536
10537   CALL PRWF$$(:1,U,LOC(FDBUF0(BSTART+1)),BSIZE,INTL(0),CT,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 10538
        IF((ERRCO0.EQ.1))GOTO 10538
          CT=0
10538   FDBUI0(F)=BSTART+CT
        IF((N.LE.CT))GOTO 10539
          N=CT
10539   CALL MOVE$(FDBUF0(BSTART+1),BUF(OP+1),N)
        CT=CT-(N)
        OP=OP+(N)
      GOTO 10536
10532 IF((N.GE.THRESH))GOTO 10533
      IF((N.GT.0))GOTO 10537
10536 FDCOU0(F)=-CT
      IF((ERRCO0.NE.1))GOTO 10540
        FDFLA0(F)=OR(FDFLA0(F),:010000)
        GOTO 10541
10540   IF((ERRCO0.EQ.0))GOTO 10542
          FDFLA0(F)=OR(FDFLA0(F),:004000)
10542 CONTINUE
10541 IF((OP.LE.0))GOTO 10543
        DREAD$=OP
        RETURN
10543 DREAD$=-1
      RETURN
      END
      SUBROUTINE DSDBIU(B,FORM)
      INTEGER B
      INTEGER FORM
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER L,S,LMAX
      CALL PRINT(-15,'*5i   *i words in use*n.',B,MEMAA0(B+0))
      L=0
      S=B+MEMAA0(B+0)
      IF((FORM.NE.176))GOTO 10544
        LMAX=5
        GOTO 10545
10544   LMAX=50
10545 B=B+(2)
      GOTO 10548
10546 B=B+(1)
10548 IF((B.GE.S))GOTO 10547
        IF((L.NE.0))GOTO 10549
          CALL PRINT(-15,'          .')
10549   IF((FORM.NE.176))GOTO 10550
          CALL PRINT(-15,' *10i.',MEMAA0(B))
          GOTO 10551
10550     IF((FORM.NE.225))GOTO 10552
            CALL PRINT(-15,'*c.',MEMAA0(B))
10552   CONTINUE
10551   L=L+(1)
        IF((L.LT.LMAX))GOTO 10546
          L=0
          CALL PRINT(-15,'*n.')
10553 GOTO 10546
10547 IF((L.EQ.0))GOTO 10554
        CALL PRINT(-15,'*n.')
10554 RETURN
      END
      SUBROUTINE DSDUMP(FORM)
      INTEGER FORM
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER P,T,Q
      T=2
      CALL PRINT(-15,'** DYNAMIC STORAGE DUMP ***n.')
      CALL PRINT(-15,'*5i   *i words in use*n.',1,2+1)
      P=MEMAA0(T+1)
10555 IF((P.EQ.0))GOTO 10556
        CALL PRINT(-15,'*5i   *i words available*n.',P,MEMAA0(P+0))
        Q=P+MEMAA0(P+0)
10557   IF((Q.EQ.MEMAA0(P+1)))GOTO 10558
        IF((Q.GE.MEMAA0(1)))GOTO 10558
          CALL DSDBIU(Q,FORM)
        GOTO 10557
10558   P=MEMAA0(P+1)
      GOTO 10555
10556 CALL PRINT(-15,'** END DUMP ***n.')
      RETURN
      END
      INTEGER FUNCTION DSEEK$(POS,F,RA)
      INTEGER * 4 POS
      INTEGER F,RA
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER JUNK
      INTEGER AAACS0
      INTEGER AAACT0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      AAACS0=RA
      GOTO 10559
10560   IF((POS.GE.0))GOTO 10561
          DSEEK$=-3
          RETURN
10561   CALL PRWF$$(:3+:10,FDUNI0(F),INTL(0),0,POS,JUNK,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 10563
          DSEEK$=-1
          RETURN
10564   CALL PRWF$$(:3+:0,FDUNI0(F),INTL(0),0,POS,JUNK,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 10563
          DSEEK$=-1
          RETURN
10559 AAACT0=AAACS0+1
      GOTO(10560,10564),AAACT0
        DSEEK$=-3
        RETURN
10563 DSEEK$=-2
      RETURN
      END
      SUBROUTINE DSFREE(BLOCK)
      INTEGER BLOCK
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER P0,P,Q
      INTEGER N
      INTEGER CON(10)
      P0=BLOCK-2
      N=MEMAA0(P0+0)
      Q=2
10566   P=MEMAA0(Q+1)
        IF((P.EQ.0))GOTO 10569
        IF((P.GT.P0))GOTO 10569
        GOTO 10567
10567   Q=P
      GOTO 10566
10569 IF((Q+MEMAA0(Q+0).LE.P0))GOTO 10570
        CALL REMARK('in dsfree:  attempt to free unallocated block.')
        CALL REMARK('type ''c'' to continue.')
        CALL GETLIN(CON,-14,10)
        IF((CON(1).EQ.227))GOTO 10571
        IF((CON(1).EQ.195))GOTO 10571
          CALL SWT
10571   RETURN
10570 IF(((P0+N.NE.P).OR.(P.EQ.0)))GOTO 10572
        N=N+MEMAA0(P+0)
        MEMAA0(P0+1)=MEMAA0(P+1)
        GOTO 10573
10572   MEMAA0(P0+1)=P
10573 IF((Q+MEMAA0(Q+0).NE.P0))GOTO 10574
        MEMAA0(Q+0)=MEMAA0(Q+0)+N
        MEMAA0(Q+1)=MEMAA0(P0+1)
        GOTO 10575
10574   MEMAA0(Q+1)=P0
        MEMAA0(P0+0)=N
10575 RETURN
      END
      INTEGER FUNCTION DSGET(W)
      INTEGER W
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER P,Q,L
      INTEGER N,K
      INTEGER C(10)
      INTEGER AAACU0
      INTEGER AAACV0
      N=W+2
      Q=2
10576   P=MEMAA0(Q+1)
        IF((P.NE.0))GOTO 10577
          CALL REMARK('in dsget: out of storage space.')
          CALL REMARK('type ''c'' or ''i'' for char or integer dump.')
          CALL GETLIN(C,-14,10)
          AAACU0=C(1)
          GOTO 10578
10579       CALL DSDUMP(225)
          GOTO 10580
10581       CALL DSDUMP(176)
          GOTO 10580
10578     AAACV0=AAACU0-194
          GOTO(10579,10582,10582,10582,10582,10582,10581),AAACV0
          AAACV0=AAACU0-226
          GOTO(10579,10582,10582,10582,10582,10582,10581),AAACV0
10582     CONTINUE
10580     CALL ERROR('program terminated.')
10577   IF((MEMAA0(P+0).LT.N))GOTO 10583
          GOTO 10584
10583   Q=P
      GOTO 10576
10584 K=MEMAA0(P+0)-N
      IF((K.LT.8))GOTO 10585
        MEMAA0(P+0)=K
        L=P+K
        MEMAA0(L+0)=N
        GOTO 10586
10585   MEMAA0(Q+1)=MEMAA0(P+1)
        L=P
10586 DSGET=L+2
      RETURN
      END
      SUBROUTINE DSINIT(W)
      INTEGER W
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER T
      IF((W.GE.2*2+2))GOTO 10587
        CALL ERROR('in dsinit: unreasonably small memory size.')
10587 T=2
      MEMAA0(T+0)=0
      MEMAA0(T+1)=2+2
      T=2+2
      MEMAA0(T+0)=W-2-1
      MEMAA0(T+1)=0
      MEMAA0(1)=W
      RETURN
      END
      INTEGER FUNCTION DTOC(VAL,OUT,W,D)
      REAL * 8 VAL
      INTEGER OUT(1)
      INTEGER W,D
      REAL * 8 V,PV(26),ROUND(14)
      INTEGER PE(26),I,E,J,LEN,NODIG0,MAXSI0
      LOGICAL NEG,SMALL,EXPFO0,BASIC0
      INTEGER DIGITS(17)
      INTEGER DIG(11)
      INTEGER ITOC
      DATA DIG/176,177,178,179,180,181,182,183,184,185,0/
      DATA PV/1D2,1D4,1D8,1D16,1D32,1D64,1D128,1D256,1D512,1D1024,1D2048
     *,1D4096,1D8192,1D-2,1D-4,1D-8,1D-16,1D-32,1D-64,1D-128,1D-256,1D-5
     *12,1D-1024,1D-2048,1D-4096,1D-8192/
      DATA PE/2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,-2,-4,-8,-1
     *6,-32,-64,-128,-256,-512,-1024,-2048,-4096,-8192/
      DATA ROUND/.05D0,.005D0,.0005D0,.00005D0,.000005D0,.0000005D0,.000
     *00005D0,.000000005D0,.0000000005D0,.00000000005D0,.000000000005D0,
     *.0000000000005D0,.00000000000005D0,.000000000000005D0/
      V=DABS(VAL)
      NEG=(VAL.LT.0.0)
      SMALL=(V.LT.0.1)
      E=-1
      IF((.NOT.SMALL))GOTO 10588
        I=26
        GOTO 10591
10589   I=I-(1)
10591   IF((I.LE.13))GOTO 10593
          IF((V.GE.PV(I)))GOTO 10589
            V=V/(PV(I))
            E=E+(PE(I))
10592   GOTO 10589
10588   I=13
        GOTO 10596
10594   I=I-(1)
10596   IF((I.LE.0))GOTO 10595
          IF((V.LT.PV(I)/10.0))GOTO 10594
            V=V/(PV(I))
            E=E+(PE(I))
10597   GOTO 10594
10595 CONTINUE
10593 IF((V.LT.1.0))GOTO 10598
        V=V/(10.0)
        E=E+(1)
        GOTO 10599
10598   IF((V.GE.0.1))GOTO 10600
          V=V*(10.0)
          E=E-(1)
10600 CONTINUE
10599 IF((V.NE.0.0))GOTO 10601
        E=0
10601 IF((.NOT.NEG))GOTO 10602
        MAXSI0=1
        GOTO 10603
10602   MAXSI0=0
10603 BASIC0=(D.GT.14)
      IF((.NOT.BASIC0))GOTO 10604
        EXPFO0=(E.GT.5.OR.E.LT.-2)
        IF((.NOT.EXPFO0))GOTO 10605
          NODIG0=6
          MAXSI0=MAXSI0+1+1+5+1+1+4
          GOTO 10607
10605     NODIG0=6+MIN0(0,E)
          MAXSI0=MAXSI0+1+1+5
10606   GOTO 10607
10604   IF((D.LT.0))GOTO 10608
          EXPFO0=(W.LT.1+MAX0(E,1)+1+D)
          IF((.NOT.EXPFO0))GOTO 10609
            NODIG0=MAX0(1,W-1-1-6)
            MAXSI0=MAXSI0+1+NODIG0+6
            GOTO 10611
10609       NODIG0=E+D+1
            MAXSI0=MAXSI0+MAX0(E,0)+1+D
10610     GOTO 10611
10608     EXPFO0=.TRUE.
          NODIG0=MIN0(14,-D)
          MAXSI0=MAXSI0+1+NODIG0+6
10611 CONTINUE
10607 NODIG0=MIN0(MAX0(1,NODIG0),14)
      V=V+(ROUND(NODIG0))
      IF((V.LT.1.0))GOTO 10612
        V=V/(10.0)
        E=E+(1)
        IF(EXPFO0)GOTO 10613
          MAXSI0=MAXSI0+(1)
          NODIG0=MIN0(14,NODIG0+1)
10613 CONTINUE
10612 IF((MAXSI0.LE.W))GOTO 10614
        OUT(1)=191
        OUT(2)=0
        DTOC=1
        RETURN
10614 DO 10615 I=1,NODIG0
        V=V*(10.0D0)
        J=V
        V=V-(J)
        DIGITS(I)=DIG(J+1)
10615 CONTINUE
10616 LEN=1
      IF((.NOT.NEG))GOTO 10617
        OUT(1)=173
        LEN=LEN+(1)
10617 IF((.NOT.EXPFO0))GOTO 10618
        OUT(LEN)=DIGITS(1)
        OUT(LEN+1)=174
        LEN=LEN+(2)
        I=2
        GOTO 10621
10619   I=I+(1)
10621   IF((I.GT.NODIG0))GOTO 10620
          OUT(LEN)=DIGITS(I)
          LEN=LEN+(1)
        GOTO 10619
10620   IF((.NOT.BASIC0))GOTO 10622
10623     IF((LEN.LE.2))GOTO 10624
            LEN=LEN-(1)
            IF((OUT(LEN).NE.174))GOTO 10625
              GOTO 10624
10625         IF((OUT(LEN).EQ.176))GOTO 10626
                LEN=LEN+(1)
                GOTO 10624
10626       CONTINUE
          GOTO 10623
10624   CONTINUE
10622   OUT(LEN)=229
        LEN=LEN+(1)
        IF((E.GE.0))GOTO 10627
          OUT(LEN)=173
          LEN=LEN+(1)
          E=-E
10627   LEN=LEN+(ITOC(E,OUT(LEN),W-LEN))
        GOTO 10628
10618   IF((E.GE.0))GOTO 10629
          IF((D.NE.0))GOTO 10630
          IF((E.NE.-1))GOTO 10630
          IF((DIGITS(1).LT.181))GOTO 10630
            OUT(LEN)=177
            GOTO 10631
10630       OUT(LEN)=176
10631     OUT(LEN+1)=174
          LEN=LEN+(2)
          I=1
          GOTO 10634
10632     I=I+(1)
10634     IF((I.GE.-E))GOTO 10633
          IF((I.GT.D))GOTO 10633
            OUT(LEN)=176
            LEN=LEN+(1)
          GOTO 10632
10633     J=1
          GOTO 10637
10635     J=J+(1)
10637     IF((J.GT.NODIG0))GOTO 10636
          IF((I.GT.D))GOTO 10636
            OUT(LEN)=DIGITS(J)
            LEN=LEN+(1)
            I=I+(1)
          GOTO 10635
10636     IF((.NOT.BASIC0))GOTO 10638
10639       IF((LEN.LE.2))GOTO 10647
              LEN=LEN-(1)
              IF((OUT(LEN).NE.174))GOTO 10641
                GOTO 10647
10641           IF((OUT(LEN).EQ.176))GOTO 10642
                  LEN=LEN+(1)
                  GOTO 10647
10642         CONTINUE
            GOTO 10639
10638       I=1
            GOTO 10646
10644       I=I+(1)
10646       IF((I.GE.D+E-NODIG0))GOTO 10645
            IF((I.GT.D))GOTO 10645
              OUT(LEN)=176
              LEN=LEN+(1)
            GOTO 10644
10645     CONTINUE
10643     GOTO 10647
10629     IF((E.LT.NODIG0))GOTO 10648
            I=1
            GOTO 10651
10649       I=I+(1)
10651       IF((I.GT.NODIG0))GOTO 10650
              OUT(LEN)=DIGITS(I)
              LEN=LEN+(1)
            GOTO 10649
10650       I=NODIG0
            GOTO 10654
10652       I=I+(1)
10654       IF((I.GT.E))GOTO 10653
              OUT(LEN)=176
              LEN=LEN+(1)
            GOTO 10652
10653       IF(BASIC0)GOTO 10659
              OUT(LEN)=174
              LEN=LEN+(1)
              I=1
              GOTO 10658
10656         I=I+(1)
10658         IF((I.GT.D))GOTO 10657
                OUT(LEN)=176
                LEN=LEN+(1)
              GOTO 10656
10657       CONTINUE
10655       GOTO 10659
10648       E=E+(1)
            I=1
            GOTO 10662
10660       I=I+(1)
10662       IF((I.GT.E))GOTO 10661
              OUT(LEN)=DIGITS(I)
              LEN=LEN+(1)
            GOTO 10660
10661       OUT(LEN)=174
            LEN=LEN+(1)
            J=1
            GOTO 10665
10663       J=J+(1)
10665       IF((I.GT.NODIG0))GOTO 10664
            IF((J.GT.D))GOTO 10664
              OUT(LEN)=DIGITS(I)
              I=I+(1)
              LEN=LEN+(1)
            GOTO 10663
10664       IF((.NOT.BASIC0))GOTO 10666
10667         IF((LEN.LE.2))GOTO 10671
                LEN=LEN-(1)
                IF((OUT(LEN).NE.174))GOTO 10669
                  GOTO 10671
10669             IF((OUT(LEN).EQ.176))GOTO 10670
                    LEN=LEN+(1)
                    GOTO 10671
10670           CONTINUE
              GOTO 10667
10666         I=1
              GOTO 10674
10672         I=I+(1)
10674         IF((I.GT.E+D-NODIG0))GOTO 10673
              IF((I.GT.D))GOTO 10673
                OUT(LEN)=176
                LEN=LEN+(1)
              GOTO 10672
10673       CONTINUE
10671     CONTINUE
10659   CONTINUE
10647 CONTINUE
10628 OUT(LEN)=0
      DTOC=LEN-1
      RETURN
      END
      INTEGER FUNCTION DWRIT$(BUF,NW,F)
      INTEGER BUF(1),NW,F
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I,BP,N,IP,NWR,CT,BSTART,BSIZE,THRESH
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      N=NW
      IP=0
      CT=-FDCOU0(F)
      BP=FDBUI0(F)-CT
      BSIZE=FDBUH0(F)
      BSTART=FDBUG0(F)
      THRESH=BSIZE/2
      ERRCO0=0
      IF((NW.LT.THRESH))GOTO 10675
        IF((BSIZE-CT.LE.0))GOTO 10676
          CALL PRWF$$(:2,FDUNI0(F),LOC(FDBUF0(BSTART+1)),BSIZE-CT,INTL(0
     *),NWR,ERRCO0)
          BP=BSTART
          CT=BSIZE
10676   IF((ERRCO0.NE.0))GOTO 10677
          CALL PRWF$$(:2,FDUNI0(F),LOC(BUF(IP+1)),N,INTL(0),NWR,ERRCO0)
10677   IF((ERRCO0.NE.0))GOTO 10679
          IP=IP+(NWR)
10678   GOTO 10679
10675   CONTINUE
10680   IF((N.LE.0))GOTO 10681
          IF((CT.GT.0))GOTO 10682
            CALL PRWF$$(:2,FDUNI0(F),LOC(FDBUF0(BSTART+1)),BSIZE,INTL(0)
     *,NWR,ERRCO0)
            IF((ERRCO0.EQ.0))GOTO 10683
              GOTO 10681
10683       BP=BSTART
            CT=BSIZE
10682     I=N
          IF((I.LE.CT))GOTO 10684
            I=CT
10684     CALL MOVE$(BUF(IP+1),FDBUF0(BP+1),I)
          IP=IP+(I)
          BP=BP+(I)
          N=N-(I)
          CT=CT-(I)
        GOTO 10680
10681 CONTINUE
10679 FDCOU0(F)=-CT
      IF((ERRCO0.EQ.0))GOTO 10685
        FDFLA0(F)=OR(FDFLA0(F),:004000)
        DWRIT$=-1
        RETURN
10685 DWRIT$=IP
      RETURN
      END
      INTEGER FUNCTION ENCODE(STR,MAX,FMT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10
     *)
      INTEGER STR(1)
      INTEGER MAX,FMT(1),A1(1),A2(1),A3(1),A4(1),A5(1),A6(1),A7(1),A8(1)
     *,A9(1),A10(1)
      INTEGER I,ARG,CUR,MAXCUR,NUM,M,L,DEFAU0,DEFAV0,DEFAX0
      INTEGER WIDTH,RJUST,BASE,FILL
      INTEGER PTOC,CTOC,GITOC,GLTOC,RTOC,DTOC,VTOC,ATOC,CTOI
      INTEGER TERM,TMP(102)
      INTEGER AAACW0
      INTEGER AAACX0
      INTEGER AAACY0
      INTEGER AAADA0
      INTEGER AAADB0
      INTEGER AAADC0
      INTEGER AAADD0
      INTEGER AAADE0
      INTEGER AAADF0
      INTEGER AAADG0
      INTEGER AAADH0
      INTEGER AAADI0
      INTEGER AAADJ0
      INTEGER AAADK0
      INTEGER AAADL0
      INTEGER AAADM0
      INTEGER AAADN0
      INTEGER AAADO0
      INTEGER AAADP0
      INTEGER AAADQ0
      INTEGER AAADR0
      LOGICAL NEG
      INTEGER AAACZ0
      INTEGER AAADS0
      INTEGER AAADT0
      INTEGER AAADU0
      INTEGER AAADV0
      INTEGER AAADW0
      INTEGER AAADX0
      INTEGER AAADY0(5)
      INTEGER AAADZ0(6)
      INTEGER AAAEA0(5)
      INTEGER AAAEB0(6)
      INTEGER AAAEC0
      INTEGER AAAED0(4)
      INTEGER AAAEE0(3)
      INTEGER AAAEF0(2)
      INTEGER AAAEG0(4)
      INTEGER AAAEH0(3)
      INTEGER AAAEI0(2)
      INTEGER AAAEJ0
      INTEGER AAAEK0
      INTEGER AAAEL0
      INTEGER AAAEM0
      INTEGER AAAEN0
      INTEGER AAAEO0
      INTEGER AAAEP0
      DATA AAADY0/212,210,213,197,0/
      DATA AAADZ0/198,193,204,211,197,0/
      DATA AAAEA0/212,210,213,197,0/
      DATA AAAEB0/198,193,204,211,197,0/
      DATA AAAED0/217,197,211,0/
      DATA AAAEE0/206,207,0/
      DATA AAAEF0/191,0/
      DATA AAAEG0/217,197,211,0/
      DATA AAAEH0/206,207,0/
      DATA AAAEI0/191,0/
      ARG=1
      CUR=1
      MAXCUR=1
      DEFAU0=0
      DEFAV0=0
      DEFAX0=160
      I=1
      GOTO 10706
10704 I=I+(1)
10706 IF((FMT(I).EQ.0))GOTO 10705
      IF((CUR.GE.MAX))GOTO 10705
        IF((FMT(I).EQ.170))GOTO 10707
          STR(CUR)=FMT(I)
          CUR=CUR+(1)
          GOTO 10704
10707     AAACW0=1
          GOTO 10686
10709     AAADP0=FMT(I)
          GOTO 10710
10711       ARG=WIDTH
          GOTO 10712
10713       DEFAU0=WIDTH
            DEFAV0=BASE
            DEFAX0=FILL
          GOTO 10712
10714       AAADE0=1
            GOTO 10693
10716       AAADF0=1
            GOTO 10694
10718       AAADG0=1
            GOTO 10695
10720       AAADH0=1
            GOTO 10696
10722       TERM=174
            AAADC0=1
            GOTO 10691
10724       TERM=0
            AAADC0=2
            GOTO 10691
10726       AAADD0=1
            GOTO 10692
10728       BASE=1
            AAADD0=2
            GOTO 10692
10730       AAADI0=1
            GOTO 10697
10732       AAADJ0=1
            GOTO 10698
10734       BASE=-BASE
            AAADJ0=2
            GOTO 10698
10736       AAADK0=1
            GOTO 10699
10738       BASE=-BASE
            AAADK0=2
            GOTO 10699
10740       AAADL0=1
            GOTO 10700
10742       AAADM0=1
            GOTO 10701
10744       AAADN0=1
            GOTO 10702
10746       AAACZ0=WIDTH
            AAADA0=1
            GOTO 10689
10710     AAADQ0=AAADP0-224
          GOTO(10720,10714,10728,10742,10748,10742,10711,10724,10732,   
     *  10734,10748,10736,10738,10744,10748,10722,10748,10740,10726,    
     * 10718,10713,10730,10748,10746,10716),AAADQ0
10748       STR(CUR)=FMT(I)
            CUR=CUR+(1)
10712   CONTINUE
10708 GOTO 10704
10705 IF((MAXCUR.LE.CUR))GOTO 10749
        CUR=MAXCUR
10749 STR(CUR)=0
      ENCODE=CUR-1
      RETURN
10686 I=I+(1)
      IF((FMT(I).EQ.172))GOTO 10751
      IF((193.GT.FMT(I)))GOTO 10752
      IF((FMT(I).GT.218))GOTO 10752
      GOTO 10751
10752 IF((225.GT.FMT(I)))GOTO 10750
      IF((FMT(I).GT.250))GOTO 10750
      GOTO 10751
10751   WIDTH=DEFAU0
        GOTO 10754
10750   IF((FMT(I).NE.163))GOTO 10755
          AAACX0=1
          GOTO 10687
10756     I=I+(1)
          WIDTH=NUM
          GOTO 10757
10755     AAACY0=1
          GOTO 10688
10758WIDTH=NUM
10757 CONTINUE
10754 IF((WIDTH.LT.0))GOTO 10759
        RJUST=0
        GOTO 10760
10759   RJUST=1
        WIDTH=-WIDTH
10760 IF((FMT(I).EQ.172))GOTO 10761
        BASE=DEFAV0
        GOTO 10762
10761   I=I+(1)
        IF((FMT(I).EQ.172))GOTO 10764
        IF((193.GT.FMT(I)))GOTO 10765
        IF((FMT(I).GT.218))GOTO 10765
        GOTO 10764
10765   IF((225.GT.FMT(I)))GOTO 10763
        IF((FMT(I).GT.250))GOTO 10763
        GOTO 10764
10764     BASE=DEFAV0
          GOTO 10767
10763     IF((FMT(I).NE.163))GOTO 10768
            AAACX0=2
            GOTO 10687
10769       I=I+(1)
            BASE=NUM
            GOTO 10770
10768       AAACY0=2
            GOTO 10688
10771       BASE=NUM
10770   CONTINUE
10767 CONTINUE
10762 IF((FMT(I).EQ.172))GOTO 10772
        FILL=DEFAX0
        GOTO 10709
10772   IF((FMT(I+1).EQ.163))GOTO 10774
          FILL=FMT(I+1)
          I=I+(2)
          GOTO 10775
10774     IF((FMT(I+2).NE.163))GOTO 10776
            FILL=163
            I=I+(3)
            GOTO 10777
10776       AAACX0=3
            GOTO 10687
10778       FILL=NUM
            I=I+(2)
10777   CONTINUE
10775 CONTINUE
10773 GOTO 10709
10687 AAADR0=ARG
      GOTO 10780
10781   NUM=A1(1)
      GOTO 10782
10783   NUM=A2(1)
      GOTO 10782
10784   NUM=A3(1)
      GOTO 10782
10785   NUM=A4(1)
      GOTO 10782
10786   NUM=A5(1)
      GOTO 10782
10787   NUM=A6(1)
      GOTO 10782
10788   NUM=A7(1)
      GOTO 10782
10789   NUM=A8(1)
      GOTO 10782
10790   NUM=A9(1)
      GOTO 10782
10791   NUM=A10(1)
      GOTO 10782
10780 GOTO(10781,10783,10784,10785,10786,10787,10788,10789,10790,10791),
     *AAADR0
        AAADO0=1
        GOTO 10703
10792 CONTINUE
10782 ARG=ARG+(1)
      GOTO 10793
10688 NEG=(FMT(I).EQ.173)
      IF((FMT(I).EQ.171))GOTO 10795
      IF((FMT(I).EQ.173))GOTO 10795
      GOTO 10794
10795   I=I+(1)
10794 NUM=CTOI(FMT,I)
      IF((.NOT.NEG))GOTO 10797
        NUM=-NUM
10796 GOTO 10797
10690 CUR=CUR+(CTOC(TMP,STR(CUR),MAX-CUR+1))
      GOTO 10798
10689 AAADS0=1
      GOTO 10801
10799 CUR=CUR+(1)
      AAADS0=AAADS0+(1)
10801 IF((AAADS0.GT.AAACZ0))GOTO 10802
      IF((CUR.GE.MAX))GOTO 10802
        STR(CUR)=FILL
      GOTO 10799
10691 IF((RJUST.NE.0))GOTO 10803
        M=MAX-CUR+1
        IF((BASE.EQ.0))GOTO 10804
        IF((BASE+1.GE.M))GOTO 10804
          M=BASE+1
10804   AAADT0=ARG
        GOTO 10805
10806     L=PTOC(A1,TERM,STR(CUR),M)
        GOTO 10807
10808     L=PTOC(A2,TERM,STR(CUR),M)
        GOTO 10807
10809     L=PTOC(A3,TERM,STR(CUR),M)
        GOTO 10807
10810     L=PTOC(A4,TERM,STR(CUR),M)
        GOTO 10807
10811     L=PTOC(A5,TERM,STR(CUR),M)
        GOTO 10807
10812     L=PTOC(A6,TERM,STR(CUR),M)
        GOTO 10807
10813     L=PTOC(A7,TERM,STR(CUR),M)
        GOTO 10807
10814     L=PTOC(A8,TERM,STR(CUR),M)
        GOTO 10807
10815     L=PTOC(A9,TERM,STR(CUR),M)
        GOTO 10807
10816     L=PTOC(A10,TERM,STR(CUR),M)
        GOTO 10807
10805   GOTO(10806,10808,10809,10810,10811,10812,10813,10814,10815,10816
     *),AAADT0
          AAADO0=2
          GOTO 10703
10817   CONTINUE
10807   CUR=CUR+(L)
        AAACZ0=WIDTH-L
        AAADA0=2
        GOTO 10689
10803   IF((BASE.EQ.0))GOTO 10821
        IF((BASE+1.GE.102))GOTO 10821
        GOTO 10820
10821     M=102
          GOTO 10822
10820     M=BASE+1
10822   AAADU0=ARG
        GOTO 10823
10824     L=PTOC(A1,TERM,TMP,M)
        GOTO 10825
10826     L=PTOC(A2,TERM,TMP,M)
        GOTO 10825
10827     L=PTOC(A3,TERM,TMP,M)
        GOTO 10825
10828     L=PTOC(A4,TERM,TMP,M)
        GOTO 10825
10829     L=PTOC(A5,TERM,TMP,M)
        GOTO 10825
10830     L=PTOC(A6,TERM,TMP,M)
        GOTO 10825
10831     L=PTOC(A7,TERM,TMP,M)
        GOTO 10825
10832     L=PTOC(A8,TERM,TMP,M)
        GOTO 10825
10833     L=PTOC(A9,TERM,TMP,M)
        GOTO 10825
10834     L=PTOC(A10,TERM,TMP,M)
        GOTO 10825
10823   GOTO(10824,10826,10827,10828,10829,10830,10831,10832,10833,10834
     *),AAADU0
          AAADO0=3
          GOTO 10703
10835   CONTINUE
10825   AAACZ0=WIDTH-L
        AAADA0=3
        GOTO 10689
10836   AAADB0=1
        GOTO 10690
10837 CONTINUE
10819 ARG=ARG+(1)
      GOTO 10838
10692 IF((RJUST.NE.0))GOTO 10839
        M=MAX-CUR+1
        IF((BASE.EQ.0))GOTO 10840
        IF((BASE+1.GE.M))GOTO 10840
          M=BASE+1
10840   AAADV0=ARG
        GOTO 10841
10842     L=CTOC(A1,STR(CUR),M)
        GOTO 10843
10844     L=CTOC(A2,STR(CUR),M)
        GOTO 10843
10845     L=CTOC(A3,STR(CUR),M)
        GOTO 10843
10846     L=CTOC(A4,STR(CUR),M)
        GOTO 10843
10847     L=CTOC(A5,STR(CUR),M)
        GOTO 10843
10848     L=CTOC(A6,STR(CUR),M)
        GOTO 10843
10849     L=CTOC(A7,STR(CUR),M)
        GOTO 10843
10850     L=CTOC(A8,STR(CUR),M)
        GOTO 10843
10851     L=CTOC(A9,STR(CUR),M)
        GOTO 10843
10852     L=CTOC(A10,STR(CUR),M)
        GOTO 10843
10841   GOTO(10842,10844,10845,10846,10847,10848,10849,10850,10851,10852
     *),AAADV0
          AAADO0=4
          GOTO 10703
10853   CONTINUE
10843   CUR=CUR+(L)
        AAACZ0=WIDTH-L
        AAADA0=4
        GOTO 10689
10839   IF((BASE.EQ.0))GOTO 10857
        IF((BASE+1.GE.102))GOTO 10857
        GOTO 10856
10857     M=102
          GOTO 10858
10856     M=BASE+1
10858   AAADW0=ARG
        GOTO 10859
10860     L=CTOC(A1,TMP,M)
        GOTO 10861
10862     L=CTOC(A2,TMP,M)
        GOTO 10861
10863     L=CTOC(A3,TMP,M)
        GOTO 10861
10864     L=CTOC(A4,TMP,M)
        GOTO 10861
10865     L=CTOC(A5,TMP,M)
        GOTO 10861
10866     L=CTOC(A6,TMP,M)
        GOTO 10861
10867     L=CTOC(A7,TMP,M)
        GOTO 10861
10868     L=CTOC(A8,TMP,M)
        GOTO 10861
10869     L=CTOC(A9,TMP,M)
        GOTO 10861
10870     L=CTOC(A10,TMP,M)
        GOTO 10861
10859   GOTO(10860,10862,10863,10864,10865,10866,10867,10868,10869,10870
     *),AAADW0
          AAADO0=5
          GOTO 10703
10871   CONTINUE
10861   AAACZ0=WIDTH-L
        AAADA0=5
        GOTO 10689
10872   AAADB0=2
        GOTO 10690
10873 CONTINUE
10855 ARG=ARG+(1)
      GOTO 10874
10693 AAADX0=ARG
      GOTO 10875
10876   L=A1(1)
      GOTO 10877
10878   L=A2(1)
      GOTO 10877
10879   L=A3(1)
      GOTO 10877
10880   L=A4(1)
      GOTO 10877
10881   L=A5(1)
      GOTO 10877
10882   L=A6(1)
      GOTO 10877
10883   L=A7(1)
      GOTO 10877
10884   L=A8(1)
      GOTO 10877
10885   L=A9(1)
      GOTO 10877
10886   L=A10(1)
      GOTO 10877
10875 GOTO(10876,10878,10879,10880,10881,10882,10883,10884,10885,10886),
     *AAADX0
        AAADO0=6
        GOTO 10703
10887 CONTINUE
10877 IF((RJUST.NE.0))GOTO 10888
        M=MAX-CUR+1
        IF((BASE.EQ.0))GOTO 10889
        IF((BASE+1.GE.M))GOTO 10889
          M=BASE+1
10889   IF((L.EQ.0))GOTO 10890
          L=CTOC(AAADY0,STR(CUR),M)
          GOTO 10891
10890     L=CTOC(AAADZ0,STR(CUR),M)
10891   CUR=CUR+(L)
        AAACZ0=WIDTH-L
        AAADA0=6
        GOTO 10689
10888   IF((BASE.EQ.0))GOTO 10895
        IF((BASE+1.GE.102))GOTO 10895
        GOTO 10894
10895     M=102
          GOTO 10896
10894     M=BASE+1
10896   IF((L.NE.1))GOTO 10897
          L=CTOC(AAAEA0,TMP,M)
          GOTO 10898
10897     L=CTOC(AAAEB0,TMP,M)
10898   AAACZ0=WIDTH-L
        AAADA0=7
        GOTO 10689
10899   AAADB0=3
        GOTO 10690
10900 CONTINUE
10893 ARG=ARG+(1)
      GOTO 10712
10694 AAAEC0=ARG
      GOTO 10902
10903   L=A1(1)
      GOTO 10904
10905   L=A2(1)
      GOTO 10904
10906   L=A3(1)
      GOTO 10904
10907   L=A4(1)
      GOTO 10904
10908   L=A5(1)
      GOTO 10904
10909   L=A6(1)
      GOTO 10904
10910   L=A7(1)
      GOTO 10904
10911   L=A8(1)
      GOTO 10904
10912   L=A9(1)
      GOTO 10904
10913   L=A10(1)
      GOTO 10904
10902 GOTO(10903,10905,10906,10907,10908,10909,10910,10911,10912,10913),
     *AAAEC0
        AAADO0=7
        GOTO 10703
10914 CONTINUE
10904 IF((RJUST.NE.0))GOTO 10915
        M=MAX-CUR+1
        IF((BASE.EQ.0))GOTO 10916
        IF((BASE+1.GE.M))GOTO 10916
          M=BASE+1
10916   IF((L.NE.1))GOTO 10917
          L=CTOC(AAAED0,STR(CUR),M)
          GOTO 10918
10917     IF((L.NE.0))GOTO 10919
            L=CTOC(AAAEE0,STR(CUR),M)
            GOTO 10920
10919       L=CTOC(AAAEF0,STR(CUR),M)
10920   CONTINUE
10918   CUR=CUR+(L)
        AAACZ0=WIDTH-L
        AAADA0=8
        GOTO 10689
10915   IF((BASE.EQ.0))GOTO 10924
        IF((BASE+1.GE.102))GOTO 10924
        GOTO 10923
10924     M=102
          GOTO 10925
10923     M=BASE+1
10925   IF((L.NE.1))GOTO 10926
          L=CTOC(AAAEG0,TMP,M)
          GOTO 10927
10926     IF((L.NE.0))GOTO 10928
            L=CTOC(AAAEH0,TMP,M)
            GOTO 10929
10928       L=CTOC(AAAEI0,TMP,M)
10929   CONTINUE
10927   AAACZ0=WIDTH-L
        AAADA0=9
        GOTO 10689
10930   AAADB0=4
        GOTO 10690
10931 CONTINUE
10922 ARG=ARG+(1)
      GOTO 10712
10695 IF((CUR.LE.MAXCUR))GOTO 10936
        MAXCUR=CUR
10933 GOTO 10936
10934 MAXCUR=MAXCUR+(1)
10936 IF((MAXCUR.GE.WIDTH))GOTO 10935
      IF((MAXCUR.GE.MAX))GOTO 10935
        STR(MAXCUR)=FILL
      GOTO 10934
10935 CUR=WIDTH
      GOTO 10712
10696 AAAEJ0=ARG
      GOTO 10938
10939   L=ATOC(A1,TMP,102)
      GOTO 10940
10941   L=ATOC(A2,TMP,102)
      GOTO 10940
10942   L=ATOC(A3,TMP,102)
      GOTO 10940
10943   L=ATOC(A4,TMP,102)
      GOTO 10940
10944   L=ATOC(A5,TMP,102)
      GOTO 10940
10945   L=ATOC(A6,TMP,102)
      GOTO 10940
10946   L=ATOC(A7,TMP,102)
      GOTO 10940
10947   L=ATOC(A8,TMP,102)
      GOTO 10940
10948   L=ATOC(A9,TMP,102)
      GOTO 10940
10949   L=ATOC(A10,TMP,102)
      GOTO 10940
10938 GOTO(10939,10941,10942,10943,10944,10945,10946,10947,10948,10949),
     *AAAEJ0
        AAADO0=8
        GOTO 10703
10950 CONTINUE
10940 IF((RJUST.NE.0))GOTO 10951
        AAACZ0=WIDTH-L
        AAADA0=10
        GOTO 10689
10952   AAADB0=5
        GOTO 10690
10951   AAADB0=6
        GOTO 10690
10955   AAACZ0=WIDTH-L
        AAADA0=11
        GOTO 10689
10956 CONTINUE
10954 ARG=ARG+(1)
      GOTO 10712
10697 IF((RJUST.NE.0))GOTO 10958
        M=MAX-CUR+1
        IF((BASE.EQ.0))GOTO 10959
        IF((BASE+1.GE.M))GOTO 10959
          M=BASE+1
10959   AAAEK0=ARG
        GOTO 10960
10961     L=VTOC(A1,STR(CUR),M)
        GOTO 10962
10963     L=VTOC(A2,STR(CUR),M)
        GOTO 10962
10964     L=VTOC(A3,STR(CUR),M)
        GOTO 10962
10965     L=VTOC(A4,STR(CUR),M)
        GOTO 10962
10966     L=VTOC(A5,STR(CUR),M)
        GOTO 10962
10967     L=VTOC(A6,STR(CUR),M)
        GOTO 10962
10968     L=VTOC(A7,STR(CUR),M)
        GOTO 10962
10969     L=VTOC(A8,STR(CUR),M)
        GOTO 10962
10970     L=VTOC(A9,STR(CUR),M)
        GOTO 10962
10971     L=VTOC(A10,STR(CUR),M)
        GOTO 10962
10960   GOTO(10961,10963,10964,10965,10966,10967,10968,10969,10970,10971
     *),AAAEK0
          AAADO0=9
          GOTO 10703
10972   CONTINUE
10962   CUR=CUR+(L)
        AAACZ0=WIDTH-L
        AAADA0=12
        GOTO 10689
10958   IF((BASE.EQ.0))GOTO 10976
        IF((BASE+1.GE.102))GOTO 10976
        GOTO 10975
10976     M=102
          GOTO 10977
10975     M=BASE+1
10977   AAAEL0=ARG
        GOTO 10978
10979     L=VTOC(A1,TMP,M)
        GOTO 10980
10981     L=VTOC(A2,TMP,M)
        GOTO 10980
10982     L=VTOC(A3,TMP,M)
        GOTO 10980
10983     L=VTOC(A4,TMP,M)
        GOTO 10980
10984     L=VTOC(A5,TMP,M)
        GOTO 10980
10985     L=VTOC(A6,TMP,M)
        GOTO 10980
10986     L=VTOC(A7,TMP,M)
        GOTO 10980
10987     L=VTOC(A8,TMP,M)
        GOTO 10980
10988     L=VTOC(A9,TMP,M)
        GOTO 10980
10989     L=VTOC(A10,TMP,M)
        GOTO 10980
10978   GOTO(10979,10981,10982,10983,10984,10985,10986,10987,10988,10989
     *),AAAEL0
          AAADO0=10
          GOTO 10703
10990   CONTINUE
10980   AAACZ0=WIDTH-L
        AAADA0=13
        GOTO 10689
10991   AAADB0=7
        GOTO 10690
10992 CONTINUE
10974 ARG=ARG+(1)
      GOTO 10712
10698 AAAEM0=ARG
      GOTO 10994
10995   L=GITOC(A1,TMP,102,BASE)
      GOTO 10996
10997   L=GITOC(A2,TMP,102,BASE)
      GOTO 10996
10998   L=GITOC(A3,TMP,102,BASE)
      GOTO 10996
10999   L=GITOC(A4,TMP,102,BASE)
      GOTO 10996
11000   L=GITOC(A5,TMP,102,BASE)
      GOTO 10996
11001   L=GITOC(A6,TMP,102,BASE)
      GOTO 10996
11002   L=GITOC(A7,TMP,102,BASE)
      GOTO 10996
11003   L=GITOC(A8,TMP,102,BASE)
      GOTO 10996
11004   L=GITOC(A9,TMP,102,BASE)
      GOTO 10996
11005   L=GITOC(A10,TMP,102,BASE)
      GOTO 10996
10994 GOTO(10995,10997,10998,10999,11000,11001,11002,11003,11004,11005),
     *AAAEM0
        AAADO0=11
        GOTO 10703
11006 CONTINUE
10996 IF((RJUST.NE.0))GOTO 11007
        AAACZ0=WIDTH-L
        AAADA0=14
        GOTO 10689
11008   AAADB0=8
        GOTO 10690
11007   AAADB0=9
        GOTO 10690
11011   AAACZ0=WIDTH-L
        AAADA0=15
        GOTO 10689
11012 CONTINUE
11010 ARG=ARG+(1)
      GOTO 11013
10699 AAAEN0=ARG
      GOTO 11014
11015   L=GLTOC(A1,TMP,102,BASE)
      GOTO 11016
11017   L=GLTOC(A2,TMP,102,BASE)
      GOTO 11016
11018   L=GLTOC(A3,TMP,102,BASE)
      GOTO 11016
11019   L=GLTOC(A4,TMP,102,BASE)
      GOTO 11016
11020   L=GLTOC(A5,TMP,102,BASE)
      GOTO 11016
11021   L=GLTOC(A6,TMP,102,BASE)
      GOTO 11016
11022   L=GLTOC(A7,TMP,102,BASE)
      GOTO 11016
11023   L=GLTOC(A8,TMP,102,BASE)
      GOTO 11016
11024   L=GLTOC(A9,TMP,102,BASE)
      GOTO 11016
11025   L=GLTOC(A10,TMP,102,BASE)
      GOTO 11016
11014 GOTO(11015,11017,11018,11019,11020,11021,11022,11023,11024,11025),
     *AAAEN0
        AAADO0=12
        GOTO 10703
11026 CONTINUE
11016 IF((RJUST.NE.0))GOTO 11027
        AAACZ0=WIDTH-L
        AAADA0=16
        GOTO 10689
11028   AAADB0=10
        GOTO 10690
11027   AAADB0=11
        GOTO 10690
11031   AAACZ0=WIDTH-L
        AAADA0=17
        GOTO 10689
11032 CONTINUE
11030 ARG=ARG+(1)
      GOTO 11033
10700 IF((BASE.NE.0))GOTO 11034
        BASE=100
11034 IF((BASE.GT.14))GOTO 11036
      IF((BASE.LT.0))GOTO 11036
      IF((WIDTH.EQ.0))GOTO 11036
      GOTO 11035
11036   M=102-1
        GOTO 11037
11035   M=BASE+20
11037 AAAEO0=ARG
      GOTO 11038
11039   L=RTOC(A1,TMP,M,BASE)
      GOTO 11040
11041   L=RTOC(A2,TMP,M,BASE)
      GOTO 11040
11042   L=RTOC(A3,TMP,M,BASE)
      GOTO 11040
11043   L=RTOC(A4,TMP,M,BASE)
      GOTO 11040
11044   L=RTOC(A5,TMP,M,BASE)
      GOTO 11040
11045   L=RTOC(A6,TMP,M,BASE)
      GOTO 11040
11046   L=RTOC(A7,TMP,M,BASE)
      GOTO 11040
11047   L=RTOC(A8,TMP,M,BASE)
      GOTO 11040
11048   L=RTOC(A9,TMP,M,BASE)
      GOTO 11040
11049   L=RTOC(A10,TMP,M,BASE)
      GOTO 11040
11038 GOTO(11039,11041,11042,11043,11044,11045,11046,11047,11048,11049),
     *AAAEO0
        AAADO0=13
        GOTO 10703
11050 CONTINUE
11040 IF((RJUST.NE.1))GOTO 11051
        IF((BASE.GE.0))GOTO 11052
        IF((TMP(1).EQ.173))GOTO 11052
          STR(CUR)=FILL
          CUR=CUR+(1)
          L=L+(1)
11052   AAADB0=12
        GOTO 10690
11053   AAACZ0=WIDTH-L
        AAADA0=18
        GOTO 10689
11051   IF((BASE.LT.0))GOTO 11056
          AAACZ0=WIDTH-L
          AAADA0=19
          GOTO 10689
11057     AAADB0=13
          GOTO 10690
11056     AAACZ0=WIDTH+BASE-8
          AAADA0=20
          GOTO 10689
11060     IF((TMP(1).EQ.173))GOTO 11061
            STR(CUR)=FILL
            CUR=CUR+(1)
            L=L+(1)
11061     AAADB0=14
          GOTO 10690
11062     AAACZ0=-BASE+7-L
          AAADA0=21
          GOTO 10689
11063   CONTINUE
11059 CONTINUE
11055 ARG=ARG+(1)
      GOTO 10712
10701 IF((BASE.NE.0))GOTO 11065
        BASE=100
11065 IF((BASE.GT.14))GOTO 11067
      IF((BASE.LT.0))GOTO 11067
      IF((WIDTH.EQ.0))GOTO 11067
      GOTO 11066
11067   M=102-1
        GOTO 11068
11066   M=BASE+20
11068 AAAEP0=ARG
      GOTO 11069
11070   L=DTOC(A1,TMP,M,BASE)
      GOTO 11071
11072   L=DTOC(A2,TMP,M,BASE)
      GOTO 11071
11073   L=DTOC(A3,TMP,M,BASE)
      GOTO 11071
11074   L=DTOC(A4,TMP,M,BASE)
      GOTO 11071
11075   L=DTOC(A5,TMP,M,BASE)
      GOTO 11071
11076   L=DTOC(A6,TMP,M,BASE)
      GOTO 11071
11077   L=DTOC(A7,TMP,M,BASE)
      GOTO 11071
11078   L=DTOC(A8,TMP,M,BASE)
      GOTO 11071
11079   L=DTOC(A9,TMP,M,BASE)
      GOTO 11071
11080   L=DTOC(A10,TMP,M,BASE)
      GOTO 11071
11069 GOTO(11070,11072,11073,11074,11075,11076,11077,11078,11079,11080),
     *AAAEP0
        AAADO0=14
        GOTO 10703
11081 CONTINUE
11071 IF((RJUST.NE.1))GOTO 11082
        IF((BASE.GE.0))GOTO 11083
        IF((TMP(1).EQ.173))GOTO 11083
          STR(CUR)=FILL
          CUR=CUR+(1)
          L=L+(1)
11083   AAADB0=15
        GOTO 10690
11084   AAACZ0=WIDTH-L
        AAADA0=22
        GOTO 10689
11082   IF((BASE.LT.0))GOTO 11087
          AAACZ0=WIDTH-L
          AAADA0=23
          GOTO 10689
11088     AAADB0=16
          GOTO 10690
11087     AAACZ0=WIDTH+BASE-8
          AAADA0=24
          GOTO 10689
11091     IF((TMP(1).EQ.173))GOTO 11092
            STR(CUR)=FILL
            CUR=CUR+(1)
            L=L+(1)
11092     AAADB0=17
          GOTO 10690
11093     AAACZ0=-BASE+7-L
          AAADA0=25
          GOTO 10689
11094   CONTINUE
11090 CONTINUE
11086 ARG=ARG+(1)
      GOTO 10712
10702 CONTINUE
11096   STR(CUR)=138
        CUR=CUR+(1)
        WIDTH=WIDTH-(1)
      IF((WIDTH.LE.0))GOTO 11097
      IF((CUR.GE.MAX))GOTO 11097
      GOTO 11096
11097 CONTINUE
      GOTO 10712
10703 CALL REMARK('in encode: attempt to use more than 10 fields.')
      TMP(1)=0
      GOTO 11099
10793 GOTO(10756,10769,10778),AAACX0
      GOTO 10793
10797 GOTO(10758,10771),AAACY0
      GOTO 10797
10838 GOTO(10712,10712),AAADC0
      GOTO 10838
10874 GOTO(10712,10712),AAADD0
      GOTO 10874
11013 GOTO(10712,10712),AAADJ0
      GOTO 11013
10802 GOTO(10712,10819,10836,10855,10872,10893,10899,10922,10930,10952, 
     *    10956,10974,10991,11008,11012,11028,11032,11055,11057,11060,  
     *   11063,11086,11088,11091,11094),AAADA0
      GOTO 10802
11099 GOTO(10792,10817,10835,10853,10871,10887,10914,10950,10972,10990, 
     *    11006,11026,11050,11081),AAADO0
      GOTO 11099
10798 GOTO(10837,10873,10900,10931,10954,10955,10992,11010,11011,11030, 
     *    11031,11053,11059,11062,11084,11090,11093),AAADB0
      GOTO 10798
11033 GOTO(10712,10712),AAADK0
      GOTO 11033
      END
      INTEGER FUNCTION ENTER(SYMBOL,INFO,ST)
      INTEGER SYMBOL(1)
      INTEGER INFO(1)
      INTEGER ST
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER I,NODES0,FORTR0
      INTEGER ST$LU,LENGTH
      INTEGER NODE,PRED
      INTEGER DSGET
      NODES0=MEMAA0(ST)
      IF((ST$LU(SYMBOL,NODE,PRED,ST).NE.0))GOTO 11100
        NODE=DSGET(1+NODES0+LENGTH(SYMBOL)+1)
        MEMAA0(NODE+0)=0
        MEMAA0(PRED+0)=NODE
        CALL SCOPY(SYMBOL,1,MEMAA0,NODE+1+NODES0)
11100 I=1
      GOTO 11103
11101 I=I+(1)
11103 IF((I.GT.NODES0))GOTO 11102
        FORTR0=NODE+1+I-1
        MEMAA0(FORTR0)=INFO(I)
      GOTO 11101
11102 ENTER=NODE+1+NODES0
      RETURN
      END
      SUBROUTINE ERROR(BUF)
      INTEGER BUF(1)
      CALL REMARK(BUF)
      CALL SETERR(1000)
      CALL SWT
      END
      INTEGER FUNCTION ESC(ARRAY,I)
      INTEGER ARRAY(1)
      INTEGER I
      IF((ARRAY(I).EQ.192))GOTO 11104
        ESC=ARRAY(I)
        GOTO 11105
11104   IF((ARRAY(I+1).NE.0))GOTO 11106
          ESC=192
          GOTO 11107
11106     I=I+(1)
          IF((ARRAY(I).NE.238))GOTO 11108
            ESC=138
            GOTO 11109
11108       IF((ARRAY(I).NE.244))GOTO 11110
              ESC=137
              GOTO 11111
11110         ESC=ARRAY(I)
11111     CONTINUE
11109   CONTINUE
11107 CONTINUE
11105 RETURN
      END
      SUBROUTINE EXEC(PATH)
      INTEGER PATH(1)
      INTEGER FILE(16),J1(3),J2
      INTEGER GETTO,FINDF$
      IF((GETTO(PATH,FILE,J1,J2).EQ.-3))GOTO 11112
      IF((FINDF$(FILE).NE.1))GOTO 11112
        CALL RESU$$(FILE,32)
11112 RETURN
      END
      SUBROUTINE EXECN(NAME)
      INTEGER NAME(1)
      INTEGER PATH(100)
      CALL PTOC(NAME,174,PATH,100)
      CALL EXEC(PATH)
      RETURN
      END
      INTEGER FUNCTION EXPAND(TEMPL0,STR,STRLEN)
      INTEGER STRLEN
      INTEGER TEMPL0(1),STR(STRLEN)
      INTEGER JI,TI,SI,PI,XI
      INTEGER LUTEMP
      INTEGER C
      INTEGER JIG(102),PBUF(102),XBUF(102)
      INTEGER AAAEQ0
      SI=1
      PI=1
      TI=1
      AAAEQ0=1
      GOTO 11113
11114 AAAEQ0=2
      GOTO 11113
11118 CONTINUE
11116 IF((SI.GT.STRLEN))GOTO 11115
      IF((C.EQ.0))GOTO 11115
        IF((C.NE.189))GOTO 11119
          AAAEQ0=3
          GOTO 11113
11120     JI=1
          GOTO 11123
11121     JI=JI+(1)
11123     IF((JI.GT.102))GOTO 11122
          IF((C.EQ.189))GOTO 11122
          IF((C.EQ.0))GOTO 11122
            JIG(JI)=C
            AAAEQ0=4
            GOTO 11113
11122     JIG(JI)=0
          IF((C.EQ.189))GOTO 11125
            STR(SI)=0
            EXPAND=-3
            RETURN
11125     IF((JI.GT.1))GOTO 11126
            STR(SI)=189
            SI=SI+(1)
            GOTO 11114
11126       XI=LUTEMP(JIG,XBUF,102)
            IF((XI.EQ.-1))GOTO 11129
            IF((XI+PI.GE.102))GOTO 11129
            GOTO 11132
11129         STR(SI)=0
              EXPAND=-3
              RETURN
11130       XI=XI-(1)
            PI=PI+(1)
11132       IF((XI.LE.0))GOTO 11131
              PBUF(PI)=XBUF(XI)
            GOTO 11130
11131     CONTINUE
11127     GOTO 11114
11119     STR(SI)=C
          SI=SI+(1)
11133 GOTO 11114
11115 STR(SI)=0
      IF((C.EQ.0))GOTO 11134
        EXPAND=-3
        RETURN
11134 EXPAND=SI-1
      RETURN
11113 IF((PI.LE.1))GOTO 11135
        PI=PI-(1)
        C=PBUF(PI)
        GOTO 11139
11135   IF((TEMPL0(TI).EQ.0))GOTO 11137
          C=TEMPL0(TI)
          TI=TI+(1)
          GOTO 11138
11137     C=0
11138 CONTINUE
11136 GOTO 11139
11139 GOTO(11116,11118,11120,11121),AAAEQ0
      GOTO 11139
      END
      SUBROUTINE FCOPY(IFD,OFD)
      INTEGER IFD,OFD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER F1,F2,L
      INTEGER GETLIN,READF
      INTEGER BUF(1024)
      INTEGER IN,OUT
      INTEGER MAPSU
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IN=MAPSU(IFD)
      OUT=MAPSU(OFD)
      F1=IN*16-16+1
      F2=OUT*16-16+1
      IF((FDDEV0(F1).NE.2))GOTO 11140
      IF((FDDEV0(F2).NE.2))GOTO 11140
11141   IF((FDBCO0(F1).NE.0))GOTO 11143
        IF((FDBCO0(F2).NE.0))GOTO 11143
        IF((AND(FDFLA0(F1),:100000).NE.0))GOTO 11143
        IF((AND(FDFLA0(F2),:100000).NE.0))GOTO 11143
        GOTO 11142
11143     IF((GETLIN(BUF,IN,1024).NE.-1))GOTO 11144
            RETURN
11144     CALL PUTLIN(BUF,OUT)
        GOTO 11141
11142   CONTINUE
11145     L=READF(BUF,1024,IN)
          IF((L.EQ.-1))GOTO 11149
          IF((L.EQ.-3))GOTO 11149
          GOTO 11146
11146     CALL WRITEF(BUF,L,OUT)
        GOTO 11145
11140   CONTINUE
11150   IF((GETLIN(BUF,IN).EQ.-1))GOTO 11151
          CALL PUTLIN(BUF,OUT)
        GOTO 11150
11151 CONTINUE
11149 RETURN
      END
      INTEGER FUNCTION FILCPY(FROM,TO)
      INTEGER FROM(1),TO(1)
      INTEGER ATTACH,J1(3),FD,CODE,IFD,OFD,OTYPE,ITYPE
      INTEGER RNW,JUNK
      INTEGER BUF(32),ARRAY(2)
      INTEGER FNAME(16),TNAME(16)
      INTEGER JUNK1(17)
      INTEGER GETTO,REMOVE
      INTEGER STR(102)
      INTEGER AAAER0
      IFD=0
      OFD=0
      IF((GETTO(FROM,FNAME,J1,ATTACH).NE.-3))GOTO 11153
        AAAER0=1
        GOTO 11152
11154 CONTINUE
11153 CALL SRCH$$(:1+:40000,:177777,0,FD,JUNK,CODE)
      IF((CODE.EQ.0))GOTO 11155
        AAAER0=2
        GOTO 11152
11156 CONTINUE
11155 CALL PTOV(FNAME,160,JUNK1,17)
      CALL ENT$RD(FD,JUNK1,LOC(BUF),32,CODE)
      CALL SRCH$$(:4,0,0,FD,0,JUNK)
      IF((CODE.NE.0))GOTO 11158
      IF((RT(BUF(20),8).GE.4))GOTO 11158
      GOTO 11157
11158   AAAER0=3
        GOTO 11152
11159 CONTINUE
11157 CALL SRCH$$(:1+:40000,FNAME,32,IFD,ITYPE,CODE)
      IF((CODE.EQ.0))GOTO 11160
        AAAER0=4
        GOTO 11152
11161 CONTINUE
11160 IF((GETTO(TO,TNAME,J1,ATTACH).NE.-3))GOTO 11162
        AAAER0=5
        GOTO 11152
11163 CONTINUE
11162 CALL SRCH$$(:3+:40000+LS(ITYPE,10),TNAME,32,OFD,OTYPE,CODE)
      IF((LT(OTYPE,14).EQ.0))GOTO 11164
        AAAER0=6
        GOTO 11152
11165 CONTINUE
11164 IF((RT(ITYPE,2).EQ.RT(OTYPE,2)))GOTO 11166
        CALL SRCH$$(:4,0,0,OFD,0,CODE)
        CALL PTOC(TNAME,160,STR,33)
        IF((REMOVE(STR).NE.-3))GOTO 11167
          AAAER0=7
          GOTO 11152
11168   CONTINUE
11167   CALL SRCH$$(:3+:40000+LS(ITYPE,10),TNAME,32,OFD,OTYPE,CODE)
        IF((CODE.EQ.0))GOTO 11171
          AAAER0=8
          GOTO 11152
11170   CONTINUE
11169   GOTO 11171
11166   IF((RT(OTYPE,2).LT.2))GOTO 11172
          CALL RMSEG$(OFD)
11172 CONTINUE
11171 IF((RT(ITYPE,2).LT.2))GOTO 11173
        CALL CPSEG$(IFD,OFD,CODE)
        GOTO 11174
11173   CALL CPFIL$(IFD,OFD,CODE)
11174 IF((CODE.NE.-3))GOTO 11175
        AAAER0=9
        GOTO 11152
11176 CONTINUE
11175 IF((OTYPE.GE.2))GOTO 11177
        CALL PRWF$$(:4,OFD,0,0,INTL(0),RNW,CODE)
        IF((CODE.EQ.0))GOTO 11178
          AAAER0=10
          GOTO 11152
11179   CONTINUE
11178 CONTINUE
11177 CALL SRCH$$(:4,0,0,IFD,0,CODE)
      CALL SRCH$$(:4,0,0,OFD,0,CODE)
      ARRAY(1)=BUF(18)
      ARRAY(2)=0
      CALL SATR$$(:1,TNAME,32,ARRAY,CODE)
      ARRAY(1)=BUF(21)
      ARRAY(2)=BUF(22)
      CALL SATR$$(:2,TNAME,32,ARRAY,CODE)
      ARRAY(1)=RT(RS(BUF(20),10),2)
      ARRAY(2)=0
      CALL SATR$$(:4,TNAME,32,ARRAY,CODE)
      IF((AND(BUF(20),16384).EQ.0))GOTO 11180
        CALL SATR$$(:3,TNAME,32,INTL(0),CODE)
11180 FILCPY=-2
      RETURN
11152 IF((IFD.EQ.0))GOTO 11181
        CALL SRCH$$(:4,0,0,IFD,0,CODE)
11181 IF((OFD.EQ.0))GOTO 11182
        CALL SRCH$$(:4,0,0,OFD,0,CODE)
11182 FILCPY=-3
      RETURN
11183 GOTO(11154,11156,11159,11161,11163,11165,11168,11170,11176,11179),
     *AAAER0
      GOTO 11183
      END
      SUBROUTINE FILSET(DELIM,ARRAY,I,SET,J,MAXSET)
      INTEGER I,J,MAXSET
      INTEGER ARRAY(1),DELIM,SET(MAXSET)
      INTEGER ESC
      INTEGER ADDSET,INDEX
      INTEGER JUNK
      INTEGER DIGITS(11)
      INTEGER LOWALF(27)
      INTEGER UPALF(27)
      DATA DIGITS/176,177,178,179,180,181,182,183,184,185,0/
      DATA LOWALF/225,226,227,228,229,230,231,232,233,234,235,236,237,23
     *8,239,240,241,242,243,244,245,246,247,248,249,250,0/
      DATA UPALF/193,194,195,196,197,198,199,200,201,202,203,204,205,206
     *,207,208,209,210,211,212,213,214,215,216,217,218,0/
      GOTO 11186
11184 I=I+(1)
11186 IF((ARRAY(I).EQ.DELIM))GOTO 11185
      IF((ARRAY(I).EQ.0))GOTO 11185
        IF((ARRAY(I).NE.192))GOTO 11187
          JUNK=ADDSET(ESC(ARRAY,I),SET,J,MAXSET)
          GOTO 11184
11187     IF((ARRAY(I).EQ.173))GOTO 11189
            JUNK=ADDSET(ARRAY(I),SET,J,MAXSET)
            GOTO 11190
11189       IF((J.LE.1))GOTO 11192
            IF((ARRAY(I+1).EQ.0))GOTO 11192
            GOTO 11191
11192         JUNK=ADDSET(173,SET,J,MAXSET)
              GOTO 11193
11191         IF((INDEX(DIGITS,SET(J-1)).LE.0))GOTO 11194
                CALL DODASH(DIGITS,ARRAY,I,SET,J,MAXSET)
                GOTO 11195
11194           IF((INDEX(LOWALF,SET(J-1)).LE.0))GOTO 11196
                  CALL DODASH(LOWALF,ARRAY,I,SET,J,MAXSET)
                  GOTO 11197
11196             IF((INDEX(UPALF,SET(J-1)).LE.0))GOTO 11198
                    CALL DODASH(UPALF,ARRAY,I,SET,J,MAXSET)
                    GOTO 11199
11198               JUNK=ADDSET(173,SET,J,MAXSET)
11199           CONTINUE
11197         CONTINUE
11195       CONTINUE
11193     CONTINUE
11190   CONTINUE
11188 GOTO 11184
11185 RETURN
      END
      INTEGER FUNCTION FILTST(PATH,ZERO,PERMI0,EXISTS,TYPE,READA0,WRITE0
     *,DUMPED)
      INTEGER PATH(180)
      INTEGER ZERO
      INTEGER PERMI0
      INTEGER EXISTS
      INTEGER TYPE
      INTEGER READA0
      INTEGER WRITE0
      INTEGER DUMPED
      INTEGER PFD,PPWD(32),PNAME(32),ATTACH,TEMP
      INTEGER VNAME(17)
      INTEGER GETTO,OPEN
      INTEGER CODE,BUF(32),JUNK
      INTEGER AAAES0
      INTEGER AAAET0
      IF((GETTO(PATH,PNAME,PPWD,ATTACH).NE.-3))GOTO 11202
        FILTST=-3
        RETURN
11202 IF((EXISTS.EQ.0))GOTO 11203
        CALL SRCH$$(:6,PNAME,32,PFD,TEMP,CODE)
        IF((CODE.NE.15))GOTO 11206
        IF((EXISTS.NE.-1))GOTO 11206
        GOTO 11209
11206   IF((CODE.NE.16))GOTO 11207
        IF((EXISTS.NE.-1))GOTO 11207
        GOTO 11209
11207   IF((CODE.NE.0))GOTO 11204
        IF((EXISTS.NE.1))GOTO 11204
        GOTO 11209
11204     AAAES0=1
          GOTO 11200
11210   CONTINUE
11209 CONTINUE
11203 IF((READA0.EQ.0))GOTO 11211
        TEMP=OPEN(PATH,1)
        IF((TEMP.EQ.-3))GOTO 11212
          CALL CLOSE(TEMP)
11212   IF((TEMP.NE.-3))GOTO 11215
        IF((READA0.NE.1))GOTO 11215
        GOTO 11214
11215   IF((TEMP.EQ.-3))GOTO 11213
        IF((READA0.NE.-1))GOTO 11213
        GOTO 11214
11214     AAAES0=2
          GOTO 11200
11217   CONTINUE
11213 CONTINUE
11211 IF((WRITE0.EQ.0))GOTO 11218
        TEMP=OPEN(PATH,2)
        IF((TEMP.EQ.-3))GOTO 11219
          CALL CLOSE(TEMP)
11219   IF((TEMP.NE.-3))GOTO 11222
        IF((WRITE0.NE.1))GOTO 11222
        GOTO 11221
11222   IF((TEMP.EQ.-3))GOTO 11220
        IF((WRITE0.NE.-1))GOTO 11220
        GOTO 11221
11221     AAAES0=3
          GOTO 11200
11224   CONTINUE
11220 CONTINUE
11218 IF((ZERO.EQ.0))GOTO 11225
        CALL SRCH$$(:1+:40000,PNAME,32,PFD,TEMP,CODE)
        IF((CODE.EQ.0))GOTO 11226
          AAAET0=1
          GOTO 11201
11227   CONTINUE
11226   CALL PRWF$$(:3+:10,PFD,LOC(TEMP),0,INTL(1),0,CODE)
        CALL SRCH$$(:4,PNAME,32,PFD,TEMP,JUNK)
        IF((CODE.NE.0))GOTO 11230
        IF((ZERO.NE.-1))GOTO 11230
        GOTO 11232
11230   IF((CODE.NE.1))GOTO 11228
        IF((ZERO.NE.1))GOTO 11228
        GOTO 11232
11228     AAAES0=4
          GOTO 11200
11233   CONTINUE
11232 CONTINUE
11225 IF((DUMPED.NE.0))GOTO 11235
      IF((PERMI0.NE.0))GOTO 11235
      IF((TYPE.NE.0))GOTO 11235
      GOTO 11234
11235   CALL SRCH$$(:1+:40000,:177777,0,PFD,TEMP,CODE)
        IF((CODE.EQ.0))GOTO 11236
          AAAET0=2
          GOTO 11201
11237   CONTINUE
11236   CALL PTOV(PNAME,160,VNAME,17)
        CALL ENT$RD(PFD,VNAME,LOC(BUF),32,CODE)
        CALL SRCH$$(:4,0,0,PFD,TEMP,JUNK)
        IF((CODE.EQ.0))GOTO 11238
          AAAET0=3
          GOTO 11201
11239   CONTINUE
11238   IF((PERMI0.EQ.0))GOTO 11240
          IF((PERMI0.NE.AND(BUF(18),PERMI0)))GOTO 11241
            GOTO 11242
11241       AAAES0=5
            GOTO 11200
11243     CONTINUE
11242   CONTINUE
11240   IF((TYPE.EQ.0))GOTO 11244
          TEMP=AND(TYPE,:77)
          IF((TEMP.NE.AND(BUF(20),:77)))GOTO 11245
            GOTO 11246
11245       AAAES0=6
            GOTO 11200
11247     CONTINUE
11246   CONTINUE
11244   IF((DUMPED.EQ.0))GOTO 11248
          IF((DUMPED.NE.-1))GOTO 11251
          IF((AND(BUF(20),:40000).NE.0))GOTO 11251
          GOTO 11253
11251     IF((DUMPED.NE.1))GOTO 11249
          IF((AND(BUF(20),:40000).EQ.0))GOTO 11249
          GOTO 11253
11249       AAAES0=7
            GOTO 11200
11254     CONTINUE
11253   CONTINUE
11248 CONTINUE
11234 IF((ATTACH.NE.1))GOTO 11255
        CALL AT$HOM(CODE)
11255 FILTST=1
      RETURN
11200 IF((ATTACH.NE.1))GOTO 11256
        CALL AT$HOM(CODE)
11256 FILTST=0
      RETURN
11201 IF((ATTACH.NE.1))GOTO 11257
        CALL AT$HOM(CODE)
11257 FILTST=-3
      RETURN
11258 GOTO(11210,11217,11224,11233,11243,11247,11254),AAAES0
      GOTO 11258
11259 GOTO(11227,11237,11239),AAAET0
      GOTO 11259
      END
      INTEGER FUNCTION FINDF$(FILE)
      INTEGER FILE(16)
      INTEGER JUNK,RC
      CALL SRCH$$(:6,FILE,32,16,JUNK,RC)
      IF((RC.NE.15))GOTO 11260
        FINDF$=0
        GOTO 11261
11260   FINDF$=1
11261 RETURN
      END
      INTEGER FUNCTION FINFO$(PATH,ENTRY,ATTACH)
      INTEGER PATH(1)
      INTEGER ENTRY(1),ATTACH
      INTEGER CODE,FD,JUNK(3)
      INTEGER NAME(16),VNAME(17)
      INTEGER GETTO
      FINFO$=-3
      IF((GETTO(PATH,NAME,JUNK,ATTACH).NE.-3))GOTO 11262
        RETURN
11262 CALL SRCH$$(:1+:40000,:177777,0,FD,JUNK,CODE)
      IF((CODE.EQ.0))GOTO 11263
        RETURN
11263 CALL PTOV(NAME,160,VNAME,17)
      CALL ENT$RD(FD,VNAME,LOC(ENTRY),32,CODE)
      CALL SRCH$$(:4,0,0,FD,0,JUNK)
      IF((CODE.NE.0))GOTO 11264
        FINFO$=-2
11264 RETURN
      END
      INTEGER FUNCTION FIRST$(FLAG)
      INTEGER FLAG
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((FIRST0.NE.21845))GOTO 11265
        FLAG=0
        GOTO 11266
11265   FLAG=1
        FIRST0=21845
11266 FIRST$=FLAG
      RETURN
      END
      INTEGER FUNCTION FLUSH$(FD)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER F,JUNK
      INTEGER ZEROS0(2)
      INTEGER AAAEU0
      INTEGER AAAEV0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA ZEROS0/0,0/
      IF((FD.LT.1))GOTO 11268
      IF((FD.GT.128))GOTO 11268
      GOTO 11267
11268   FLUSH$=-3
        RETURN
11267 F=FD*16-16+1
      IF((FDFLA0(F).EQ.0))GOTO 11270
      IF((AND(FDFLA0(F),:004000).NE.0))GOTO 11270
      GOTO 11269
11270   FLUSH$=-3
        RETURN
11269 ERRCO0=0
      CALL BREAK$(1)
      AAAEU0=FDDEV0(F)
      GOTO 11271
11272   AAAEV0=AND(FDFLA0(F),:000017)
        GOTO 11273
11274     IF((FDBCO0(F).EQ.0))GOTO 11275
            CALL DPUTL$(ZEROS0,FDESC0(F))
            GOTO 11276
11275       IF((AND(FDFLA0(F),:100000).EQ.0))GOTO 11277
              FDCOU0(F)=FDCOU0(F)+(1)
11277     CONTINUE
11276     IF((FDCOU0(F)+FDBUH0(F).LE.0))GOTO 11287
            CALL PRWF$$(:2,FDUNI0(F),LOC(FDBUF0(FDBUG0(F)+1)),FDCOU0(F)+
     *FDBUH0(F),INTL(0),JUNK,ERRCO0)
11278   GOTO 11287
11280     IF((AND(FDFLA0(F),:100000).EQ.0))GOTO 11281
            FDCOU0(F)=FDCOU0(F)+(1)
11281     IF((FDCOU0(F).GE.0))GOTO 11287
            CALL PRWF$$(:3+:0,FDUNI0(F),INTL(0),0,INTL(FDCOU0(F)),JUNK,E
     *RRCO0)
11282   GOTO 11287
11283     IF((FDCOU0(F)+FDBUH0(F).EQ.0))GOTO 11287
            CALL PRWF$$(:2,FDUNI0(F),LOC(FDBUF0(FDBUG0(F)+1)),FDCOU0(F)+
     *FDBUH0(F),INTL(0),JUNK,ERRCO0)
11284   GOTO 11287
11285     IF((FDCOU0(F).GE.0))GOTO 11287
            CALL PRWF$$(:3+:0,FDUNI0(F),INTL(0),0,INTL(FDCOU0(F)),JUNK,E
     *RRCO0)
11286   GOTO 11287
11273   GOTO(11285,11283,11280,11274),AAAEV0
11279 GOTO 11287
11271 IF(AAAEU0.EQ.2)GOTO 11272
11287 FDBUI0(F)=0
      FDCOU0(F)=0
      FDBCO0(F)=0
      FDFLA0(F)=AND(FDFLA0(F),NOT(:100000))
      FDFLA0(F)=AND(FDFLA0(F),NOT(:000017))+0
      CALL BREAK$(0)
      IF((ERRCO0.EQ.0))GOTO 11288
        FDFLA0(F)=OR(FDFLA0(F),:004000)
        FLUSH$=-3
        RETURN
11288 FLUSH$=-2
      RETURN
      END
      INTEGER FUNCTION FOLLOW(PATH,SETH)
      INTEGER PATH(1)
      INTEGER SETH
      INTEGER I,SAVEB0(4)
      INTEGER GETTO,PTOC
      SHORTCALL MKONU$(18)
      EXTERNAL BPONU$
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER ATTAC0
      INTEGER PNAME(16),PPWD(3),UNPAC0(40),VPACK(21),I
      INTEGER AAAEW0
      INTEGER AAAEX0(8)
      INTEGER AAAEY0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAEX0/13,-15679,-15137,-12095,-11309,-10289,-11580,-23392/
      CALL BREAK$(1)
      DO 11290 I=1,4
        SAVEB0(I)=BPLAB0(I)
11290 CONTINUE
11291 CALL MKLB$F($1,BPLAB0)
      CALL BREAK$(0)
      CALL MKONU$(AAAEX0,LOC(BPONU$))
      IF((PATH(1).NE.0))GOTO 11292
        CALL AT$HOM(ERRCO0)
        GOTO 11293
11292   IF((GETTO(PATH,PNAME,PPWD,ATTAC0).NE.-2))GOTO 11294
          I=PTOC(PNAME,160,UNPAC0,33)
          UNPAC0(I+1)=160
          I=I+(2)
          CALL PTOC(PPWD,160,UNPAC0(I),7)
          I=1
          CALL CTOV(UNPAC0,I,VPACK,21)
          CALL AT$REL(SETH,VPACK,ERRCO0)
          GOTO 11295
11294     CONTINUE
1         CALL AT$HOM(I)
          AAAEW0=1
          GOTO 11289
11296     FOLLOW=-3
          RETURN
11295 CONTINUE
11293 IF((ERRCO0.NE.0))GOTO 11297
        AAAEW0=2
        GOTO 11289
11298   FOLLOW=-2
        RETURN
11297   CALL AT$HOM(I)
        AAAEW0=3
        GOTO 11289
11299   FOLLOW=-3
        RETURN
11289 CALL BREAK$(1)
      DO 11300 AAAEY0=1,4
        BPLAB0(AAAEY0)=SAVEB0(AAAEY0)
11300 CONTINUE
11301 CALL BREAK$(0)
      GOTO 11302
11302 GOTO(11296,11298,11299),AAAEW0
      GOTO 11302
      END
      INTEGER FUNCTION GCDIR$(PATH)
      INTEGER PATH(1)
      INTEGER CURDIR(102),DIRNA0(102)
      INTEGER SIZE,CODE
      INTEGER MKPA$
      CALL GPATH$(:2,0,CURDIR,102,SIZE,CODE)
      IF((CODE.EQ.0))GOTO 11303
        GCDIR$=-3
        RETURN
11303 CALL PTOC(CURDIR,0,DIRNA0,SIZE+1)
      CALL MKPA$(DIRNA0,PATH,0)
      GCDIR$=-2
      RETURN
      END
      INTEGER FUNCTION GCIFU$(FUNIT)
      INTEGER FUNIT
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      FUNIT=COMUN0
      GCIFU$=FUNIT
      RETURN
      END
      INTEGER FUNCTION GCTOI(STR,I,RADIX)
      INTEGER STR(1)
      INTEGER I,RADIX
      INTEGER BASE,V,D,J
      INTEGER INDEX
      INTEGER MAPDN
      LOGICAL NEG
      INTEGER DIGITS(17)
      DATA DIGITS/176,177,178,179,180,181,182,183,184,185,225,226,227,22
     *8,229,230,0/
      V=0
      BASE=RADIX
11304 IF((STR(I).NE.160))GOTO 11305
        I=I+(1)
      GOTO 11304
11305 NEG=(STR(I).EQ.173)
      IF((STR(I).EQ.171))GOTO 11307
      IF((STR(I).EQ.173))GOTO 11307
      GOTO 11306
11307   I=I+(1)
11306 IF((STR(I+2).NE.242))GOTO 11310
      IF((STR(I).NE.177))GOTO 11310
      IF((176.GT.STR(I+1)))GOTO 11310
      IF((STR(I+1).GT.185))GOTO 11310
      GOTO 11309
11310 IF((STR(I+1).NE.242))GOTO 11318
      IF((176.GT.STR(I)))GOTO 11318
      IF((STR(I).GT.185))GOTO 11318
      GOTO 11309
11309   BASE=STR(I)-176
        J=I
        IF((STR(I+1).EQ.242))GOTO 11312
          J=J+(1)
          BASE=BASE*10+(STR(J)-176)
11312   IF((BASE.LT.2))GOTO 11314
        IF((BASE.GT.16))GOTO 11314
        GOTO 11313
11314     BASE=RADIX
          GOTO 11315
11313     I=J+2
11315 CONTINUE
11308 GOTO 11318
11316 I=I+(1)
11318 IF((STR(I).EQ.0))GOTO 11317
        IF((176.GT.STR(I)))GOTO 11319
        IF((STR(I).GT.185))GOTO 11319
          D=STR(I)-176
          GOTO 11320
11319     D=INDEX(DIGITS,MAPDN(STR(I)))-1
11320   IF((D.LT.0))GOTO 11317
        IF((D.GE.BASE))GOTO 11317
        GOTO 11321
11321   V=V*BASE+D
      GOTO 11316
11317 IF((.NOT.NEG))GOTO 11323
        GCTOI=-V
        RETURN
11323   GCTOI=+V
        RETURN
      END
      INTEGER * 4 FUNCTION GCTOL(STR,I,RADIX)
      INTEGER STR(1)
      INTEGER I,RADIX
      INTEGER * 4 V
      INTEGER BASE,D,J
      INTEGER INDEX
      INTEGER MAPDN
      LOGICAL NEG
      INTEGER DIGITS(17)
      DATA DIGITS/176,177,178,179,180,181,182,183,184,185,225,226,227,22
     *8,229,230,0/
      V=0
      BASE=RADIX
11324 IF((STR(I).NE.160))GOTO 11325
        I=I+(1)
      GOTO 11324
11325 NEG=(STR(I).EQ.173)
      IF((STR(I).EQ.171))GOTO 11327
      IF((STR(I).EQ.173))GOTO 11327
      GOTO 11326
11327   I=I+(1)
11326 IF((STR(I+2).NE.242))GOTO 11330
      IF((STR(I).NE.177))GOTO 11330
      IF((176.GT.STR(I+1)))GOTO 11330
      IF((STR(I+1).GT.185))GOTO 11330
      GOTO 11329
11330 IF((STR(I+1).NE.242))GOTO 11338
      IF((176.GT.STR(I)))GOTO 11338
      IF((STR(I).GT.185))GOTO 11338
      GOTO 11329
11329   BASE=STR(I)-176
        J=I
        IF((STR(I+1).EQ.242))GOTO 11332
          J=J+(1)
          BASE=BASE*10+(STR(J)-176)
11332   IF((BASE.LT.2))GOTO 11334
        IF((BASE.GT.16))GOTO 11334
        GOTO 11333
11334     BASE=RADIX
          GOTO 11335
11333     I=J+2
11335 CONTINUE
11328 GOTO 11338
11336 I=I+(1)
11338 IF((STR(I).EQ.0))GOTO 11337
        IF((176.GT.STR(I)))GOTO 11339
        IF((STR(I).GT.185))GOTO 11339
          D=STR(I)-176
          GOTO 11340
11339     D=INDEX(DIGITS,MAPDN(STR(I)))-1
11340   IF((D.LT.0))GOTO 11337
        IF((D.GE.BASE))GOTO 11337
        GOTO 11341
11341   V=V*BASE+D
      GOTO 11336
11337 IF((.NOT.NEG))GOTO 11343
        GCTOL=-V
        RETURN
11343   GCTOL=+V
        RETURN
      END
      INTEGER FUNCTION GETA$F(AP,STR,LEN)
      INTEGER AP,LEN
      INTEGER STR(1)
      INTEGER I
      INTEGER GETARG,CTOP
      INTEGER ARG(128)
      I=(LEN+1)/2
      GOTO 11346
11344 I=I-(1)
11346 IF((I.LE.0))GOTO 11345
        STR(I)='  '
      GOTO 11344
11345 IF((GETARG(AP,ARG,128).NE.-1))GOTO 11347
        GETA$F=-1
        RETURN
11347 I=1
      GETA$F=CTOP(ARG,I,STR,LEN/2)
      RETURN
      END
      INTEGER FUNCTION GETA$P(AP,STR,LEN)
      INTEGER AP,LEN
      INTEGER STR(1)
      INTEGER I
      INTEGER GETARG,CTOP
      INTEGER ARG(128)
      I=(LEN+1)/2
      GOTO 11350
11348 I=I-(1)
11350 IF((I.LE.0))GOTO 11349
        STR(I)='  '
      GOTO 11348
11349 IF((GETARG(AP,ARG,128).NE.-1))GOTO 11351
        GETA$P=-1
        RETURN
11351 I=1
      GETA$P=CTOP(ARG,I,STR,LEN/2)
      RETURN
      END
      INTEGER FUNCTION GETARG(ARGP,STR,SIZE)
      INTEGER ARGP,SIZE
      INTEGER STR(1)
      INTEGER P,I
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((ARGP.LT.0))GOTO 11353
      IF((ARGP.GE.ARGCA0))GOTO 11353
      GOTO 11352
11353   STR(1)=0
        GETARG=-1
        RETURN
11352 P=ARGVA0(ARGP+1)
      I=1
      GOTO 11356
11354 I=I+(1)
11356 IF((I.GE.SIZE))GOTO 11355
11357   IF((LSREF0(P).LT.300))GOTO 11358
          P=LSREF0(P)-300
        GOTO 11357
11358   IF((LSREF0(P).NE.0))GOTO 11359
          GOTO 11355
11359   STR(I)=LSREF0(P)
        P=P+(1)
      GOTO 11354
11355 STR(I)=0
      GETARG=I-1
      RETURN
      END
      INTEGER FUNCTION GETCCL(ARG,I,PAT,J)
      INTEGER ARG(128),PAT(256)
      INTEGER I,J
      INTEGER ADDSET
      INTEGER JSTART,JUNK
      I=I+(1)
      IF((ARG(I).NE.254))GOTO 11360
        JUNK=ADDSET(238,PAT,J,256)
        I=I+(1)
        GOTO 11361
11360   JUNK=ADDSET(219,PAT,J,256)
11361 JSTART=J
      JUNK=ADDSET(0,PAT,J,256)
      CALL FILSET(221,ARG,I,PAT,J,256)
      PAT(JSTART)=J-JSTART-1
      IF((ARG(I).NE.221))GOTO 11362
        GETCCL=-2
        GOTO 11363
11362   GETCCL=-3
11363 RETURN
      END
      INTEGER FUNCTION GETCH(C,FD)
      INTEGER C
      INTEGER FD
      INTEGER BUF(2)
      INTEGER GETLIN
      C=GETLIN(BUF,FD,2)
      IF((C.EQ.-1))GOTO 11364
        C=BUF(1)
11364 GETCH=C
      RETURN
      END
      INTEGER FUNCTION GETFD$(FD)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER LIMIT
      INTEGER AAAFB0
      INTEGER AAAEZ0,AAAFA0
      INTEGER AAAFC0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      LIMIT=((LOC(FDMEM0)/1024*1024+1024)-LOC(FDMEM0))/16
      AAAEZ0=FDLAS0
      AAAFA0=LIMIT
      AAAFB0=1
      GOTO 11365
11366 AAAEZ0=FDLAS0
      AAAFA0=128
      AAAFB0=2
      GOTO 11365
11367 GETFD$=-3
      RETURN
11365 IF((AAAEZ0.LT.1))GOTO 11369
      IF((AAAEZ0.GT.AAAFA0))GOTO 11369
      GOTO 11368
11369   AAAEZ0=1
11368 IF((AAAEZ0.LT.AAAFA0))GOTO 11370
        AAAFC0=1
        GOTO 11371
11370   AAAFC0=AAAEZ0+1
11371 CONTINUE
11372 IF((FDFLA0(AAAFC0*16-16+1).EQ.0))GOTO 11373
      IF((AAAFC0.EQ.AAAFA0))GOTO 11373
        IF((AAAFC0.LT.AAAFA0))GOTO 11374
          AAAFC0=1
          GOTO 11372
11374     AAAFC0=AAAFC0+(1)
11375 GOTO 11372
11373 IF((AAAFC0.EQ.AAAFA0))GOTO 11377
        FDLAS0=AAAFC0
        FD=AAAFC0
        GETFD$=AAAFC0
        RETURN
11377 GOTO(11366,11367),AAAFB0
      GOTO 11377
      END
      INTEGER FUNCTION GETKWD(KEYWD,VALUE,LENGTH,DEFALT)
      INTEGER KEYWD(1),VALUE(1),DEFALT(1)
      INTEGER LENGTH
      INTEGER I,J
      INTEGER EQUAL,GETARG
      INTEGER ARG(128)
      I=1
      GOTO 11380
11378 I=I+(1)
11380 IF((GETARG(I,ARG,128).EQ.-1))GOTO 11379
        IF((EQUAL(KEYWD,ARG).NE.1))GOTO 11378
          GETKWD=GETARG(I+1,VALUE,LENGTH)
          IF((GETKWD.NE.-1))GOTO 11382
            GOTO 11379
11382     RETURN
11379 J=1
      GOTO 11385
11383 J=J+(1)
11385 IF((J.GE.LENGTH))GOTO 11384
      IF((DEFALT(J).EQ.0))GOTO 11384
        VALUE(J)=DEFALT(J)
      GOTO 11383
11384 VALUE(J)=0
      GETKWD=J-1
      RETURN
      END
      INTEGER FUNCTION GETLIN(LINE,FD,XMAX)
      INTEGER LINE(1)
      INTEGER FD,XMAX
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER OFF,MAX,F
      INTEGER TGETL$,DGETL$,MAPSU
      LOGICAL MISSIN
      INTEGER AAAFD0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      F=MAPSU(FD)
      OFF=F*16-16+1
      IF((F.LT.1))GOTO 11387
      IF((F.GT.128))GOTO 11387
      IF((AND(FDFLA0(OFF),:040000).EQ.0))GOTO 11387
      IF((AND(FDFLA0(OFF),:004000).NE.0))GOTO 11387
      GOTO 11386
11387   LINE(1)=0
        GETLIN=-1
        RETURN
11386 IF((.NOT.MISSIN(XMAX)))GOTO 11388
        MAX=102
        GOTO 11389
11388   MAX=XMAX
11389 IF((MAX.GT.1))GOTO 11390
        LINE(1)=0
        GETLIN=0
        RETURN
11390 IF((AND(FDFLA0(OFF),:000017).EQ.3))GOTO 11391
        CALL FLUSH$(F)
        FDFLA0(OFF)=AND(FDFLA0(OFF),NOT(:000017))+3
11391 AAAFD0=FDDEV0(OFF)
      GOTO 11392
11393   GETLIN=TGETL$(LINE,MAX,OFF)
      GOTO 11394
11395   GETLIN=DGETL$(LINE,MAX,FDESC0(OFF))
      GOTO 11394
11396   GETLIN=0
      GOTO 11394
11392 GOTO(11393,11395,11396),AAAFD0
        GETLIN=0
11394 IF((GETLIN.NE.0))GOTO 11397
        LINE(1)=0
        GETLIN=-1
        RETURN
11397 RETURN
      END
      INTEGER FUNCTION GETTO(PATHIN,PFILE0,PPWD,ATTAC0)
      INTEGER PATHIN(1)
      INTEGER PFILE0(16),PPWD(3)
      INTEGER ATTAC0
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER EXPAND,MKTR$
      INTEGER DIRNA0(256),TEMP(180)
      INTEGER FULLT0(256),DISKN0(17)
      INTEGER COUNT,LOOP,SP,TP,J,SAVEB0(4)
      SHORTCALL MKONU$(18)
      EXTERNAL BPONU$
      INTEGER AAAFE0
      INTEGER AAAFF0
      INTEGER AAAFG0
      INTEGER AAAFH0
      INTEGER AAAFI0(8)
      INTEGER AAAFJ0(11)
      INTEGER AAAFK0(2)
      INTEGER AAAFL0(6)
      INTEGER AAAFM0
      INTEGER AAAFN0,AAAFO0
      INTEGER AAAFP0
      INTEGER AAAFQ0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAFI0/13,-15679,-15137,-12095,-11309,-10289,-11580,-23392/
      DATA AAAFJ0/205,198,196,160,216,216,216,216,216,216,0/
      DATA AAAFK0/1,-21856/
      DATA AAAFL0/10,-12858,-15200,-10024,-10024,-10024/
      CALL BREAK$(1)
      DO 11402 J=1,4
        SAVEB0(J)=BPLAB0(J)
11402 CONTINUE
11403 CALL MKLB$F($1,BPLAB0)
      CALL BREAK$(0)
      CALL MKONU$(AAAFI0,LOC(BPONU$))
      ATTAC0=1
      IF((EXPAND(PATHIN,TEMP,180).NE.-3))GOTO 11404
        ATTAC0=0
        AAAFH0=1
        GOTO 11401
11405   GETTO=-3
        RETURN
11404 CALL MKTR$(TEMP,FULLT0)
      CALL MAPSTR(FULLT0,2)
      IF((PATHIN(1).NE.0))GOTO 11406
        CALL AT$HOM(ERRCO0)
        AAAFE0=1
        GOTO 11398
11407   TP=1
        AAAFG0=1
        GOTO 11400
11408   PFILE0(1)=:177777
        ATTAC0=0
        AAAFH0=2
        GOTO 11401
11409   GETTO=-2
        RETURN
11406 COUNT=0
      LOOP=1
      GOTO 11412
11410 LOOP=LOOP+(1)
11412 IF((FULLT0(LOOP).EQ.0))GOTO 11411
        IF((FULLT0(LOOP).NE.190))GOTO 11410
          COUNT=COUNT+(1)
11413 GOTO 11410
11411 IF((FULLT0(1).EQ.170))GOTO 11414
        COUNT=COUNT+(1)
11414 LOOP=1
11415   IF((LOOP.EQ.1))GOTO 11416
          AAAFF0=1
          GOTO 11399
11417     CALL AT$REL(:0,DIRNA0,ERRCO0)
          GOTO 11418
11416     IF((FULLT0(1).NE.188))GOTO 11419
            TP=1
            GOTO 11422
11420       TP=TP+(1)
11422       IF((FULLT0(TP).EQ.190))GOTO 11421
              TEMP(TP)=FULLT0(TP)
            GOTO 11420
11421       TP=TP+(1)
            IF((COUNT.NE.1))GOTO 11423
              AAAFG0=2
              GOTO 11400
11424       CONTINUE
11423       TEMP(TP-1)=190
            CALL CTOC(AAAFJ0,TEMP(TP),180)
            SP=1
            CALL CTOV(TEMP,SP,DIRNA0,256)
            CALL AT$(:0,DIRNA0,ERRCO0)
            GOTO 11425
11419       IF((FULLT0(1).NE.170))GOTO 11426
              TP=3
              IF((COUNT.NE.1))GOTO 11427
                ATTAC0=0
                AAAFG0=3
                GOTO 11400
11428           AAAFH0=3
                GOTO 11401
11429           GETTO=-2
                RETURN
11427           AAAFF0=2
                GOTO 11399
11430           CALL AT$REL(:0,DIRNA0,ERRCO0)
              GOTO 11431
11426         TP=1
              IF((COUNT.NE.1))GOTO 11432
                AAAFG0=4
                GOTO 11400
11433         CONTINUE
11432         AAAFF0=3
              GOTO 11399
11434         CALL AT$ANY(:0,DIRNA0,ERRCO0)
              IF((COUNT.NE.1))GOTO 11435
                AAAFE0=2
                GOTO 11398
11436           CALL AT$ABS(:0,AAAFK0,AAAFL0,ERRCO0)
                AAAFE0=3
                GOTO 11398
11437           AAAFH0=4
                GOTO 11401
11438           GETTO=-2
                RETURN
11435       CONTINUE
11431     CONTINUE
11425   CONTINUE
11418   AAAFE0=4
        GOTO 11398
11439   LOOP=LOOP+(1)
      IF((LOOP.LT.COUNT))GOTO 11415
      AAAFG0=5
      GOTO 11400
11440 AAAFH0=5
      GOTO 11401
11441 GETTO=-2
      RETURN
1     CONTINUE
      ERRCO0=24
      AAAFE0=5
      GOTO 11398
11398 IF((ERRCO0.EQ.0))GOTO 11446
        CALL AT$HOM(AAAFM0)
        ATTAC0=0
        AAAFH0=6
        GOTO 11401
11445   GETTO=-3
        RETURN
11399 AAAFN0=1
      GOTO 11450
11448 AAAFN0=AAAFN0+(1)
      TP=TP+(1)
11450 IF((FULLT0(TP).EQ.190))GOTO 11449
      IF((FULLT0(TP).EQ.0))GOTO 11449
        TEMP(AAAFN0)=FULLT0(TP)
      GOTO 11448
11449 TEMP(AAAFN0)=0
      TP=TP+(1)
      AAAFO0=1
      CALL CTOV(TEMP,AAAFO0,DIRNA0,21)
      IF((AAAFN0.LE.40))GOTO 11453
        ERRCO0=57
        AAAFE0=6
        GOTO 11398
11452 CONTINUE
11451 GOTO 11453
11400 DO 11455 AAAFP0=1,3
        PPWD(AAAFP0)='  '
11455 CONTINUE
11456 DO 11457 AAAFP0=1,16
        PFILE0(AAAFP0)='  '
11457 CONTINUE
11458 J=0
      AAAFP0=TP
      GOTO 11461
11459 AAAFP0=AAAFP0+(1)
11461 IF((FULLT0(AAAFP0).EQ.0))GOTO 11460
      IF((FULLT0(AAAFP0).EQ.160))GOTO 11460
      IF((J.GT.32))GOTO 11460
        IF((AND(J,1).NE.0))GOTO 11462
          PFILE0(RS(J,1)+1)=XOR(LS(FULLT0(AAAFP0),8),RT(PFILE0(RS(J,1)+1
     *),8))
          GOTO 11463
11462     PFILE0(RS(J,1)+1)=XOR(LT(PFILE0(RS(J,1)+1),8),FULLT0(AAAFP0))
11463   J=J+(1)
      GOTO 11459
11460 IF((FULLT0(AAAFP0).EQ.0))GOTO 11470
        J=0
        AAAFP0=AAAFP0+(1)
        GOTO 11467
11465   AAAFP0=AAAFP0+(1)
11467   IF((FULLT0(AAAFP0).EQ.0))GOTO 11466
        IF((J.GT.6))GOTO 11466
          IF((AND(J,1).NE.0))GOTO 11468
            PPWD(RS(J,1)+1)=XOR(LS(FULLT0(AAAFP0),8),RT(PPWD(RS(J,1)+1),
     *8))
            GOTO 11469
11468       PPWD(RS(J,1)+1)=XOR(LT(PPWD(RS(J,1)+1),8),FULLT0(AAAFP0))
11469     J=J+(1)
        GOTO 11465
11466 CONTINUE
11464 GOTO 11470
11401 CALL BREAK$(1)
      DO 11472 AAAFQ0=1,4
        BPLAB0(AAAFQ0)=SAVEB0(AAAFQ0)
11472 CONTINUE
11473 CALL BREAK$(0)
      GOTO 11474
11471 CONTINUE
11446 GOTO(11407,11436,11437,11439,11471,11452),AAAFE0
      GOTO 11446
11470 GOTO(11408,11424,11428,11433,11440),AAAFG0
      GOTO 11470
11474 GOTO(11405,11409,11429,11438,11441,11445),AAAFH0
      GOTO 11474
11453 GOTO(11417,11430,11434),AAAFF0
      GOTO 11453
      END
      SUBROUTINE GETVDN(FN,PN,UN)
      INTEGER FN(1),PN(1),UN(1)
      INTEGER I
      INTEGER LENGTH,EQUAL,CTOC,SCOPY
      INTEGER NAME(102)
      LOGICAL MISSIN
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER AAAFR0(8)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAFR0/189,246,225,242,243,189,175,0/
      I=CTOC(AAAFR0,PN,102)
      CALL DATE(3,NAME)
      IF(MISSIN(UN))GOTO 11476
      IF((EQUAL(UN,NAME).EQ.1))GOTO 11476
      GOTO 11475
11476   I=I+(SCOPY(NAME,1,PN,I+1))
        IF((LENGTH(PASSW0).EQ.0))GOTO 11478
          PN(I+1)=186
          I=I+(SCOPY(PASSW0,1,PN,I+2)+1)
11477   GOTO 11478
11475   I=I+(SCOPY(UN,1,PN,I+1))
11478 PN(I+1)=175
      CALL SCOPY(FN,1,PN,I+2)
      RETURN
      END
      INTEGER FUNCTION GETWRD(IN,I,OUT)
      INTEGER IN(1),OUT(1)
      INTEGER I,J
11479 IF((IN(I).NE.160))GOTO 11480
        I=I+(1)
      GOTO 11479
11480 J=1
      GOTO 11483
11481 I=I+(1)
      J=J+(1)
11483 IF((IN(I).EQ.0))GOTO 11482
      IF((IN(I).EQ.160))GOTO 11482
      IF((IN(I).EQ.138))GOTO 11482
        OUT(J)=IN(I)
      GOTO 11481
11482 OUT(J)=0
      GETWRD=J-1
      RETURN
      END
      INTEGER FUNCTION GFDATA(KEY,XPATH,INFOB0,ATTAC0,AUXIL)
      INTEGER KEY,ATTAC0
      INTEGER XPATH(1)
      INTEGER INFOB0(1),AUXIL(1)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER ECW,FNAME,PROTE0,TYPEB0,DATE,TIME
      INTEGER ENTRD0(32)
      INTEGER VNAME(17),NAME(16)
      INTEGER JUNK(180),JUNK2(180),VTREE(129),PPWD(3)
      INTEGER I,J,PATHN0(180)
      INTEGER * 4 FSIZE,QBUF(8)
      LOGICAL NAMEQ$
      INTEGER * 4 SZFIL$
      INTEGER GETTO,GTACL$,MKSACL,INDEX,EQUAL,MAPDN,EXPAND
      INTEGER AAAFS0
      INTEGER AAAFT0
      INTEGER AAAFU0
      INTEGER AAAFV0
      INTEGER AAAFW0
      INTEGER AAAFX0
      INTEGER AAAFY0
      INTEGER AAAFZ0
      INTEGER AAAGA0(4)
      INTEGER AAAGB0(4)
      INTEGER AAAGC0(4)
      INTEGER AAAGD0(4)
      INTEGER AAAGE0
      INTEGER AAAGF0(2)
      INTEGER AAAGG0(2)
      INTEGER AAAGH0,AAAGI0,AAAGJ0
      INTEGER AAAGK0,AAAGL0,AAAGM0
      INTEGER AAAGN0,AAAGO0,AAAGP0
      INTEGER AAAGQ0(5)
      INTEGER AAAGR0(4)
      INTEGER AAAGS0(5)
      INTEGER AAAGT0(7)
      INTEGER AAAGU0(7)
      INTEGER AAAGV0
      INTEGER AAAGW0(4)
      INTEGER AAAGX0(4)
      INTEGER AAAGY0(4)
      INTEGER AAAGZ0(4)
      INTEGER AAAHA0(4)
      INTEGER AAAHB0
      INTEGER AAAHC0
      INTEGER AAAHD0
      INTEGER AAAHE0
      INTEGER AAAHF0
      INTEGER ACCES0(8)
      INTEGER AAAHG0(3)
      INTEGER AAAHH0(4)
      INTEGER AAAHI0(5)
      INTEGER AAAHJ0(5)
      INTEGER AAAHK0(6)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      EQUIVALENCE (ECW,ENTRD0),(FNAME,ENTRD0(2))
      EQUIVALENCE (PROTE0,ENTRD0(18)),(TYPEB0,ENTRD0(20))
      EQUIVALENCE (DATE,ENTRD0(21)),(TIME,ENTRD0(22))
      EQUIVALENCE (VNAME(2),NAME)
      DATA AAAGA0/243,249,243,0/
      DATA AAAGB0/238,173,177,0/
      DATA AAAGC0/238,171,177,0/
      DATA AAAGD0/238,171,238,0/
      DATA AAAGF0/160,0/
      DATA AAAGG0/160,0/
      DATA AAAGQ0/225,227,225,244,0/
      DATA AAAGR0/237,230,228,0/
      DATA AAAGS0/226,239,239,244,0/
      DATA AAAGT0/226,225,228,243,240,244,0/
      DATA AAAGU0/228,243,235,242,225,244,0/
      DATA AAAGW0/243,225,237,0/
      DATA AAAGX0/228,225,237,0/
      DATA AAAGY0/243,231,243,0/
      DATA AAAGZ0/243,231,228,0/
      DATA AAAHA0/245,230,228,0/
      DATA ACCES0/193,196,204,208,210,213,215,0/
      DATA AAAHG0/3,-15924,-13152/
      DATA AAAHH0/193,204,204,0/
      DATA AAAHI0/164,225,236,236,0/
      DATA AAAHJ0/206,207,206,197,0/
      DATA AAAHK0/164,238,239,238,229,0/
      ATTAC0=0
      ERRCO0=0
      IF((EXPAND(XPATH,PATHN0,180).NE.-3))GOTO 11490
        GFDATA=-3
        RETURN
11490 AAAFY0=KEY
      GOTO 11491
11492   AAAFX0=1
        GOTO 11489
11493   CALL Q$READ(VTREE,INFOB0,6,I,ERRCO0)
        IF((I.NE.0))GOTO 11494
          AUXIL(1)=1
          GOTO 11496
11494     AUXIL(1)=0
          GFDATA=-3
          RETURN
11497   AAAFT0=1
        GOTO 11485
11498   CALL MOVE$(ENTRD0,INFOB0,32)
      GOTO 11496
11499   AAAFT0=2
        GOTO 11485
11500   AAAFU0=1
        GOTO 11486
11502   AAAFT0=3
        GOTO 11485
11503   IF((AND(16384,TYPEB0).EQ.0))GOTO 11504
          INFOB0(1)=1
          GOTO 11505
11504     INFOB0(1)=0
11505   IF((AND(8192,TYPEB0).EQ.0))GOTO 11506
          INFOB0(2)=1
          GOTO 11496
11506     INFOB0(2)=0
11507 GOTO 11496
11508   AAAFT0=4
        GOTO 11485
11509   I=AND(3,RS(TYPEB0,10))
        AAAFZ0=I
        GOTO 11510
11511     CALL CTOC(AAAGA0,INFOB0,7)
        GOTO 11496
11513     CALL CTOC(AAAGB0,INFOB0,7)
        GOTO 11496
11514     CALL CTOC(AAAGC0,INFOB0,7)
        GOTO 11496
11515     CALL CTOC(AAAGD0,INFOB0,7)
        GOTO 11496
11510   AAAGE0=AAAFZ0+1
        GOTO(11511,11513,11514,11515),AAAGE0
11512 GOTO 11496
11516   AAAFT0=5
        GOTO 11485
11517   INFOB0(1)=AND(127,RS(DATE,9))
        INFOB0(2)=AND(15,RS(DATE,5))
        INFOB0(3)=AND(31,DATE)
        INFOB0(6)=MOD(TIME,15)*4
        I=TIME/15
        INFOB0(5)=MOD(I,60)
        INFOB0(4)=I/60
      GOTO 11496
11518   IF((GTACL$(PATHN0,1,ATTAC0).NE.-3))GOTO 11519
          GFDATA=-3
          RETURN
11519     IF((MKSACL(AUXIL(2),INFOB0,AUXIL(1),AAAGF0).NE.-3))GOTO 11520
            GFDATA=-3
            RETURN
11520   CONTINUE
      GOTO 11496
11521   AAAFW0=1
        GOTO 11488
11523   IF((GTACL$(PATHN0,2,ATTAC0).NE.-3))GOTO 11524
          GFDATA=-3
          RETURN
11524     IF((MKSACL(JUNK,INFOB0,JUNK,AAAGG0).NE.-3))GOTO 11525
            GFDATA=-3
            RETURN
11525   CONTINUE
      GOTO 11496
11526   AAAFT0=6
        GOTO 11485
11527   IF((AND(PROTE0,128).EQ.0))GOTO 11528
          INFOB0(1)=1
          GOTO 11496
11528     INFOB0(1)=0
11529 GOTO 11496
11530   AAAFT0=7
        GOTO 11485
11531   IF((RS(ECW,8).NE.3))GOTO 11532
          GFDATA=-3
          RETURN
11532     AAAFV0=1
          GOTO 11487
11533   CONTINUE
      GOTO 11496
11534   AAAFT0=8
        GOTO 11485
11535   AAAFS0=1
        GOTO 11484
11537   IF((GETTO(PATHN0,NAME,PPWD,ATTAC0).NE.-3))GOTO 11538
          GFDATA=-3
          RETURN
11538   CALL GPAS$$(NAME,32,PPWD,JUNK,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 11539
          GFDATA=-3
          RETURN
11539   CALL PTOC(PPWD,0,INFOB0,7)
        CALL PTOC(JUNK,0,AUXIL,7)
      GOTO 11496
11496   IF((ATTAC0.NE.1))GOTO 11540
          CALL AT$HOM(I)
11540   IF((ERRCO0.NE.0))GOTO 11541
          GFDATA=-2
          RETURN
11541     GFDATA=-3
          RETURN
11491 GOTO(11492,11499,11502,11508,11516,11518,11521,11523,11526,11530, 
     *    11542,11542,11542,11542,11542,11542,11542,11542,11542,11497,  
     *   11542,11542,11542,11542,11542,11542,11542,11542,11542,11542,   
     *  11542,11542,11542,11542,11542,11542,11542,11542,11542,11542,    
     * 11542,11542,11542,11542,11542,11542,11542,11542,11542,11534,11537
     *),AAAFY0
11542   GFDATA=-3
        RETURN
11484 AAAGJ0=1
      AAAGI0=1
      GOTO 11545
11543 AAAGI0=AAAGI0+(1)
11545 IF((AAAGI0.GE.3))GOTO 11544
        IF((AAAGI0.NE.1))GOTO 11546
          AAAGH0=RS(PROTE0,8)
          GOTO 11547
11546     AAAGH0=RT(PROTE0,8)
          INFOB0(AAAGJ0)=175
          AAAGJ0=AAAGJ0+(1)
11547   IF((AAAGH0.NE.7))GOTO 11548
          INFOB0(AAAGJ0)=225
          AAAGJ0=AAAGJ0+(1)
          GOTO 11543
11548     IF((AND(AAAGH0,4).EQ.0))GOTO 11550
            INFOB0(AAAGJ0)=228
            AAAGJ0=AAAGJ0+(1)
11550     IF((AND(AAAGH0,2).EQ.0))GOTO 11551
            INFOB0(AAAGJ0)=247
            AAAGJ0=AAAGJ0+(1)
11551     IF((AND(AAAGH0,1).EQ.0))GOTO 11552
            INFOB0(AAAGJ0)=242
            AAAGJ0=AAAGJ0+(1)
11552   CONTINUE
11549 GOTO 11543
11544 INFOB0(AAAGJ0)=0
      AAAGJ0=AAAGJ0+(1)
      GOTO 11496
11485 IF((GETTO(PATHN0,NAME,PPWD,ATTAC0).NE.-3))GOTO 11554
        GFDATA=-3
        RETURN
11554 CALL SRCH$$(:1+:40000,:177777,0,AAAGL0,AAAGK0,ERRCO0)
      IF((ERRCO0.EQ.0))GOTO 11555
        GFDATA=-3
        RETURN
11555 VNAME(1)=0
      AAAGM0=1
      GOTO 11558
11556 AAAGM0=AAAGM0+(1)
11558 IF((VNAME(1).NE.0))GOTO 11557
      IF((AAAGM0.GE.33))GOTO 11557
        IF((RT(RS(NAME((AAAGM0+1)/2),8*RT(AAAGM0,1)),8).NE.160))GOTO    
     *  11556
          VNAME(1)=AAAGM0-1
11559 GOTO 11556
11557 CALL ENT$RD(AAAGL0,VNAME,LOC(ENTRD0),32,ERRCO0)
      CALL SRCH$$(:4,0,0,AAAGL0,AAAGK0,AAAGK0)
      IF((ERRCO0.EQ.0))GOTO 11561
        GFDATA=-3
        RETURN
11486 IF((RS(ECW,8).NE.3))GOTO 11562
        CALL CTOC(AAAGQ0,INFOB0,7)
        GOTO 11496
11562   AAAGO0=AND(8,TYPEB0)
        AAAGP0=AND(4096,TYPEB0)
        IF((AAAGP0.EQ.0))GOTO 11564
          IF((AAAGO0.NE.4))GOTO 11565
            CALL CTOC(AAAGR0,INFOB0,7)
            GOTO 11571
11565       IF((.NOT.NAMEQ$(FNAME,32,'BOOT',4)))GOTO 11567
              CALL CTOC(AAAGS0,INFOB0,7)
              GOTO 11568
11567         IF((.NOT.NAMEQ$(FNAME,32,'BADSPT',6)))GOTO 11569
                CALL CTOC(AAAGT0,INFOB0,7)
                GOTO 11570
11569           CALL CTOC(AAAGU0,INFOB0,7)
11570       CONTINUE
11568     CONTINUE
11566     GOTO 11571
11564     AAAGV0=AAAGO0
          GOTO 11572
11573       CALL CTOC(AAAGW0,INFOB0,7)
          GOTO 11574
11575       CALL CTOC(AAAGX0,INFOB0,7)
          GOTO 11574
11576       CALL CTOC(AAAGY0,INFOB0,7)
          GOTO 11574
11577       CALL CTOC(AAAGZ0,INFOB0,7)
          GOTO 11574
11578       CALL CTOC(AAAHA0,INFOB0,7)
          GOTO 11574
11572     AAAHB0=AAAGV0+1
          GOTO(11573,11575,11576,11577,11578),AAAHB0
            GFDATA=-3
            RETURN
11574   CONTINUE
11571 CONTINUE
11563 GOTO 11496
11487 AAAHC0=RT(TYPEB0,8)
      GOTO 11580
11581   CALL SRCH$$(:1+:40000,NAME,32,I,J,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 11582
          GFDATA=-3
          RETURN
11582   FSIZE=SZFIL$(I)
        CALL SRCH$$(:4,NAME,32,I,J,J)
        IF((FSIZE.NE.-3))GOTO 11583
          GFDATA=-3
          RETURN
11583   CALL MOVE$(FSIZE,INFOB0,2)
      GOTO 11533
11585   CALL SRCH$$(:1+:40000,NAME,32,I,J,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 11586
          GFDATA=-3
          RETURN
11586   CALL SZSEG$(FSIZE,I)
        CALL SRCH$$(:4,NAME,32,I,J,J)
        IF((FSIZE.NE.-3))GOTO 11587
          GFDATA=-3
          RETURN
11587   CALL MOVE$(FSIZE,INFOB0,2)
      GOTO 11533
11588   AAAFX0=2
        GOTO 11489
11589   CALL Q$READ(VTREE,QBUF,6,I,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 11590
          GFDATA=-3
          RETURN
11590   CALL MOVE$(QBUF(1),AUXIL,2)
        CALL MOVE$(QBUF(4),INFOB0,2)
      GOTO 11533
11580 AAAHD0=AAAHC0+1
      GOTO(11581,11581,11585,11585,11588),AAAHD0
        GFDATA=-3
        RETURN
11489 CALL MKTR$(PATHN0,JUNK)
      AAAHE0=1
      CALL CTOV(JUNK,AAAHE0,VTREE,129)
      IF((GETTO(PATHN0,NAME,PPWD,ATTAC0).NE.-3))GOTO 11593
        GFDATA=-3
        RETURN
11488 AAAFX0=3
      GOTO 11489
11594 AAAHF0=1
      CALL CTOV(AUXIL,AAAHF0,JUNK(2),180-2)
      JUNK(1)=2
      JUNK(19)=0
      CALL CALAC$(VTREE,LOC(JUNK),AAAHG0,JUNK2,ERRCO0)
      IF((ERRCO0.EQ.0))GOTO 11595
        GFDATA=-3
        RETURN
11595 CALL VTOC(JUNK2,JUNK,102)
      IF((EQUAL(JUNK,AAAHH0).NE.1))GOTO 11596
        CALL CTOC(AAAHI0,INFOB0,8)
        GOTO 11496
11596   IF((EQUAL(JUNK,AAAHJ0).NE.1))GOTO 11598
          CALL CTOC(AAAHK0,INFOB0,8)
          GOTO 11599
11598     AAAHF0=1
          J=1
          GOTO 11602
11600     J=J+(1)
11602     IF((ACCES0(J).EQ.0))GOTO 11601
            IF((INDEX(JUNK,ACCES0(J)).EQ.0))GOTO 11600
              INFOB0(AAAHF0)=MAPDN(ACCES0(J))
              AAAHF0=AAAHF0+(1)
11603     GOTO 11600
11601     INFOB0(AAAHF0)=0
11599 CONTINUE
11597 GOTO 11496
11561 GOTO(11498,11500,11503,11509,11517,11527,11531,11535),AAAFT0
      GOTO 11561
11593 GOTO(11493,11589,11594),AAAFX0
      GOTO 11593
      END
      INTEGER FUNCTION GFNAM$(FD,PATH,SIZE)
      INTEGER FD
      INTEGER PATH(1)
      INTEGER SIZE
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER F
      INTEGER MAPSU
      INTEGER OFF,CODE,LEN,BUF(180)
      INTEGER MKPA$,CTOC
      INTEGER NAME(180)
      INTEGER AAAHL0
      INTEGER AAAHM0(9)
      INTEGER AAAHN0(10)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAHM0/175,228,229,246,175,244,244,249,0/
      DATA AAAHN0/175,228,229,246,175,238,245,236,236,0/
      PATH(1)=0
      F=MAPSU(FD)
      OFF=F*16-16+1
      IF((F.LT.1))GOTO 11606
      IF((F.GT.128))GOTO 11606
      IF((FDFLA0(OFF).EQ.0))GOTO 11606
      GOTO 11605
11606   GFNAM$=-3
        RETURN
11605 AAAHL0=FDDEV0(OFF)
      GOTO 11607
11608   GFNAM$=CTOC(AAAHM0,PATH,SIZE)
        RETURN
11609   GFNAM$=CTOC(AAAHN0,PATH,SIZE)
        RETURN
11610   CALL GPATH$(:1,FDUNI0(OFF),BUF,180,LEN,CODE)
        IF((CODE.NE.0))GOTO 11611
          CALL PTOC(BUF,0,NAME,MIN0(SIZE,LEN+1))
          GFNAM$=MKPA$(NAME,PATH,0)
          RETURN
11611   PATH(1)=0
        GFNAM$=-3
        RETURN
11607 GOTO(11608,11610,11609),AAAHL0
      GFNAM$=-3
      RETURN
      END
      INTEGER FUNCTION GFNARG(NAME,STATE)
      INTEGER NAME(180)
      INTEGER STATE(4)
      INTEGER L
      INTEGER GETARG,OPEN,GETLIN
      INTEGER IN1(12)
      INTEGER IN2(12)
      INTEGER IN3(12)
      INTEGER AAAHO0
      INTEGER AAAHP0
      DATA IN1/175,228,229,246,175,243,244,228,233,238,177,0/
      DATA IN2/175,228,229,246,175,243,244,228,233,238,178,0/
      DATA IN3/175,228,229,246,175,243,244,228,233,238,179,0/
11613   AAAHP0=STATE(1)
        GOTO 11614
11615     STATE(1)=2
          STATE(2)=1
          STATE(3)=-3
          STATE(4)=0
        GOTO 11616
11617     IF((GETARG(STATE(2),NAME,128).EQ.-1))GOTO 11618
            STATE(1)=2
            STATE(2)=STATE(2)+(1)
            AAAHO0=1
            GOTO 11628
11618       STATE(1)=4
11620   GOTO 11616
11621     L=GETLIN(NAME,STATE(3))
          IF((L.EQ.-1))GOTO 11622
            NAME(L)=0
            GFNARG=-2
            RETURN
11622     IF((STATE(3).LE.0))GOTO 11623
            CALL CLOSE(STATE(3))
11623     STATE(1)=2
        GOTO 11616
11624     STATE(1)=5
          IF((STATE(4).NE.0))GOTO 11626
            CALL SCOPY(IN1,1,NAME,1)
            GFNARG=-2
            RETURN
11614   GOTO(11615,11617,11621,11624,11626),AAAHP0
          CALL ERROR('in gfnarg:  bad state (1) value.')
11616 CONTINUE
      GOTO 11613
11626 NAME(1)=0
      GFNARG=-1
      RETURN
11629   STATE(4)=STATE(4)+(1)
        GFNARG=-2
        RETURN
11630   CALL SCOPY(IN1,1,NAME,1)
        STATE(4)=STATE(4)+(1)
        GFNARG=-2
        RETURN
11631   CALL SCOPY(IN1,1,NAME,1)
        STATE(4)=STATE(4)+(1)
        GFNARG=-2
        RETURN
11632   CALL SCOPY(IN2,1,NAME,1)
        STATE(4)=STATE(4)+(1)
        GFNARG=-2
        RETURN
11633   CALL SCOPY(IN3,1,NAME,1)
        STATE(4)=STATE(4)+(1)
        GFNARG=-2
        RETURN
11634   STATE(1)=3
        STATE(4)=STATE(4)+(1)
        GOTO 11635
11636     STATE(3)=-10
        GOTO 11616
11638     STATE(3)=-10
        GOTO 11616
11639     STATE(3)=-12
        GOTO 11616
11640     STATE(3)=-14
        GOTO 11616
11635   IF((NAME(3).EQ.0))GOTO 11636
        IF((NAME(3).NE.177))GOTO 11641
        IF((NAME(4).NE.0))GOTO 11641
        GOTO 11638
11641   IF((NAME(3).NE.178))GOTO 11642
        IF((NAME(4).NE.0))GOTO 11642
        GOTO 11639
11642   IF((NAME(3).NE.179))GOTO 11643
        IF((NAME(4).NE.0))GOTO 11643
        GOTO 11640
11643   CONTINUE
          STATE(3)=OPEN(NAME(3),1)
          IF((STATE(3).NE.-3))GOTO 11644
            CALL PRINT(-15,'*s: can''t open*n.',NAME)
            STATE(1)=2
11644   CONTINUE
11637 GOTO 11616
11628 IF((NAME(1).NE.173))GOTO 11629
      IF((NAME(2).EQ.0))GOTO 11630
      IF((NAME(2).NE.177))GOTO 11646
      IF((NAME(3).NE.0))GOTO 11646
      GOTO 11631
11646 IF((NAME(2).NE.178))GOTO 11647
      IF((NAME(3).NE.0))GOTO 11647
      GOTO 11632
11647 IF((NAME(2).NE.179))GOTO 11648
      IF((NAME(3).NE.0))GOTO 11648
      GOTO 11633
11648 IF((NAME(2).EQ.238))GOTO 11634
      IF((NAME(2).EQ.206))GOTO 11634
        GFNARG=-3
        RETURN
      END
      INTEGER FUNCTION GITOC(INT,STR,SIZE,BASE)
      INTEGER INT,SIZE,BASE
      INTEGER STR(SIZE)
      INTEGER N
      INTEGER CARRY,D,I,RADIX
      LOGICAL UNSIG0
      INTEGER DIGITS(17)
      DATA DIGITS/176,177,178,179,180,181,182,183,184,185,193,194,195,19
     *6,197,198,0/
      STR(1)=0
      IF((SIZE.GT.1))GOTO 11650
        GITOC=0
        RETURN
11650 RADIX=IABS(BASE)
      IF((RADIX.LT.2))GOTO 11652
      IF((RADIX.GT.16))GOTO 11652
      GOTO 11651
11652   RADIX=10
11651 UNSIG0=(BASE.LT.0)
      IF((.NOT.UNSIG0))GOTO 11653
        N=RS(INT,1)
        CARRY=AND(INT,1)
        GOTO 11654
11653   N=INT
11654 I=1
11655   D=IABS(MOD(N,RADIX))
        IF((.NOT.UNSIG0))GOTO 11656
          D=2*D+CARRY
          IF((D.LT.RADIX))GOTO 11657
            D=D-(RADIX)
            CARRY=1
            GOTO 11658
11657       CARRY=0
11658   CONTINUE
11656   I=I+(1)
        STR(I)=DIGITS(D+1)
        N=N/(RADIX)
      IF((N.EQ.0))GOTO 11659
      IF((I.GE.SIZE))GOTO 11659
      GOTO 11655
11659 CONTINUE
      IF((.NOT.UNSIG0))GOTO 11660
        IF((CARRY.EQ.0))GOTO 11662
        IF((I.GE.SIZE))GOTO 11662
          I=I+(1)
          STR(I)=177
11661   GOTO 11662
11660   IF((INT.GE.0))GOTO 11663
        IF((I.GE.SIZE))GOTO 11663
          I=I+(1)
          STR(I)=173
11663 CONTINUE
11662 GITOC=I-1
      D=1
      GOTO 11666
11664 D=D+(1)
      I=I-(1)
11666 IF((D.GE.I))GOTO 11665
        CARRY=STR(D)
        STR(D)=STR(I)
        STR(I)=CARRY
      GOTO 11664
11665 RETURN
      END
      INTEGER FUNCTION GKLARG(ARGS,STR)
      INTEGER ARGS(26)
      INTEGER STR(1)
      INTEGER I,K
      INTEGER MAPDN
      IF((STR(1).EQ.173))GOTO 11667
        GKLARG=-3
        RETURN
11667 I=2
      GOTO 11670
11668 I=I+(1)
11670 IF((STR(I).EQ.0))GOTO 11669
        K=MAPDN(STR(I))-225+1
        IF((K.LT.1))GOTO 11672
        IF((K.GT.26))GOTO 11672
        IF((ARGS(K).LT.0))GOTO 11672
        GOTO 11671
11672     GKLARG=-3
          RETURN
11671   ARGS(K)=1
      GOTO 11668
11669 GKLARG=-2
      RETURN
      END
      INTEGER FUNCTION GLTOC(INT,STR,SIZE,BASE)
      INTEGER * 4 INT
      INTEGER SIZE,BASE
      INTEGER STR(SIZE)
      INTEGER * 4 N
      INTEGER CARRY,D,I,RADIX
      LOGICAL UNSIG0
      INTEGER DIGITS(17)
      DATA DIGITS/176,177,178,179,180,181,182,183,184,185,193,194,195,19
     *6,197,198,0/
      STR(1)=0
      IF((SIZE.GT.1))GOTO 11673
        GLTOC=0
        RETURN
11673 RADIX=IABS(BASE)
      IF((RADIX.LT.2))GOTO 11675
      IF((RADIX.GT.16))GOTO 11675
      GOTO 11674
11675   RADIX=10
11674 UNSIG0=(BASE.LT.0)
      IF((.NOT.UNSIG0))GOTO 11676
        N=RS(INT,1)
        CARRY=AND(INT,1)
        GOTO 11677
11676   N=INT
11677 I=1
11678   D=IABS(MOD(N,RADIX))
        IF((.NOT.UNSIG0))GOTO 11679
          D=2*D+CARRY
          IF((D.LT.RADIX))GOTO 11680
            D=D-(RADIX)
            CARRY=1
            GOTO 11681
11680       CARRY=0
11681   CONTINUE
11679   I=I+(1)
        STR(I)=DIGITS(D+1)
        N=N/(RADIX)
      IF((N.EQ.0))GOTO 11682
      IF((I.GE.SIZE))GOTO 11682
      GOTO 11678
11682 CONTINUE
      IF((.NOT.UNSIG0))GOTO 11683
        IF((CARRY.EQ.0))GOTO 11685
        IF((I.GE.SIZE))GOTO 11685
          I=I+(1)
          STR(I)=177
11684   GOTO 11685
11683   IF((INT.GE.0))GOTO 11686
        IF((I.GE.SIZE))GOTO 11686
          I=I+(1)
          STR(I)=173
11686 CONTINUE
11685 GLTOC=I-1
      D=1
      GOTO 11689
11687 D=D+(1)
      I=I-(1)
11689 IF((D.GE.I))GOTO 11688
        CARRY=STR(D)
        STR(D)=STR(I)
        STR(I)=CARRY
      GOTO 11687
11688 RETURN
      END
      INTEGER FUNCTION GTACL$(PATH,KEY,ATTAC0)
      INTEGER PATH(1)
      INTEGER KEY,ATTAC0
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER ACLVE0,ACLCO0,ACLTY0
      INTEGER ACLPA0(41,32),ACLNA0(180)
      INTEGER PRIMO0(3)
      INTEGER ACLMO0(32)
      INTEGER ACLUS0(33,32)
      COMMON /ACL$00/ACLTY0,ACLNA0,ACLMO0,ACLUS0,PRIMO0
      INTEGER INDX,I,J
      INTEGER TREEN(256),TEMP(256)
      INTEGER NAME(16),PASS(3)
      INTEGER VTREE(17),TEMPT0(129)
      INTEGER MKTR$,EQUAL,GETTO
      INTEGER AAAHQ0(4)
      INTEGER AAAHR0(5)
      INTEGER AAAHS0
      INTEGER AAAHT0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      EQUIVALENCE (PRIMO0(1),ACLVE0)
      EQUIVALENCE (PRIMO0(2),ACLCO0)
      EQUIVALENCE (PRIMO0(3),ACLPA0)
      DATA AAAHQ0/225,236,236,0/
      DATA AAAHR0/238,239,238,229,0/
      CALL MKTR$(PATH,TREEN)
      ATTAC0=0
      ACLVE0=2
      ACLCO0=0
      IF((PATH(1).NE.0))GOTO 11690
        GTACL$=-2
        RETURN
11690 IF((GETTO(PATH,NAME,PASS,ATTAC0).NE.-3))GOTO 11691
        GTACL$=-3
        RETURN
11691 I=1
      CALL PTOV(NAME,160,VTREE,17)
      IF((KEY.NE.1))GOTO 11692
        CALL AC$LST(VTREE,LOC(PRIMO0),32,TEMPT0,ACLTY0,ERRCO0)
        GOTO 11693
11692   IF((KEY.NE.2))GOTO 11694
          CALL PA$LST(VTREE,LOC(PRIMO0),32,ERRCO0)
          TEMPT0(1)=0
          GOTO 11695
11694     ERRCO0=28
11695 CONTINUE
11693 IF((ATTAC0.NE.1))GOTO 11696
        CALL FOLLOW(0,0)
11696 IF((ERRCO0.EQ.0))GOTO 11697
        GTACL$=-3
        RETURN
11697 IF(((ACLVE0.LE.2).AND.(ACLVE0.GE.1)))GOTO 11698
        ERRCO0=158
        GTACL$=-3
        RETURN
11698 CALL VTOC(TEMPT0,TREEN,256)
      CALL MAPSTR(TREEN,1)
      CALL MKPA$(TREEN,ACLNA0,0)
      J=1
      GOTO 11701
11699 J=J+(1)
11701 IF((J.GT.ACLCO0))GOTO 11700
        CALL VTOC(ACLPA0(1,J),TEMP,102)
        CALL MAPSTR(TEMP,1)
        INDX=1
11702   IF((TEMP(INDX).EQ.186))GOTO 11703
          IF((TEMP(INDX).EQ.160))GOTO 11704
            ACLUS0(INDX,J)=TEMP(INDX)
11704     INDX=INDX+(1)
        GOTO 11702
11703   ACLUS0(INDX,J)=0
        INDX=INDX+(1)
11705   IF((TEMP(INDX).NE.160))GOTO 11706
          INDX=INDX+(1)
        GOTO 11705
11706   IF((EQUAL(TEMP(INDX),AAAHQ0).NE.1))GOTO 11707
          ACLMO0(J)=127
          GOTO 11699
11707     IF((EQUAL(TEMP(INDX),AAAHR0).NE.1))GOTO 11709
            ACLMO0(J)=0
            GOTO 11710
11709       ACLMO0(J)=0
11711       IF((TEMP(INDX).EQ.0))GOTO 11712
              AAAHS0=TEMP(INDX)
              GOTO 11713
11714           ACLMO0(J)=OR(ACLMO0(J),32)
              GOTO 11715
11716           ACLMO0(J)=OR(ACLMO0(J),64)
              GOTO 11715
11717           ACLMO0(J)=OR(ACLMO0(J),2)
              GOTO 11715
11718           ACLMO0(J)=OR(ACLMO0(J),1)
              GOTO 11715
11719           ACLMO0(J)=OR(ACLMO0(J),8)
              GOTO 11715
11720           ACLMO0(J)=OR(ACLMO0(J),4)
              GOTO 11715
11721           ACLMO0(J)=OR(ACLMO0(J),16)
              GOTO 11715
11713         AAAHT0=AAAHS0-224
              GOTO(11714,11722,11722,11716,11722,11722,11722,11722,11722
     *,11722,11722,11717,11722,11722,11722,11718,11722,11719,11722,11722
     *,11720,11722,11721),AAAHT0
11722           ERRCO0=157
                GTACL$=-3
                RETURN
11715         INDX=INDX+(1)
            GOTO 11711
11712     CONTINUE
11710   CONTINUE
11708 GOTO 11699
11700 GTACL$=-2
      RETURN
      END
      INTEGER FUNCTION GTATTR(ATTR)
      INTEGER ATTR
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((0.GE.ATTR))GOTO 11723
      IF((ATTR.GT.6))GOTO 11723
        GTATTR=TERMA0(ATTR)
        RETURN
11723   GTATTR=0
        RETURN
      END
      INTEGER FUNCTION GTEMP(STR,NM,REPL)
      INTEGER STR(1),NM(128),REPL(128)
      INTEGER I,J,L
      L=1
11724 IF((STR(L).EQ.0))GOTO 11725
      IF((STR(L).EQ.163))GOTO 11725
      IF((STR(L).EQ.138))GOTO 11725
        L=L+(1)
      GOTO 11724
11725 CONTINUE
11726   L=L-(1)
      IF((L.LE.0))GOTO 11727
      IF((STR(L).NE.160))GOTO 11727
      GOTO 11726
11727 CONTINUE
      IF((L.GT.0))GOTO 11728
        GTEMP=-1
        RETURN
11728 L=L+(1)
      I=1
11729 IF((STR(I).NE.160))GOTO 11730
        I=I+(1)
      GOTO 11729
11730 J=1
      GOTO 11733
11731 J=J+(1)
      I=I+(1)
11733 IF((J.GE.128))GOTO 11732
      IF((I.GE.L))GOTO 11732
      IF((STR(I).EQ.160))GOTO 11732
        NM(J)=STR(I)
      GOTO 11731
11732 NM(J)=0
11734 IF((STR(I).NE.160))GOTO 11735
        I=I+(1)
      GOTO 11734
11735 J=1
      GOTO 11738
11736 J=J+(1)
      I=I+(1)
11738 IF((J.GE.128))GOTO 11737
      IF((I.GE.L))GOTO 11737
        REPL(J)=STR(I)
      GOTO 11736
11737 REPL(J)=0
      GTEMP=-2
      RETURN
      END
      INTEGER FUNCTION GTTYPE(STR)
      INTEGER STR(1)
      INTEGER TTYP$F,TTYP$R,TTYP$Q
      IF((TTYP$R(STR).EQ.0))GOTO 11740
      IF((STR(1).EQ.0))GOTO 11740
      GOTO 11739
11740 IF((TTYP$F(STR).NE.0))GOTO 11739
        GTTYPE=TTYP$Q(STR,0)
        RETURN
11739 GTTYPE=1
      RETURN
      END
      INTEGER FUNCTION GVLARG(STR,STATE)
      INTEGER STR(1)
      INTEGER STATE(4)
      INTEGER GETARG
      INTEGER AAAHU0
11741   AAAHU0=STATE(1)
        GOTO 11742
11743     STATE(1)=2
          STATE(2)=1
          STATE(3)=-3
          STATE(4)=0
        GOTO 11744
11745     IF((GETARG(STATE(2),STR,128).EQ.-1))GOTO 11746
            STATE(1)=2
            IF((STR(1).NE.173))GOTO 11747
              STR(1)=0
              GOTO 11748
11747         STATE(2)=STATE(2)+(1)
11748       GVLARG=-2
            RETURN
11746     STATE(1)=4
        GOTO 11744
11749     STR(1)=0
          GVLARG=-2
          RETURN
11742   GOTO(11743,11745,11749,11751,11751),AAAHU0
          CALL ERROR('in gvlarg:  bad state (1) value*n.')
11744 CONTINUE
      GOTO 11741
11751 STR(1)=0
      GVLARG=-1
      RETURN
      END
      SUBROUTINE ICOMN$
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      ARGCA0=0
      CMDST0=0
      ERRCO0=0
      COMUN0=0
      PASSW0(1)=0
      LSTOP0=16384-1
      LSNAA0=1
      LSHOA0=1
      LSREF0(1)=0
      UTEMP0=0
      DO 11752 I=1,37
        UHASH0(I)=0
11752 CONTINUE
11753 DO 11754 I=1,4
        RTLAB0(I)=0
        BPLAB0(I)=0
11754 CONTINUE
11755 CALL IOINIT
      RETURN
      END
      SUBROUTINE INIT$F
      INTEGER F
      INTEGER MAPFD,MAPSU
      CALL FLUSH$(MAPSU(-10))
      CALL FLUSH$(MAPSU(-11))
      F=MAPFD(-10)
      IF((F.LE.0))GOTO 11756
        CALL ATTDEV(5,7,F,128)
        GOTO 11757
11756   CALL ATTDEV(5,1,0,128)
11757 F=MAPFD(-11)
      IF((F.LE.0))GOTO 11758
        CALL ATTDEV(6,7,F,128)
        GOTO 11759
11758   CALL ATTDEV(6,1,0,128)
11759 RETURN
      END
      SUBROUTINE INIT$P
      INTEGER F,I,PATH(180),TREE(180)
      INTEGER MAPFD,MAPSU,GFNAM$
      INTEGER IFLAG,I1,I2,I3,I4,I5,IUNIT,I6,I7,I8
      INTEGER IFNAM(64),I9,IBUF(128)
      COMMON /P$AINP/IFLAG,I1,I2,I3,I4,I5,IUNIT,I6,I7,I8,IFNAM,I9,IBUF
      INTEGER OFLAG,O1,O2,O3,O4,O5,OUNIT,O6,O7,O8
      INTEGER OFNAM(64),O9,OBUF(128)
      COMMON /P$AOUT/OFLAG,O1,O2,O3,O4,O5,OUNIT,O6,O7,O8,OFNAM,O9,OBUF
      INTEGER AAAHV0(22)
      INTEGER AAAHW0(22)
      DATA AAAHV0/240,225,244,232,238,225,237,229,160,245,238,239,226,24
     *4,225,233,238,225,226,236,229,0/
      DATA AAAHW0/240,225,244,232,238,225,237,229,160,245,238,239,226,24
     *4,225,233,238,225,226,236,229,0/
      CALL FLUSH$(MAPSU(-10))
      CALL FLUSH$(MAPSU(-11))
      F=MAPFD(-10)
      IF((F.LE.0))GOTO 11760
        CALL ATTDEV(F,7,F,128)
        IFLAG=AND(IFLAG,NOT(:1000))
        IUNIT=F
        I=1
        IF((GFNAM$(-10,PATH,180).EQ.-3))GOTO 11761
          CALL MKTR$(PATH,TREE)
          CALL CTOP(TREE,I,IFNAM,64)
          GOTO 11762
11761     CALL CTOP(AAAHV0,I,IFNAM,64)
11762 CONTINUE
11760 F=MAPFD(-11)
      IF((F.LE.0))GOTO 11763
        CALL ATTDEV(F,7,F,128)
        OFLAG=AND(OFLAG,NOT(:1000))
        OUNIT=F
        I=1
        IF((GFNAM$(-11,PATH,180).EQ.-3))GOTO 11764
          CALL MKTR$(PATH,TREE)
          CALL CTOP(TREE,I,OFNAM,64)
          GOTO 11765
11764     CALL CTOP(AAAHW0,I,OFNAM,64)
11765 CONTINUE
11763 RETURN
      END
      SUBROUTINE INIT
      CALL REMARK('You are trying to run a pre-version 9 compilation@..'
     *)
      CALL ERROR('Please recompile and try again@..')
      RETURN
      END
      INTEGER FUNCTION INPUT(FD,FMT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
      INTEGER FD
      INTEGER FMT(1)
      INTEGER A1(1),A2(1),A3(1),A4(1),A5(1),A6(1),A7(1),A8(1),A9(1),A10(
     *1)
      INTEGER AP,SP,FP,I
      INTEGER GETLIN,DECODE,INDEX,ISATTY
      INTEGER TF
      INTEGER STR(200),TFMT(200)
      LOGICAL PSW
      INTEGER AAAHX0
      INTEGER AAAHY0(21)
      INTEGER AAAHZ0
      DATA AAAHY0/197,242,242,239,242,186,160,167,170,243,167,160,242,22
     *9,244,249,240,229,186,160,0/
      IF((AND(FMT(1),:177400).EQ.0))GOTO 11766
        CALL PTOC(FMT,174,TFMT,200)
        GOTO 11767
11766   CALL CTOC(FMT,TFMT,200)
11767 FP=1
      AP=1
      PSW=(ISATTY(FD).NE.0)
      TF=FD
11768   CONTINUE
11769   IF((TFMT(FP).EQ.170))GOTO 11770
          IF((.NOT.PSW))GOTO 11771
            CALL PUTCH(TFMT(FP),1)
11771     FP=FP+(1)
        GOTO 11769
11770   IF((TFMT(FP).NE.0))GOTO 11772
          GOTO 11773
11772   IF((GETLIN(STR,TF,200).NE.-1))GOTO 11774
          INPUT=-1
          RETURN
11774   SP=1
        AAAHX0=DECODE(STR,SP,TFMT,FP,AP,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
        GOTO 11775
11776     TF=FD
        GOTO 11777
11779     I=INDEX(STR(SP),138)
          IF((I.EQ.0))GOTO 11780
            STR(SP+I-1)=0
11780     CALL PRINT(1,AAAHY0,STR(SP))
          TF=1
        GOTO 11777
11775   AAAHZ0=AAAHX0+4
        GOTO(11779,11776,11773),AAAHZ0
11777 CONTINUE
      GOTO 11768
11773 INPUT=AP-1
      RETURN
      END
      SUBROUTINE IOFL$(STATE)
      INTEGER STATE(258)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER FD,SP
      INTEGER JUNK2,CODE
      INTEGER * 4 JUNK1
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      SP=1
      DO 11781 FD=1,128
        IF((FDFLA0(FD*16-16+1).NE.0))GOTO 11783
          STATE(SP)=FD
          SP=SP+(1)
11783   CONTINUE
11781 CONTINUE
11782 STATE(SP)=-3
      SP=SP+(1)
      DO 11784 FD=1,128
        CALL PRWF$$(:5,FD,INTL(0),0,JUNK1,JUNK2,CODE)
        IF((CODE.EQ.0))GOTO 11786
        IF((CODE.EQ.29))GOTO 11786
          STATE(SP)=FD
          SP=SP+(1)
11786   CONTINUE
11784 CONTINUE
11785 STATE(SP)=-3
      RETURN
      END
      SUBROUTINE IOINIT
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER FD,I
      INTEGER DUPLX$
      INTEGER DEFAY0(4)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA DEFAY0/220,220,138,0/
      DO 11787 FD=1,128
        FDFLA0(FD*16-16+1)=0
11787 CONTINUE
11788 FDDEV0(1)=1
      FDUNI0(1)=0
      FDBUG0(1)=0
      FDBUH0(1)=0
      FDBUI0(1)=0
      FDCOU0(1)=0
      FDBCO0(1)=0
      FDFLA0(1)=:040000+:020000
      FDLAS0=1
      ECHAR0=136
      KCHAR0=255
      RTCHA0=146
      ESCCH0=155
      EOFCH0=131
      NLCHA0=138
      CALL CTOC(DEFAY0,KILLR0,33)
      TERMC0=1
      TERMB0(TERMC0)=0
      TERMD0=0
      DO 11789 I=1,6
        TERMA0(I)=0
11789 CONTINUE
11790 LWORD0=DUPLX$(-1)
      PRTFO0(1)=0
      PRTDE0(1)=0
      DO 11791 FD=1,6
        STDPO0(FD)=1
11791 CONTINUE
11792 RETURN
      END
      INTEGER FUNCTION ISADSK(FD)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER F
      INTEGER MAPSU
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      F=MAPSU(FD)*16-16+1
      IF((FDDEV0(F).NE.2))GOTO 11793
        ISADSK=1
        RETURN
11793   ISADSK=0
        RETURN
      END
      INTEGER FUNCTION ISATTY(FD)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER F
      INTEGER MAPSU
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      F=MAPSU(FD)*16-16+1
      IF((FDDEV0(F).NE.1))GOTO 11794
        ISATTY=1
        RETURN
11794   ISATTY=0
        RETURN
      END
      INTEGER FUNCTION ISNULL(FD)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER F
      INTEGER MAPSU
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      F=MAPSU(FD)*16-16+1
      IF((FDDEV0(F).NE.3))GOTO 11795
        ISNULL=1
        RETURN
11795   ISNULL=0
        RETURN
      END
      INTEGER FUNCTION ISPH$(DUMMY)
      INTEGER DUMMY
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      ISPH$=ISPHA0
      RETURN
      END
      INTEGER FUNCTION ITOC(INT,STR,SIZE)
      INTEGER INT,SIZE
      INTEGER STR(SIZE)
      INTEGER INTVAL
      INTEGER D,I,J,K
      INTEGER DIGITS(11)
      DATA DIGITS/176,177,178,179,180,181,182,183,184,185,0/
      INTVAL=INT
      STR(1)=0
      I=1
11796   I=I+(1)
        D=IABS(MOD(INTVAL,10))
        STR(I)=DIGITS(D+1)
        INTVAL=INTVAL/(10)
      IF((INTVAL.EQ.0))GOTO 11797
      IF((I.GE.SIZE))GOTO 11797
      GOTO 11796
11797 CONTINUE
      IF((INT.GE.0))GOTO 11798
      IF((I.GE.SIZE))GOTO 11798
        I=I+(1)
        STR(I)=173
11798 ITOC=I-1
      J=1
      GOTO 11801
11799 J=J+(1)
11801 IF((J.GE.I))GOTO 11800
        K=STR(I)
        STR(I)=STR(J)
        STR(J)=K
        I=I-(1)
      GOTO 11799
11800 RETURN
      END
      INTEGER FUNCTION JDATE(M,D,Y)
      INTEGER M,D,Y
      INTEGER I,MDAYS(12)
      DATA MDAYS/31,28,31,30,31,30,31,31,30,31,30,31/
      JDATE=D
      I=1
      GOTO 11804
11802 I=I+(1)
11804 IF((I.GE.M))GOTO 11803
        JDATE=JDATE+(MDAYS(I))
      GOTO 11802
11803 IF((M.LE.2))GOTO 11805
        IF((MOD(Y,400).NE.0))GOTO 11806
          JDATE=JDATE+(1)
          GOTO 11807
11806     IF((MOD(Y,100).NE.0))GOTO 11808
            GOTO 11809
11808       IF((MOD(Y,4).NE.0))GOTO 11810
              JDATE=JDATE+(1)
11810     CONTINUE
11809   CONTINUE
11807 CONTINUE
11805 RETURN
      END
      SUBROUTINE LDSEG$(RVEC,NAME,LEN,CODE)
      INTEGER RVEC(9),NAME(1),LEN,CODE
      INTEGER SYMTAB(1)
      COMMON /SGSYMT/SYMTAB
      INTEGER BIT,DFD,I,JUNK,N,RC,REV,SFD,WRD,ADDR(2),MASKS(16),SEGMAP(5
     *12),STHEAD(21),SVEC(10),TVEC(30)
      INTEGER SYMTA0
      INTEGER CHUNK$
      INTEGER P,Q
      INTEGER AAAIA0
      INTEGER AAAIB0
      DATA MASKS/:100000,:040000,:020000,:010000,:004000,:002000,:001000
     *,:000400,:000200,:000100,:000040,:000020,:000010,:000004,:000002,:
     *000001/
      AAAIA0=1
      GOTO 11811
11813 CALL PRWF$$(:1,DFD,LOC(REV),1,INTL(0),JUNK,RC)
      IF((RC.NE.0))GOTO 11815
      IF((REV.NE.-1))GOTO 11815
      GOTO 11814
11815   AAAIB0=1
        GOTO 11812
11816 CONTINUE
11814 CALL PRWF$$(:1,DFD,LOC(N),1,INTL(0),JUNK,RC)
      IF((RC.NE.0))GOTO 11818
      IF((N.GT.256))GOTO 11818
      GOTO 11817
11818   AAAIB0=2
        GOTO 11812
11819 CONTINUE
11817 CALL PRWF$$(:1,DFD,LOC(SEGMAP),N*2,INTL(0),JUNK,RC)
      IF((RC.EQ.0))GOTO 11820
        AAAIB0=3
        GOTO 11812
11821 CONTINUE
11820 CALL PRWF$$(:1,DFD,LOC(SVEC),10,INTL(0),JUNK,RC)
      IF((RC.EQ.0))GOTO 11822
        AAAIB0=4
        GOTO 11812
11823 CONTINUE
11822 CALL PRWF$$(:1,DFD,LOC(TVEC),30,INTL(0),JUNK,RC)
      IF((RC.NE.0))GOTO 11825
      IF((TVEC(10).LT.6))GOTO 11825
      GOTO 11824
11825   AAAIB0=5
        GOTO 11812
11826 CONTINUE
11824 IF((TVEC(10).GE.7))GOTO 11827
        SYMTA0=SVEC(9)
        GOTO 11828
11827   SYMTA0=SVEC(10)
11828 CALL PRWF$$(:1,DFD,LOC(SYMTAB),SYMTA0,INTL(0),JUNK,RC)
      IF((RC.EQ.0))GOTO 11829
        AAAIB0=6
        GOTO 11812
11830 CONTINUE
11829 CALL PRWF$$(:1,DFD,LOC(STHEAD),21,INTL(0),JUNK,RC)
      IF((RC.EQ.0))GOTO 11831
        AAAIB0=7
        GOTO 11812
11832 CONTINUE
11831 P=STHEAD(18)
      GOTO 11835
11833 P=SYMTAB(Q+8)
11835 IF((P.EQ.:100000))GOTO 11834
        Q=SYMTA0-(P*9)+1
        IF((SYMTAB(Q+1).LE.2048))GOTO 11833
        IF((SYMTAB(Q+0).GE.0))GOTO 11833
        GOTO 11836
11836   CALL ZMEM$(SYMTAB(Q))
        N=AND(SYMTAB(Q+0),511)*32
        ADDR(1)=SYMTAB(Q+1)
        ADDR(2)=0
        DO 11838 I=1,32
          BIT=RT(N,4)
          WRD=RS(N,4)
          IF((AND(SEGMAP(WRD+1),MASKS(BIT+1)).EQ.0))GOTO 11840
            IF((CHUNK$(ADDR,N,SFD).NE.-3))GOTO 11841
              AAAIB0=8
              GOTO 11812
11842       CONTINUE
11841     CONTINUE
11840     N=N+(1)
          ADDR(2)=ADDR(2)+(2048)
11838   CONTINUE
11839 GOTO 11833
11834 CALL SRCH$$(:4,0,0,DFD,0,RC)
      CALL SRCH$$(:4,0,0,SFD,0,RC)
      RVEC(4)=SVEC(5)
      RVEC(5)=SVEC(6)
      RVEC(6)=SVEC(7)
      RVEC(7)=0
      RVEC(8)=SVEC(1)
      RVEC(9)=SVEC(2)
      CODE=0
      RETURN
11811 CALL SRCH$$(:1+:40000,NAME,LEN,SFD,JUNK,CODE)
      IF((CODE.EQ.0))GOTO 11843
        RETURN
11843 CALL SRCH$$(:1+:40000+:100,SFD,0,DFD,JUNK,CODE)
      IF((CODE.EQ.0))GOTO 11813
        CALL SRCH$$(:4,0,0,SFD,0,JUNK)
        RETURN
11812 CALL SRCH$$(:4,0,0,DFD,0,RC)
      CALL SRCH$$(:4,0,0,SFD,0,RC)
      CODE=6
      RETURN
11846 GOTO(11816,11819,11821,11823,11826,11830,11832,11842),AAAIB0
      GOTO 11846
      END
      SUBROUTINE LDTMP$
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER FD
      INTEGER OPEN
      INTEGER I
      INTEGER GETLIN,GTEMP
      INTEGER STR(102),NM(128),REPL(128)
      INTEGER AAAIC0
      INTEGER AAAID0(12)
      INTEGER AAAIE0,AAAIF0,AAAIG0,AAAIH0,AAAII0
      INTEGER SCOPY,LENGTH
      INTEGER AAAIJ0(30)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAID0/189,245,244,229,237,240,236,225,244,229,189,0/
      DATA AAAIJ0/170,243,186,160,244,239,239,160,237,225,238,249,160,24
     *5,243,229,242,160,244,229,237,240,236,225,244,229,243,170,238,0/
      CALL BREAK$(1)
      DO 11848 I=1,37
        UHASH0(I)=0
11848 CONTINUE
11849 UTEMP0=0
      FD=OPEN(AAAID0,1)
      IF((FD.NE.-3))GOTO 11850
        CALL BREAK$(0)
        RETURN
11850 CONTINUE
11851 IF((GETLIN(STR,FD).EQ.-1))GOTO 11852
        IF((GTEMP(STR,NM,REPL).EQ.-1))GOTO 11851
          AAAIC0=1
          GOTO 11847
11854   CONTINUE
11853 GOTO 11851
11852 CONTINUE
1     CALL CLOSE(FD)
      CALL BREAK$(0)
      RETURN
11847 AAAII0=LENGTH(NM)+LENGTH(REPL)+4
      IF((UTEMP0+AAAII0.LE.4059))GOTO 11855
        CALL PRINT(-15,AAAIJ0,NM)
        CALL SETERR(1000)
        GOTO 1
11855 AAAIE0=0
      AAAIF0=1
      GOTO 11858
11856 AAAIF0=AAAIF0+(1)
11858 IF((AAAIF0.GT.4))GOTO 11857
      IF((NM(AAAIF0).EQ.0))GOTO 11857
        AAAIE0=AAAIE0+(NM(AAAIF0))
      GOTO 11856
11857 AAAIE0=MOD(AAAIE0,37)+1
      AAAIG0=UTEMP0+1
      UTEMQ0(AAAIG0)=UHASH0(AAAIE0)
      UHASH0(AAAIE0)=AAAIG0
      AAAIH0=AAAIG0+2+SCOPY(NM,1,UTEMQ0,AAAIG0+2)+1
      UTEMQ0(AAAIG0+1)=AAAIH0
      UTEMP0=AAAIH0+SCOPY(REPL,1,UTEMQ0,AAAIH0)
      GOTO 11854
      END
      INTEGER FUNCTION LOCATE(C,PAT,OFFSET)
      INTEGER C,PAT(256)
      INTEGER OFFSET
      INTEGER I
      I=OFFSET+PAT(OFFSET)
      GOTO 11862
11860 I=I-(1)
11862 IF((I.LE.OFFSET))GOTO 11861
        IF((C.NE.PAT(I)))GOTO 11860
          LOCATE=1
          RETURN
11861 LOCATE=0
      RETURN
      END
      INTEGER FUNCTION LOOKAC(NAME)
      INTEGER NAME(1)
      INTEGER ACLVE0,ACLCO0,ACLTY0
      INTEGER ACLPA0(41,32),ACLNA0(180)
      INTEGER PRIMO0(3)
      INTEGER ACLMO0(32)
      INTEGER ACLUS0(33,32)
      COMMON /ACL$00/ACLTY0,ACLNA0,ACLMO0,ACLUS0,PRIMO0
      INTEGER I
      INTEGER EQUAL
      EQUIVALENCE (PRIMO0(1),ACLVE0)
      EQUIVALENCE (PRIMO0(2),ACLCO0)
      EQUIVALENCE (PRIMO0(3),ACLPA0)
      I=1
      GOTO 11866
11864 I=I+(1)
11866 IF((I.GT.ACLCO0))GOTO 11865
        IF((EQUAL(ACLUS0(1,I),NAME).NE.1))GOTO 11864
          LOOKAC=I
          RETURN
11865 LOOKAC=-3
      RETURN
      END
      INTEGER FUNCTION LOOKUP(SYMBOL,INFO,ST)
      INTEGER SYMBOL(1)
      INTEGER INFO(1)
      INTEGER ST
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER I,NODES0
      INTEGER ST$LU
      INTEGER NODE,PRED
      IF((ST$LU(SYMBOL,NODE,PRED,ST).NE.0))GOTO 11868
        LOOKUP=0
        RETURN
11868 NODES0=MEMAA0(ST)
      I=1
      GOTO 11871
11869 I=I+(1)
11871 IF((I.GT.NODES0))GOTO 11870
        INFO(I)=MEMAA0(NODE+1-1+I)
      GOTO 11869
11870 LOOKUP=1
      RETURN
      END
      INTEGER FUNCTION LOPEN$(PATH,FD,MODE)
      INTEGER PATH(1)
      INTEGER FD
      INTEGER MODE
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER UNIT1,UNIT2,UNIT3,I,J,PP,BL,OFFSET
      INTEGER JUNK(3),INFO(29),BANNER(16),BUF(100)
      INTEGER MAPDN,CTOI,CTOP,PARSTM,MAPUP
      INTEGER * 4 T
      INTEGER STR(180)
      INTEGER AAAIK0
      INTEGER AAAIL0
      INTEGER AAAIM0(9)
      INTEGER AAAIN0
      INTEGER AAAIO0
      INTEGER AAAIP0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAIM0/175,196,197,214,175,204,208,211,0/
      UNIT1=0
      UNIT2=0
      UNIT3=0
      INFO(3)=:2000
      DO 11874 I=4,29
        INFO(I)='  '
11874 CONTINUE
11875 I=1
      BL=CTOP(AAAIM0,I,BANNER,16)
      PP=1
      GOTO 11878
11876 PP=PP+(1)
11878 IF((PATH(PP).EQ.0))GOTO 11877
        AAAIN0=MAPDN(PATH(PP))
        GOTO 11879
11882     INFO(3)=OR(AND(INFO(3),NOT(:20000+:2000)),:100000)
        GOTO 11876
11883     INFO(3)=OR(AND(INFO(3),NOT(:20000+:100000)),:2000)
        GOTO 11876
11884     INFO(3)=AND(INFO(3),NOT(:100000+:2000))
        GOTO 11876
11885     INFO(3)=OR(INFO(3),:10000)
        GOTO 11876
11886     INFO(3)=OR(INFO(3),:4000)
        GOTO 11876
11887     INFO(3)=OR(INFO(3),:20000)
        GOTO 11876
11888     INFO(3)=OR(INFO(3),:100)
          AAAIL0=1
          GOTO 11873
11889     J=1
          CALL CTOP(STR,J,INFO(13),8)
        GOTO 11876
11890     INFO(3)=OR(INFO(3),:400)
          AAAIL0=2
          GOTO 11873
11891     I=1
          IF((PARSTM(STR,I,T).NE.-3))GOTO 11892
            LOPEN$=-3
            RETURN
11892     INFO(11)=INTS(T/60)
        GOTO 11876
11893     AAAIL0=3
          GOTO 11873
11894     J=1
          BL=CTOP(STR,J,BANNER,16)
        GOTO 11876
11895     INFO(3)=OR(INFO(3),:20)
          AAAIL0=4
          GOTO 11873
11896     I=1
          INFO(29)=CTOI(STR,I)
        GOTO 11876
11897     AAAIL0=5
          GOTO 11873
11898     J=1
          CALL CTOP(STR,J,INFO(4),3)
        GOTO 11876
11879   IF(AAAIN0.EQ.160)GOTO 11876
        AAAIO0=AAAIN0-172
        GOTO(11876,11899,11876),AAAIO0
        AAAIO0=AAAIN0-224
        GOTO(11888,11893,11895,11890,11899,11882,11899,11885,11899,11886
     *,11899,11899,11899,11887,11899,11897,11899,11883,11884),AAAIO0
11899     LOPEN$=-3
          RETURN
11877 IF((PRTDE0(1).EQ.0))GOTO 11900
      IF((INFO(13).NE.'  '))GOTO 11900
        INFO(3)=OR(INFO(3),:100)
        CALL CTOC(PRTDE0,STR,102)
        CALL MAPSTR(STR,2)
        J=1
        CALL CTOP(STR,J,INFO(13),8)
11900 IF((PRTFO0(1).EQ.0))GOTO 11901
      IF((INFO(4).NE.'  '))GOTO 11901
        CALL CTOC(PRTFO0,STR,102)
        CALL MAPSTR(STR,2)
        J=1
        CALL CTOP(STR,J,INFO(4),3)
11901 CALL SRCH$$(:1+:40000,:177777,32,UNIT1,JUNK,ERRCO0)
      AAAIK0=1
      GOTO 11872
11902 CALL SRCH$$(:1+:40000,:177777,32,UNIT2,JUNK,ERRCO0)
      AAAIK0=2
      GOTO 11872
11903 CALL SRCH$$(:1+:40000,:177777,32,UNIT3,JUNK,ERRCO0)
      AAAIK0=3
      GOTO 11872
11904 CALL SRCH$$(:4,0,0,UNIT1,JUNK,ERRCO0)
      CALL SRCH$$(:4,0,0,UNIT2,JUNK,ERRCO0)
      CALL SRCH$$(:4,0,0,UNIT3,JUNK,ERRCO0)
      INFO(1)=UNIT2
      INFO(2)=UNIT3
      CALL SPOOL$(2,BANNER,BL,INFO,BUF,100,ERRCO0)
      IF((ERRCO0.EQ.0))GOTO 11905
        LOPEN$=-3
        RETURN
11905 OFFSET=FD*16-16+1
      FDUNI0(OFFSET)=UNIT3
      FDFLA0(OFFSET)=OR(FDFLA0(OFFSET),:020000+:002000)
      IF((AND(INFO(3),:2000+:10000).NE.:2000))GOTO 11906
        CALL PUTCH(140,FD)
        CALL PUTCH(138,FD)
11906 LOPEN$=FD
      RETURN
11872 IF((ERRCO0.EQ.0))GOTO 11910
        IF((UNIT1.EQ.0))GOTO 11908
          CALL SRCH$$(:4,0,0,UNIT1,JUNK,JUNK)
11908   IF((UNIT2.EQ.0))GOTO 11909
          CALL SRCH$$(:4,0,0,UNIT2,JUNK,JUNK)
11909   LOPEN$=-3
        RETURN
11873 CONTINUE
11911 IF((PATH(PP+1).EQ.175))GOTO 11913
      IF((PATH(PP+1).EQ.160))GOTO 11913
      GOTO 11912
11913   PP=PP+(1)
      GOTO 11911
11912 AAAIP0=1
      GOTO 11916
11914 PP=PP+(1)
      AAAIP0=AAAIP0+(1)
11916 IF((PATH(PP+1).EQ.0))GOTO 11915
      IF((PATH(PP+1).EQ.175))GOTO 11915
      IF((PATH(PP+1).EQ.160))GOTO 11915
        STR(AAAIP0)=MAPUP(PATH(PP+1))
      GOTO 11914
11915 STR(AAAIP0)=0
      GOTO 11917
11917 GOTO(11889,11891,11894,11896,11898),AAAIL0
      GOTO 11917
11910 GOTO(11902,11903,11904),AAAIK0
      GOTO 11910
      END
      INTEGER FUNCTION LTOC(INT,STR,SIZE)
      INTEGER * 4 INT
      INTEGER SIZE
      INTEGER STR(SIZE)
      INTEGER * 4 INTVAL
      INTEGER D,I,J,K
      INTEGER DIGITS(11)
      DATA DIGITS/176,177,178,179,180,181,182,183,184,185,0/
      INTVAL=INT
      STR(1)=0
      I=1
11918   I=I+(1)
        D=IABS(MOD(INTVAL,10))
        STR(I)=DIGITS(D+1)
        INTVAL=INTVAL/(10)
      IF((INTVAL.EQ.0))GOTO 11919
      IF((I.GE.SIZE))GOTO 11919
      GOTO 11918
11919 CONTINUE
      IF((INT.GE.0))GOTO 11920
      IF((I.GE.SIZE))GOTO 11920
        I=I+(1)
        STR(I)=173
11920 LTOC=I-1
      J=1
      GOTO 11923
11921 J=J+(1)
11923 IF((J.GE.I))GOTO 11922
        K=STR(I)
        STR(I)=STR(J)
        STR(J)=K
        I=I-(1)
      GOTO 11921
11922 RETURN
      END
      INTEGER FUNCTION LUTEMP(JIG,STR,STRLEN)
      INTEGER JIG(1),STR(1)
      INTEGER STRLEN
      INTEGER HASHT0(37),TEMPU0,CLDAT0(2)
      INTEGER TEMPB0(4059)
      COMMON /SWT$TP/TEMPU0,HASHT0,TEMPB0,CLDAT0
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER H,P,I,L,CODE
      INTEGER SCOPY,EQUAL,MOD,LENGTH
      INTEGER TBUF(180),DIRNA0(256)
      INTEGER AAAIQ0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      I=1
      GOTO 11926
11924 I=I+(1)
11926 IF((JIG(I).EQ.0))GOTO 11925
        TBUF(I)=JIG(I)
      GOTO 11924
11925 TBUF(I)=0
      H=0
      I=1
      GOTO 11929
11927 I=I+(1)
11929 IF((I.GT.4))GOTO 11928
      IF((JIG(I).EQ.0))GOTO 11928
        H=H+(TBUF(I))
      GOTO 11927
11928 H=MOD(H,37)+1
      P=UHASH0(H)
      GOTO 11932
11930 P=UTEMQ0(P)
11932 IF((P.EQ.0))GOTO 11931
        IF((EQUAL(TBUF,UTEMQ0(P+2)).NE.1))GOTO 11930
          GOTO 11931
11931 IF((P.EQ.0))GOTO 11934
        L=SCOPY(UTEMQ0,UTEMQ0(P+1),TBUF,1)
        IF((L.LT.STRLEN))GOTO 11935
          LUTEMP=-1
          RETURN
11935   LUTEMP=SCOPY(TBUF,1,STR,1)
        RETURN
11934 P=HASHT0(H)
      GOTO 11938
11936 P=TEMPB0(P)
11938 IF((P.EQ.0))GOTO 11937
        IF((EQUAL(TBUF,TEMPB0(P+2)).NE.1))GOTO 11936
          GOTO 11937
11937 IF((P.NE.0))GOTO 11940
        LUTEMP=-1
        RETURN
11940 AAAIQ0=-TEMPB0(P+1)
      GOTO 11941
11942   CALL DATE(1,TBUF)
        TBUF(3)=TBUF(4)
        TBUF(4)=TBUF(5)
        TBUF(5)=TBUF(7)
        TBUF(6)=TBUF(8)
        TBUF(7)=0
        L=6
      GOTO 11943
11944   CALL DATE(2,TBUF)
        TBUF(3)=TBUF(4)
        TBUF(4)=TBUF(5)
        TBUF(5)=TBUF(7)
        TBUF(6)=TBUF(8)
        TBUF(7)=0
        L=6
      GOTO 11943
11945   CALL DATE(3,TBUF)
        L=LENGTH(TBUF)
11946   IF((L.LE.0))GOTO 11947
        IF((TBUF(L).NE.160))GOTO 11947
          L=L-(1)
        GOTO 11946
11947   TBUF(L+1)=0
        CALL MAPSTR(TBUF,1)
      GOTO 11943
11948   CALL DATE(4,TBUF)
        L=LENGTH(TBUF)
      GOTO 11943
11949   L=SCOPY(PASSW0,1,TBUF,1)
      GOTO 11943
11950   CALL DATE(5,TBUF)
        L=LENGTH(TBUF)
      GOTO 11943
11951   CALL GPATH$(:4,0,TBUF,180,I,CODE)
        IF((CODE.EQ.0))GOTO 11952
          LUTEMP=-1
          RETURN
11952   CALL PTOC(TBUF,0,DIRNA0,I+1)
        CALL MKPA$(DIRNA0,TBUF,0)
        L=MAPSTR(TBUF,1)
      GOTO 11943
11941 GOTO(11942,11944,11945,11948,11949,11950,11951),AAAIQ0
        L=SCOPY(TEMPB0,TEMPB0(P+1),TBUF,1)
11943 IF((L.LT.STRLEN))GOTO 11953
        LUTEMP=-1
        RETURN
11953 LUTEMP=SCOPY(TBUF,1,STR,1)
      RETURN
      END
      INTEGER FUNCTION MAKPAT(ARG,FROM,DELIM,PAT)
      INTEGER ARG(128),DELIM,PAT(256)
      INTEGER FROM
      INTEGER ESC
      INTEGER ADDSET,GETCCL,STCLOS
      INTEGER I,J,JUNK,LASTCL,LASTJ,LJ,TAGNE0,TAGNUM,TAGST0(9)
      J=1
      LASTJ=1
      LASTCL=0
      TAGNUM=0
      TAGNE0=0
      I=FROM
      GOTO 11956
11954 I=I+(1)
11956 IF((ARG(I).EQ.DELIM))GOTO 11955
      IF((ARG(I).EQ.0))GOTO 11955
        LJ=J
        IF((ARG(I).NE.191))GOTO 11957
          JUNK=ADDSET(191,PAT,J,256)
          GOTO 11958
11957     IF((ARG(I).NE.165))GOTO 11959
          IF((I.NE.FROM))GOTO 11959
            JUNK=ADDSET(165,PAT,J,256)
            GOTO 11960
11959       IF((ARG(I).NE.164))GOTO 11961
            IF((ARG(I+1).NE.DELIM))GOTO 11961
              JUNK=ADDSET(164,PAT,J,256)
              GOTO 11962
11961         IF((ARG(I).NE.219))GOTO 11963
                IF((GETCCL(ARG,I,PAT,J).NE.-3))GOTO 11965
                  MAKPAT=-3
                  RETURN
11963           IF((ARG(I).NE.170))GOTO 11966
                IF((I.LE.FROM))GOTO 11966
                  LJ=LASTJ
                  IF((PAT(LJ).EQ.165))GOTO 11955
                  IF((PAT(LJ).EQ.164))GOTO 11955
                  IF((PAT(LJ).EQ.170))GOTO 11955
                  IF((PAT(LJ).EQ.251))GOTO 11955
                  IF((PAT(LJ).EQ.253))GOTO 11955
                  GOTO 11967
11967             LASTCL=STCLOS(PAT,J,LASTJ,LASTCL)
                  GOTO 11969
11966             IF((ARG(I).NE.251))GOTO 11970
                    IF((TAGNUM.LT.9))GOTO 11971
                      GOTO 11955
11971               TAGNUM=TAGNUM+(1)
                    TAGNE0=TAGNE0+(1)
                    TAGST0(TAGNE0)=TAGNUM
                    JUNK=ADDSET(251,PAT,J,256)
                    JUNK=ADDSET(TAGNUM,PAT,J,256)
                    GOTO 11972
11970               IF((ARG(I).NE.253))GOTO 11973
                    IF((TAGNE0.LE.0))GOTO 11973
                      JUNK=ADDSET(253,PAT,J,256)
                      JUNK=ADDSET(TAGST0(TAGNE0),PAT,J,256)
                      TAGNE0=TAGNE0-(1)
                      GOTO 11974
11973                 JUNK=ADDSET(225,PAT,J,256)
                      JUNK=ADDSET(ESC(ARG,I),PAT,J,256)
11974             CONTINUE
11972           CONTINUE
11969         CONTINUE
11965       CONTINUE
11962     CONTINUE
11960   CONTINUE
11958   LASTJ=LJ
      GOTO 11954
11955 IF((ARG(I).EQ.DELIM))GOTO 11975
        MAKPAT=-3
        GOTO 11976
11975   IF((ADDSET(0,PAT,J,256).NE.0))GOTO 11977
          MAKPAT=-3
          GOTO 11978
11977     IF((TAGNE0.EQ.0))GOTO 11979
            MAKPAT=-3
            GOTO 11980
11979       MAKPAT=I
11980   CONTINUE
11978 CONTINUE
11976 RETURN
      END
      INTEGER FUNCTION MAKSUB(ARG,FROM,DELIM,SUB)
      INTEGER ARG(1),DELIM,SUB(256)
      INTEGER FROM
      INTEGER ESC,TYPE
      INTEGER ADDSET
      INTEGER I,J,JUNK
      J=1
      I=FROM
      GOTO 11983
11981 I=I+(1)
11983 IF((ARG(I).EQ.DELIM))GOTO 11982
      IF((ARG(I).EQ.0))GOTO 11982
        IF((ARG(I).NE.166))GOTO 11984
          JUNK=ADDSET(-3,SUB,J,256)
          JUNK=ADDSET(0+-10,SUB,J,256)
          GOTO 11981
11984     IF((ARG(I).NE.192))GOTO 11986
          IF((TYPE(ARG(I+1)).NE.176))GOTO 11986
            I=I+(1)
            JUNK=ADDSET(-3,SUB,J,256)
            JUNK=ADDSET(ARG(I)-176+-10,SUB,J,256)
            GOTO 11987
11986       JUNK=ADDSET(ESC(ARG,I),SUB,J,256)
11987   CONTINUE
11985 GOTO 11981
11982 IF((ARG(I).EQ.DELIM))GOTO 11988
        MAKSUB=-3
        GOTO 11989
11988   IF((ADDSET(0,SUB,J,256).NE.0))GOTO 11990
          MAKSUB=-3
          GOTO 11991
11990     MAKSUB=I
11991 CONTINUE
11989 RETURN
      END
      INTEGER FUNCTION MAPDN(C)
      INTEGER C
      IF((193.GT.C))GOTO 11992
      IF((C.GT.218))GOTO 11992
        MAPDN=C-193+225
        GOTO 11993
11992   MAPDN=C
11993 RETURN
      END
      INTEGER FUNCTION MAPFD(FD)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER OFF,F
      INTEGER MAPSU
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      F=MAPSU(FD)
      IF((F.LT.1))GOTO 11995
      IF((F.GT.128))GOTO 11995
      GOTO 11994
11995   MAPFD=-3
        RETURN
11994 OFF=F*16-16+1
      IF((FDDEV0(OFF).NE.2))GOTO 11996
        MAPFD=FDUNI0(OFF)
        RETURN
11996   MAPFD=-3
        RETURN
      END
      INTEGER FUNCTION MAPSTR(STR,CASE)
      INTEGER STR(1)
      INTEGER CASE
      INTEGER I
      IF((CASE.NE.2))GOTO 11997
        I=1
        GOTO 12000
11998   I=I+(1)
12000   IF((STR(I).EQ.0))GOTO 12002
          IF((225.GT.STR(I)))GOTO 11998
          IF((STR(I).GT.250))GOTO 11998
            STR(I)=STR(I)-225+193
12001   GOTO 11998
11997   I=1
        GOTO 12005
12003   I=I+(1)
12005   IF((STR(I).EQ.0))GOTO 12004
          IF((193.GT.STR(I)))GOTO 12003
          IF((STR(I).GT.218))GOTO 12003
            STR(I)=STR(I)-193+225
12006   GOTO 12003
12004 CONTINUE
12002 MAPSTR=I-1
      RETURN
      END
      INTEGER FUNCTION MAPSU(STDUN0)
      INTEGER STDUN0
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      INTEGER AAAIR0
      INTEGER AAAIS0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      MAPSU=STDUN0
      IF((MAPSU.LE.0))GOTO 12007
        RETURN
12007 DO 12008 I=1,10
        AAAIR0=MAPSU
        GOTO 12010
12011     MAPSU=STDPO0(1)
        GOTO 12012
12013     MAPSU=STDPO0(3)
        GOTO 12012
12014     MAPSU=STDPO0(5)
        GOTO 12012
12015     MAPSU=STDPO0(2)
        GOTO 12012
12016     MAPSU=STDPO0(4)
        GOTO 12012
12017     MAPSU=STDPO0(6)
        GOTO 12012
12010   AAAIS0=AAAIR0+16
        GOTO(12017,12014,12016,12013,12015,12011),AAAIS0
          RETURN
12012   CONTINUE
12008 CONTINUE
12009 MAPSU=1
      RETURN
      END
      INTEGER FUNCTION MAPUP(C)
      INTEGER C
      IF((225.GT.C))GOTO 12018
      IF((C.GT.250))GOTO 12018
        MAPUP=C-225+193
        GOTO 12019
12018   MAPUP=C
12019 RETURN
      END
      INTEGER * 4 FUNCTION MARKF(FD)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER F,OFF
      INTEGER MAPSU
      INTEGER * 4 TMARK$,DMARK$
      INTEGER AAAIT0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      F=MAPSU(FD)
      OFF=F*16-16+1
      IF((F.LT.1))GOTO 12021
      IF((F.GT.128))GOTO 12021
      IF((AND(FDFLA0(OFF),:004000).NE.0))GOTO 12021
      IF((FDFLA0(OFF).EQ.0))GOTO 12021
      GOTO 12020
12021   MARKF=-3
        RETURN
12020 IF((AND(FDFLA0(OFF),:000017).EQ.0))GOTO 12022
        CALL FLUSH$(F)
        FDFLA0(OFF)=AND(FDFLA0(OFF),NOT(:000017))+0
12022 AAAIT0=FDDEV0(OFF)
      GOTO 12023
12024   MARKF=TMARK$(OFF)
        RETURN
12025   MARKF=DMARK$(OFF)
        RETURN
12026   MARKF=0
        RETURN
12023 GOTO(12024,12025,12026),AAAIT0
      MARKF=-3
      RETURN
      END
      INTEGER FUNCTION MATCH(LIN,PAT)
      INTEGER LIN(1),PAT(256)
      INTEGER AMATCH
      INTEGER I,JUNK(9)
      I=1
      GOTO 12029
12027 I=I+(1)
12029 IF((LIN(I).EQ.0))GOTO 12028
        IF((AMATCH(LIN,I,PAT,JUNK,JUNK).LE.0))GOTO 12027
          MATCH=1
          RETURN
12028 MATCH=0
      RETURN
      END
      INTEGER FUNCTION MKDIR$(NAME,OWNER,NONOW0)
      INTEGER NAME(1),OWNER(1),NONOW0(1)
      INTEGER NEWDIR(16),OPW(3),NPW(3),ATTACH,CODE,I,JUNK(3)
      INTEGER GETTO,FINDF$,CTOP
      MKDIR$=-3
      DO 12031 I=1,3
        OPW(I)='  '
        NPW(I)='  '
12031 CONTINUE
12032 I=1
      IF((CTOP(OWNER,I,OPW,3).NE.0))GOTO 12033
        OPW(1)=0
12033 I=1
      IF((CTOP(NONOW0,I,NPW,3).NE.0))GOTO 12034
        NPW(1)=0
12034 IF((GETTO(NAME,NEWDIR,JUNK,ATTACH).EQ.-3))GOTO 12035
      IF((FINDF$(NEWDIR).NE.0))GOTO 12035
        CALL CREA$$(NEWDIR,32,OPW,NPW,CODE)
        CALL SATR$$(:1,NEWDIR,32,117506048,JUNK)
        IF((CODE.NE.0))GOTO 12036
          MKDIR$=-2
12036 CONTINUE
12035 IF((ATTACH.EQ.0))GOTO 12037
        CALL AT$HOM(CODE)
12037 RETURN
      END
      INTEGER FUNCTION MKFD$(UNIT,MODE)
      INTEGER UNIT,MODE
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER FD,GETFD$
      INTEGER F
      INTEGER AAAIU0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((GETFD$(FD).NE.-3))GOTO 12038
        MKFD$=-3
        RETURN
12038 F=FD*16-16+1
      CALL BREAK$(1)
      FDDEV0(F)=2
      FDUNI0(F)=UNIT
      FDBUG0(F)=FD*128-128
      FDBUH0(F)=128
      FDBUI0(F)=0
      FDCOU0(F)=0
      FDBCO0(F)=0
      FDFLA0(F)=:001000+:002000+0
      AAAIU0=AND(MODE,3)
      GOTO 12039
12040   FDFLA0(F)=OR(FDFLA0(F),:040000)
      GOTO 12041
12042   FDFLA0(F)=OR(FDFLA0(F),:020000)
      GOTO 12041
12043   FDFLA0(F)=OR(FDFLA0(F),:040000+:020000)
      GOTO 12041
12039 GOTO(12040,12042,12043),AAAIU0
12041 CALL BREAK$(0)
      MKFD$=FD
      RETURN
      END
      INTEGER FUNCTION MKPA$(TREE,PATH,DEFAZ0)
      INTEGER PATH(1),TREE(1)
      INTEGER DEFAZ0
      INTEGER I,TP
      INTEGER INDEX
      INTEGER MAPDN
      INTEGER AAAIV0
      INTEGER AAAIW0(3)
      INTEGER AAAIX0(3)
      INTEGER AAAIY0
      INTEGER AAAIZ0
      DATA AAAIW0/175,175,0/
      DATA AAAIX0/175,175,0/
      I=1
12045 IF((TREE(I).NE.160))GOTO 12046
        I=I+(1)
      GOTO 12045
12046 IF((INDEX(TREE,190).NE.0))GOTO 12047
        IF((DEFAZ0.NE.1))GOTO 12048
          CALL SCOPY(AAAIW0,1,PATH,1)
          TP=3
          GOTO 12049
12048     TP=1
12049   AAAIV0=1
        GOTO 12044
12050   MKPA$=TP-1
        RETURN
12047 IF((TREE(I).NE.188))GOTO 12051
        TP=1
        GOTO 12052
12051   IF((TREE(I).NE.170))GOTO 12053
        IF((TREE(I+1).NE.190))GOTO 12053
          I=I+(2)
          TP=1
          GOTO 12054
12053     CALL SCOPY(AAAIX0,1,PATH,1)
          I=1
          TP=3
12054 CONTINUE
12052 AAAIV0=2
      GOTO 12044
12055 MKPA$=TP-1
      RETURN
12044 CONTINUE
12056 IF((TREE(I).NE.160))GOTO 12057
        I=I+(1)
      GOTO 12056
12057 CONTINUE
12058 IF((TREE(I).EQ.0))GOTO 12059
        AAAIY0=TREE(I)
        GOTO 12060
12061     CONTINUE
12062     IF((TREE(I).NE.160))GOTO 12063
            I=I+(1)
          GOTO 12062
12063     PATH(TP)=175
        GOTO 12064
12065     CONTINUE
12066     IF((TREE(I).NE.160))GOTO 12067
            I=I+(1)
          GOTO 12066
12067     PATH(TP)=175
        GOTO 12064
12068     PATH(TP)=192
          PATH(TP+1)=175
          TP=TP+(1)
        GOTO 12064
12069     CONTINUE
12070     IF((TREE(I).NE.160))GOTO 12071
            I=I+(1)
          GOTO 12070
12071     IF((TREE(I).EQ.0))GOTO 12072
          IF((TREE(I).EQ.190))GOTO 12072
            PATH(TP)=186
12072     TP=TP+(1)
12073     IF((TREE(I).EQ.0))GOTO 12064
          IF((TREE(I).EQ.190))GOTO 12064
            PATH(TP)=TREE(I)
            TP=TP+(1)
            I=I+(1)
          GOTO 12073
12060   IF(AAAIY0.EQ.160)GOTO 12069
        IF(AAAIY0.EQ.175)GOTO 12068
        AAAIZ0=AAAIY0-187
        GOTO(12061,12075,12065),AAAIZ0
12075     PATH(TP)=MAPDN(TREE(I))
12064   I=I+(1)
        TP=TP+(1)
      GOTO 12058
12059 PATH(TP)=0
      GOTO 12076
12076 GOTO(12050,12055),AAAIV0
      GOTO 12076
      END
      SUBROUTINE MKPACL
      INTEGER ACLVE0,ACLCO0,ACLTY0
      INTEGER ACLPA0(41,32),ACLNA0(180)
      INTEGER PRIMO0(3)
      INTEGER ACLMO0(32)
      INTEGER ACLUS0(33,32)
      COMMON /ACL$00/ACLTY0,ACLNA0,ACLMO0,ACLUS0,PRIMO0
      INTEGER I,J,K
      INTEGER TEMP(200)
      INTEGER ENCODE
      INTEGER AAAJA0(4)
      INTEGER AAAJB0(4)
      INTEGER AAAJC0(5)
      EQUIVALENCE (PRIMO0(1),ACLVE0)
      EQUIVALENCE (PRIMO0(2),ACLCO0)
      EQUIVALENCE (PRIMO0(3),ACLPA0)
      DATA AAAJA0/170,243,186,0/
      DATA AAAJB0/225,236,236,0/
      DATA AAAJC0/238,239,238,229,0/
      ACLVE0=2
      J=1
      GOTO 12079
12077 J=J+(1)
12079 IF((J.GT.ACLCO0))GOTO 12078
        I=ENCODE(TEMP,200,AAAJA0,ACLUS0(1,J))
        I=I+(1)
        IF((ACLMO0(J).NE.127))GOTO 12080
          CALL CTOC(AAAJB0,TEMP(I),4)
          GOTO 12081
12080     IF((ACLMO0(J).NE.0))GOTO 12082
            CALL CTOC(AAAJC0,TEMP(I),5)
            GOTO 12083
12082       IF((AND(32,ACLMO0(J)).EQ.0))GOTO 12084
              TEMP(I)=225
              I=I+(1)
12084       IF((AND(64,ACLMO0(J)).EQ.0))GOTO 12085
              TEMP(I)=228
              I=I+(1)
12085       IF((AND(2,ACLMO0(J)).EQ.0))GOTO 12086
              TEMP(I)=236
              I=I+(1)
12086       IF((AND(1,ACLMO0(J)).EQ.0))GOTO 12087
              TEMP(I)=240
              I=I+(1)
12087       IF((AND(8,ACLMO0(J)).EQ.0))GOTO 12088
              TEMP(I)=242
              I=I+(1)
12088       IF((AND(4,ACLMO0(J)).EQ.0))GOTO 12089
              TEMP(I)=245
              I=I+(1)
12089       IF((AND(16,ACLMO0(J)).EQ.0))GOTO 12090
              TEMP(I)=247
              I=I+(1)
12090       TEMP(I)=0
            I=I+(1)
12083   CONTINUE
12081   K=1
        CALL CTOV(TEMP,K,ACLPA0(1,J),41)
      GOTO 12077
12078 RETURN
      END
      INTEGER FUNCTION MKSACL(RETAC0,ACCET0,TYPE,SEPAR0)
      INTEGER RETAC0(1),ACCET0(1),SEPAR0(1)
      INTEGER TYPE
      INTEGER ACLVE0,ACLCO0,ACLTY0
      INTEGER ACLPA0(41,32),ACLNA0(180)
      INTEGER PRIMO0(3)
      INTEGER ACLMO0(32)
      INTEGER ACLUS0(33,32)
      COMMON /ACL$00/ACLTY0,ACLNA0,ACLMO0,ACLUS0,PRIMO0
      INTEGER I,COUNT
      INTEGER ENCODE,CTOC
      INTEGER AAAJD0(4)
      INTEGER AAAJE0(6)
      INTEGER AAAJF0(5)
      EQUIVALENCE (PRIMO0(1),ACLVE0)
      EQUIVALENCE (PRIMO0(2),ACLCO0)
      EQUIVALENCE (PRIMO0(3),ACLPA0)
      DATA AAAJD0/170,243,189,0/
      DATA AAAJE0/164,238,239,238,229,0/
      DATA AAAJF0/164,225,236,236,0/
      CALL CTOC(ACLNA0,RETAC0,180)
      TYPE=ACLTY0
      I=1
      COUNT=1
      GOTO 12093
12091 COUNT=COUNT+(1)
12093 IF((COUNT.GT.ACLCO0))GOTO 12092
        I=I+(ENCODE(ACCET0(I),200,AAAJD0,ACLUS0(1,COUNT)))
        IF((ACLMO0(COUNT).NE.0))GOTO 12094
          I=I+(CTOC(AAAJE0,ACCET0(I),200))
          GOTO 12095
12094     IF((ACLMO0(COUNT).NE.127))GOTO 12096
            I=I+(CTOC(AAAJF0,ACCET0(I),200))
            GOTO 12097
12096       IF((AND(32,ACLMO0(COUNT)).EQ.0))GOTO 12098
              ACCET0(I)=225
              I=I+(1)
12098       IF((AND(64,ACLMO0(COUNT)).EQ.0))GOTO 12099
              ACCET0(I)=228
              I=I+(1)
12099       IF((AND(2,ACLMO0(COUNT)).EQ.0))GOTO 12100
              ACCET0(I)=236
              I=I+(1)
12100       IF((AND(1,ACLMO0(COUNT)).EQ.0))GOTO 12101
              ACCET0(I)=240
              I=I+(1)
12101       IF((AND(8,ACLMO0(COUNT)).EQ.0))GOTO 12102
              ACCET0(I)=242
              I=I+(1)
12102       IF((AND(4,ACLMO0(COUNT)).EQ.0))GOTO 12103
              ACCET0(I)=245
              I=I+(1)
12103       IF((AND(16,ACLMO0(COUNT)).EQ.0))GOTO 12104
              ACCET0(I)=247
              I=I+(1)
12104     CONTINUE
12097   CONTINUE
12095   I=I+(ENCODE(ACCET0(I),200,SEPAR0))
      GOTO 12091
12092 MKSACL=I-1
      RETURN
      END
      INTEGER FUNCTION MKTABL(NODES0)
      INTEGER NODES0
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER ST
      INTEGER DSGET
      INTEGER I
      ST=DSGET(43+1)
      MEMAA0(ST)=NODES0
      MKTABL=ST
      DO 12105 I=1,43
        ST=ST+(1)
        MEMAA0(ST)=0
12105 CONTINUE
12106 RETURN
      END
      INTEGER FUNCTION MKTEMP(MODE)
      INTEGER MODE
      INTEGER I,FD
      INTEGER TEMPF(15)
      INTEGER CREATE
      INTEGER AAAJG0(12)
      DATA AAAJG0/189,244,229,237,240,189,175,244,237,170,233,0/
      I=1
      GOTO 12109
12107 I=I+(1)
12109 IF((I.GT.999))GOTO 12108
        CALL ENCODE(TEMPF,15,AAAJG0,I)
        FD=CREATE(TEMPF,MODE)
        IF((FD.EQ.-3))GOTO 12107
          MKTEMP=FD
          RETURN
12108 MKTEMP=-3
      RETURN
      END
      INTEGER FUNCTION MKTR$(PATH,TREE)
      INTEGER PATH(1),TREE(1)
      INTEGER AAAJI0
      INTEGER AAAJJ0
      INTEGER TP,I,MFDPWD,BLANK
      INTEGER INDEX,SCOPY
      INTEGER AAAJK0
      INTEGER AAAJL0(5)
      INTEGER AAAJM0(12)
      INTEGER AAAJH0
      INTEGER AAAJN0,AAAJO0(256)
      INTEGER AAAJP0(12)
      DATA AAAJL0/190,205,198,196,0/
      DATA AAAJM0/190,205,198,196,160,216,216,216,216,216,216,0/
      DATA AAAJP0/190,205,198,196,160,216,216,216,216,216,216,0/
      TP=1
      I=1
12113 IF((PATH(I).NE.160))GOTO 12114
        I=I+(1)
      GOTO 12113
12114 BLANK=0
      AAAJK0=PATH(I)
      GOTO 12115
12116   MFDPWD=0
        IF((PATH(I+1).NE.175))GOTO 12117
          I=I+(2)
          GOTO 12120
12118     I=I+(1)
12120     IF((PATH(I).NE.175))GOTO 12143
          GOTO 12118
12117     AAAJH0=188
          AAAJI0=1
          GOTO 12111
12122     I=I+(1)
          GOTO 12125
12123     I=I+(1)
12125     IF((PATH(I).EQ.175))GOTO 12124
          IF((PATH(I).EQ.0))GOTO 12124
            IF((PATH(I).NE.192))GOTO 12126
              I=I+(1)
              AAAJH0=PATH(I)
              AAAJI0=2
              GOTO 12111
12126         IF((PATH(I).NE.186))GOTO 12129
                TP=TP+(SCOPY(AAAJL0,1,TREE,TP))
                MFDPWD=1
                BLANK=1
                GOTO 12130
12129           IF((BLANK.NE.1))GOTO 12131
                  AAAJH0=160
                  AAAJI0=3
                  GOTO 12111
12132           CONTINUE
12131           AAAJH0=PATH(I)
                AAAJI0=4
                GOTO 12111
12133           BLANK=0
12130       CONTINUE
12128     GOTO 12123
12124     IF((PATH(I).EQ.175))GOTO 12134
          IF((MFDPWD.NE.0))GOTO 12134
            TP=TP+(SCOPY(AAAJM0,1,TREE,TP))
12134   CONTINUE
12121 GOTO 12143
12136   AAAJJ0=1
        GOTO 12112
12115 IF(AAAJK0.EQ.0)GOTO 12143
      IF(AAAJK0.EQ.175)GOTO 12116
      IF(AAAJK0.EQ.220)GOTO 12136
        AAAJH0=170
        AAAJI0=5
        GOTO 12111
12139   AAAJH0=190
        AAAJI0=6
        GOTO 12111
12140 CONTINUE
12135 GOTO 12143
12141 I=I+(1)
12143 IF((PATH(I).EQ.0))GOTO 12142
        IF((PATH(I).NE.175))GOTO 12144
          BLANK=0
12145     IF((PATH(I+1).NE.175))GOTO 12146
            I=I+(1)
          GOTO 12145
12146     IF((PATH(I+1).EQ.0))GOTO 12141
            AAAJH0=190
            AAAJI0=7
            GOTO 12111
12148     CONTINUE
12147     GOTO 12141
12144     IF((PATH(I).NE.186))GOTO 12150
            BLANK=1
            GOTO 12151
12150       IF((BLANK.NE.1))GOTO 12152
              AAAJH0=160
              AAAJI0=8
              GOTO 12111
12153       CONTINUE
12152       IF((PATH(I).NE.192))GOTO 12154
              I=I+(1)
12154       AAAJH0=PATH(I)
            AAAJI0=9
            GOTO 12111
12155       BLANK=0
12151   CONTINUE
12149 GOTO 12141
12142 TREE(TP)=0
      MKTR$=TP-1
      RETURN
12111 TREE(TP)=AAAJH0
      TP=TP+(1)
      GOTO 12156
12112 CALL GPATH$(2,0,AAAJO0,256*2-1,TP,AAAJN0)
      IF((AAAJN0.EQ.0))GOTO 12157
        MKTR$=-3
        RETURN
12157 CALL PTOC(AAAJO0,0,TREE,TP+1)
      CALL MAPSTR(TREE,1)
      TP=TP+(1)
      GOTO 12160
12158 I=I+(1)
12160 IF((PATH(I).NE.220))GOTO 12159
12161     TP=TP-(1)
        IF((TP.LT.1))GOTO 12162
        IF((TREE(TP).EQ.190))GOTO 12162
        GOTO 12161
12162   CONTINUE
      GOTO 12158
12159 IF((TP.GE.1))GOTO 12163
        TP=1
12163 TREE(TP)=0
      IF((PATH(I).EQ.175))GOTO 12164
      IF((PATH(I).EQ.0))GOTO 12164
        AAAJH0=190
        AAAJI0=10
        GOTO 12111
12164   IF((PATH(I).NE.0))GOTO 12167
        IF((INDEX(TREE,190).NE.0))GOTO 12167
          TP=TP+(SCOPY(AAAJP0,1,TREE,TP))
12167 CONTINUE
12166 GOTO 12143
12156 GOTO(12122,12123,12132,12133,12139,12140,12148,12153,12155,12143),
     *AAAJI0
      GOTO 12156
      END
      INTEGER FUNCTION MNTOC(BUF,P,DEFAZ0)
      INTEGER BUF(1),DEFAZ0
      INTEGER P
      INTEGER I,TP
      INTEGER STRBSR
      INTEGER C,TMP(102)
      INTEGER POS(35)
      INTEGER TEXT(156)
      DATA TEXT/134,225,227,235,0,135,226,229,236,0,136,226,243,0,152,22
     *7,225,238,0,141,227,242,0,145,228,227,177,0,146,228,227,178,0,147,
     *228,227,179,0,148,228,227,180,0,255,228,229,236,0,144,228,236,229,
     *0,153,229,237,0,133,229,238,241,0,132,229,239,244,0,155,229,243,22
     *7,0,151,229,244,226,0,131,229,244,248,0,140,230,230,0,156,230,243,
     *0,157,231,243,0,137,232,244,0,138,236,230,0,149,238,225,235,0,128,
     *238,245,236,0,158,242,243,0,143,243,233,0,142,243,239,0,129,243,23
     *9,232,0,160,243,240,0,130,243,244,248,0,154,243,245,226,0,150,243,
     *249,238,0,159,245,243,0,139,246,244,0/
      DATA POS/34,1,6,11,15,20,24,29,34,39,44,49,54,58,63,68,73,78,83,87
     *,91,95,99,103,108,113,117,121,125,130,134,139,144,149,153/
      IF((BUF(P).NE.0))GOTO 12169
        MNTOC=DEFAZ0
        RETURN
12169 TP=1
12170   TMP(TP)=BUF(P)
        TP=TP+(1)
        P=P+(1)
      IF((193.GT.BUF(P)))GOTO 12173
      IF((BUF(P).GT.218))GOTO 12173
      GOTO 12172
12173 IF((225.GT.BUF(P)))GOTO 12174
      IF((BUF(P).GT.250))GOTO 12174
      GOTO 12172
12174 IF((176.GT.BUF(P)))GOTO 12171
      IF((BUF(P).GT.185))GOTO 12171
      GOTO 12172
12172 IF((TP.GE.102))GOTO 12171
      GOTO 12170
12171 CONTINUE
      TMP(TP)=0
      IF((TP.NE.2))GOTO 12176
        C=TMP(1)
        GOTO 12177
12176   CALL MAPSTR(TMP,1)
        I=STRBSR(POS,TEXT,1,TMP)
        IF((I.EQ.-1))GOTO 12178
          C=TEXT(POS(I))
          GOTO 12179
12178     C=DEFAZ0
12179 CONTINUE
12177 MNTOC=C
      RETURN
      END
      INTEGER FUNCTION OMATCH(LIN,I,PAT,J)
      INTEGER LIN(1),PAT(256)
      INTEGER I,J
      INTEGER LOCATE
      INTEGER BUMP
      INTEGER AAAJQ0
      INTEGER AAAJR0
      INTEGER AAAJS0(24)
      DATA AAAJS0/233,238,160,239,237,225,244,227,232,186,160,227,225,23
     *8,167,244,160,232,225,240,240,229,238,0/
      OMATCH=0
      IF((LIN(I).NE.0))GOTO 12180
        RETURN
12180 BUMP=-1
      AAAJQ0=PAT(J)
      GOTO 12181
12182   IF((LIN(I).NE.PAT(J+1)))GOTO 12184
          BUMP=1
12183 GOTO 12184
12185   IF((I.NE.1))GOTO 12184
          BUMP=0
12186 GOTO 12184
12187   IF((LIN(I).EQ.138))GOTO 12184
          BUMP=1
12188 GOTO 12184
12189   IF((LIN(I).NE.138))GOTO 12184
          BUMP=0
12190 GOTO 12184
12191   IF((LOCATE(LIN(I),PAT,J+1).NE.1))GOTO 12184
          BUMP=1
12192 GOTO 12184
12193   IF((LIN(I).EQ.138))GOTO 12184
        IF((LOCATE(LIN(I),PAT,J+1).NE.0))GOTO 12184
          BUMP=1
12194 GOTO 12184
12181 AAAJR0=AAAJQ0-163
      GOTO(12189,12185),AAAJR0
      IF(AAAJQ0.EQ.191)GOTO 12187
      AAAJR0=AAAJQ0-218
      GOTO(12191,12195,12195,12195,12195,12195,12182),AAAJR0
      IF(AAAJQ0.EQ.238)GOTO 12193
12195   CALL ERROR(AAAJS0)
12184 IF((BUMP.LT.0))GOTO 12196
        I=I+(BUMP)
        OMATCH=1
12196 RETURN
      END
      INTEGER FUNCTION OPEN(PATH,MODE,FTYPE,DELAY)
      INTEGER PATH(1)
      INTEGER MODE,FTYPE,DELAY
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER FD,F,I,J
      INTEGER DOPEN$,LOPEN$,MAPDN,STRBSR,EXPAND,GETFD$
      INTEGER DEVNA0(30),EPATH(180)
      INTEGER DEVPOS(14)
      INTEGER DEVTAB(110)
      INTEGER AAAJU0
      INTEGER AAAJV0
      INTEGER AAAJW0
      INTEGER AAAJT0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA DEVTAB/1,-14,229,242,242,233,238,0,1,-15,229,242,242,239,245,
     *244,0,4,0,236,240,243,0,2,0,238,245,236,236,0,1,-10,243,244,228,23
     *3,238,0,1,-10,243,244,228,233,238,177,0,1,-12,243,244,228,233,238,
     *178,0,1,-14,243,244,228,233,238,179,0,1,-11,243,244,228,239,245,24
     *4,0,1,-11,243,244,228,239,245,244,177,0,1,-13,243,244,228,239,245,
     *244,178,0,1,-15,243,244,228,239,245,244,179,0,3,0,244,244,249,0/
      DATA DEVPOS/13,1,9,18,24,31,39,48,57,66,75,85,95,105/
      IF((GETFD$(FD).NE.-3))GOTO 12198
        OPEN=-3
        RETURN
12198 F=FD*16-16+1
      CALL BREAK$(1)
      FDBUG0(F)=FD*128-128
      FDBUH0(F)=128
      FDBUI0(F)=0
      FDCOU0(F)=0
      FDBCO0(F)=0
      AAAJV0=AND(MODE,3)
      GOTO 12199
12200   FDFLA0(F)=:040000
      GOTO 12201
12202   FDFLA0(F)=:020000
      GOTO 12201
12203   FDFLA0(F)=:040000+:020000
      GOTO 12201
12199 GOTO(12200,12202,12203),AAAJV0
        AAAJT0=-3
        AAAJU0=1
        GOTO 12197
12204 CONTINUE
12201 FDFLA0(F)=OR(FDFLA0(F),:001000+0)
      IF((EXPAND(PATH,EPATH,180).NE.-3))GOTO 12205
        AAAJT0=-3
        AAAJU0=2
        GOTO 12197
12206 CONTINUE
12205 I=1
12207 IF((EPATH(I).NE.160))GOTO 12208
        I=I+(1)
      GOTO 12207
12208 IF((EPATH(I+0).NE.175))GOTO 12210
      IF((MAPDN(EPATH(I+1)).NE.228))GOTO 12210
      IF((MAPDN(EPATH(I+2)).NE.229))GOTO 12210
      IF((MAPDN(EPATH(I+3)).NE.246))GOTO 12210
      IF((EPATH(I+4).NE.175))GOTO 12210
      GOTO 12209
12210   FDDEV0(F)=2
        AAAJT0=DOPEN$(PATH,FD,MODE,FTYPE,DELAY)
        AAAJU0=3
        GOTO 12197
12211 CONTINUE
12209 I=I+(5)
      J=1
      GOTO 12214
12212 J=J+(1)
      I=I+(1)
12214 IF((EPATH(I).EQ.0))GOTO 12213
      IF((EPATH(I).EQ.175))GOTO 12213
      IF((EPATH(I).EQ.160))GOTO 12213
        DEVNA0(J)=MAPDN(EPATH(I))
      GOTO 12212
12213 DEVNA0(J)=0
      J=STRBSR(DEVPOS,DEVTAB,2,DEVNA0)
      IF((J.NE.-1))GOTO 12215
        AAAJT0=-3
        AAAJU0=4
        GOTO 12197
12216 CONTINUE
12215 AAAJW0=DEVTAB(DEVPOS(J))
      GOTO 12217
12218   FDFLA0(F)=0
        AAAJT0=DEVTAB(DEVPOS(J)+1)
        AAAJU0=5
        GOTO 12197
12221   FDDEV0(F)=3
        AAAJT0=FD
        AAAJU0=6
        GOTO 12197
12223   FDDEV0(F)=1
        AAAJT0=FD
        AAAJU0=7
        GOTO 12197
12225   FDDEV0(F)=2
        AAAJT0=LOPEN$(EPATH(I),FD,MODE)
        AAAJU0=8
        GOTO 12197
12217 GOTO(12218,12221,12223,12225),AAAJW0
12220 FDFLA0(F)=0
      CALL BREAK$(0)
      OPEN=-3
      RETURN
12197 IF((AAAJT0.NE.-3))GOTO 12227
        FDFLA0(F)=0
12227 CALL BREAK$(0)
      OPEN=AAAJT0
      RETURN
12228 GOTO(12204,12206,12211,12216,12220,12220,12220,12220),AAAJU0
      GOTO 12228
      END
      INTEGER FUNCTION PAGE(FDIN,PROMP0,EPROM0,LINES0,FDOUT,OPTIO0)
      INTEGER PROMP0(1),EPROM0(1)
      INTEGER FDIN,FDOUT
      INTEGER LINES0,OPTIO0
      EXTERNAL PG$BRK
      INTEGER OPEN
      INTEGER * 4 MARKF
      INTEGER ISATTY,VTINIT,VTPRT,VTGETL,GETLIN,CTOI,MAKPAT,MATCH,SCOPY
      LOGICAL MISSIN
      INTEGER TERM(7),SCREEN(86,64),INPUT(102),LINE(102),TEMP(102),PROMP
     *T(102),EPRON0(102),MESSA0(102),EMESS0(102)
      INTEGER * 4 PAGES(10000)
      INTEGER VTHRC(2),TEMPAT(256),PATTE0(256)
      INTEGER LABEL(4)
      INTEGER IFD,OFD,TIFD,TOFD
      INTEGER PG,LAST,INDEX,LINES,COLUM0,SIZE,FIRST,START,BEGIN,CLEAR,I,
     *J,K,L,M,MISSI0
      LOGICAL PAUSE,VTHOUT,ERROR,NOREAD,NOPAT,FOUND
      INTEGER HELPI0(23)
      INTEGER HELPS0(1062)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER AAAJY0
      INTEGER AAAJZ0
      INTEGER AAAKB0
      INTEGER AAAKD0
      INTEGER AAAKE0(3)
      INTEGER AAAKF0(3)
      INTEGER AAAKG0
      INTEGER AAAKH0(12)
      INTEGER AAAKI0(12)
      INTEGER AAAKJ0(24)
      INTEGER AAAKK0(24)
      INTEGER AAAKL0(5)
      INTEGER AAAKM0(24)
      INTEGER AAAKN0(24)
      INTEGER AAAKO0(28)
      INTEGER AAAKP0(28)
      INTEGER AAAKQ0(26)
      INTEGER AAAKR0(26)
      INTEGER AAAKS0(25)
      INTEGER AAAKT0(25)
      INTEGER AAAKU0(32)
      INTEGER AAAKV0(32)
      INTEGER AAAKW0(26)
      INTEGER AAAKX0(26)
      INTEGER AAAKY0(25)
      INTEGER AAAKZ0(25)
      INTEGER AAALA0(32)
      INTEGER AAALB0(32)
      INTEGER AAALC0(26)
      INTEGER AAALD0(26)
      INTEGER AAALE0
      INTEGER AAALF0(44)
      INTEGER AAALG0(44)
      INTEGER AAAJX0
      INTEGER AAALH0
      LOGICAL AAALI0
      INTEGER AAALJ0
      INTEGER AAALK0(5)
      INTEGER AAAKA0
      INTEGER AAALL0,AAALM0
      INTEGER AAAKC0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA HELPS0/212,232,229,160,230,239,236,236,239,247,233,238,231,16
     *0,227,239,237,237,225,238,228,243,160,168,245,240,240,229,242,160,
     *239,242,160,236,239,247,229,242,160,227,225,243,229,169,160,225,24
     *2,229,160,225,246,225,233,236,225,226,236,229,186,0,160,160,160,16
     *0,160,160,196,160,188,233,238,244,190,160,160,160,160,160,160,160,
     *196,233,243,240,236,225,249,160,188,233,238,244,190,160,227,239,23
     *8,244,233,238,245,239,245,243,160,240,225,231,229,243,0,160,160,16
     *0,160,160,160,197,160,188,240,225,244,232,190,160,160,160,160,160,
     *160,194,229,231,233,238,160,229,248,225,237,233,238,233,238,231,16
     *0,244,232,229,160,230,233,236,229,160,238,225,237,229,228,160,188,
     *240,225,244,232,190,0,160,160,160,160,160,160,197,160,160,160,160,
     *160,160,160,160,160,160,160,160,160,194,229,231,233,238,160,229,24
     *8,225,237,233,238,233,238,231,160,244,232,229,160,239,242,233,231,
     *233,238,225,236,160,230,233,236,229,0,160,160,160,160,160,160,200,
     *160,239,242,160,191,160,160,160,160,160,160,160,160,196,233,243,24
     *0,236,225,249,160,244,232,233,243,160,227,239,237,237,225,238,228,
     *160,243,245,237,237,225,242,249,0,160,160,160,160,160,160,205,160,
     *188,233,238,244,190,160,160,160,160,160,160,160,195,232,225,238,23
     *1,229,160,236,229,230,244,160,237,225,242,231,233,238,160,239,230,
     *160,228,233,243,240,236,225,249,0,160,160,160,160,160,160,206,160,
     *160,160,160,160,160,160,160,160,160,160,160,160,211,244,239,240,16
     *0,240,225,231,233,238,231,172,160,238,239,242,237,225,236,160,243,
     *244,225,244,245,243,0,160,160,160,160,160,160,208,160,239,242,160,
     *222,160,160,160,160,160,160,160,160,196,233,243,240,236,225,249,16
     *0,244,232,229,160,240,242,229,246,233,239,245,243,160,240,225,231,
     *229,0,160,160,160,160,160,160,209,160,160,160,160,160,160,160,160,
     *160,160,160,160,160,211,225,237,229,160,225,243,160,162,206,162,0,
     *160,160,160,160,160,160,211,160,188,233,238,244,190,160,160,160,16
     *0,160,160,160,195,232,225,238,231,229,160,240,225,231,229,160,243,
     *233,250,229,160,244,239,160,188,233,238,244,190,0,160,160,160,160,
     *160,160,215,160,188,240,225,244,232,190,160,160,160,160,160,160,21
     *5,242,233,244,229,160,225,160,227,239,240,249,160,239,230,160,244,
     *232,229,160,230,233,236,229,160,233,238,244,239,160,188,240,225,24
     *4,232,190,0,160,160,160,160,160,160,216,160,160,160,160,160,160,16
     *0,160,160,160,160,160,160,211,244,239,240,160,240,225,231,233,238,
     *231,172,160,197,207,198,160,243,244,225,244,245,243,0,160,160,160,
     *160,160,160,217,160,239,242,160,186,160,160,160,160,160,160,160,16
     *0,199,239,160,244,239,160,244,232,229,160,238,229,248,244,160,240,
     *225,231,229,0,160,160,160,160,160,160,188,227,244,242,236,173,227,
     *190,160,160,160,160,160,160,211,225,237,229,160,225,243,160,162,21
     *6,162,172,160,228,239,229,243,160,238,239,244,160,247,239,242,235,
     *160,247,233,244,232,160,246,244,232,0,160,160,160,160,160,160,188,
     *242,229,244,245,242,238,190,160,160,160,160,160,160,211,225,237,22
     *9,160,225,243,160,162,217,162,0,160,160,160,160,160,160,188,233,23
     *8,244,190,160,160,160,160,160,160,160,160,160,196,233,243,240,236,
     *225,249,160,240,225,231,229,160,188,233,238,244,190,0,160,160,160,
     *160,160,160,173,160,188,233,238,244,190,160,160,160,160,160,160,16
     *0,196,233,243,240,236,225,249,160,227,245,242,242,229,238,244,160,
     *240,225,231,229,160,173,160,188,233,238,244,190,0,160,160,160,160,
     *160,160,174,160,160,160,160,160,160,160,160,160,160,160,160,160,21
     *0,229,228,233,243,240,236,225,249,160,244,232,229,160,227,245,242,
     *242,229,238,244,160,240,225,231,229,0,160,160,160,160,160,160,171,
     *160,188,233,238,244,190,160,160,160,160,160,160,160,196,233,243,24
     *0,236,225,249,160,227,245,242,242,229,238,244,160,240,225,231,229,
     *160,171,160,188,233,238,244,190,0,160,160,160,160,160,160,164,160,
     *160,160,160,160,160,160,160,160,160,160,160,160,196,233,243,240,23
     *6,225,249,160,244,232,229,160,236,225,243,244,160,240,225,231,229,
     *0,160,160,160,160,160,160,175,188,240,225,244,190,219,175,221,160,
     *160,160,160,160,196,233,243,240,236,225,249,160,238,229,248,244,16
     *0,240,225,231,229,160,227,239,238,244,225,233,238,233,238,231,160,
     *188,240,225,244,190,0,160,160,160,160,160,160,220,188,240,225,244,
     *190,219,220,221,160,160,160,160,160,196,233,243,240,236,225,249,16
     *0,240,242,229,246,233,239,245,243,160,240,225,231,229,160,227,239,
     *238,244,225,233,238,233,238,231,160,188,240,225,244,190,0/
      DATA HELPI0/22,1,61,112,170,224,273,323,370,416,448,494,551,595,63
     *5,691,723,762,811,858,907,949,1004/
      DATA AAAKE0/170,243,0/
      DATA AAAKF0/170,243,0/
      DATA AAAKH0/170,243,160,219,170,170,233,171,221,191,160,0/
      DATA AAAKI0/170,243,160,219,170,170,233,164,221,191,160,0/
      DATA AAAKJ0/170,243,186,160,227,225,238,167,244,160,239,240,229,23
     *8,160,219,170,170,233,171,221,191,160,0/
      DATA AAAKK0/170,243,186,160,227,225,238,167,244,160,239,240,229,23
     *8,160,219,170,170,233,164,221,191,160,0/
      DATA AAAKL0/170,243,170,238,0/
      DATA AAAKM0/170,243,186,160,227,225,238,167,244,160,239,240,229,23
     *8,160,219,170,170,233,171,221,191,160,0/
      DATA AAAKN0/170,243,186,160,227,225,238,167,244,160,239,240,229,23
     *8,160,219,170,170,233,164,221,191,160,0/
      DATA AAAKO0/198,233,236,229,160,225,236,242,229,225,228,249,160,22
     *9,248,233,243,244,243,160,219,170,233,171,221,191,160,0/
      DATA AAAKP0/198,233,236,229,160,225,236,242,229,225,228,249,160,22
     *9,248,233,243,244,243,160,219,170,233,164,221,191,160,0/
      DATA AAAKQ0/208,225,244,232,160,238,225,237,229,160,237,233,243,24
     *3,233,238,231,160,219,170,233,171,221,191,160,0/
      DATA AAAKR0/208,225,244,232,160,238,225,237,229,160,237,233,243,24
     *3,233,238,231,160,219,170,233,164,221,191,160,0/
      DATA AAAKS0/206,239,160,243,225,246,229,228,160,240,225,244,244,22
     *9,242,238,160,219,170,233,171,221,191,160,0/
      DATA AAAKT0/206,239,160,243,225,246,229,228,160,240,225,244,244,22
     *9,242,238,160,219,170,233,164,221,191,160,0/
      DATA AAAKU0/211,249,238,244,225,248,160,229,242,242,239,242,160,23
     *3,238,160,240,225,244,244,229,242,238,160,219,170,233,171,221,191,
     *160,0/
      DATA AAAKV0/211,249,238,244,225,248,160,229,242,242,239,242,160,23
     *3,238,160,240,225,244,244,229,242,238,160,219,170,233,164,221,191,
     *160,0/
      DATA AAAKW0/208,225,244,244,229,242,238,160,238,239,244,160,230,23
     *9,245,238,228,160,219,170,233,171,221,191,160,0/
      DATA AAAKX0/208,225,244,244,229,242,238,160,238,239,244,160,230,23
     *9,245,238,228,160,219,170,233,164,221,191,160,0/
      DATA AAAKY0/206,239,160,243,225,246,229,228,160,240,225,244,244,22
     *9,242,238,160,219,170,233,171,221,191,160,0/
      DATA AAAKZ0/206,239,160,243,225,246,229,228,160,240,225,244,244,22
     *9,242,238,160,219,170,233,164,221,191,160,0/
      DATA AAALA0/211,249,238,244,225,248,160,229,242,242,239,242,160,23
     *3,238,160,240,225,244,244,229,242,238,160,219,170,233,171,221,191,
     *160,0/
      DATA AAALB0/211,249,238,244,225,248,160,229,242,242,239,242,160,23
     *3,238,160,240,225,244,244,229,242,238,160,219,170,233,164,221,191,
     *160,0/
      DATA AAALC0/208,225,244,244,229,242,238,160,238,239,244,160,230,23
     *9,245,238,228,160,219,170,233,171,221,191,160,0/
      DATA AAALD0/208,225,244,244,229,242,238,160,238,239,244,160,230,23
     *9,245,238,228,160,219,170,233,164,221,191,160,0/
      DATA AAALF0/213,238,235,238,239,247,238,160,227,239,237,237,225,23
     *8,228,172,160,229,238,244,229,242,160,167,191,167,160,230,239,242,
     *160,232,229,236,240,160,219,170,233,171,221,191,160,0/
      DATA AAALG0/213,238,235,238,239,247,238,160,227,239,237,237,225,23
     *8,228,172,160,229,238,244,229,242,160,167,191,167,160,230,239,242,
     *160,232,229,236,240,160,219,170,233,164,221,191,160,0/
      DATA AAALK0/170,243,170,238,0/
      IFD=FDIN
      OFD=FDOUT
      IF((ISATTY(OFD).NE.0))GOTO 12233
        CALL FCOPY(IFD,OFD)
        PAGE=-2
        RETURN
12233 CALL CTOC(PROMP0,PROMPT,102)
      CALL CTOC(EPROM0,EPRON0,102)
      IF((.NOT.MISSIN(OPTIO0)))GOTO 12234
        PAUSE=.TRUE.
        VTHOUT=.FALSE.
        GOTO 12235
12234   PAUSE=AND(OPTIO0,1).EQ.0
        VTHOUT=AND(OPTIO0,2).NE.0
12235 CALL BREAK$(1)
      DO 12236 I=1,4
        LABEL(I)=RTLAB0(I)
12236 CONTINUE
12237 CALL MKLB$F($1,RTLAB0)
      CALL MKON$F('QUIT$',5,PG$BRK)
      IF((.NOT.VTHOUT))GOTO 12238
        VTHOUT=VTINIT(TERM).EQ.-2
        IF((.NOT.VTHOUT))GOTO 12239
          CALL VTINFO(1,VTHRC)
          LINES=VTHRC(1)-1
          COLUM0=VTHRC(2)
          CALL VTUPD(1)
12239 CONTINUE
12238 IF(VTHOUT)GOTO 12240
        LINES=MIN0(MAX0(LINES0,1),64)
        COLUM0=80
12240 PG=0
      LAST=10000-1
      SIZE=0
      INDEX=0
      FIRST=1
      PAGES(1)=INTL(0)
      DO 12241 I=2,10000
        PAGES(I)=INTL(-1)
12241 CONTINUE
12242 INPUT(1)=0
      LINE(1)=0
      ERROR=.FALSE.
      AAAJX0=1
      AAAJY0=1
      GOTO 12229
12243 NOREAD=.TRUE.
      NOPAT=.TRUE.
      CALL BREAK$(0)
12244   IF((.NOT.ERROR))GOTO 12245
          ERROR=.FALSE.
          CLEAR=0
          IF((PG.EQ.LAST))GOTO 12246
            IF((.NOT.VTHOUT))GOTO 12247
              START=1+VTPRT(VTHRC(1),1,MESSA0,PG)
              BEGIN=START+VTPRT(VTHRC(1),START,AAAKE0,INPUT)+1
              GOTO 12252
12247         CALL PRINT(1,MESSA0,PG)
12248       GOTO 12252
12246       IF((.NOT.VTHOUT))GOTO 12250
              START=1+VTPRT(VTHRC(1),1,EMESS0,PG)
              BEGIN=START+VTPRT(VTHRC(1),START,AAAKF0,INPUT)+1
              GOTO 12251
12250         CALL PRINT(1,EMESS0,PG)
12251     CONTINUE
12249     GOTO 12252
12245     CLEAR=1
          IF((.NOT.NOREAD))GOTO 12253
            NOREAD=.FALSE.
            GOTO 12254
12253       AAAJX0=PG+1
            AAAJY0=2
            GOTO 12229
12255     CONTINUE
12254     AAAJZ0=1
          GOTO 12230
12256     IF((PG.NE.LAST))GOTO 12257
            IF((INDEX.EQ.0))GOTO 12259
            IF((IFD.NE.FDIN))GOTO 12258
            IF(PAUSE)GOTO 12258
            GOTO 12259
12259         IF((IFD.EQ.FDIN))GOTO 12261
                CALL CLOSE(IFD)
12261         AAAKC0=-2
              AAAKD0=1
              GOTO 12232
12262       CONTINUE
12258       IF((.NOT.VTHOUT))GOTO 12263
              START=1+VTPRT(VTHRC(1),1,EPRON0,PG)
              BEGIN=START
              GOTO 12265
12263         CALL PRINT(1,EPRON0,PG)
12264       GOTO 12265
12257       IF((.NOT.VTHOUT))GOTO 12266
              START=1+VTPRT(VTHRC(1),1,PROMPT,PG)
              BEGIN=START
              GOTO 12267
12266         CALL PRINT(1,PROMPT,PG)
12267     CONTINUE
12265   CONTINUE
12252   INPUT(1)=0
        IF((.NOT.VTHOUT))GOTO 12268
          CALL VTENB(VTHRC(1),START,VTHRC(2)-START+1)
          CALL VTREAD(VTHRC(1),BEGIN,CLEAR)
          CALL VTENB(VTHRC(1),START,0)
          SIZE=VTGETL(INPUT,VTHRC(1),START,VTHRC(2)-START+1)
          CALL VTCLR(VTHRC(1),1,VTHRC(1),VTHRC(2))
          CALL VTUPD(0)
          GOTO 12269
12268     SIZE=GETLIN(INPUT,1)
          IF((SIZE.NE.-1))GOTO 12270
            CALL PUTCH(138,1)
            IF((IFD.EQ.FDIN))GOTO 12271
              CALL CLOSE(IFD)
12271       AAAKC0=-1
            AAAKD0=2
            GOTO 12232
12272     CONTINUE
12270     IF((INPUT(SIZE).NE.138))GOTO 12273
            INPUT(SIZE)=0
12273   CONTINUE
12269   CALL STRIM(INPUT)
        I=1
12274   IF((INPUT(I).NE.160))GOTO 12275
          I=I+(1)
        GOTO 12274
12275   AAAKG0=INPUT(I)
        GOTO 12276
12277     I=I+(1)
          J=MIN0(MAX0(CTOI(INPUT,I),1),10000-PG-1)
          K=1
          GOTO 12280
12278     K=K+(1)
12280     IF((K.GE.J))GOTO 12279
          IF((PG.EQ.LAST))GOTO 12279
            AAAJX0=PG+1
            AAAJY0=3
            GOTO 12229
12281       IF((PG.EQ.LAST))GOTO 12278
              AAAJZ0=2
              GOTO 12230
12283         IF((.NOT.VTHOUT))GOTO 12284
                CALL VTUPD(0)
12284       CONTINUE
12282     GOTO 12278
12279     IF((PG.NE.LAST))GOTO 12286
            NOREAD=.TRUE.
12285   GOTO 12286
12287     I=I+(1)
12288     IF((INPUT(I).NE.160))GOTO 12289
            I=I+(1)
          GOTO 12288
12289     IF((INPUT(I).EQ.0))GOTO 12290
            TIFD=OPEN(INPUT(I),1)
            IF((TIFD.EQ.-3))GOTO 12291
              IF((IFD.EQ.FDIN))GOTO 12292
                CALL CLOSE(IFD)
12292         IFD=TIFD
              J=1
              GOTO 12295
12293         I=I+(1)
12295         IF((INPUT(I).EQ.0))GOTO 12294
                IF((J.GE.102-1))GOTO 12293
                  LINE(J)=INPUT(I)
                  IF((LINE(J).NE.170))GOTO 12297
                    LINE(J+1)=170
                    J=J+(1)
12297             J=J+(1)
12296         GOTO 12293
12294         LINE(J)=0
              CALL ENCODE(PROMPT,102,AAAKH0,LINE)
              CALL ENCODE(EPRON0,102,AAAKI0,LINE)
              GOTO 12299
12291         CALL ENCODE(MESSA0,102,AAAKJ0,INPUT(I))
              CALL ENCODE(EMESS0,102,AAAKK0,INPUT(I))
              ERROR=.TRUE.
12298       GOTO 12299
12290       IF((IFD.EQ.FDIN))GOTO 12300
              CALL CLOSE(IFD)
12300       IFD=FDIN
            CALL CTOC(PROMP0,PROMPT,102)
            CALL CTOC(EPROM0,EPRON0,102)
12299     IF(ERROR)GOTO 12286
            LAST=10000-1
            DO 12302 J=2,10000
              PAGES(J)=INTL(-1)
12302       CONTINUE
12303       AAAJX0=1
            AAAJY0=4
            GOTO 12229
12304       NOREAD=.TRUE.
12301   GOTO 12286
12305     IF((.NOT.VTHOUT))GOTO 12306
            CALL VTCLR(1,1,LINES,VTHRC(2))
12306     I=1
          GOTO 12309
12307     I=I+(1)
12309     IF((I.GT.HELPI0(1)))GOTO 12308
            IF((.NOT.VTHOUT))GOTO 12310
              CALL VTPUTL(HELPS0(HELPI0(I+1)),I,1)
              GOTO 12307
12310         CALL PRINT(OFD,AAAKL0,HELPS0(HELPI0(I+1)))
12311     GOTO 12307
12308     INPUT(1)=0
          CALL CTOC(PROMPT,MESSA0,102)
          CALL CTOC(EPRON0,EMESS0,102)
          ERROR=.TRUE.
        GOTO 12286
12312     I=I+(1)
          FIRST=MAX0(CTOI(INPUT,I),1)
          AAAJX0=PG
          AAAJY0=5
          GOTO 12229
12313     NOREAD=.TRUE.
        GOTO 12286
12314     IF((IFD.EQ.FDIN))GOTO 12315
            CALL CLOSE(IFD)
12315     AAAKC0=-2
          AAAKD0=3
          GOTO 12232
12317     AAAJX0=PG-1
          AAAJY0=6
          GOTO 12229
12318     NOREAD=.TRUE.
        GOTO 12286
12319     IF(VTHOUT)GOTO 12320
            I=I+(1)
            LINES=MIN0(MAX0(CTOI(INPUT,I),1),64)
            DO 12321 J=2,10000
              PAGES(J)=INTL(-1)
12321       CONTINUE
12322       AAAJX0=1
            AAAJY0=7
            GOTO 12229
12323     CONTINUE
12320     NOREAD=.TRUE.
        GOTO 12286
12324     I=I+(1)
12325     IF((INPUT(I).NE.160))GOTO 12326
            I=I+(1)
          GOTO 12325
12326     IF((INPUT(I).EQ.0))GOTO 12327
            TOFD=OPEN(INPUT(I),1)
            IF((TOFD.NE.-3))GOTO 12328
              TOFD=OPEN(INPUT(I),2)
              IF((TOFD.EQ.-3))GOTO 12329
                CALL SEEKF(PAGES(1),IFD)
                CALL FCOPY(IFD,TOFD)
                CALL SEEKF(PAGES(PG+1),IFD)
                CALL CLOSE(TOFD)
                INPUT(1)=0
                CALL CTOC(PROMPT,MESSA0,102)
                CALL CTOC(EPRON0,EMESS0,102)
                ERROR=.TRUE.
                GOTO 12286
12329           CALL ENCODE(MESSA0,102,AAAKM0,INPUT(I))
                CALL ENCODE(EMESS0,102,AAAKN0,INPUT(I))
                ERROR=.TRUE.
12330         GOTO 12286
12328         CALL CLOSE(TOFD)
              CALL CTOC(AAAKO0,MESSA0,102)
              CALL CTOC(AAAKP0,EMESS0,102)
              ERROR=.TRUE.
12331       GOTO 12286
12327       CALL CTOC(AAAKQ0,MESSA0,102)
            CALL CTOC(AAAKR0,EMESS0,102)
            ERROR=.TRUE.
12332   GOTO 12286
12333     IF((IFD.EQ.FDIN))GOTO 12334
            CALL CLOSE(IFD)
12334     AAAKC0=-1
          AAAKD0=4
          GOTO 12232
12336     IF((PG.NE.LAST))GOTO 12286
            IF((IFD.EQ.FDIN))GOTO 12338
              CALL CLOSE(IFD)
12338       AAAKC0=-2
            AAAKD0=5
            GOTO 12232
12339     CONTINUE
12337   GOTO 12286
12340     NOREAD=.TRUE.
        GOTO 12286
12341     AAAJX0=10000-1
          AAAJY0=8
          GOTO 12229
12342     NOREAD=.TRUE.
        GOTO 12286
12343     AAAJX0=MIN0(MAX0(CTOI(INPUT,I),1),10000-1)
          AAAJY0=9
          GOTO 12229
12344     NOREAD=.TRUE.
        GOTO 12286
12345     I=I+(1)
          AAAJX0=PG+MIN0(MAX0(CTOI(INPUT,I),1),10000-PG-1)
          AAAJY0=10
          GOTO 12229
12346     NOREAD=.TRUE.
        GOTO 12286
12347     I=I+(1)
          AAAJX0=PG-MAX0(CTOI(INPUT,I),1)
          AAAJY0=11
          GOTO 12229
12348     NOREAD=.TRUE.
        GOTO 12286
12349     IF((.NOT.NOPAT))GOTO 12350
          IF((INPUT(I+1).EQ.175))GOTO 12351
          IF((INPUT(I+1).EQ.0))GOTO 12351
          GOTO 12350
12351       CALL CTOC(AAAKS0,MESSA0,102)
            CALL CTOC(AAAKT0,EMESS0,102)
            ERROR=.TRUE.
            GOTO 12244
12350     IF((INPUT(I+1).NE.0))GOTO 12353
            INPUT(I+1)=INPUT(I)
            INPUT(I+2)=0
            GOTO 12354
12353       IF((INPUT(I+1).EQ.175))GOTO 12355
              MISSI0=1
              L=I+1
              GOTO 12358
12356         L=L+(1)
12358         IF((INPUT(L).EQ.0))GOTO 12357
                IF((INPUT(L).NE.192))GOTO 12359
                IF((INPUT(L+1).NE.INPUT(I)))GOTO 12359
                  L=L+(1)
                  GOTO 12356
12359             IF((INPUT(L).NE.INPUT(I)))GOTO 12361
                    MISSI0=0
                    GOTO 12357
12361           CONTINUE
12360         GOTO 12356
12357         IF((MISSI0.NE.1))GOTO 12362
                GOTO 12365
12363           L=L+(1)
12365           IF((INPUT(L).EQ.0))GOTO 12364
                GOTO 12363
12364           INPUT(L)=INPUT(I)
                INPUT(L+1)=0
12362         IF((MAKPAT(INPUT,I+1,INPUT(I),TEMPAT).NE.-3))GOTO 12366
                CALL CTOC(AAAKU0,MESSA0,102)
                CALL CTOC(AAAKV0,EMESS0,102)
                ERROR=.TRUE.
                GOTO 12244
12366           DO 12367 J=1,256
                  PATTE0(J)=TEMPAT(J)
12367           CONTINUE
12368           NOPAT=.FALSE.
12355     CONTINUE
12354     AAAKA0=0
          AAAKB0=1
          GOTO 12231
12369     IF(FOUND)GOTO 12370
            CALL CTOC(AAAKW0,MESSA0,102)
            CALL CTOC(AAAKX0,EMESS0,102)
            ERROR=.TRUE.
            GOTO 12286
12370       NOREAD=.TRUE.
12371   GOTO 12286
12372     IF((.NOT.NOPAT))GOTO 12373
          IF((INPUT(I+1).EQ.220))GOTO 12374
          IF((INPUT(I+1).EQ.0))GOTO 12374
          GOTO 12373
12374       CALL CTOC(AAAKY0,MESSA0,102)
            CALL CTOC(AAAKZ0,EMESS0,102)
            ERROR=.TRUE.
            GOTO 12244
12373     IF((INPUT(I+1).NE.0))GOTO 12375
            INPUT(I+1)=INPUT(I)
            INPUT(I+2)=0
            GOTO 12376
12375       IF((INPUT(I+1).EQ.220))GOTO 12377
              MISSI0=1
              L=I+1
              GOTO 12380
12378         L=L+(1)
12380         IF((INPUT(L).EQ.0))GOTO 12379
                IF((INPUT(L).NE.192))GOTO 12381
                IF((INPUT(L+1).NE.INPUT(I)))GOTO 12381
                  L=L+(1)
                  GOTO 12378
12381             IF((INPUT(L).NE.INPUT(I)))GOTO 12383
                    MISSI0=0
                    GOTO 12379
12383           CONTINUE
12382         GOTO 12378
12379         IF((MISSI0.NE.1))GOTO 12384
                GOTO 12387
12385           L=L+(1)
12387           IF((INPUT(L).EQ.0))GOTO 12386
                GOTO 12385
12386           INPUT(L)=INPUT(I)
                INPUT(L+1)=0
12384         IF((MAKPAT(INPUT,I+1,INPUT(I),TEMPAT).NE.-3))GOTO 12388
                CALL CTOC(AAALA0,MESSA0,102)
                CALL CTOC(AAALB0,EMESS0,102)
                ERROR=.TRUE.
                GOTO 12244
12388           DO 12389 J=1,256
                  PATTE0(J)=TEMPAT(J)
12389           CONTINUE
12390           NOPAT=.FALSE.
12377     CONTINUE
12376     AAAKA0=1
          AAAKB0=2
          GOTO 12231
12391     IF(FOUND)GOTO 12392
            CALL CTOC(AAALC0,MESSA0,102)
            CALL CTOC(AAALD0,EMESS0,102)
            ERROR=.TRUE.
            GOTO 12286
12392       NOREAD=.TRUE.
12393   GOTO 12286
12394     CONTINUE
1         IF((INDEX.GE.LINES))GOTO 12395
            AAAJX0=PG
            AAAJY0=12
            GOTO 12229
12396     CONTINUE
12395     CALL CTOC(PROMPT,MESSA0,102)
          CALL CTOC(EPRON0,EMESS0,102)
          ERROR=.TRUE.
        GOTO 12286
12276   IF(AAAKG0.EQ.0)GOTO 12336
        IF(AAAKG0.EQ.141)GOTO 12394
        AAALE0=AAAKG0-163
        GOTO(12341,12397,12397,12397,12397,12397,12397,12345,12397,12347
     *,12340,12349,12343,12343,12343,12343,12343,12343,12343,12343,12343
     *,12343,12336,12397,12397,12397,12397,12305,12397,12397,12397,12397
     *,12277,12287,12397,12397,12305,12397,12397,12397,12397,12312,12314
     *,12397,12317,12314,12397,12319,12397,12397,12397,12324,12333,12336
     *,12397,12397,12372,12397,12317,12397,12397,12397,12397,12397,12277
     *,12287,12397,12397,12305,12397,12397,12397,12397,12312,12314,12397
     *,12317,12314,12397,12319,12397,12397,12397,12324,12333,12336),AAAL
     *E0
12397     CALL CTOC(AAALF0,MESSA0,102)
          CALL CTOC(AAALG0,EMESS0,102)
          ERROR=.TRUE.
12286 CONTINUE
12352 GOTO 12244
12229 AAAJX0=MIN0(MAX0(AAAJX0,1),10000-1)
      IF((AAAJX0.EQ.PG+1))GOTO 12398
        IF((PAGES(AAAJX0).NE.INTL(-1)))GOTO 12399
          PG=PG-(1)
          GOTO 12402
12400     PG=PG+(1)
12402     IF((PAGES(PG+2).EQ.INTL(-1)))GOTO 12403
          GOTO 12400
12399     PG=AAAJX0-1
12403   CALL SEEKF(PAGES(PG+1),IFD)
        LINE(1)=0
        SIZE=0
12398 CONTINUE
12404 IF((PG.GE.AAAJX0))GOTO 12441
        INDEX=0
        IF((LINE(1).EQ.0))GOTO 12406
          SIZE=SCOPY(LINE,1,SCREEN(1,INDEX+1),1)
          LINE(1)=0
          IF((SCREEN(SIZE,INDEX+1).NE.138))GOTO 12407
            SCREEN(SIZE,INDEX+1)=0
12407     INDEX=INDEX+(1)
12406   CONTINUE
12408   IF((INDEX.GE.LINES))GOTO 12409
        IF((SIZE.EQ.-1))GOTO 12409
          AAALI0=.TRUE.
          AAALH0=FIRST
          GOTO 12412
12410     AAALH0=AAALH0-(SIZE)
12412     IF((AAALH0.LE.1))GOTO 12411
            SIZE=GETLIN(TEMP,IFD,MIN0(AAALH0,86))
            IF((SIZE.EQ.-1))GOTO 12414
            IF((TEMP(SIZE).EQ.138))GOTO 12414
            GOTO 12410
12414         AAALI0=.FALSE.
              GOTO 12411
12411     IF((.NOT.AAALI0))GOTO 12415
            SIZE=GETLIN(SCREEN(1,INDEX+1),IFD,COLUM0)
            GOTO 12416
12415       IF((SIZE.EQ.-1))GOTO 12417
              SCREEN(1,INDEX+1)=138
              SCREEN(2,INDEX+1)=0
              SIZE=1
              GOTO 12418
12417         SCREEN(1,INDEX+1)=0
12418     CONTINUE
12416     IF((SIZE.EQ.-1))GOTO 12408
            IF((SCREEN(SIZE,INDEX+1).EQ.138))GOTO 12420
12421           AAALH0=GETLIN(TEMP,IFD,86)
              IF((AAALH0.EQ.-1))GOTO 12422
              IF((TEMP(AAALH0).EQ.138))GOTO 12422
              GOTO 12421
12422         CONTINUE
              GOTO 12423
12420         SCREEN(SIZE,INDEX+1)=0
12423       INDEX=INDEX+(1)
12419   GOTO 12408
12409   PG=PG+(1)
        IF((SIZE.EQ.-1))GOTO 12424
          IF((PG+1.GE.10000))GOTO 12425
          IF((PAGES(PG+1).NE.INTL(-1)))GOTO 12425
            PAGES(PG+1)=MARKF(IFD)
12425     AAALI0=.TRUE.
          AAALH0=FIRST
          GOTO 12428
12426     AAALH0=AAALH0-(SIZE)
12428     IF((AAALH0.LE.1))GOTO 12427
            SIZE=GETLIN(TEMP,IFD,MIN0(AAALH0,86))
            IF((SIZE.EQ.-1))GOTO 12430
            IF((TEMP(SIZE).EQ.138))GOTO 12430
            GOTO 12426
12430         AAALI0=.FALSE.
              GOTO 12427
12427     IF((.NOT.AAALI0))GOTO 12431
            SIZE=GETLIN(LINE,IFD,COLUM0)
            GOTO 12432
12431       IF((SIZE.EQ.-1))GOTO 12433
              LINE(1)=138
              LINE(2)=0
              SIZE=1
              GOTO 12434
12433         LINE(1)=0
12434     CONTINUE
12432     IF((SIZE.EQ.-1))GOTO 12435
            IF((LINE(SIZE).EQ.138))GOTO 12439
12437           AAALH0=GETLIN(TEMP,IFD,86)
              IF((AAALH0.EQ.-1))GOTO 12438
              IF((TEMP(AAALH0).EQ.138))GOTO 12438
              GOTO 12437
12438         CONTINUE
12436       GOTO 12439
12435       PAGES(PG+1)=INTL(-1)
12439   CONTINUE
12424   IF((SIZE.NE.-1))GOTO 12404
          LAST=PG
          GOTO 12441
12230 IF((.NOT.VTHOUT))GOTO 12442
        CALL VTCLR(1,1,LINES,VTHRC(2))
12442 AAALJ0=1
      GOTO 12445
12443 AAALJ0=AAALJ0+(1)
12445 IF((AAALJ0.GT.INDEX))GOTO 12448
        IF((.NOT.VTHOUT))GOTO 12446
          CALL VTPUTL(SCREEN(1,AAALJ0),AAALJ0,1)
          GOTO 12443
12446     CALL PRINT(OFD,AAALK0,SCREEN(1,AAALJ0))
12447 GOTO 12443
12231 AAALL0=PG
      FOUND=.FALSE.
12449   IF((AAAKA0.NE.1))GOTO 12450
          IF((PG.NE.1))GOTO 12451
            AAAJX0=10000-1
            AAAJY0=13
            GOTO 12229
12451       AAAJX0=PG-1
            AAAJY0=14
            GOTO 12229
12454     CONTINUE
12453     GOTO 12455
12450     AAAJX0=PG+1
          AAAJY0=15
          GOTO 12229
12456     IF((PG.NE.LAST))GOTO 12457
          IF((INDEX.NE.0))GOTO 12457
            AAAJX0=1
            AAAJY0=16
            GOTO 12229
12458     CONTINUE
12457   CONTINUE
12455   AAALM0=1
        GOTO 12461
12459   AAALM0=AAALM0+(1)
12461   IF((AAALM0.GT.INDEX))GOTO 12460
        IF(FOUND)GOTO 12460
          IF((MATCH(SCREEN(1,AAALM0),PATTE0).NE.1))GOTO 12459
            FOUND=.TRUE.
12462   GOTO 12459
12460 CONTINUE
      IF(FOUND)GOTO 12463
      IF((PG.EQ.AAALL0))GOTO 12463
      GOTO 12449
12463 CONTINUE
      GOTO 12464
12232 IF((.NOT.VTHOUT))GOTO 12465
        CALL VTUPD(0)
        CALL VTSTOP
12465 DO 12466 I=1,4
        RTLAB0(I)=LABEL(I)
12466 CONTINUE
12467 PAGE=AAAKC0
      RETURN
12441 GOTO(12243,12255,12281,12304,12313,12318,12323,12342,12344,12346, 
     *    12348,12396,12455,12454,12456,12458),AAAJY0
      GOTO 12441
12464 GOTO(12369,12391),AAAKB0
      GOTO 12464
12468 GOTO(12262,12272,12286,12286,12339),AAAKD0
      GOTO 12468
12448 GOTO(12256,12283),AAAJZ0
      GOTO 12448
      END
      SUBROUTINE PG$BRK(CP)
      INTEGER * 4 CP
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      CALL PL1$NL(RTLAB0)
      RETURN
      END
      INTEGER FUNCTION PARSA$(STR)
      INTEGER STR(1)
      INTEGER ACLVE0,ACLCO0,ACLTY0
      INTEGER ACLPA0(41,32),ACLNA0(180)
      INTEGER PRIMO0(3)
      INTEGER ACLMO0(32)
      INTEGER ACLUS0(33,32)
      COMMON /ACL$00/ACLTY0,ACLNA0,ACLMO0,ACLUS0,PRIMO0
      INTEGER SP,I,J,DEFVAL
      INTEGER CPROT
      INTEGER LOOKAC,EQUAL
      INTEGER TEXT(33)
      INTEGER CNAME(33),COP,CFLAG(33)
      INTEGER AAALN0
      INTEGER AAALO0
      INTEGER AAALP0(6)
      INTEGER AAALQ0(1)
      INTEGER AAALR0(6)
      INTEGER AAALS0(6)
      INTEGER AAALT0
      INTEGER AAALU0(7)
      INTEGER AAALV0(6)
      INTEGER AAALW0(5)
      INTEGER AAALX0(5)
      INTEGER AAALY0(6)
      INTEGER AAALZ0(9)
      INTEGER AAAMA0(5)
      INTEGER AAAMB0
      INTEGER AAAMC0
      EQUIVALENCE (PRIMO0(1),ACLVE0)
      EQUIVALENCE (PRIMO0(2),ACLCO0)
      EQUIVALENCE (PRIMO0(3),ACLPA0)
      DATA AAALP0/164,242,229,243,244,0/
      DATA AAALQ0/0/
      DATA AAALR0/164,242,229,243,244,0/
      DATA AAALS0/164,242,229,243,244,0/
      DATA AAALU0/164,239,247,238,229,242,0/
      DATA AAALV0/164,242,229,225,228,0/
      DATA AAALW0/164,245,243,229,0/
      DATA AAALX0/164,225,236,236,0/
      DATA AAALY0/164,238,239,238,229,0/
      DATA AAALZ0/164,228,229,230,225,245,236,244,0/
      DATA AAAMA0/164,228,229,230,0/
      I=LOOKAC(AAALP0)
      IF((I.EQ.-3))GOTO 12471
        DEFVAL=ACLMO0(I)
        GOTO 12472
12471   DEFVAL=0
12472 CALL MAPSTR(STR,1)
      SP=1
12473 IF((STR(SP).NE.160))GOTO 12474
        SP=SP+(1)
      GOTO 12473
12474 CONTINUE
12475 IF((STR(SP).EQ.0))GOTO 12476
        AAALN0=1
        GOTO 12469
12477   IF((TEXT(1).NE.0))GOTO 12478
          PARSA$=-3
          RETURN
12478   CALL SCOPY(TEXT,1,CNAME,1)
12479   IF((STR(SP).NE.160))GOTO 12480
          SP=SP+(1)
        GOTO 12479
12480   IF((STR(SP).EQ.186))GOTO 12482
        IF((STR(SP).EQ.171))GOTO 12482
        IF((STR(SP).EQ.173))GOTO 12482
        IF((STR(SP).EQ.189))GOTO 12482
        GOTO 12481
12482     COP=STR(SP)
          SP=SP+(1)
          IF((STR(SP).NE.189))GOTO 12484
            SP=SP+(1)
12483     GOTO 12484
12481     PARSA$=-3
          RETURN
12484   CONTINUE
12485   IF((STR(SP).NE.160))GOTO 12486
          SP=SP+(1)
        GOTO 12485
12486   IF((COP.NE.186))GOTO 12487
          AAALN0=2
          GOTO 12469
12488     I=LOOKAC(TEXT)
          IF((I.NE.-3))GOTO 12489
            PARSA$=-3
            RETURN
12489     CPROT=ACLMO0(I)
          GOTO 12490
12487     AAALO0=1
          GOTO 12470
12491   CONTINUE
12490   I=LOOKAC(CNAME)
        IF((I.NE.-3))GOTO 12492
          I=LOOKAC(AAALQ0)
          IF((I.NE.-3))GOTO 12493
            ACLCO0=ACLCO0+(1)
            IF((ACLCO0.LE.32))GOTO 12494
              PARSA$=-3
              RETURN
12494       I=ACLCO0
12493     CALL SCOPY(CNAME,1,ACLUS0(1,I),1)
          ACLMO0(I)=DEFVAL
12492   IF((COP.EQ.189))GOTO 12496
        IF((COP.EQ.186))GOTO 12496
        GOTO 12495
12496     ACLMO0(I)=CPROT
          GOTO 12497
12495     IF((COP.NE.171))GOTO 12498
            ACLMO0(I)=OR(ACLMO0(I),CPROT)
            GOTO 12499
12498       IF((COP.NE.173))GOTO 12500
              ACLMO0(I)=AND(ACLMO0(I),NOT(CPROT))
12500     CONTINUE
12499   CONTINUE
12497   CONTINUE
12501   IF((STR(SP).NE.160))GOTO 12475
          SP=SP+(1)
        GOTO 12501
12476 I=LOOKAC(AAALR0)
      IF((I.NE.-3))GOTO 12503
        DEFVAL=0
        GOTO 12504
12503   DEFVAL=ACLMO0(I)
12504 I=1
      GOTO 12507
12505 I=I+(1)
12507 IF((I.GT.ACLCO0))GOTO 12506
        IF((ACLMO0(I).NE.DEFVAL))GOTO 12505
          ACLUS0(1,I)=0
12508 GOTO 12505
12506 I=1
      J=1
      GOTO 12511
12509 I=I+(1)
12511 IF((I.GT.ACLCO0))GOTO 12510
        IF((ACLUS0(1,I).EQ.0))GOTO 12509
          IF((I.EQ.J))GOTO 12513
            CALL SCOPY(ACLUS0(1,I),1,ACLUS0(1,J),1)
            ACLMO0(J)=ACLMO0(I)
12513     J=J+(1)
12512 GOTO 12509
12510 ACLCO0=J-1
      ACLCO0=ACLCO0+(1)
      IF((ACLCO0.LE.32))GOTO 12514
        PARSA$=-3
        RETURN
12514 CALL SCOPY(AAALS0,1,ACLUS0(1,ACLCO0),1)
      ACLMO0(ACLCO0)=DEFVAL
      PARSA$=-2
      RETURN
12469 TEXT(1)=0
      IF((193.GT.STR(SP)))GOTO 12517
      IF((STR(SP).GT.218))GOTO 12517
      GOTO 12516
12517 IF((225.GT.STR(SP)))GOTO 12518
      IF((STR(SP).GT.250))GOTO 12518
      GOTO 12516
12518 IF((STR(SP).EQ.174))GOTO 12516
      IF((STR(SP).EQ.164))GOTO 12516
      GOTO 12526
12516   TEXT(1)=STR(SP)
        SP=SP+(1)
        AAALT0=2
        GOTO 12521
12519   SP=SP+(1)
        AAALT0=AAALT0+(1)
12521   IF((AAALT0.GT.33))GOTO 12520
        IF((193.GT.STR(SP)))GOTO 12523
        IF((STR(SP).GT.218))GOTO 12523
        GOTO 12522
12523   IF((225.GT.STR(SP)))GOTO 12524
        IF((STR(SP).GT.250))GOTO 12524
        GOTO 12522
12524   IF((176.GT.STR(SP)))GOTO 12525
        IF((STR(SP).GT.185))GOTO 12525
        GOTO 12522
12525   IF((STR(SP).EQ.164))GOTO 12522
        IF((STR(SP).EQ.223))GOTO 12522
        IF((STR(SP).EQ.174))GOTO 12522
        GOTO 12520
12522     TEXT(AAALT0)=STR(SP)
        GOTO 12519
12520   TEXT(AAALT0)=0
12515 GOTO 12526
12470 CPROT=0
      IF((STR(SP).NE.164))GOTO 12527
        AAALN0=3
        GOTO 12469
12530     CPROT=64+32+2+4+8+16
        GOTO 12491
12532     CPROT=2+8+4
        GOTO 12491
12533     CPROT=32+2+4+8
        GOTO 12491
12534     CPROT=127
        GOTO 12491
12535     CPROT=0
        GOTO 12491
12536     CPROT=DEFVAL
        GOTO 12491
12537     CPROT=DEFVAL
        GOTO 12491
12529   IF((EQUAL(TEXT,AAALU0).EQ.1))GOTO 12530
        IF((EQUAL(TEXT,AAALV0).EQ.1))GOTO 12532
        IF((EQUAL(TEXT,AAALW0).EQ.1))GOTO 12533
        IF((EQUAL(TEXT,AAALX0).EQ.1))GOTO 12534
        IF((EQUAL(TEXT,AAALY0).EQ.1))GOTO 12535
        IF((EQUAL(TEXT,AAALZ0).EQ.1))GOTO 12536
        IF((EQUAL(TEXT,AAAMA0).EQ.1))GOTO 12537
          PARSA$=-3
          RETURN
12527   CONTINUE
12539     AAAMB0=STR(SP)
          GOTO 12540
12541       CPROT=OR(CPROT,32)
          GOTO 12542
12543       CPROT=OR(CPROT,1)
          GOTO 12542
12544       CPROT=OR(CPROT,2)
          GOTO 12542
12545       CPROT=OR(CPROT,4)
          GOTO 12542
12546       CPROT=OR(CPROT,8)
          GOTO 12542
12547       CPROT=OR(CPROT,16)
          GOTO 12542
12548       CPROT=OR(CPROT,64)
          GOTO 12542
12549       CPROT=OR(CPROT,DEFVAL)
          GOTO 12542
12550       CPROT=OR(CPROT,127)
          GOTO 12542
12540     AAAMC0=AAAMB0-169
          GOTO(12550,12553,12553,12553,12553,12553,12542),AAAMC0
          IF(AAAMB0.EQ.191)GOTO 12549
          AAAMC0=AAAMB0-224
          GOTO(12541,12553,12553,12548,12553,12553,12553,12553,12553,   
     *  12553,12553,12544,12553,12553,12553,12543,12553,12546,12553,    
     * 12553,12545,12553,12547),AAAMC0
12552       GOTO 12553
12542     SP=SP+(1)
        GOTO 12539
12553 CONTINUE
12538 GOTO 12491
12526 GOTO(12477,12488,12529),AAALN0
      GOTO 12526
      END
C ---- Long Name Map ----
C Fdflags                        fdfla0
C encodereal                     encom0
C Aclcount                       aclco0
C acl$00                         acl$00
C copyandconvert                 copya0
C readpage                       readp0
C Eofchar                        eofch0
C Inputstart                     input0
C encodevarying                  encoj0
C Escchar                        escch0
C Invertcase                     inver0
C temptree                       tempt0
C Tccoordchar                    tccoo0
C Tabs                           tabsa0
C Fdbufstart                     fdbug0
C displaybuffer                  dispm0
C BASICformat                    basic0
C default                        defaz0
C message                        messa0
C Rtchar                         rtcha0
C Prtdest                        prtde0
C Tcdelline                      tcdel0
C Colchgstop                     colci0
C Rowchgstart                    rowch0
C Maxcol                         maxco0
C writeable                      write0
C returnNO                       retur0
C Aclversion                     aclve0
C Echar                          echar0
C Tseos                          tseos0
C Tclinedelay                    tclin0
C Fnused                         fnuse0
C defaultdelim                   defaw0
C fortrash                       fortr0
C findpage                       findp0
C Termcount                      termd0
C Reservedio                     reser0
C Tsstate                        tssta0
C Tccursorright                  tccut0
C Tcabspos                       tcabs0
C Tcposdelay                     tcpos0
C Tchorlen                       tchos0
C helpindex                      helpi0
C direction                      direc0
C Reservedopen                   reses0
C Lsna                           lsnaa0
C Tcseqtype                      tcseq0
C Unprintablechar                unpri0
C Fdesc                          fdesc0
C infobuf                        infob0
C Temptop                        tempu0
C Cputype                        cputy0
C Prtform                        prtfo0
C Tsbf                           tsbfa0
C Curcol                         curco0
C Lastfn                         lastf0
C Insertmode                     inser0
C encodebool                     encof0
C encodeyesno                    encog0
C accessrightstring              acces0
C Fdbuf                          fdbuf0
C Argv                           argva0
C Lstop                          lstop0
C Tcceollen                      tccep0
C checkcode                      check0
C processnextarg                 proce0
C Tcshiftchar                    tcshk0
C Inputwait                      inpuv0
C Fdunit                         fduni0
C Termcp                         termc0
C Kchar                          kchar0
C Fdmem                          fdmem0
C Fddev                          fddev0
C Fdvcstat1                      fdvcs0
C decodetab                      decog0
C returnerror                    retut0
C Lastdef                        laste0
C Tcdelaytime                    tcdem0
C Fdvcstat2                      fdvct0
C decodepacked                   decod0
C zerostr                        zeros0
C doaccess                       doacc0
C Killresp                       killr0
C Tccleardelay                   tcclh0
C Padrow                         padro0
C Fntab                          fntab0
C Reservednewscr                 resev0
C Reservedcurscr                 resew0
C doentrd                        doent0
C symtabsize                     symta0
C Utempbuf                       utemq0
C Rtlabel                        rtlab0
C Lsho                           lshoa0
C Tcvertpos                      tcver0
C Tcwraparound                   tcwra0
C Tchomelen                      tchom0
C Cldataptr                      cldat0
C Tcceoslen                      tcceo0
C Fdbufend                       fdbui0
C decodestring                   decoe0
C decodeinteger                  decoj0
C typebits                       typeb0
C linesin                        lines0
C Tcspeed                        tcspe0
C Tcleftlen                      tclef0
C Pbbuf                          pbbuf0
C Fdopstat1                      fdops0
C position                       posit0
C emessage                       emess0
C Passwd                         passw0
C Newscr                         newsc0
C Curscr                         cursc0
C Duplex                         duple0
C Fdopstat2                      fdopt0
C nonowner                       nonow0
C Tccursorhome                   tccur0
C Fdopstat3                      fdopu0
C diskname                       diskn0
C Tspath                         tspat0
C convertnum                     conve0
C decodenewline                  decon0
C tagnest                        tagne0
C Tsat                           tsata0
C Tccursorleft                   tccus0
C Colchgstart                    colch0
C encodetab                      encoh0
C pathname                       pathn0
C promptin                       promp0
C Reservedshell                  reset0
C Inbuf                          inbuf0
C Nestingcount                   nesti0
C outfile                        outfi0
C encodepacked                   encod0
C retaclpath                     retac0
C separator                      separ0
C Reservedtscan                  reseu0
C Defbuf                         defbu0
C defaultbase                    defav0
C Uhashtb                        uhash0
C Fdbuflen                       fdbuh0
C decodeaddr                     decoh0
C savebplabel                    saveb0
C putname                        putna0
C Acluser                        aclus0
C Cmdstat                        cmdst0
C Tchorpos                       tchor0
C Tcinsline                      tcins0
C Msgowner                       msgow0
C tagstack                       tagst0
C Fdlastfd                       fdlas0
C Termattr                       terma0
C defaultwidth                   defau0
C errorinfield                   error0
C Mem                            memaa0
C encodestring                   encoe0
C encodeinteger                  encok0
C Primosacl                      primo0
C opendirectory                  opend0
C missingdelim                   missi0
C Tsgt                           tsgta0
C Tcshiftout                     tcshj0
C Inputstop                      inpuu0
C expformat                      expfo0
C fillfield                      fillf0
C Acltype                        aclty0
C Firstuse                       first0
C Tcshiftin                      tcshi0
C Displaytime                    displ0
C Fdcount                        fdcou0
C Tempbuf                        tempb0
C pattern                        patte0
C decodelongint                  decok0
C restoreBplabel                 resto0
C Termbuf                        termb0
C Lsref                          lsref0
C Tcabslen                       tcabt0
C Rowchgstop                     rowci0
C Maxrow                         maxro0
C Padcol                         padco0
C Lastcharscanned                lastd0
C encodenewline                  encoo0
C Msgrow                         msgro0
C Padlen                         padle0
C decodedouble                   decom0
C maxsize                        maxsi0
C protectbits                    prote0
C defaultkresp                   defay0
C columns                        colum0
C Stdporttbl                     stdpo0
C interpretformat                inter0
C toomanyargs                    tooma0
C Argc                           argca0
C Termtype                       termt0
C Tccleartoeol                   tcclf0
C letters                        lette0
C decodereal                     decol0
C pfilename                      pfile0
C entrdbuf                       entrd0
C Aclpairs                       aclpa0
C creturn                        cretu0
C Tccursordown                   tccuv0
C Currow                         curro0
C decodevarying                  decoi0
C encodeaddr                     encoi0
C readable                       reada0
C addentry                       adden0
C Nlchar                         nlcha0
C Isphantom                      ispha0
C Tsun                           tsuna0
C Tsps                           tspsa0
C Reservedvthmisc                resex0
C defaultfill                    defax0
C template                       templ0
C epromptin                      eprom0
C getprot                        getpr0
C Tcuplen                        tcupl0
C Lastchar                       lastc0
C decodefill                     decoo0
C returnERR                      retus0
C unsigned                       unsig0
C Utemptop                       utemp0
C Aclname                        aclna0
C Hashtb                         hasht0
C eprompt                        epron0
C Bplabel                        bplab0
C attachsw                       attac0
C Tspw                           tspwa0
C Tcclearscreen                  tccle0
C Tccoordtype                    tccop0
C Tcvertlen                      tcves0
C Fdbcount                       fdbco0
C encodelongint                  encol0
C getchar                        getch0
C doprotec                       dopro0
C Comunit                        comun0
C Tccleartoeos                   tcclg0
C Tccursorup                     tccuu0
C nodigits                       nodig0
C nodesize                       nodes0
C permissions                    permi0
C accesspairs                    accet0
C helpsource                     helps0
C Tcclrlen                       tcclr0
C decodebool                     decof0
C encodedouble                   encon0
C errorexit                      erros0
C unpackedn                      unpac0
C dirname                        dirna0
C makeandvalidatetree            makea0
C Aclmode                        aclmo0
C stdunit                        stdun0
C devname                        devna0
C Errcod                         errco0
C Lword                          lword0
C Pbptr                          pbptr0
C fulltree                       fullt0
C getname                        getna0
C special                        speci0
C options                        optio0
C displaypage                    dispn0
      INTEGER FUNCTION PARSCL(STR,BUF)
      INTEGER STR(1),BUF(200)
      INTEGER AP,BP,CP,SP,LC,I,L,K,AT,STATUS
      INTEGER ARGTY0(26)
      INTEGER GETARG,GCTOI,CTOC,STRBSR
      INTEGER ARG(128)
      INTEGER MAPDN
      INTEGER ATX(14)
      INTEGER ATT(79)
      INTEGER AAAAA0
      INTEGER AAAAB0
      INTEGER AAAAC0
      INTEGER AAAAD0(102)
      INTEGER AAAAE0,AAAAF0
      DATA ATT/2,230,0,2,230,236,225,231,0,7,233,231,238,0,7,233,231,238
     *,239,242,229,228,0,1,238,225,0,3,239,233,0,3,239,240,244,160,233,2
     *38,244,0,5,239,240,244,160,243,244,242,0,5,239,243,0,4,242,229,241
     *,160,233,238,244,0,6,242,229,241,160,243,244,242,0,4,242,233,0,6,2
     *42,243,0/
      DATA ATX/13,1,4,10,15,24,28,32,41,50,54,63,72,76/
      DO 10002 I=1,26
        ARGTY0(I)=1
10002 CONTINUE
10003 SP=1
      GOTO 10006
10004 SP=SP+(1)
10006 IF((STR(SP).EQ.0))GOTO 10005
        IF((193.GT.STR(SP)))GOTO 10009
        IF((STR(SP).GT.218))GOTO 10009
        GOTO 10008
10009   IF((225.GT.STR(SP)))GOTO 10004
        IF((STR(SP).GT.250))GOTO 10004
        GOTO 10008
10008     LC=MAPDN(STR(SP))-225+1
          AAAAA0=1
          GOTO 10000
10011     ARGTY0(LC)=AT
10007 GOTO 10004
10005 DO 10012 I=1,26
        BUF(I)=0
10012 CONTINUE
10013 DO 10014 I=27,52
        BUF(I)=0
10014 CONTINUE
10015 BP=54
      AP=1
      AAAAB0=1
      GOTO 10001
10016 CONTINUE
10017 IF((STATUS.EQ.-1))GOTO 10018
        L=MAPDN(ARG(CP))-225+1
        IF((L.LT.1))GOTO 10020
        IF((L.GT.26))GOTO 10020
        GOTO 10019
10020     PARSCL=-3
          RETURN
10019   BUF(L)=1
        AAAAC0=ARGTY0(L)
        GOTO 10021
10022     PARSCL=-3
          RETURN
10023     IF((CP.EQ.2))GOTO 10024
            PARSCL=-3
            RETURN
10024     AP=AP+(1)
          AAAAB0=2
          GOTO 10001
10027     IF((ARG(CP+1).NE.0))GOTO 10028
            CALL DELARG(AP)
            IF((GETARG(AP,ARG,128).EQ.-1))GOTO 10029
            IF((176.GT.ARG(1)))GOTO 10031
            IF((ARG(1).GT.185))GOTO 10031
            GOTO 10030
10031       IF((ARG(1).NE.173))GOTO 10029
            IF((176.GT.ARG(2)))GOTO 10029
            IF((ARG(2).GT.185))GOTO 10029
            GOTO 10030
10030         CP=1
              BUF(L+26)=GCTOI(ARG,CP,10)
              IF((ARG(CP).EQ.0))GOTO 10033
                PARSCL=-3
                RETURN
10033         BUF(L)=2
              CALL DELARG(AP)
              GOTO 10034
10029         IF((ARGTY0(L).NE.4))GOTO 10035
                PARSCL=-3
                RETURN
10035       CONTINUE
10034       AAAAB0=3
            GOTO 10001
10028       CP=CP+(1)
            K=CP
            BUF(L+26)=GCTOI(ARG,CP,10)
            IF((K.NE.CP))GOTO 10038
              IF((ARGTY0(L).NE.4))GOTO 10040
                PARSCL=-3
                RETURN
10038         BUF(L)=2
10040     CONTINUE
10037   GOTO 10026
10041     IF((ARG(CP+1).NE.0))GOTO 10042
            CALL DELARG(AP)
            IF((GETARG(AP,ARG,128).EQ.-1))GOTO 10043
            IF((ARG(1).EQ.173))GOTO 10043
              BUF(L+26)=BP
              BP=BP+(1+CTOC(ARG,BUF(BP),200-BP))
              CALL DELARG(AP)
              BUF(L)=2
              GOTO 10044
10043         IF((ARGTY0(L).NE.6))GOTO 10045
                PARSCL=-3
                RETURN
10045       CONTINUE
10044       AAAAB0=4
            GOTO 10001
10042       BUF(L+26)=BP
            BP=BP+(1+CTOC(ARG(CP+1),BUF(BP),200-BP))
            BUF(L)=2
            CALL DELARG(AP)
            AAAAB0=5
            GOTO 10001
10048     CONTINUE
10047   GOTO 10026
10049     CP=CP+(1)
        GOTO 10026
10021   GOTO(10022,10049,10027,10027,10041,10041,10023),AAAAC0
10026   IF((ARG(CP).NE.0))GOTO 10017
          CALL DELARG(AP)
          AAAAB0=6
          GOTO 10001
10051   CONTINUE
10050 GOTO 10017
10018 DO 10052 I=1,26
        IF((BUF(I).EQ.2))GOTO 10054
        IF((ARGTY0(I).EQ.5))GOTO 10055
        IF((ARGTY0(I).EQ.6))GOTO 10055
        GOTO 10054
10055     BUF(I+26)=BP
10054   CONTINUE
10052 CONTINUE
10053 BUF(BP)=0
      BP=BP+(1)
      BUF(53)=BP
      PARSCL=-2
      RETURN
10000 AT=2
10056 IF((STR(SP+1).EQ.188))GOTO 10057
      IF((193.GT.STR(SP+1)))GOTO 10058
      IF((STR(SP+1).GT.218))GOTO 10058
      GOTO 10057
10058 IF((225.GT.STR(SP+1)))GOTO 10059
      IF((STR(SP+1).GT.250))GOTO 10059
      GOTO 10057
10059 IF((STR(SP+1).EQ.0))GOTO 10057
        SP=SP+(1)
      GOTO 10056
10057 IF((STR(SP+1).NE.188))GOTO 10011
        AAAAE0=1
        SP=SP+(1)
10061   IF((STR(SP+1).EQ.190))GOTO 10062
        IF((STR(SP+1).EQ.0))GOTO 10062
          AAAAD0(AAAAE0)=STR(SP+1)
          SP=SP+(1)
          AAAAE0=AAAAE0+(1)
        GOTO 10061
10062   AAAAD0(AAAAE0)=0
        AAAAF0=STRBSR(ATX,ATT,1,AAAAD0)
        IF((AAAAF0.NE.-1))GOTO 10063
          CALL PUTLIN(AAAAD0,-15)
          CALL ERROR(': unrecognized argument type in parscl.')
10063   AT=ATT(ATX(AAAAF0))
10060 GOTO 10011
10001 STATUS=GETARG(AP,ARG,128)
10065 IF((STATUS.EQ.-1))GOTO 10066
      IF((ARG(1).NE.173))GOTO 10067
      IF((193.GT.ARG(2)))GOTO 10069
      IF((ARG(2).GT.218))GOTO 10069
      GOTO 10066
10069 IF((225.GT.ARG(2)))GOTO 10067
      IF((ARG(2).GT.250))GOTO 10067
      GOTO 10066
10067   AP=AP+(1)
        STATUS=GETARG(AP,ARG,128)
      GOTO 10065
10066 CP=2
      GOTO 10071
10071 GOTO(10016,10026,10026,10026,10048,10051),AAAAB0
      GOTO 10071
      END
      INTEGER FUNCTION PARSDT(STR,I,MONTH,DAY,YEAR)
      INTEGER STR(1)
      INTEGER I,MONTH,DAY,YEAR
      INTEGER J,DAYS(12)
      INTEGER CTOI
      INTEGER TODAY(9)
      DATA DAYS/31,29,31,30,31,30,31,31,30,31,30,31/
10072 IF((STR(I).NE.160))GOTO 10073
        I=I+(1)
      GOTO 10072
10073 IF((176.GT.STR(I)))GOTO 10075
      IF((STR(I).GT.185))GOTO 10075
      GOTO 10074
10075   PARSDT=-3
        RETURN
10074 MONTH=CTOI(STR,I)
      IF((STR(I).NE.175))GOTO 10076
        I=I+(1)
        DAY=CTOI(STR,I)
        IF((STR(I).NE.175))GOTO 10077
          I=I+(1)
          YEAR=CTOI(STR,I)
          GOTO 10079
10077     CALL DATE(1,TODAY)
          J=7
          YEAR=CTOI(TODAY,J)
10078   GOTO 10079
10076   DAY=MONTH
        CALL DATE(1,TODAY)
        J=1
        MONTH=CTOI(TODAY,J)
        J=7
        YEAR=CTOI(TODAY,J)
10079 IF((1.GT.MONTH))GOTO 10080
      IF((MONTH.GT.12))GOTO 10080
      IF((1.GT.DAY))GOTO 10080
      IF((DAY.GT.DAYS(MONTH)))GOTO 10080
      IF((0.GT.YEAR))GOTO 10080
      IF((YEAR.GT.99))GOTO 10080
        PARSDT=-2
        GOTO 10081
10080   PARSDT=-3
10081 RETURN
      END
      INTEGER FUNCTION PARSTM(STR,I,VAL)
      INTEGER STR(1)
      INTEGER I
      INTEGER * 4 VAL
      INTEGER CTOI
      INTEGER MAPDN
      INTEGER AAAAG0
10082 IF((STR(I).NE.160))GOTO 10083
        I=I+(1)
      GOTO 10082
10083 IF((176.GT.STR(I)))GOTO 10085
      IF((STR(I).GT.185))GOTO 10085
      GOTO 10084
10085   PARSTM=-3
        RETURN
10084 VAL=CTOI(STR,I)
      IF((STR(I).NE.186))GOTO 10086
        I=I+(1)
10086 VAL=VAL*INTL(60)+CTOI(STR,I)
      IF((STR(I).NE.186))GOTO 10087
        I=I+(1)
10087 VAL=VAL*INTL(60)+CTOI(STR,I)
      IF((VAL.LT.43200*2))GOTO 10088
        PARSTM=-3
        RETURN
10088 CONTINUE
10089 IF((STR(I).NE.160))GOTO 10090
        I=I+(1)
      GOTO 10089
10090 AAAAG0=MAPDN(STR(I))
      GOTO 10091
10092   IF((VAL.GE.43200))GOTO 10094
          VAL=VAL+(43200)
10093 GOTO 10094
10095   IF((VAL.LT.43200))GOTO 10094
          VAL=VAL-(43200)
10096 GOTO 10094
10094   I=I+(1)
        IF((MAPDN(STR(I)).NE.237))GOTO 10098
          I=I+(1)
10097 GOTO 10098
10091 IF(AAAAG0.EQ.225)GOTO 10095
      IF(AAAAG0.EQ.240)GOTO 10092
10098 PARSTM=-2
      RETURN
      END
      INTEGER FUNCTION PATSIZ(PAT,N)
      INTEGER PAT(256)
      INTEGER N
      INTEGER AAAAH0(24)
      DATA AAAAH0/233,238,160,240,225,244,243,233,250,186,160,227,225,23
     *8,167,244,160,232,225,240,240,229,238,0/
      IF((PAT(N).EQ.225))GOTO 10100
      IF((PAT(N).EQ.251))GOTO 10100
      IF((PAT(N).EQ.253))GOTO 10100
      GOTO 10099
10100   PATSIZ=2
        GOTO 10101
10099   IF((PAT(N).EQ.165))GOTO 10103
        IF((PAT(N).EQ.164))GOTO 10103
        IF((PAT(N).EQ.191))GOTO 10103
        GOTO 10102
10103     PATSIZ=1
          GOTO 10104
10102     IF((PAT(N).EQ.219))GOTO 10106
          IF((PAT(N).EQ.238))GOTO 10106
          GOTO 10105
10106       PATSIZ=PAT(N+1)+2
            GOTO 10107
10105       IF((PAT(N).NE.170))GOTO 10108
              PATSIZ=4
              GOTO 10109
10108         CALL ERROR(AAAAH0)
10109     CONTINUE
10107   CONTINUE
10104 CONTINUE
10101 RETURN
      END
      SUBROUTINE PRINT(FD,FMT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
      INTEGER FD,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10
      INTEGER FMT(1)
      INTEGER STR(300),FMT1(102)
      IF((FMT(1).EQ.0))GOTO 10111
      IF((AND(FMT(1),:177400).EQ.0))GOTO 10111
      GOTO 10110
10111   CALL ENCODE(STR,300,FMT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
        GOTO 10112
10110   CALL PTOC(FMT,174,FMT1,102)
        CALL ENCODE(STR,300,FMT1,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
10112 CALL PUTLIN(STR,FD)
      RETURN
      END
      INTEGER FUNCTION PTOC(PSTR,TERM,STR,LEN)
      INTEGER PSTR(1),LEN
      INTEGER TERM,STR(1)
      INTEGER CP,I
      CP=0
      I=1
      GOTO 10115
10113 I=I+(1)
10115 IF((I.GE.LEN))GOTO 10114
        IF((AND(CP,1).NE.0))GOTO 10116
          STR(I)=RS(PSTR(RS(CP,1)+1),8)
          GOTO 10117
10116     STR(I)=RT(PSTR(RS(CP,1)+1),8)
10117   CP=CP+(1)
        IF((STR(I).NE.192))GOTO 10118
          IF((AND(CP,1).NE.0))GOTO 10119
            STR(I)=RS(PSTR(RS(CP,1)+1),8)
            GOTO 10120
10119       STR(I)=RT(PSTR(RS(CP,1)+1),8)
10120     CP=CP+(1)
          GOTO 10113
10118     IF((STR(I).NE.TERM))GOTO 10122
            GOTO 10114
10122   CONTINUE
10121 GOTO 10113
10114 STR(I)=0
      PTOC=I-1
      RETURN
      END
      INTEGER FUNCTION PUTCH(C,FD)
      INTEGER C
      INTEGER FD
      INTEGER PUTLIN
      INTEGER BUF(2)
      BUF(1)=C
      BUF(2)=0
      PUTCH=PUTLIN(BUF,FD)
      RETURN
      END
      SUBROUTINE PUTDEC(N,W,UNIT)
      INTEGER N,W,UNIT
      INTEGER CHARS(20)
      INTEGER ITOC
      INTEGER I,ND
      ND=ITOC(N,CHARS,20)
      I=ND+1
      GOTO 10125
10123 I=I+(1)
10125 IF((I.GT.W))GOTO 10124
        CALL PUTCH(160,UNIT)
      GOTO 10123
10124 I=1
      GOTO 10128
10126 I=I+(1)
10128 IF((I.GT.ND))GOTO 10127
        CALL PUTCH(CHARS(I),UNIT)
      GOTO 10126
10127 RETURN
      END
      INTEGER FUNCTION PUTLIN(LINE,FD)
      INTEGER LINE(1)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER F,OFF
      INTEGER DPUTL$,TPUTL$,MAPSU
      INTEGER AAAAI0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      F=MAPSU(FD)
      OFF=F*16-16+1
      IF((F.LT.1))GOTO 10130
      IF((F.GT.128))GOTO 10130
      IF((AND(FDFLA0(OFF),:020000).EQ.0))GOTO 10130
      IF((AND(FDFLA0(OFF),:004000).NE.0))GOTO 10130
      GOTO 10129
10130   PUTLIN=-3
        RETURN
10129 AAAAI0=FDDEV0(OFF)
      GOTO 10131
10132   IF((AND(FDFLA0(OFF),:000017).EQ.4))GOTO 10133
          CALL FLUSH$(F)
          FDFLA0(OFF)=AND(FDFLA0(OFF),NOT(:000017))+4
10133   PUTLIN=TPUTL$(LINE,OFF)
        RETURN
10134   IF((AND(FDFLA0(OFF),:000017).EQ.4))GOTO 10135
          CALL FLUSH$(F)
          FDCOU0(OFF)=-FDBUH0(OFF)
          FDFLA0(OFF)=AND(FDFLA0(OFF),NOT(:000017))+4
10135   PUTLIN=DPUTL$(LINE,FDESC0(OFF))
        RETURN
10136   IF((AND(FDFLA0(OFF),:000017).EQ.4))GOTO 10137
          CALL FLUSH$(F)
          FDFLA0(OFF)=AND(FDFLA0(OFF),NOT(:000017))+4
10137   PUTLIN=0
        RETURN
10131 GOTO(10132,10134,10136),AAAAI0
        PUTLIN=-3
        RETURN
      END
      SUBROUTINE PUTLIT(MSG,DELIM,UNIT)
      INTEGER MSG(1),UNIT
      INTEGER DELIM
      INTEGER STR(102)
      CALL PTOC(MSG,DELIM,STR,102)
      CALL PUTLIN(STR,UNIT)
      RETURN
      END
      INTEGER FUNCTION READF(BUF,NW,FD)
      INTEGER BUF(1),NW
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER OFF,F
      INTEGER MAPSU,TREAD$,DREAD$
      INTEGER AAAAJ0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      F=MAPSU(FD)
      OFF=F*16-16+1
      IF((F.LT.1))GOTO 10139
      IF((F.GT.128))GOTO 10139
      IF((AND(FDFLA0(OFF),:040000).EQ.0))GOTO 10139
      IF((AND(FDFLA0(OFF),:004000).NE.0))GOTO 10139
      GOTO 10138
10139   READF=-3
        RETURN
10138 IF((NW.GT.0))GOTO 10140
        READF=0
        RETURN
10140 IF((AND(FDFLA0(OFF),:000017).EQ.1))GOTO 10141
        CALL FLUSH$(F)
        FDFLA0(OFF)=AND(FDFLA0(OFF),NOT(:000017))+1
10141 AAAAJ0=FDDEV0(OFF)
      GOTO 10142
10143   READF=TREAD$(BUF,NW,OFF)
      GOTO 10144
10145   READF=DREAD$(BUF,NW,OFF)
      GOTO 10144
10146   READF=-1
      GOTO 10144
10142 GOTO(10143,10145,10146),AAAAJ0
        READF=-3
10144 RETURN
      END
      SUBROUTINE REMARK(MSG)
      INTEGER MSG(1)
      IF((AND(MSG(1),:177400).EQ.0))GOTO 10148
      IF((MSG(1).EQ.0))GOTO 10148
      GOTO 10147
10148   CALL PUTLIN(MSG,-15)
        GOTO 10149
10147   CALL PUTLIT(MSG,174,-15)
10149 CALL PUTCH(138,-15)
      RETURN
      END
      INTEGER FUNCTION REMOVE(PATH)
      INTEGER PATH(1)
      INTEGER FNAME(16),ATTACH,J1(3),CODE
      INTEGER GETTO,RMFIL$
      REMOVE=-3
      IF((GETTO(PATH,FNAME,J1,ATTACH).EQ.-3))GOTO 10150
        REMOVE=RMFIL$(FNAME)
10150 IF((ATTACH.NE.1))GOTO 10151
        CALL AT$HOM(CODE)
10151 RETURN
      END
      INTEGER FUNCTION REWIND(FD)
      INTEGER FD
      INTEGER SEEKF
      REWIND=SEEKF(INTL(0),FD)
      RETURN
      END
      INTEGER FUNCTION RMFIL$(NAME)
      INTEGER NAME(16)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER FD,CODE,TYPE
      INTEGER VNAME(17)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      CALL SRCH$$(:4,NAME,32,0,0,CODE)
      CALL SRCH$$(:5,NAME,32,0,0,ERRCO0)
      IF((ERRCO0.NE.19))GOTO 10152
        CALL SRCH$$(:3+:40000,NAME,32,FD,TYPE,CODE)
        IF((CODE.NE.0))GOTO 10156
          IF((TYPE.EQ.2))GOTO 10155
          IF((TYPE.EQ.3))GOTO 10155
          GOTO 10154
10155       CALL RMSEG$(FD)
10154     CALL SRCH$$(:4,0,0,FD,0,CODE)
          CALL SRCH$$(:5,NAME,32,0,0,ERRCO0)
10153   GOTO 10156
10152   IF((ERRCO0.NE.150))GOTO 10157
          CALL PTOV(NAME,160,VNAME,17)
          CALL CAT$DL(VNAME,ERRCO0)
10157 CONTINUE
10156 RMFIL$=-3
      IF((ERRCO0.NE.0))GOTO 10158
        RMFIL$=-2
10158 RETURN
      END
      SUBROUTINE RMSEG$(FD)
      INTEGER FD
      INTEGER ENTRYA,ENTRYB,FD,FD2,JUNK,CODE
      ENTRYB=-1
10159   ENTRYA=ENTRYB+1
        CALL SGDR$$(:6,FD,ENTRYA,ENTRYB,CODE)
        IF((ENTRYB.EQ.-1))GOTO 10162
        IF((CODE.NE.0))GOTO 10162
        GOTO 10160
10160   CALL SRCH$$(:5+:100,FD,0,0,0,CODE)
        IF((CODE.NE.19))GOTO 10163
          CALL SRCH$$(:3+:100+:40000,FD,0,FD2,JUNK,CODE)
          IF((CODE.NE.0))GOTO 10164
            CALL RMSEG$(FD2)
10164     CALL SRCH$$(:4,0,0,FD2,JUNK,CODE)
          CALL SRCH$$(:5+:100,FD,0,0,JUNK,CODE)
10163 CONTINUE
      GOTO 10159
10162 CALL SGDR$$(:4,FD,0,ENTRYB,CODE)
      RETURN
      END
      SUBROUTINE RMTABL(ST)
      INTEGER ST
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER I
      INTEGER WALKER,BUCKET,NODE
      BUCKET=ST
      DO 10165 I=1,43
        BUCKET=BUCKET+1
        WALKER=MEMAA0(BUCKET)
10167   IF((WALKER.EQ.0))GOTO 10168
          NODE=WALKER
          WALKER=MEMAA0(NODE+0)
          CALL DSFREE(NODE)
        GOTO 10167
10168   CONTINUE
10165 CONTINUE
10166 CALL DSFREE(ST)
      RETURN
      END
      INTEGER FUNCTION RMTEMP(FD)
      INTEGER FD
      INTEGER CLOSE
      CALL REWIND(FD)
      CALL TRUNC(FD)
      IF((CLOSE(FD).NE.-3))GOTO 10169
        RMTEMP=-3
        GOTO 10170
10169   RMTEMP=-2
10170 RETURN
      END
      INTEGER FUNCTION RTOC(VAL,STR,W,D)
      REAL VAL
      INTEGER STR(1)
      INTEGER W,D
      INTEGER DTOC
      REAL * 8 FVAL
      FVAL=VAL
      RTOC=DTOC(FVAL,STR,W,D)
      RETURN
      END
      INTEGER FUNCTION SCTABL(TABLE,SYM,INFO,POSN)
      INTEGER TABLE,POSN
      INTEGER SYM(1)
      INTEGER INFO(1)
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER BUCKET,WALKER
      INTEGER DSGET
      INTEGER NODES0,I
      IF((POSN.NE.0))GOTO 10171
        POSN=DSGET(2)
        MEMAA0(POSN)=1
        MEMAA0(POSN+1)=MEMAA0(TABLE+1)
10171 BUCKET=MEMAA0(POSN)
      WALKER=MEMAA0(POSN+1)
      NODES0=MEMAA0(TABLE)
10172   IF((WALKER.EQ.0))GOTO 10173
          CALL SCOPY(MEMAA0,WALKER+1+NODES0,SYM,1)
          I=1
          GOTO 10176
10174     I=I+(1)
10176     IF((I.GT.NODES0))GOTO 10175
            INFO(I)=MEMAA0(WALKER+1+I-1)
          GOTO 10174
10175     MEMAA0(POSN)=BUCKET
          MEMAA0(POSN+1)=MEMAA0(WALKER+0)
          SCTABL=1
          RETURN
10173     BUCKET=BUCKET+1
          IF((BUCKET.LE.43))GOTO 10177
            GOTO 10178
10177     WALKER=MEMAA0(TABLE+BUCKET)
      GOTO 10172
10178 CALL DSFREE(POSN)
      POSN=0
      SCTABL=-1
      RETURN
      END
      INTEGER FUNCTION SDROP(FROM,TO,CHARS)
      INTEGER FROM(1),TO(1)
      INTEGER CHARS
      INTEGER LEN
      INTEGER CTOC,SCOPY,LENGTH
      LEN=LENGTH(FROM)
      IF((CHARS.GE.0))GOTO 10179
        SDROP=CTOC(FROM,TO,LEN+CHARS+1)
        RETURN
10179   IF((CHARS.GE.LEN))GOTO 10180
          LEN=CHARS
10180   SDROP=SCOPY(FROM,LEN+1,TO,1)
        RETURN
      END
      INTEGER FUNCTION SEEKF(POS,FD,XRA)
      INTEGER * 4 POS
      INTEGER FD
      INTEGER XRA
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER F
      INTEGER MAPSU
      INTEGER OFF,RA
      INTEGER TSEEK$,DSEEK$
      LOGICAL MISSIN
      INTEGER AAAAK0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      F=MAPSU(FD)
      OFF=F*16-16+1
      IF((F.LT.1))GOTO 10182
      IF((F.GT.128))GOTO 10182
      IF((AND(FDFLA0(OFF),:004000).NE.0))GOTO 10182
      IF((FDFLA0(OFF).EQ.0))GOTO 10182
      GOTO 10181
10182   SEEKF=-3
        RETURN
10181 IF((.NOT.MISSIN(XRA)))GOTO 10183
        RA=0
        GOTO 10184
10183   RA=XRA
10184 CALL FLUSH$(F)
      FDFLA0(OFF)=AND(FDFLA0(OFF),NOT(:010000))
      AAAAK0=FDDEV0(OFF)
      GOTO 10185
10186   SEEKF=TSEEK$(POS,OFF,RA)
        RETURN
10187   SEEKF=DSEEK$(POS,OFF,RA)
        RETURN
10188   SEEKF=-1
        RETURN
10185 GOTO(10186,10187,10188),AAAAK0
      SEEKF=-3
      RETURN
      END
      SUBROUTINE SETERR(STAT)
      INTEGER STAT
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      CMDST0=STAT
      RETURN
      END
      INTEGER FUNCTION SFDATA(KEY,XPATH,INFOB0,ATTAC0,AUXIL)
      INTEGER KEY,ATTAC0
      INTEGER XPATH(1)
      INTEGER INFOB0(1),AUXIL(1)
      INTEGER GETTO,PARSA$,INDEX,EQUAL,EXPAND
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER ACLVE0,ACLCO0,ACLTY0
      INTEGER ACLPA0(41,32),ACLNA0(180)
      INTEGER PRIMO0(3)
      INTEGER ACLMO0(32)
      INTEGER ACLUS0(33,32)
      COMMON /ACL$00/ACLTY0,ACLNA0,ACLMO0,ACLUS0,PRIMO0
      INTEGER SARR(2)
      INTEGER NAME(16),PATHN0(180)
      INTEGER JUNK(256),JUNK2(256),VTREE(129),PPWD(3)
      INTEGER I,J,ISACAT
      INTEGER * 4 QBUF(8)
      INTEGER AAAAL0
      INTEGER AAAAM0
      INTEGER AAAAN0
      INTEGER AAAAO0
      INTEGER AAAAP0
      INTEGER AAAAQ0(4)
      INTEGER AAAAR0(4)
      INTEGER AAAAS0(4)
      INTEGER AAAAT0(4)
      INTEGER AAAAU0(4),AAAAV0(4),AAAAW0,AAAAX0(2)
      INTEGER PERMI0(5)
      INTEGER AAAAY0(180),AAAAZ0(7)
      INTEGER AAABA0
      INTEGER AAABB0(6)
      INTEGER AAABC0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      EQUIVALENCE (PRIMO0(1),ACLVE0)
      EQUIVALENCE (PRIMO0(2),ACLCO0)
      EQUIVALENCE (PRIMO0(3),ACLPA0)
      DATA AAAAQ0/238,173,177,0/
      DATA AAAAR0/243,249,243,0/
      DATA AAAAS0/238,171,177,0/
      DATA AAAAT0/238,171,238,0/
      DATA PERMI0/244,247,242,225,0/
      DATA AAAAU0/:2000,:1000,:400,:3400/
      DATA AAAAV0/:4,:2,:1,:7/
      DATA AAABB0/174,225,227,225,244,0/
      ATTAC0=0
      ERRCO0=0
      IF((EXPAND(XPATH,PATHN0,180).NE.-3))GOTO 10193
        SFDATA=-3
        RETURN
10193 AAAAP0=KEY
      GOTO 10194
10195   AAAAO0=1
        GOTO 10192
10196   CALL Q$SET(1,VTREE,INFOB0,ERRCO0)
        IF((ERRCO0.NE.145))GOTO 10198
          ERRCO0=0
10197 GOTO 10198
10199   SFDATA=-3
        RETURN
10200   AAAAL0=1
        GOTO 10189
10201   CALL SATR$$(:3,NAME,32,SARR,ERRCO0)
      GOTO 10198
10202   AAAAL0=2
        GOTO 10189
10203   SARR(2)=0
        IF((EQUAL(INFOB0,AAAAQ0).NE.1))GOTO 10204
          SARR(1)=1
          GOTO 10205
10204     IF((EQUAL(INFOB0,AAAAR0).NE.1))GOTO 10206
            SARR(1)=0
            GOTO 10207
10206       IF((EQUAL(INFOB0,AAAAS0).NE.1))GOTO 10208
              SARR(1)=2
              GOTO 10209
10208         IF((EQUAL(INFOB0,AAAAT0).NE.1))GOTO 10210
                SARR(1)=3
                GOTO 10211
10210           SFDATA=-3
                RETURN
10211       CONTINUE
10209     CONTINUE
10207   CONTINUE
10205   CALL SATR$$(:4,NAME,32,SARR,ERRCO0)
      GOTO 10198
10212   AAAAL0=3
        GOTO 10189
10213   SARR(1)=LS(MOD(INFOB0(1),100),9)
        SARR(1)=OR(SARR(1),LS(AND(INFOB0(2),15),5))
        SARR(1)=OR(SARR(1),AND(INFOB0(3),31))
        SARR(2)=(INFOB0(4)*60+INFOB0(5))*15+INFOB0(6)/4
        CALL SATR$$(:2,NAME,32,SARR,ERRCO0)
      GOTO 10198
10214   J=1
        AAAAN0=1
        GOTO 10191
10215   AAAAO0=2
        GOTO 10192
10216   IF((INFOB0(1).NE.0))GOTO 10217
        IF((AUXIL(1).NE.0))GOTO 10217
          IF((ISACAT.NE.0))GOTO 10218
            CALL AC$DFT(VTREE,ERRCO0)
            GOTO 10198
10218       CALL CAT$DL(VTREE,ERRCO0)
10219     GOTO 10198
10217     IF((INFOB0(1).NE.0))GOTO 10221
            J=2
            AAAAN0=2
            GOTO 10191
10222       IF((ISACAT.NE.0))GOTO 10223
              CALL EXPAND(AUXIL,JUNK2,256)
              CALL MKTR$(JUNK2,JUNK)
              IF((INDEX(JUNK,190).NE.0))GOTO 10224
                SFDATA=-3
                RETURN
10224         I=1
              CALL CTOV(JUNK,I,JUNK2,256)
              CALL AC$LIK(VTREE,JUNK2,ERRCO0)
              GOTO 10226
10223         I=1
              CALL CTOV(AUXIL,I,JUNK2,256)
              CALL AC$CAT(VTREE,JUNK2,ERRCO0)
10225       GOTO 10226
10221       IF((AUXIL(1).NE.0))GOTO 10227
              IF((GTACL$(PATHN0,1,ATTAC0).NE.-3))GOTO 10228
                SFDATA=-3
                RETURN
10228           IF((PARSA$(INFOB0).NE.-3))GOTO 10229
                  SFDATA=-3
                  RETURN
10229             CALL MKPACL
                  IF((INDEX(JUNK,190).NE.0))GOTO 10230
                    AAAAL0=4
                    GOTO 10189
10231             CONTINUE
10230             CALL AC$SET(:0,VTREE,LOC(PRIMO0),ERRCO0)
              GOTO 10232
10227         CALL EXPAND(AUXIL,JUNK2,256)
              IF((GTACL$(JUNK2,1,ATTAC0).NE.-3))GOTO 10233
                SFDATA=-3
                RETURN
10233           IF((PARSA$(INFOB0).NE.-3))GOTO 10234
                  SFDATA=-3
                  RETURN
10234             CALL MKPACL
                  IF((INDEX(JUNK,190).NE.0))GOTO 10235
                    AAAAL0=5
                    GOTO 10189
10236             CONTINUE
10235             CALL AC$SET(:0,VTREE,LOC(PRIMO0),ERRCO0)
10232     CONTINUE
10226   CONTINUE
10220 GOTO 10198
10237   SFDATA=-3
        RETURN
10238   I=1
        CALL CTOV(INFOB0,I,VTREE,129)
        IF((AUXIL(1).NE.0))GOTO 10239
          CALL PA$DEL(VTREE,ERRCO0)
          GOTO 10198
10239     CALL GTACL$(0,1,I)
          IF((PARSA$(AUXIL).NE.-3))GOTO 10241
            SFDATA=-3
            RETURN
10241       CALL MKPACL
            CALL PA$SET(VTREE,LOC(PRIMO0),ERRCO0)
10240 GOTO 10198
10242   AAAAL0=6
        GOTO 10189
10243   IF((INFOB0(1).NE.1))GOTO 10244
          SARR(1)=1
          GOTO 10245
10244     SARR(1)=0
10245   CALL SATR$$(:6,NAME,32,SARR,ERRCO0)
      GOTO 10198
10246   SFDATA=-3
        RETURN
10247   SFDATA=-3
        RETURN
10248   AAAAL0=7
        GOTO 10189
10249   AAAAM0=1
        GOTO 10190
10251   ATTAC0=1
        IF((FOLLOW(PATHN0,0).NE.-3))GOTO 10252
          SFDATA=-3
          RETURN
10252   I=1
        CALL CTOP(INFOB0,I,JUNK,3)
        I=1
        CALL CTOP(AUXIL,I,JUNK2,3)
        CALL SPAS$$(JUNK,JUNK2,ERRCO0)
      GOTO 10198
10198   IF((ATTAC0.NE.1))GOTO 10253
          CALL AT$HOM(I)
10253   IF((ERRCO0.EQ.0))GOTO 10254
          SFDATA=-3
          RETURN
10254     SFDATA=-2
          RETURN
10194 GOTO(10195,10199,10200,10202,10212,10214,10237,10238,10242,10246, 
     *    10255,10255,10255,10255,10255,10255,10255,10255,10255,10247,  
     *   10255,10255,10255,10255,10255,10255,10255,10255,10255,10255,   
     *  10255,10255,10255,10255,10255,10255,10255,10255,10255,10255,    
     * 10255,10255,10255,10255,10255,10255,10255,10255,10255,10248,10251
     *),AAAAP0
10255   SFDATA=-3
        RETURN
10189 IF((GETTO(PATHN0,NAME,PPWD,ATTAC0).NE.-3))GOTO 10257
        SFDATA=-3
        RETURN
10190 AAAAX0(1)=0
      AAAAX0(2)=0
      AAAAW0=1
      I=1
      GOTO 10260
10258 I=I+(1)
10260 IF((INFOB0(I).EQ.0))GOTO 10259
        IF((INFOB0(I).NE.175))GOTO 10261
          AAAAW0=0
          GOTO 10258
10261     J=INDEX(PERMI0,INFOB0(I))
          IF((J.GE.1))GOTO 10263
            SFDATA=-3
            RETURN
10263     IF((AAAAW0.NE.1))GOTO 10264
            AAAAX0(1)=OR(AAAAX0(1),AAAAU0(J))
            GOTO 10265
10264       AAAAX0(1)=OR(AAAAX0(1),AAAAV0(J))
10265   CONTINUE
10262 GOTO 10258
10259 CALL SATR$$(:1,NAME,32,AAAAX0,ERRCO0)
      GOTO 10198
10191 IF((J.NE.1))GOTO 10267
        CALL CTOC(PATHN0,AAAAY0,180)
        GOTO 10268
10267   CALL CTOC(AUXIL,AAAAY0,180)
10268 AAABA0=1
      GOTO 10271
10269 AAABA0=AAABA0+(1)
10271 IF((AAAAY0(AAABA0).EQ.0))GOTO 10270
        CONTINUE
      GOTO 10269
10270 IF((AAABA0.GE.7))GOTO 10272
        ISACAT=0
        GOTO 10274
10272   AAABA0=AAABA0-(5)
        CALL CTOC(AAAAY0(AAABA0),AAAAZ0,7)
        CALL MAPSTR(AAAAZ0,1)
        ISACAT=EQUAL(AAABB0,AAAAZ0)
10273 GOTO 10274
10192 CALL MKTR$(PATHN0,JUNK)
      AAABC0=1
      CALL CTOV(JUNK,AAABC0,VTREE,129)
      IF((INDEX(JUNK,190).NE.0))GOTO 10277
        AAAAL0=8
        GOTO 10189
10276 CONTINUE
10275 GOTO 10277
10274 GOTO(10215,10222),AAAAN0
      GOTO 10274
10257 GOTO(10201,10203,10213,10231,10236,10243,10249,10276),AAAAL0
      GOTO 10257
10277 GOTO(10196,10216),AAAAO0
      GOTO 10277
      END
      INTEGER FUNCTION SPROT$(NAME,ATTR)
      INTEGER NAME(1),ATTR(1)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER PERMI0(5)
      INTEGER OWNER0(4),NONOW0(4)
      INTEGER I,J,OWNER,PACKE0(16),CODE,PROT(2),JUNK(3)
      INTEGER ATTACH,INDEX,GETTO
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA PERMI0/244,247,242,225,0/
      DATA OWNER0/:2000,:1000,:400,:3400/
      DATA NONOW0/:4,:2,:1,:7/
      PROT(1)=0
      PROT(2)=0
      SPROT$=-3
      OWNER=1
      I=1
      GOTO 10280
10278 I=I+(1)
10280 IF((ATTR(I).EQ.0))GOTO 10279
        IF((ATTR(I).NE.175))GOTO 10281
          OWNER=0
          GOTO 10278
10281     J=INDEX(PERMI0,ATTR(I))
          IF((J.GE.1))GOTO 10283
            RETURN
10283     IF((OWNER.NE.1))GOTO 10284
            PROT(1)=OR(PROT(1),OWNER0(J))
            GOTO 10285
10284       PROT(1)=OR(PROT(1),NONOW0(J))
10285   CONTINUE
10282 GOTO 10278
10279 IF((GETTO(NAME,PACKE0,JUNK,ATTACH).NE.-3))GOTO 10286
        RETURN
10286 CALL SATR$$(:1,PACKE0,32,PROT,ERRCO0)
      IF((ATTACH.EQ.0))GOTO 10287
        CALL AT$HOM(CODE)
10287 IF((ERRCO0.NE.0))GOTO 10288
        SPROT$=-2
10288 RETURN
      END
      INTEGER FUNCTION ST$LU(SYMBOL,NODE,PRED,ST)
      INTEGER SYMBOL(1)
      INTEGER NODE,PRED,ST
      INTEGER MEMAA0(1)
      COMMON /DS$MEM/MEMAA0
      INTEGER HASH,I,NODES0
      INTEGER EQUAL
      NODES0=MEMAA0(ST)
      HASH=0
      I=1
      GOTO 10291
10289 I=I+(1)
10291 IF((SYMBOL(I).EQ.0))GOTO 10290
        HASH=HASH+(SYMBOL(I))
      GOTO 10289
10290 HASH=MOD(IABS(HASH),43)+1
      PRED=ST+HASH
      NODE=MEMAA0(PRED)
10292 IF((NODE.EQ.0))GOTO 10293
        IF((EQUAL(SYMBOL,MEMAA0(NODE+1+NODES0)).NE.1))GOTO 10294
          ST$LU=1
          RETURN
10294   PRED=NODE
        NODE=MEMAA0(PRED+0)
      GOTO 10292
10293 ST$LU=0
      RETURN
      END
      INTEGER FUNCTION STAKE(FROM,TO,CHARS)
      INTEGER FROM(1),TO(1)
      INTEGER CHARS
      INTEGER LEN
      INTEGER LENGTH,CTOC,SCOPY
      LEN=LENGTH(FROM)
      IF((CHARS.GE.0))GOTO 10295
        LEN=LEN+(CHARS)
        IF((LEN.GE.0))GOTO 10296
          LEN=0
10296   STAKE=SCOPY(FROM,LEN+1,TO,1)
        RETURN
10295   STAKE=CTOC(FROM,TO,CHARS+1)
        RETURN
      END
      INTEGER FUNCTION STCLOS(PAT,J,LASTJ,LASTCL)
      INTEGER PAT(256)
      INTEGER J,LASTJ,LASTCL
      INTEGER ADDSET
      INTEGER JP,JT,JUNK
      JP=J-1
      GOTO 10299
10297 JP=JP-(1)
10299 IF((JP.LT.LASTJ))GOTO 10298
        JT=JP+4
        JUNK=ADDSET(PAT(JP),PAT,JT,256)
      GOTO 10297
10298 J=J+(4)
      STCLOS=LASTJ
      JUNK=ADDSET(170,PAT,LASTJ,256)
      JUNK=ADDSET(0,PAT,LASTJ,256)
      JUNK=ADDSET(LASTCL,PAT,LASTJ,256)
      JUNK=ADDSET(0,PAT,LASTJ,256)
      RETURN
      END
      INTEGER FUNCTION STRBSR(POS,TAB,OFFS,OBJECT)
      INTEGER POS(1),OFFS
      INTEGER TAB(1),OBJECT(1)
      INTEGER I,J,K
      INTEGER STRCMP
      INTEGER AAABD0
      I=2
      J=POS(1)+1
10300   K=(I+J)/2
        AAABD0=STRCMP(TAB(POS(K)+OFFS),OBJECT)
        GOTO 10301
10302     I=K+1
        GOTO 10303
10304     STRBSR=K
          RETURN
10305     J=K-1
        GOTO 10303
10301   GOTO(10302,10304,10305),AAABD0
10303 CONTINUE
      IF((I.LE.J))GOTO 10300
      STRBSR=-1
      RETURN
      END
      INTEGER FUNCTION STRCMP(STR1,STR2)
      INTEGER STR1(1),STR2(1)
      INTEGER I
      I=1
      GOTO 10308
10306 I=I+(1)
10308 IF((STR1(I).NE.STR2(I)))GOTO 10310
        IF((STR1(I).NE.0))GOTO 10306
          STRCMP=2
          RETURN
10311   STRCMP=1
        RETURN
10312   STRCMP=3
        RETURN
10310 IF((STR1(I).EQ.0))GOTO 10311
      IF((STR1(I).LT.STR2(I)))GOTO 10311
      IF((STR2(I).EQ.0))GOTO 10312
      IF((STR1(I).GT.STR2(I)))GOTO 10312
      STRCMP=2
      RETURN
      END
      INTEGER FUNCTION STRIM(STR)
      INTEGER STR(1)
      INTEGER LNB,I
      LNB=0
      I=1
      GOTO 10315
10313 I=I+(1)
10315 IF((STR(I).EQ.0))GOTO 10314
        IF((STR(I).EQ.160))GOTO 10313
        IF((STR(I).EQ.137))GOTO 10313
          LNB=I
10316 GOTO 10313
10314 STR(LNB+1)=0
      STRIM=LNB
      RETURN
      END
      INTEGER FUNCTION STRLSR(POS,TAB,OFFS,OBJECT)
      INTEGER POS(1),OFFS
      INTEGER TAB(1),OBJECT(1)
      INTEGER I,J
      INTEGER STRCMP
      J=POS(1)+1
      I=2
      GOTO 10319
10317 I=I+(1)
10319 IF((I.GT.J))GOTO 10318
        IF((STRCMP(OBJECT,TAB(POS(I)+OFFS)).NE.2))GOTO 10317
          STRLSR=I
          RETURN
10318 STRLSR=-1
      RETURN
      END
      INTEGER FUNCTION SUBSTR(FROM,TO,FIRST,CHARS)
      INTEGER FROM(1),TO(1)
      INTEGER FIRST,CHARS
      INTEGER LEN,I,J,K
      INTEGER LENGTH
      LEN=LENGTH(FROM)
      I=FIRST
      IF((I.GE.1))GOTO 10321
        I=I+(LEN+1)
10321 IF((CHARS.GE.0))GOTO 10322
        I=I+(CHARS+1)
        CHARS=-CHARS
10322 J=I+CHARS-1
      IF((I.GE.1))GOTO 10323
        I=1
10323 IF((J.LE.LEN))GOTO 10324
        J=LEN
10324 K=0
      GOTO 10327
10325 K=K+(1)
      I=I+(1)
10327 IF((I.GT.J))GOTO 10326
        TO(K+1)=FROM(I)
      GOTO 10325
10326 TO(K+1)=0
      SUBSTR=K
      RETURN
      END
      SUBROUTINE SWT
      CALL RTN$$
      END
      INTEGER * 4 FUNCTION SZFIL$(FD)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER JUNK
      INTEGER * 4 SIZE
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
10328   CALL PRWF$$(:3+:0,FD,LOC(0),0,:17777777,JUNK,ERRCO0)
      IF((ERRCO0.EQ.0))GOTO 10328
      IF((ERRCO0.EQ.1))GOTO 10329
        SZFIL$=-3
        RETURN
10329 CALL PRWF$$(:5,FD,LOC(0),0,SIZE,JUNK,ERRCO0)
      SZFIL$=SIZE
      RETURN
      END
      SUBROUTINE SZSEG$(SIZE,FD)
      INTEGER * 4 SIZE
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER ENTRYA,ENTRYB,NFD,NTYPE
      INTEGER * 4 TEMP
      INTEGER * 4 SZFIL$
      INTEGER AAABE0
      INTEGER AAABF0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      SIZE=-3
      CALL SGDR$$(:2,FD,ENTRYA,ENTRYB,ERRCO0)
      CALL SGDR$$(:1,FD,0,ENTRYA,ERRCO0)
      IF((ERRCO0.EQ.0))GOTO 10330
        RETURN
10330 IF((ENTRYB.NE.0))GOTO 10331
        SIZE=1
        GOTO 10332
10331   SIZE=ENTRYB
10332 ENTRYB=-1
10333   ENTRYA=ENTRYB+1
        CALL SGDR$$(:6,FD,ENTRYA,ENTRYB,ERRCO0)
        IF((ENTRYB.EQ.-1))GOTO 10336
        IF((ERRCO0.NE.0))GOTO 10336
        GOTO 10334
10334   CALL SRCH$$(:1+:40000+:100,FD,0,NFD,NTYPE,ERRCO0)
        IF((ERRCO0.EQ.0))GOTO 10337
          SIZE=-3
          RETURN
10337   AAABE0=NTYPE
        GOTO 10338
10339     TEMP=SZFIL$(NFD)
        GOTO 10340
10341     CALL SZSEG$(TEMP,NFD)
        GOTO 10340
10338   AAABF0=AAABE0+1
        GOTO(10339,10339,10341,10341),AAABF0
10340   IF((TEMP.NE.-3))GOTO 10342
          SIZE=-3
          RETURN
10342     SIZE=SIZE+(TEMP)
        CALL SRCH$$(:4,0,0,NFD,0,ERRCO0)
      GOTO 10333
10336 RETURN
      END
      SUBROUTINE T$CLUP
      INTEGER NUMRTN,SP
      INTEGER * 4 RECORD(4,1),STACK(4,1)
      COMMON /T$PROF/NUMRTN,RECORD
      COMMON /T$STAK/SP,STACK
      INTEGER I,CODE,FD
      INTEGER CREATE
      INTEGER PROFI0(9)
      DATA PROFI0/223,240,242,239,230,233,236,229,0/
10343 IF((SP.LE.1))GOTO 10344
        CALL T$EXIT
      GOTO 10343
10344 CALL AT$HOM(CODE)
      FD=CREATE(PROFI0,2)
      IF((FD.NE.-3))GOTO 10345
        CALL CANT(PROFI0)
10345 I=1
      GOTO 10348
10346 I=I+(1)
10348 IF((I.GT.NUMRTN))GOTO 10347
        CALL WRITEF(RECORD(1,I),8,FD)
      GOTO 10346
10347 CALL CLOSE(FD)
      RETURN
      END
      SUBROUTINE T$ENTR(ROUTI0)
      INTEGER ROUTI0
      INTEGER NUMRTN,SP
      INTEGER * 4 STACK(4,1),RECORD(4,1)
      COMMON /T$PROF/NUMRTN,RECORD
      COMMON /T$STAK/SP,STACK
      INTEGER I,J
      INTEGER * 4 CPU,DISKIO,REEL
      IF((ROUTI0.NE.1))GOTO 10349
        I=1
        GOTO 10352
10350   I=I+(1)
10352   IF((I.GT.NUMRTN))GOTO 10351
          J=1
          GOTO 10355
10353     J=J+(1)
10355     IF((J.GT.4))GOTO 10350
            RECORD(J,I)=0
          GOTO 10353
10351   SP=1
10349 IF((SP.LE.NUMRTN))GOTO 10356
        CALL TNOU('Stack overflow in profiler (t$entr)',35)
        CALL SWT
10356 CALL T$TIME(REEL,CPU,DISKIO)
      STACK(1,SP)=ROUTI0
      STACK(2,SP)=REEL
      STACK(3,SP)=CPU
      STACK(4,SP)=DISKIO
      RECORD(1,ROUTI0)=RECORD(1,ROUTI0)+(1)
      SP=SP+(1)
      RETURN
      END
      SUBROUTINE T$EXIT
      INTEGER NUMRTN,SP
      INTEGER * 4 STACK(4,1),RECORD(4,1)
      COMMON /T$PROF/NUMRTN,RECORD
      COMMON /T$STAK/SP,STACK
      INTEGER * 4 REEL,CPU,DISKIO
      INTEGER ROUTI0,I
      CALL T$TIME(REEL,CPU,DISKIO)
      SP=SP-(1)
      REEL=REEL-(STACK(2,SP))
      CPU=CPU-(STACK(3,SP))
      DISKIO=DISKIO-(STACK(4,SP))
      ROUTI0=STACK(1,SP)
      RECORD(2,ROUTI0)=RECORD(2,ROUTI0)+(REEL)
      RECORD(3,ROUTI0)=RECORD(3,ROUTI0)+(CPU)
      RECORD(4,ROUTI0)=RECORD(4,ROUTI0)+(DISKIO)
      I=SP-1
      GOTO 10359
10357 I=I-(1)
10359 IF((I.LT.1))GOTO 10358
        STACK(2,I)=STACK(2,I)+(REEL)
        STACK(3,I)=STACK(3,I)+(CPU)
        STACK(4,I)=STACK(4,I)+(DISKIO)
      GOTO 10357
10358 RETURN
      END
      SUBROUTINE T$TIME(REEL,CPU,DISKIO)
      INTEGER * 4 REEL,CPU,DISKIO
      INTEGER TIME(28)
      CALL TIMDAT(TIME,28)
      REEL=INTL(TIME(4))*60*TIME(11)+INTL(TIME(5))*TIME(11)+TIME(6)
      CPU=INTL(TIME(7))*TIME(11)+TIME(8)
      DISKIO=INTL(TIME(9))*TIME(11)+TIME(10)
      RETURN
      END
      SUBROUTINE T$TRAC(MODE,NAME)
      INTEGER MODE
      INTEGER NAME
      INTEGER LEVEL,I
      INTEGER AAABG0
      DATA LEVEL/0/
      AAABG0=MODE
      GOTO 10360
10361   I=1
        GOTO 10364
10362   I=I+(1)
10364   IF(((I.GT.LEVEL).OR.(LEVEL.GT.40)))GOTO 10363
          CALL PUTCH(252,-15)
          CALL PUTCH(160,-15)
          CALL PUTCH(160,-15)
        GOTO 10362
10363   CALL PRINT(-15,'*p {*n.',NAME)
        LEVEL=LEVEL+(1)
      GOTO 10365
10366   LEVEL=LEVEL-(1)
        I=1
        GOTO 10369
10367   I=I+(1)
10369   IF(((I.GT.LEVEL).OR.(LEVEL.GT.40)))GOTO 10368
          CALL PUTCH(252,-15)
          CALL PUTCH(160,-15)
          CALL PUTCH(160,-15)
        GOTO 10367
10368   CALL PRINT(-15,'@.@.}*n.')
      GOTO 10365
10370   LEVEL=0
      GOTO 10365
10360 GOTO(10361,10366,10370),AAABG0
10365 RETURN
      END
      INTEGER FUNCTION TCOOK$(UBUF,SIZE,TBUF,TPTR)
      INTEGER UBUF(1),TBUF(128)
      INTEGER SIZE,TPTR
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER DUPLX$
      INTEGER C,T
      INTEGER UPTR
      INTEGER AAABH0
      INTEGER AAABI0
      INTEGER AAABJ0
      INTEGER AAABK0
      INTEGER AAABL0
      INTEGER AAABM0
      INTEGER AAABN0
      INTEGER AAABO0
      INTEGER AAABP0
      INTEGER AAABQ0
      INTEGER AAABR0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      UPTR=1
      GOTO 10380
10378 UPTR=UPTR+(1)
      TPTR=TPTR+(1)
10380 IF((UPTR.GE.SIZE))GOTO 10379
        IF((TBUF(TPTR).NE.0))GOTO 10381
          AAABH0=1
          GOTO 10371
10382   CONTINUE
10381   UBUF(UPTR)=TBUF(TPTR)
        IF((UBUF(UPTR).EQ.138))GOTO 10384
        IF((UBUF(UPTR).EQ.0))GOTO 10384
        GOTO 10378
10384     IF((UBUF(UPTR).NE.138))GOTO 10379
            UPTR=UPTR+(1)
            TPTR=TPTR+(1)
10385     GOTO 10379
10379 UBUF(UPTR)=0
      UPTR=1
      GOTO 10388
10386 UPTR=UPTR+(1)
10388 IF((UBUF(UPTR).EQ.0))GOTO 10387
        IF((AND(UBUF(UPTR),512).EQ.0))GOTO 10389
          UBUF(UPTR)=UBUF(UPTR)-(512)
10389   IF((TERMA0(3).NE.1))GOTO 10386
          IF((AND(UBUF(UPTR),256).EQ.0))GOTO 10391
            UBUF(UPTR)=UBUF(UPTR)-(256)
            C=OR(UBUF(UPTR),128)
            GOTO 10392
10393         UBUF(UPTR)=OR(AND(UBUF(UPTR),128),AND(251,127))
            GOTO 10399
10395         UBUF(UPTR)=OR(AND(UBUF(UPTR),128),AND(253,127))
            GOTO 10399
10396         UBUF(UPTR)=OR(AND(UBUF(UPTR),128),AND(252,127))
            GOTO 10399
10397         UBUF(UPTR)=OR(AND(UBUF(UPTR),128),AND(254,127))
            GOTO 10399
10398         UBUF(UPTR)=OR(AND(UBUF(UPTR),128),AND(224,127))
            GOTO 10399
10392       IF((C.EQ.168))GOTO 10393
            IF((C.EQ.169))GOTO 10395
            IF((C.EQ.161))GOTO 10396
            IF((C.EQ.223))GOTO 10397
            IF((C.EQ.167))GOTO 10398
10394       GOTO 10399
10391       C=OR(UBUF(UPTR),128)
            GOTO 10400
10401         UBUF(UPTR)=UBUF(UPTR)-225+193
            GOTO 10402
10403         UBUF(UPTR)=UBUF(UPTR)-193+225
            GOTO 10402
10400       IF((C.LT.225))GOTO 10404
            IF((C.GT.250))GOTO 10404
            GOTO 10401
10404       IF((C.LT.193))GOTO 10405
            IF((C.GT.218))GOTO 10405
            GOTO 10403
10405       CONTINUE
10402     CONTINUE
10399   CONTINUE
10390 GOTO 10386
10387 TCOOK$=UPTR-1
      RETURN
10371 TPTR=1
      TBUF(TPTR)=0
      AAABO0=1
      GOTO 10408
10406 AAABO0=AAABO0+(1)
10408 IF((AAABO0.GE.128))GOTO 10382
        AAABI0=1
        GOTO 10372
10409   IF((AND(C,256).EQ.0))GOTO 10410
          T=C-256
          GOTO 10412
10410     T=C
10411   GOTO 10412
10413     AAABJ0=1
          GOTO 10373
10414     TBUF(AAABO0)=C
        GOTO 10415
10416     AAABK0=1
          GOTO 10374
10417     UPTR=1
          AAABO0=0
        GOTO 10415
10418     IF((T.EQ.C))GOTO 10419
            CALL T1OU(ECHAR0)
10419     IF((AAABO0.LE.1))GOTO 10420
            AAABO0=AAABO0-(1)
            T=TBUF(AAABO0)
            GOTO 10421
10420       IF((UPTR.LE.1))GOTO 10422
              UPTR=UPTR-(1)
              T=UBUF(UPTR)
              GOTO 10423
10422         T=0
10423     CONTINUE
10421     AAABL0=1
          GOTO 10375
10424     AAABO0=AAABO0-(1)
        GOTO 10415
10425     AAABK0=2
          GOTO 10374
10426     AAABM0=1
          GOTO 10376
10427     AAABO0=AAABO0-(1)
        GOTO 10415
10428     IF((AAABO0.GT.1))GOTO 10430
          IF((UPTR.GT.1))GOTO 10430
          GOTO 10429
10430       AAABK0=3
            GOTO 10374
10431     CONTINUE
10429     UPTR=1
          AAABO0=1
          TBUF(AAABO0)=0
          GOTO 10382
10432     IF((T.EQ.138))GOTO 10433
            CALL TONL
10433     TBUF(AAABO0)=138
          TBUF(AAABO0+1)=0
          GOTO 10382
10412   IF((T.EQ.ESCCH0))GOTO 10413
        IF((T.EQ.KCHAR0))GOTO 10416
        IF((T.EQ.ECHAR0))GOTO 10418
        IF((T.EQ.RTCHA0))GOTO 10425
        IF((T.EQ.EOFCH0))GOTO 10428
        IF((T.EQ.NLCHA0))GOTO 10432
          TBUF(AAABO0)=C
10415   TBUF(AAABO0+1)=0
      GOTO 10406
10372 CALL C1IN(C)
      IF((TERMA0(3).NE.1))GOTO 10409
      IF((C.NE.192))GOTO 10409
        CALL C1IN(C)
        IF((C.NE.ESCCH0))GOTO 10436
          AAABJ0=2
          GOTO 10373
10437   CONTINUE
10436   C=C+(256)
10435 GOTO 10409
10373 AAABP0=DUPLX$(-1)
      CALL DUPLX$(OR(AAABP0,-16384))
      IF((ESCCH0.LT.160))GOTO 10440
      IF((ESCCH0.GT.254))GOTO 10440
      GOTO 10439
10440   CALL T1OU(128)
        GOTO 10441
10439   CALL T1OU(136)
10441 CALL T1OU(222)
      CALL C1IN(C)
      GOTO 10442
10443   T=LS(C-176,6)
        CALL C1IN(C)
        T=T+(LS(C-176,3))
        CALL C1IN(C)
        C=T+C-176
      GOTO 10444
10445   CALL T1OU(C)
        CALL C1IN(C)
        C=AND(C,127)
      GOTO 10444
10442 IF((176.GT.C))GOTO 10446
      IF((C.GT.183))GOTO 10446
      GOTO 10443
10446 IF((C.EQ.175))GOTO 10445
10444 C=C+(512)
      AAABN0=1
      GOTO 10377
10447 CALL DUPLX$(AAABP0)
      GOTO 10448
10374 AAABQ0=1
      GOTO 10451
10449 AAABQ0=AAABQ0+(1)
10451 IF((KILLR0(AAABQ0).EQ.0))GOTO 10452
        CALL T1OU(KILLR0(AAABQ0))
      GOTO 10449
10375 IF((AND(T,256).EQ.0))GOTO 10453
        CALL T1OU(ECHAR0)
        T=T-(256)
10453 IF((AND(T,512).EQ.0))GOTO 10424
        T=T-(512)
        IF((T.GE.128))GOTO 10455
          CALL T1OU(ECHAR0)
          T=T+(128)
10455   IF((T.LT.128))GOTO 10458
        IF((T.GT.159))GOTO 10458
        GOTO 10457
10458   IF((T.EQ.255))GOTO 10457
        GOTO 10456
10457     CALL T1OU(ECHAR0)
10456   CALL T1OU(ECHAR0)
10454 GOTO 10424
10376 AAABR0=1
      GOTO 10462
10460 AAABR0=AAABR0+(1)
10462 IF((AAABR0.GE.UPTR))GOTO 10461
        C=UBUF(AAABR0)
        IF((AND(C,256).EQ.0))GOTO 10463
          CALL T1OU(192)
          C=C-(256)
10463   IF((AND(C,512).EQ.0))GOTO 10464
          CALL T1OU(222)
          IF((C-512.GE.128))GOTO 10465
            CALL T1OU(175)
10465   CONTINUE
10464   AAABN0=2
        GOTO 10377
10461 AAABR0=1
      GOTO 10469
10467 AAABR0=AAABR0+(1)
10469 IF((TBUF(AAABR0).EQ.0))GOTO 10427
        C=TBUF(AAABR0)
        IF((AND(C,256).EQ.0))GOTO 10470
          CALL T1OU(192)
          C=C-(256)
10470   IF((AND(C,512).EQ.0))GOTO 10471
          CALL T1OU(222)
          IF((C-512.GE.128))GOTO 10472
            CALL T1OU(175)
10472   CONTINUE
10471   AAABN0=3
        GOTO 10377
10377 T=C
      IF((AND(T,512).EQ.0))GOTO 10475
        T=T-(512)
        IF((T.GE.128))GOTO 10476
          T=T+(128)
10476   IF((T.LT.128))GOTO 10479
        IF((T.GT.159))GOTO 10479
        GOTO 10478
10479   IF((T.EQ.255))GOTO 10478
        GOTO 10477
10478     CALL T1OU(189)
          IF((T.EQ.255))GOTO 10480
            CALL T1OU(T-128+192)
            GOTO 10484
10480       CALL T1OU(163)
10481     GOTO 10484
10477     CALL T1OU(T)
10482   GOTO 10484
10475   CALL T1OU(T)
10483 GOTO 10484
10452 GOTO(10417,10426,10431),AAABK0
      GOTO 10452
10484 GOTO(10447,10460,10467),AAABN0
      GOTO 10484
10448 GOTO(10414,10437),AAABJ0
      GOTO 10448
      END
      INTEGER FUNCTION TGETL$(BUF,SIZE,F)
      INTEGER BUF(1)
      INTEGER SIZE,F
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER TCOOK$
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      TGETL$=TCOOK$(BUF,SIZE,TERMB0,TERMC0)
      RETURN
      END
      INTEGER * 4 FUNCTION TMARK$(F)
      INTEGER F
      TMARK$=0
      RETURN
      END
      INTEGER FUNCTION TPUTL$(LINE,F)
      INTEGER LINE(1)
      INTEGER F
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I,BP,BUF(102)
      INTEGER C
      INTEGER AAABT0
      INTEGER AAABU0
      INTEGER AAABV0
      INTEGER AAABW0
      INTEGER AAABS0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      BP=0
      I=1
      GOTO 10489
10487 I=I+(1)
10489 IF((LINE(I).EQ.0))GOTO 10488
        C=OR(128,LINE(I))
        AAABV0=C
        GOTO 10490
10491     IF((TERMA0(3).NE.1))GOTO 10492
            AAABS0=192
            AAABT0=1
            GOTO 10485
10493     CONTINUE
10492     AAABS0=C
          AAABT0=2
          GOTO 10485
10496     IF((TERMA0(3).NE.1))GOTO 10497
            AAABS0=C-225+193
            AAABT0=3
            GOTO 10485
10497       AAABS0=C
            AAABT0=4
            GOTO 10485
10500     CONTINUE
10499   GOTO 10487
10501     IF((TERMA0(3).NE.1))GOTO 10502
            AAABS0=192
            AAABT0=5
            GOTO 10485
10503     CONTINUE
10502     AAABS0=192
          AAABT0=6
          GOTO 10485
10505     IF((TERMA0(3).NE.1))GOTO 10506
            AAABS0=192
            AAABT0=7
            GOTO 10485
10507       AAABS0=168
            AAABT0=8
            GOTO 10485
10506       AAABS0=251
            AAABT0=9
            GOTO 10485
10510     CONTINUE
10509   GOTO 10487
10511     IF((TERMA0(3).NE.1))GOTO 10512
            AAABS0=192
            AAABT0=10
            GOTO 10485
10513       AAABS0=169
            AAABT0=11
            GOTO 10485
10512       AAABS0=253
            AAABT0=12
            GOTO 10485
10516     CONTINUE
10515   GOTO 10487
10517     IF((TERMA0(3).NE.1))GOTO 10518
            AAABS0=192
            AAABT0=13
            GOTO 10485
10519       AAABS0=161
            AAABT0=14
            GOTO 10485
10518       AAABS0=252
            AAABT0=15
            GOTO 10485
10522     CONTINUE
10521   GOTO 10487
10523     IF((TERMA0(3).NE.1))GOTO 10524
            AAABS0=192
            AAABT0=16
            GOTO 10485
10525       AAABS0=167
            AAABT0=17
            GOTO 10485
10524       AAABS0=224
            AAABT0=18
            GOTO 10485
10528     CONTINUE
10527   GOTO 10487
10529     IF((TERMA0(3).NE.1))GOTO 10530
            AAABS0=192
            AAABT0=19
            GOTO 10485
10531       AAABS0=223
            AAABT0=20
            GOTO 10485
10530       AAABS0=254
            AAABT0=21
            GOTO 10485
10534     CONTINUE
10533   GOTO 10487
10535     AAABS0=141
          AAABT0=22
          GOTO 10485
10536     AAABS0=138
          AAABT0=23
          GOTO 10485
10490   IF(AAABV0.EQ.138)GOTO 10535
        AAABW0=AAABV0-191
        GOTO(10501,10491,10491,10491,10491,10491,10491,10491,10491,10491
     *,10491,10491,10491,10491,10491,10491,10491,10491,10491,10491,10491
     *,10491,10491,10491,10491,10491,10491,10538,10538,10538,10538,10538
     *,10523,10496,10496,10496,10496,10496,10496,10496,10496,10496,10496
     *,10496,10496,10496,10496,10496,10496,10496,10496,10496,10496,10496
     *,10496,10496,10496,10496,10496,10505,10517,10511,10529),AAABW0
10538     AAABS0=C
          AAABT0=24
          GOTO 10485
10539   CONTINUE
10495 GOTO 10487
10488 AAABU0=1
      GOTO 10486
10540 TPUTL$=I-1
      RETURN
10486 IF((BP.LE.0))GOTO 10541
        CALL TNOUA(BUF,BP)
10541 BP=0
      GOTO 10542
10485 IF((BP.LT.102*2))GOTO 10543
        AAABU0=2
        GOTO 10486
10544 CONTINUE
10543 IF((AND(BP,1).NE.0))GOTO 10545
        BUF(RS(BP,1)+1)=XOR(LS(AAABS0,8),RT(BUF(RS(BP,1)+1),8))
        GOTO 10546
10545   BUF(RS(BP,1)+1)=XOR(LT(BUF(RS(BP,1)+1),8),AAABS0)
10546 BP=BP+(1)
      GOTO 10547
10542 GOTO(10540,10544),AAABU0
      GOTO 10542
10547 GOTO(10493,10487,10487,10500,10503,10487,10507,10487,10510,10513, 
     *    10487,10516,10519,10487,10522,10525,10487,10528,10531,10487,  
     *   10534,10536,10487,10539),AAABT0
      GOTO 10547
      END
      LOGICAL FUNCTION TQUIT$(FLAG)
      LOGICAL FLAG
      INTEGER CODE
      CALL QUIT$(FLAG)
      IF((.NOT.FLAG))GOTO 10548
        CALL TTY$RS(:140000,CODE)
        CALL T1OU(138)
10548 TQUIT$=FLAG
      RETURN
      END
      INTEGER FUNCTION TREAD$(BUF,NW,F)
      INTEGER BUF(1),NW,F
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      I=0
      GOTO 10551
10549 I=I+(1)
10551 IF((I.GE.NW))GOTO 10550
        CALL C1IN(BUF(I+1))
        IF((BUF(I+1).EQ.138))GOTO 10553
        IF((BUF(I+1).EQ.131))GOTO 10553
        GOTO 10549
10553     I=I+(1)
          GOTO 10550
10550 TREAD$=I
      RETURN
      END
      INTEGER FUNCTION TRUNC(FD)
      INTEGER FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER F
      INTEGER MAPSU
      INTEGER OFF
      INTEGER AAABX0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      F=MAPSU(FD)
      IF((F.LT.1))GOTO 10555
      IF((F.GT.128))GOTO 10555
      GOTO 10554
10555   TRUNC=-3
        RETURN
10554 OFF=F*16-16+1
      IF((AND(FDFLA0(OFF),:020000).EQ.0))GOTO 10557
      IF((AND(FDFLA0(OFF),:004000).NE.0))GOTO 10557
      GOTO 10556
10557   TRUNC=-3
        RETURN
10556 CALL FLUSH$(F)
      AAABX0=FDDEV0(OFF)
      GOTO 10558
10559   TRUNC=-2
        RETURN
10560   CALL PRWF$$(:4,FDUNI0(OFF),LOC(0),0,INTL(0),0,ERRCO0)
        IF((ERRCO0.NE.0))GOTO 10562
          TRUNC=-2
          RETURN
10563   TRUNC=-2
        RETURN
10558 GOTO(10559,10560,10563),AAABX0
10562 TRUNC=-3
      RETURN
      END
      INTEGER FUNCTION TSCAN$(PATH,BUF,CLEV,NLEV,ACTION)
      INTEGER BUF(32),CLEV,NLEV,ACTION
      INTEGER PATH(180)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER TYPE,CODE,I,L,PWD(3),OPWD(3),NPWD(3)
      INTEGER FOLLOW,CTOC,EXPAND,EQUAL,UPKFN$
      INTEGER AAABY0
      INTEGER AAABZ0
      INTEGER AAACA0
      INTEGER AAACB0
      INTEGER AAACC0
      INTEGER AAACD0(9)
      INTEGER AAACE0(4)
      INTEGER AAACF0
      INTEGER AAACG0(24)
      LOGICAL AAACH0
      INTEGER AAACI0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAACD0/189,199,225,212,229,227,232,189,0/
      DATA AAACE0/249,229,243,0/
      DATA AAACG0/233,238,160,244,243,227,225,238,164,186,160,227,225,23
     *8,167,244,160,232,225,240,240,229,238,0/
      TSATA0=0
      IF((CLEV.NE.0))GOTO 10569
        IF((EXPAND(AAACD0,TSPAT0,180).EQ.-3))GOTO 10571
        IF((EQUAL(TSPAT0,AAACE0).EQ.0))GOTO 10571
        GOTO 10570
10571     TSGTA0=0
          GOTO 10572
10570     TSGTA0=1
10572   CLEV=1
        TSPSA0(CLEV)=CTOC(PATH,TSPAT0,180)+1
        IF((AND(ACTION,1).EQ.0))GOTO 10573
          AAABZ0=1
          GOTO 10565
10574   CONTINUE
10573   CALL SRCH$$(:1+:40000,:177777,0,TSUNA0(CLEV),TYPE,CODE)
        IF((CODE.EQ.0))GOTO 10575
          CLEV=0
          TSCAN$=-1
          RETURN
10575   CALL DIR$RD(:2,TSUNA0(CLEV),LOC(BUF),32,CODE)
        TSSTA0=3
10569 CONTINUE
10576   AAACF0=TSSTA0
        GOTO 10577
10578     IF((AND(ACTION,1).EQ.0))GOTO 10579
          IF((TSATA0.NE.0))GOTO 10579
            AAABZ0=2
            GOTO 10565
10580     CONTINUE
10579     IF((CLEV.LT.NLEV))GOTO 10581
            TSSTA0=3
            AAABY0=1
            GOTO 10564
10581     AAACA0=1
          GOTO 10566
10584     CALL AT$SWT(TSBFA0(2,CLEV),32,0,PWD,:2,CODE)
          IF((CODE.EQ.0))GOTO 10585
            TSSTA0=2
            TSCAN$=-3
            RETURN
10585     CLEV=CLEV+(1)
          CALL SRCH$$(:1+:40000,:177777,0,TSUNA0(CLEV),TYPE,CODE)
          IF((CODE.EQ.0))GOTO 10586
            TSSTA0=4
            TSCAN$=-3
            RETURN
10586     TSSTA0=3
        GOTO 10587
10588     IF((TSATA0.NE.0))GOTO 10589
            AAABZ0=3
            GOTO 10565
10590     CONTINUE
10589     TSSTA0=3
          AAABY0=2
          GOTO 10564
10592     IF((AND(ACTION,1).EQ.0))GOTO 10593
          IF((TSATA0.NE.0))GOTO 10593
            AAABZ0=4
            GOTO 10565
10594     CONTINUE
10593     PATH(TSPSA0(CLEV))=0
          CALL DIR$RD(:1,TSUNA0(CLEV),LOC(BUF),32,CODE)
          IF((CODE.EQ.0))GOTO 10595
            TSSTA0=5
            GOTO 10587
10595       IF((RS(BUF(1),8).EQ.2))GOTO 10598
            IF((RS(BUF(1),8).EQ.3))GOTO 10598
            GOTO 10597
10598         BUF(1)=0
              AAACC0=1
              GOTO 10568
10599         IF((AND(BUF(20),4103).NE.4))GOTO 10600
                AAACB0=1
                GOTO 10567
10601           TSSTA0=1
10600         IF((AND(BUF(20),7).NE.4))GOTO 10603
              IF((AND(ACTION,2).NE.0))GOTO 10603
              GOTO 10602
10603           TSCAN$=-2
                RETURN
10602       CONTINUE
10597     CONTINUE
10596   GOTO 10587
10604     IF((AND(ACTION,1).EQ.0))GOTO 10605
          IF((TSATA0.NE.0))GOTO 10605
            AAABZ0=5
            GOTO 10565
10606     CONTINUE
10605     CALL SRCH$$(:4,0,0,TSUNA0(CLEV),0,CODE)
          TSSTA0=4
          IF((AND(ACTION,8).EQ.0))GOTO 10587
            TSCAN$=0
            RETURN
10608     CLEV=CLEV-(1)
          IF((CLEV.GT.0))GOTO 10609
            GOTO 10610
10609     AAABZ0=6
          GOTO 10565
10611     TSSTA0=3
          AAABY0=3
          GOTO 10564
10577   GOTO(10578,10588,10592,10608,10604),AAACF0
          CALL ERROR(AAACG0)
10587 CONTINUE
10583 GOTO 10576
10610 TSCAN$=-1
      RETURN
10564 IF((AND(ACTION,4).EQ.0))GOTO 10614
        CALL MOVE$(TSBFA0(1,CLEV),BUF,32)
        BUF(1)=1
        TSCAN$=-2
        RETURN
10566 CALL GPAS$$(TSBFA0(2,CLEV),32,OPWD,NPWD,CODE)
      CALL TEXTO$(OPWD,6,AAACI0,AAACH0)
      IF((CODE.NE.10))GOTO 10615
        PWD(1)='  '
        PWD(2)='  '
        PWD(3)='  '
        GOTO 10616
10615   IF((TSGTA0.NE.1))GOTO 10617
        IF((.NOT.AAACH0))GOTO 10617
          PWD(1)=NPWD(1)
          PWD(2)=NPWD(2)
          PWD(3)=NPWD(3)
          GOTO 10618
10617     PWD(1)=OPWD(1)
          PWD(2)=OPWD(2)
          PWD(3)=OPWD(3)
10618 CONTINUE
10616 DO 10619 I=1,3
        TSPWA0(I,CLEV)=PWD(I)
10619 CONTINUE
10620 L=TSEOS0
      IF((PWD(1).EQ.'  '))GOTO 10621
      IF((PWD(1).EQ.0))GOTO 10621
        PATH(L)=186
        L=L+(1+UPKFN$(PWD,6,PATH(L+1),180-L))
10621 TSPSA0(CLEV+1)=L
      GOTO 10584
10568 L=TSPSA0(CLEV)
      IF((L.LE.1))GOTO 10623
        PATH(L)=175
        L=L+(1)
10623 L=L+(UPKFN$(BUF(2),32,PATH(L),180-L+1))
      TSEOS0=L
      GOTO 10599
10567 CALL MOVE$(BUF,TSBFA0(1,CLEV),32)
      GOTO 10601
10565 TSATA0=1
      CALL AT$HOM(CODE)
      IF((FOLLOW(TSPAT0,0).NE.-3))GOTO 10626
        TSSTA0=5
        TSCAN$=-3
        RETURN
10626 I=1
      GOTO 10629
10627 I=I+(1)
10629 IF((I.GE.CLEV))GOTO 10631
        CALL AT$SWT(TSBFA0(2,I),32,0,TSPWA0(1,I),:2,CODE)
        IF((CODE.EQ.0))GOTO 10627
          TSSTA0=5
          TSCAN$=-3
          RETURN
10631 GOTO(10574,10580,10590,10594,10606,10611),AAABZ0
      GOTO 10631
10614 GOTO(10576,10587,10587),AAABY0
      GOTO 10614
      END
      INTEGER FUNCTION TSEEK$(POS,F,RA)
      INTEGER * 4 POS
      INTEGER F,RA
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      INTEGER JUNK
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((RA.EQ.0))GOTO 10633
      IF((POS.LT.0))GOTO 10633
      GOTO 10632
10633   TSEEK$=-3
        RETURN
10632 I=1
      GOTO 10636
10634 I=I+(1)
10636 IF((I.GT.POS))GOTO 10635
        CALL C1IN(JUNK)
      GOTO 10634
10635 TSEEK$=-2
      RETURN
      END
      INTEGER FUNCTION TTYP$F(TTYPE)
      INTEGER TTYPE(1)
      INTEGER FD,PID,I,J
      INTEGER OPEN,CTOI,GETLIN,TTYP$V
      INTEGER STR(102)
      INTEGER AAACJ0(11)
      DATA AAACJ0/189,244,229,242,237,236,233,243,244,189,0/
      FD=OPEN(AAACJ0,1)
      IF((FD.NE.-3))GOTO 10637
        TTYPE(1)=0
        TTYP$F=0
        RETURN
10637 CALL DATE(6,PID)
      TTYPE(1)=0
10638 IF((GETLIN(STR,FD).EQ.-1))GOTO 10639
        I=1
        J=CTOI(STR(6),I)
        IF((J.NE.PID))GOTO 10638
          I=11
10641     IF((STR(I).NE.160))GOTO 10642
            I=I+(1)
          GOTO 10641
10642     J=1
          GOTO 10645
10643     I=I+(1)
          J=J+(1)
10645     IF((I.GT.16))GOTO 10644
          IF((STR(I).EQ.0))GOTO 10644
          IF((STR(I).EQ.160))GOTO 10644
            TTYPE(J)=STR(I)
          GOTO 10643
10644     TTYPE(J)=0
          GOTO 10639
10639 CALL CLOSE(FD)
      IF((TTYPE(1).NE.0))GOTO 10646
        TTYP$F=0
        RETURN
10646 TTYP$F=TTYP$V(TTYPE)
      RETURN
      END
      SUBROUTINE TTYP$L
      INTEGER I,COL
      INTEGER INPUT,LENGTH
      INTEGER TTYPE(102),DESC(102)
      INTEGER FD
      INTEGER OPEN
      INTEGER AAACK0
      INTEGER AAACL0(18)
      INTEGER AAACM0(9)
      INTEGER AAACN0(8)
      INTEGER AAACO0(3)
      INTEGER AAACP0(14)
      INTEGER AAACQ0(3)
      INTEGER AAACR0(3)
      INTEGER AAACS0(14)
      DATA AAACL0/212,229,242,237,233,238,225,236,160,244,249,240,229,24
     *3,186,170,238,0/
      DATA AAACM0/189,244,244,249,240,229,243,189,0/
      DATA AAACN0/170,243,170,172,172,172,243,0/
      DATA AAACO0/170,238,0/
      DATA AAACP0/160,160,170,184,172,172,174,243,174,170,163,243,160,0/
      DATA AAACQ0/170,238,0/
      DATA AAACR0/170,238,0/
      DATA AAACS0/160,160,170,184,172,172,174,243,174,170,243,170,238,0/
      CALL PRINT(1,AAACL0)
      FD=OPEN(AAACM0,1)
      IF((FD.NE.-3))GOTO 10648
        RETURN
10648 COL=1
10649 IF((INPUT(FD,AAACN0,TTYPE,DESC).EQ.-1))GOTO 10650
        I=1
10651   IF((DESC(I).NE.160))GOTO 10652
          I=I+(1)
        GOTO 10651
10652   AAACK0=1
        GOTO 10647
10650 IF((COL.EQ.1))GOTO 10654
        CALL PRINT(1,AAACO0)
10654 CALL CLOSE(FD)
      RETURN
10647 IF((COL.NE.1))GOTO 10655
        CALL PRINT(1,AAACP0,TTYPE,25,DESC(I))
        IF((LENGTH(DESC(I)).LE.25))GOTO 10656
          CALL PRINT(1,AAACQ0)
          GOTO 10649
10656     COL=2
10657   GOTO 10649
10655   IF((LENGTH(DESC(I)).LE.25))GOTO 10659
          CALL PRINT(1,AAACR0)
10659   CALL PRINT(1,AAACS0,TTYPE,DESC(I))
        COL=1
10658 GOTO 10649
      END
      INTEGER FUNCTION TTYP$Q(TTYPE,BLANK0)
      INTEGER TTYPE(1)
      INTEGER BLANK0
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      INTEGER EQUAL,INPUT,TTYP$V
      INTEGER STR(102)
      INTEGER AAACT0(24)
      INTEGER AAACU0(2)
      INTEGER AAACV0(5)
      INTEGER AAACW0(45)
      INTEGER AAACX0(3)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAACT0/197,238,244,229,242,160,244,229,242,237,233,238,225,23
     *6,160,244,249,240,229,186,160,170,243,0/
      DATA AAACU0/191,0/
      DATA AAACV0/232,229,236,240,0/
      DATA AAACW0/201,238,246,225,236,233,228,160,244,229,242,237,233,23
     *8,225,236,160,244,249,240,229,187,160,229,238,244,229,242,160,167,
     *191,167,160,230,239,242,160,232,229,236,240,174,170,238,0/
      DATA AAACX0/170,238,0/
10661 IF((INPUT(1,AAACT0,STR).EQ.-1))GOTO 10662
        CALL MAPSTR(STR,1)
        IF((STR(1).NE.0))GOTO 10663
        IF((BLANK0.NE.1))GOTO 10663
          DO 10664 I=1,6
            TERMA0(I)=0
10664     CONTINUE
10665     TERMT0(1)=0
          TTYPE(1)=0
          TTYP$Q=1
          RETURN
10663     IF((EQUAL(STR,AAACU0).EQ.1))GOTO 10667
          IF((EQUAL(STR,AAACV0).EQ.1))GOTO 10667
          GOTO 10666
10667       CALL TTYP$L
            GOTO 10668
10666       IF((TTYP$V(STR).NE.1))GOTO 10669
              CALL CTOC(STR,TTYPE,7)
              TTYP$Q=1
              RETURN
10669         CALL PRINT(1,AAACW0)
10668   CONTINUE
      GOTO 10661
10662 CALL PRINT(1,AAACX0)
      TTYP$Q=0
      RETURN
      END
      INTEGER FUNCTION TTYP$R(TTYPE)
      INTEGER TTYPE(1)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER CHKSTR
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((CHKSTR(TERMT0,7).NE.0))GOTO 10670
        TTYPE(1)=0
        TTYP$R=0
        RETURN
10670 CALL CTOC(TERMT0,TTYPE,7)
      TTYP$R=1
      RETURN
      END
      INTEGER FUNCTION TTYP$V(TTYPE)
      INTEGER TTYPE(1)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I,A(6)
      INTEGER INPUT,EQUAL,CTOC
      INTEGER STR(102),JUNK(102)
      INTEGER FD
      INTEGER OPEN
      INTEGER AAACY0(9)
      INTEGER AAACZ0(20)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAACY0/189,244,244,249,240,229,243,189,0/
      DATA AAACZ0/170,243,170,172,172,172,243,170,249,170,249,170,249,17
     *0,249,170,249,170,249,0/
      FD=OPEN(AAACY0,1)
      IF((FD.NE.-3))GOTO 10671
        TTYP$V=0
        RETURN
10671 TTYP$V=0
10672 IF((INPUT(FD,AAACZ0,STR,JUNK,A(1),A(2),A(3),A(4),A(5),A(6)).EQ.-1)
     *)GOTO 10673
        IF((EQUAL(STR,TTYPE).NE.1))GOTO 10672
          CALL BREAK$(1)
          DO 10675 I=1,6
            TERMA0(I)=A(I)
10675     CONTINUE
10676     CALL CTOC(TTYPE,TERMT0,7)
          TTYP$V=1
          CALL BREAK$(0)
          GOTO 10673
10673 CALL CLOSE(FD)
      RETURN
      END
      INTEGER FUNCTION TWRIT$(BUF,NW,F)
      INTEGER BUF(1),NW,F
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      I=0
      GOTO 10679
10677 I=I+(1)
10679 IF((I.GE.NW))GOTO 10678
        CALL T1OU(BUF(I+1))
      GOTO 10677
10678 TWRIT$=I
      RETURN
      END
      INTEGER FUNCTION TYPE(C)
      INTEGER C
      INTEGER AAADA0
      INTEGER AAADB0
      AAADA0=C
      GOTO 10680
10681   TYPE=225
      GOTO 10682
10683   TYPE=176
      GOTO 10682
10680 AAADB0=AAADA0-175
      GOTO(10683,10683,10683,10683,10683,10683,10683,10683,10683,10683, 
     *    10684,10684,10684,10684,10684,10684,10684,10681,10681,10681,  
     *   10681,10681,10681,10681,10681,10681,10681,10681,10681,10681,   
     *  10681,10681,10681,10681,10681,10681,10681,10681,10681,10681,    
     * 10681,10681,10681,10684,10684,10684,10684,10684,10684,10681,10681
     *,10681,10681,10681,10681,10681,10681,10681,10681,10681,10681,10681
     *,10681,10681,10681,10681,10681,10681,10681,10681,10681,10681,10681
     *,10681,10681),AAADB0
10684   TYPE=C
10682 RETURN
      END
      INTEGER FUNCTION UPKFN$(NAME,LEN,STR,MAX)
      INTEGER NAME(1),LEN,MAX
      INTEGER STR(1)
      INTEGER L,CP
      INTEGER C
      INTEGER MAPDN
      L=1
      CP=0
      GOTO 10687
10685 L=L+(1)
10687 IF((L.GE.MAX))GOTO 10686
      IF((CP.GE.LEN))GOTO 10686
        IF((AND(CP,1).NE.0))GOTO 10688
          C=RS(NAME(RS(CP,1)+1),8)
          GOTO 10689
10688     C=RT(NAME(RS(CP,1)+1),8)
10689   CP=CP+(1)
        IF((C.NE.160))GOTO 10690
          GOTO 10686
10690   IF((C.EQ.175))GOTO 10692
        IF((C.EQ.192))GOTO 10692
        IF((C.EQ.189))GOTO 10692
        GOTO 10691
10692     IF((C.NE.189))GOTO 10693
            STR(L)=C
            GOTO 10694
10693       STR(L)=192
10694     L=L+(1)
          IF((L.LT.MAX))GOTO 10695
            GOTO 10686
10695   CONTINUE
10691   STR(L)=MAPDN(C)
      GOTO 10685
10686 STR(L)=0
      UPKFN$=L-1
      RETURN
      END
      INTEGER FUNCTION VFYUSR(USER)
      INTEGER USER(1)
      INTEGER KEY(33),LINE(102)
      INTEGER LEN
      INTEGER CTOC,GETLIN,LENGTH,STRCMP
      INTEGER FD
      INTEGER OPEN
      INTEGER AAADC0(11)
      INTEGER AAADD0
      DATA AAADC0/189,245,243,229,242,236,233,243,244,189,0/
      IF((LENGTH(USER).LT.33))GOTO 10696
        VFYUSR=-3
        RETURN
10696 FD=OPEN(AAADC0,1)
      IF((FD.NE.-3))GOTO 10697
        CALL REMARK('in vfyusr: can''t read user list.')
        VFYUSR=-3
        RETURN
10697 LEN=CTOC(USER,KEY,33)+1
      GOTO 10700
10698 LEN=LEN+(1)
10700 IF((LEN.GE.33))GOTO 10699
        KEY(LEN)=160
      GOTO 10698
10699 KEY(33)=0
      CALL MAPSTR(KEY,2)
      VFYUSR=-3
10701 IF((GETLIN(LINE,FD).EQ.-1))GOTO 10702
        LINE(33)=0
        AAADD0=STRCMP(LINE,KEY)
        GOTO 10703
10704     VFYUSR=-2
          GOTO 10702
10703   IF(AAADD0.EQ.2)GOTO 10704
      GOTO 10701
10702 CALL CLOSE(FD)
      RETURN
      END
      INTEGER FUNCTION VT$ALC(TBL,C)
      INTEGER TBL
      INTEGER C
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I,J
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      I=1
      GOTO 10707
10705 I=I+(1)
10707 IF((I.GT.20))GOTO 10706
      IF((FNUSE0(I).NE.1))GOTO 10706
      GOTO 10705
10706 IF((I.LE.20))GOTO 10708
        VT$ALC=-3
        RETURN
10708 FNUSE0(I)=1
      DO 10709 J=1,128
        FNTAB0(J,I)=0
10709 CONTINUE
10710 FNTAB0(C,TBL)=I+5000
      TBL=I
      VT$ALC=-2
      RETURN
      END
      INTEGER FUNCTION VT$CLR(DUMMY)
      INTEGER DUMMY
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER AAADE0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((TCCLE0(1).NE.0))GOTO 10711
        VT$CLR=-3
        RETURN
10711 AAADE0=1
      GOTO 10714
10712 AAADE0=AAADE0+(1)
10714 IF((TCCLE0(AAADE0).EQ.0))GOTO 10713
        CALL TNOUA(LS(TCCLE0(AAADE0),8),1)
      GOTO 10712
10713 CALL VT$DEL(TCCLH0)
      VT$CLR=-2
      RETURN
      END
      SUBROUTINE VT$DB
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER STR(102)
      INTEGER AAADF0(23)
      INTEGER AAADG0(13)
      INTEGER AAADH0(13)
      INTEGER AAADI0(13)
      INTEGER AAADJ0(12)
      INTEGER AAADK0(12)
      INTEGER AAADL0(13)
      INTEGER AAADM0(10)
      INTEGER AAADN0(12)
      INTEGER AAADO0(8)
      INTEGER AAADP0(9)
      INTEGER AAADQ0(8)
      INTEGER AAADR0(16)
      INTEGER AAADS0(16)
      INTEGER AAADT0(14)
      INTEGER AAADU0(16)
      INTEGER AAADV0(17)
      INTEGER AAADW0(13)
      INTEGER AAADX0(14)
      INTEGER AAADY0(14)
      INTEGER AAADZ0(13)
      INTEGER AAAEA0(14)
      INTEGER AAAEB0(13)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAADF0/205,225,248,242,239,247,189,170,233,172,160,205,225,24
     *8,227,239,236,189,170,233,170,238,0/
      DATA AAADG0/227,236,229,225,242,223,243,227,242,229,229,238,0/
      DATA AAADH0/227,236,229,225,242,223,244,239,223,229,239,236,0/
      DATA AAADI0/227,236,229,225,242,223,244,239,223,229,239,243,0/
      DATA AAADJ0/227,245,242,243,239,242,223,232,239,237,229,0/
      DATA AAADK0/227,245,242,243,239,242,223,236,229,230,244,0/
      DATA AAADL0/227,245,242,243,239,242,223,242,233,231,232,244,0/
      DATA AAADM0/227,245,242,243,239,242,223,245,240,0/
      DATA AAADN0/227,245,242,243,239,242,223,228,239,247,238,0/
      DATA AAADO0/225,226,243,223,240,239,243,0/
      DATA AAADP0/246,229,242,244,223,240,239,243,0/
      DATA AAADQ0/232,239,242,223,240,239,243,0/
      DATA AAADR0/227,239,239,242,228,223,227,232,225,242,189,170,243,17
     *0,238,0/
      DATA AAADS0/227,239,239,242,228,223,244,249,240,229,189,170,233,17
     *0,238,0/
      DATA AAADT0/243,229,241,223,244,249,240,229,189,170,233,170,238,0/
      DATA AAADU0/228,229,236,225,249,223,244,233,237,229,189,170,233,17
     *0,238,0/
      DATA AAADV0/247,242,225,240,223,225,242,239,245,238,228,189,170,24
     *9,170,238,0/
      DATA AAADW0/227,236,242,223,236,229,238,189,170,233,170,238,0/
      DATA AAADX0/227,229,239,243,223,236,229,238,189,170,233,170,238,0/
      DATA AAADY0/227,229,239,236,223,236,229,238,189,170,233,170,238,0/
      DATA AAADZ0/225,226,243,223,236,229,238,189,170,233,170,238,0/
      DATA AAAEA0/246,229,242,244,223,236,229,238,189,170,233,170,238,0/
      DATA AAAEB0/232,239,242,223,236,229,238,189,170,233,170,238,0/
      CALL PRINT(-15,AAADF0,MAXRO0,MAXCO0)
      CALL VT$DB1(AAADG0,TCCLE0)
      CALL VT$DB1(AAADH0,TCCLF0)
      CALL VT$DB1(AAADI0,TCCLG0)
      CALL VT$DB1(AAADJ0,TCCUR0)
      CALL VT$DB1(AAADK0,TCCUS0)
      CALL VT$DB1(AAADL0,TCCUT0)
      CALL VT$DB1(AAADM0,TCCUU0)
      CALL VT$DB1(AAADN0,TCCUV0)
      CALL VT$DB1(AAADO0,TCABS0)
      CALL VT$DB1(AAADP0,TCVER0)
      CALL VT$DB1(AAADQ0,TCHOR0)
      CALL CTOMN(TCCOO0,STR)
      CALL PRINT(-15,AAADR0,STR)
      CALL PRINT(-15,AAADS0,TCCOP0)
      CALL PRINT(-15,AAADT0,TCSEQ0)
      CALL PRINT(-15,AAADU0,TCDEM0)
      CALL PRINT(-15,AAADV0,TCWRA0)
      CALL PRINT(-15,AAADW0,TCCLR0)
      CALL PRINT(-15,AAADX0,TCCEO0)
      CALL PRINT(-15,AAADY0,TCCEP0)
      CALL PRINT(-15,AAADZ0,TCABT0)
      CALL PRINT(-15,AAAEA0,TCVES0)
      CALL PRINT(-15,AAAEB0,TCHOS0)
      RETURN
      END
      SUBROUTINE VT$DB1(TITLE,SEQ)
      INTEGER TITLE(1),SEQ(1)
      INTEGER I
      INTEGER STR(102)
      INTEGER AAAEC0(4)
      INTEGER AAAED0(4)
      INTEGER AAAEE0(6)
      DATA AAAEC0/170,243,189,0/
      DATA AAAED0/170,243,160,0/
      DATA AAAEE0/197,207,211,170,238,0/
      CALL PRINT(-15,AAAEC0,TITLE)
      I=1
      GOTO 10717
10715 I=I+(1)
10717 IF((SEQ(I).EQ.0))GOTO 10716
        CALL CTOMN(SEQ(I),STR)
        CALL PRINT(-15,AAAED0,STR)
      GOTO 10715
10716 CALL PRINT(-15,AAAEE0)
      RETURN
      END
      SUBROUTINE VT$DB2
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I,J
      INTEGER STR(102)
      INTEGER AAAEF0(25)
      INTEGER AAAEG0(4)
      INTEGER AAAEH0(5)
      INTEGER AAAEI0(5)
      INTEGER AAAEJ0(5)
      INTEGER AAAEK0(5)
      INTEGER AAAEL0(3)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAEF0/173,173,173,173,173,173,160,212,225,226,236,229,160,17
     *0,233,160,173,173,173,173,173,173,170,238,0/
      DATA AAAEG0/170,180,233,0/
      DATA AAAEH0/170,179,233,238,0/
      DATA AAAEI0/170,179,233,228,0/
      DATA AAAEJ0/170,179,233,227,0/
      DATA AAAEK0/160,170,179,243,0/
      DATA AAAEL0/170,238,0/
      I=1
      GOTO 10720
10718 I=I+(1)
10720 IF((I.GT.20))GOTO 10719
        IF((FNUSE0(I).NE.1))GOTO 10718
          CALL PRINT(-15,AAAEF0,I)
          J=1
          GOTO 10724
10722     J=J+(1)
10724     IF((J.GT.128))GOTO 10723
            IF((FNTAB0(J,I).GE.0))GOTO 10725
              CALL PRINT(-15,AAAEG0,FNTAB0(J,I))
              GOTO 10726
10725         IF((FNTAB0(J,I).LT.5000))GOTO 10727
                CALL PRINT(-15,AAAEH0,FNTAB0(J,I)-5000)
                GOTO 10728
10727           IF((FNTAB0(J,I).LT.4000))GOTO 10729
                  CALL PRINT(-15,AAAEI0,FNTAB0(J,I)-4000)
                  GOTO 10730
10729             IF((FNTAB0(J,I).LT.1000))GOTO 10731
                    CALL PRINT(-15,AAAEJ0,FNTAB0(J,I)-1000)
                    GOTO 10732
10731               CALL CTOMN(FNTAB0(J,I),STR)
                    CALL PRINT(-15,AAAEK0,STR)
10732           CONTINUE
10730         CONTINUE
10728       CONTINUE
10726       IF((MOD(J,16).NE.0))GOTO 10722
              CALL PRINT(-15,AAAEL0)
10733     GOTO 10722
10723   CONTINUE
10721 GOTO 10718
10719 RETURN
      END
      SUBROUTINE VT$DB3
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      INTEGER STR(4)
      INTEGER AAAEM0(25)
      INTEGER AAAEN0(14)
      INTEGER AAAEO0(3)
      INTEGER AAAEP0(4)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAEM0/173,173,173,173,160,196,229,230,233,238,229,160,212,22
     *5,226,236,229,160,173,173,173,173,170,238,0/
      DATA AAAEN0/204,225,243,244,223,228,229,230,189,170,233,170,238,0/
      DATA AAAEO0/170,238,0/
      DATA AAAEP0/170,180,243,0/
      CALL PRINT(-15,AAAEM0)
      CALL PRINT(-15,AAAEN0,LASTE0)
      I=1
      GOTO 10736
10734 I=I+(1)
10736 IF((I.GT.LASTE0))GOTO 10735
        IF((MOD(I,16).NE.0))GOTO 10737
          CALL PRINT(-15,AAAEO0)
10737   CALL CTOMN(DEFBU0(I),STR)
        CALL PRINT(-15,AAAEP0,STR)
      GOTO 10734
10735 RETURN
      END
      INTEGER FUNCTION VT$DEF(CH)
      INTEGER CH
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER SP,I,CL,TBL
      INTEGER VT$ALC,VT$GSQ
      INTEGER DELIM,C
      INTEGER SEQ(12)
      INTEGER AAAEQ0(23)
      INTEGER AAAER0(24)
      INTEGER AAAES0(23)
      INTEGER AAAET0(19)
      INTEGER AAAEU0(17)
      INTEGER AAAEV0(16)
      INTEGER AAAEW0(15)
      INTEGER AAAEX0(25)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAEQ0/206,239,160,242,239,239,237,160,230,239,242,160,228,22
     *9,230,233,238,233,244,233,239,238,0/
      DATA AAAER0/196,197,198,201,206,197,186,160,197,238,244,229,242,16
     *0,228,229,236,233,237,233,244,229,242,0/
      DATA AAAES0/196,197,198,201,206,197,186,160,197,238,244,229,242,16
     *0,243,229,241,245,229,238,227,229,0/
      DATA AAAET0/212,239,239,160,237,225,238,249,160,243,229,241,245,22
     *9,238,227,229,243,0/
      DATA AAAEU0/201,236,236,229,231,225,236,160,243,229,241,245,229,23
     *8,227,229,0/
      DATA AAAEV0/196,239,238,167,244,160,244,242,249,160,244,232,225,24
     *4,161,0/
      DATA AAAEW0/201,236,236,229,231,225,236,160,240,242,229,230,233,24
     *8,0/
      DATA AAAEX0/196,197,198,201,206,197,186,160,197,238,244,229,242,16
     *0,228,229,230,233,238,233,244,233,239,238,0/
      IF((LASTE0.LT.1000))GOTO 10738
        CALL VT$ERR(AAAEQ0)
        VT$DEF=-3
        RETURN
10738 CALL VTMSG(AAAER0,-2)
      CALL VTUPD(0)
      CALL C1IN(DELIM)
      SP=VT$GSQ(AAAES0,DELIM,SEQ,12)
      IF((SP.NE.-3))GOTO 10739
        VT$DEF=SP
        RETURN
10739 TBL=1
      I=1
      GOTO 10742
10740 I=I+(1)
10742 IF((I.GE.SP))GOTO 10741
        C=FNTAB0(SEQ(I)-127,TBL)
        GOTO 10743
10744     IF((VT$ALC(TBL,SEQ(I)-127).NE.-3))GOTO 10740
            CALL VT$ERR(AAAET0)
            VT$DEF=-3
            RETURN
10747     CALL VT$ERR(AAAEU0)
          VT$DEF=-3
          RETURN
10743   IF((C.EQ.0))GOTO 10744
        IF((C.LT.5000))GOTO 10747
          TBL=C-5000
10746 GOTO 10740
10741 CL=SEQ(I)-127
      C=FNTAB0(CL,TBL)
      GOTO 10748
10749   CALL VT$ERR(AAAEV0)
        VT$DEF=-3
        RETURN
10752   CALL VT$RDF(CL,TBL)
      GOTO 10751
10748 IF((C.EQ.1029))GOTO 10749
      IF((C.EQ.1030))GOTO 10749
      IF((C.LT.4000))GOTO 10751
      IF((C.LT.5000))GOTO 10752
        CALL VT$ERR(AAAEW0)
        VT$DEF=-3
        RETURN
10751 LASTE0=LASTE0+(1)
      DEFBU0(LASTE0)=FNTAB0(CL,TBL)
      FNTAB0(CL,TBL)=LASTE0+4000
      LASTE0=LASTE0+(1)
      SP=VT$GSQ(AAAEX0,DELIM,DEFBU0(LASTE0),1000-LASTE0+1)
      IF((SP.NE.-3))GOTO 10753
        VT$DEF=-3
        RETURN
10753 LASTE0=LASTE0+(SP)
      CALL VTMSG(0,-2)
      CALL VTUPD(0)
      VT$DEF=-2
      RETURN
      END
      SUBROUTINE VT$DEL(COUNT)
      INTEGER COUNT
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((COUNT.GT.0))GOTO 10754
        RETURN
10754 I=(INTL(COUNT)*TCSPE0)/10000
10755 IF((I.LE.0))GOTO 10756
        CALL TNOUA(LS(128,8),1)
        I=I-(1)
      GOTO 10755
10756 RETURN
      END
      SUBROUTINE VT$DSW
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER FOUND,TBL,ENT,I,CT
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      CT=0
10757   FOUND=0
        DO 10758 TBL=1,20
          IF((FNUSE0(TBL).NE.1))GOTO 10760
            DO 10761 ENT=1,128
              IF((FNTAB0(ENT,TBL).EQ.0))GOTO 10763
                GOTO 10758
10763         CONTINUE
10761       CONTINUE
10762       FOUND=1
            GOTO 10759
10760     CONTINUE
10758   CONTINUE
10759   IF((FOUND.NE.0))GOTO 10764
          GOTO 10765
10764   FNUSE0(TBL)=0
        DO 10766 I=1,20
          IF((FNUSE0(I).NE.1))GOTO 10768
            DO 10769 ENT=1,128
              IF((FNTAB0(ENT,I).NE.5000+TBL))GOTO 10771
                FNTAB0(ENT,I)=0
10771         CONTINUE
10769       CONTINUE
10770     CONTINUE
10768     CONTINUE
10766   CONTINUE
10767   CT=CT+(1)
      GOTO 10757
10765 RETURN
      END
      SUBROUTINE VT$ERR(MSG)
      INTEGER MSG(1)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      CALL VTMSG(MSG,-2)
      CALL VTUPD(0)
      PBPTR0=0
      CALL T1OU(135)
      RETURN
      END
      INTEGER FUNCTION VT$GET(ROW,CCOL,START,LEN)
      INTEGER ROW,CCOL,START,LEN
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER TABPOS,SCANP0,TBL,COL,NEWCOL,GOBBLE,INSERT
      INTEGER I,J,POS,STATUS,LASTS0
      INTEGER VT$IDF,VT$DEF,VT$NDF
      INTEGER C,CI,TERMI0,STORE
      INTEGER AAAFA0
      INTEGER AAAFC0
      INTEGER AAAFD0
      INTEGER AAAFE0
      INTEGER AAAFF0
      INTEGER AAAFG0(7)
      INTEGER AAAFH0(5)
      INTEGER AAAFI0
      INTEGER AAAFJ0(8)
      INTEGER AAAFK0(7)
      INTEGER AAAEY0
      INTEGER AAAEZ0
      INTEGER AAAFL0
      INTEGER AAAFB0
      INTEGER AAAFM0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAFG0/201,206,211,197,210,212,0/
      DATA AAAFH0/195,193,211,197,0/
      DATA AAAFJ0/199,193,210,194,193,199,197,0/
      DATA AAAFK0/205,193,210,199,201,206,0/
      TERMI0=0
      COL=CCOL-START
      LASTS0=-3
      STATUS=-2
10776 IF((TERMI0.NE.0))GOTO 10777
        COL=MAX0(1,MIN0(COL,LEN))
        IF((STATUS.NE.-3))GOTO 10778
          CALL TNOUA(LS(135,8),1)
          GOTO 10779
10778     IF((LASTS0.NE.-3))GOTO 10780
            CALL VTMSG(0,-2)
            CALL VTUPD(0)
10780   CONTINUE
10779   LASTS0=STATUS
        STATUS=-2
        CALL VTMOVE(ROW,COL+START-1)
        AAAFE0=1
        GOTO 10775
10781   NEWCOL=COL
        STORE=-1
        GOBBLE=0
        INSERT=INSER0
        AAAFF0=C
        GOTO 10782
10783     NEWCOL=NEWCOL-(1)
        GOTO 10784
10785     AAAFB0=1001
          AAAFC0=1
          GOTO 10773
10786     NEWCOL=TABPOS
        GOTO 10784
10787     NEWCOL=1
        GOTO 10784
10788     AAAEY0=C
          AAAEZ0=1
          AAAFA0=1
          GOTO 10772
10789     IF((SCANP0.GT.0))GOTO 10790
            STATUS=-3
            GOTO 10776
10790     NEWCOL=SCANP0
        GOTO 10784
10791     NEWCOL=NEWCOL-(1)
          GOBBLE=1
        GOTO 10784
10792     AAAFB0=1001
          AAAFC0=2
          GOTO 10773
10793     NEWCOL=TABPOS
          GOBBLE=COL-TABPOS
        GOTO 10784
10794     GOBBLE=NEWCOL-1
          NEWCOL=1
        GOTO 10784
10795     AAAEY0=C
          AAAEZ0=0
          AAAFA0=2
          GOTO 10772
10796     IF((SCANP0.GT.0))GOTO 10797
            STATUS=-3
            GOTO 10776
10797     NEWCOL=SCANP0
          GOBBLE=COL-SCANP0
        GOTO 10784
10798     NEWCOL=NEWCOL+(1)
        GOTO 10784
10799     AAAFB0=1009
          AAAFC0=3
          GOTO 10773
10800     NEWCOL=TABPOS
        GOTO 10784
10801     I=LEN
          GOTO 10804
10802     I=I-(1)
10804     IF((I.LE.0))GOTO 10803
          IF((INBUF0(I).NE.160))GOTO 10803
          GOTO 10802
10803     NEWCOL=I+1
        GOTO 10784
10805     AAAEY0=C
          AAAEZ0=1
          AAAFA0=3
          GOTO 10772
10806     IF((SCANP0.GT.0))GOTO 10807
            STATUS=-3
            GOTO 10776
10807     NEWCOL=SCANP0
        GOTO 10784
10808     GOBBLE=1
        GOTO 10784
10809     AAAFB0=1009
          AAAFC0=4
          GOTO 10773
10810     GOBBLE=TABPOS-COL
        GOTO 10784
10811     GOBBLE=LEN-COL+1
        GOTO 10784
10812     AAAEY0=C
          AAAEZ0=0
          AAAFA0=4
          GOTO 10772
10813     IF((SCANP0.GT.0))GOTO 10814
            STATUS=-3
            GOTO 10776
10814     GOBBLE=SCANP0-COL
        GOTO 10784
10815     TERMI0=-4
        GOTO 10784
10816     TERMI0=-4
          GOBBLE=LEN-COL+1
        GOTO 10784
10817     TERMI0=C
        GOTO 10784
10818     INSERT=1
          STORE=160
        GOTO 10784
10819     AAAFB0=1009
          AAAFC0=5
          GOTO 10773
10820     INSERT=TABPOS-COL
          STORE=160
        GOTO 10784
10821     NEWCOL=NEWCOL+(1)
          INSERT=1
          STORE=138
        GOTO 10784
10822     TABSA0(COL)=1
          GOTO 10776
10823     TABSA0(COL)=0
          GOTO 10776
10824     DO 10825 I=1,85
            TABSA0(I)=0
10825     CONTINUE
10826     GOTO 10776
10827     IF((INSER0.NE.1))GOTO 10828
            INSER0=0
            CALL VTMSG(0,-3)
            CALL VTUPD(0)
            GOTO 10776
10828       INSER0=1
            CALL VTMSG(AAAFG0,-3)
            CALL VTUPD(0)
10829     GOTO 10776
10830     IF((INVER0.NE.1))GOTO 10831
            INVER0=0
            CALL VTMSG(0,-4)
            CALL VTUPD(0)
            GOTO 10776
10831       INVER0=1
            CALL VTMSG(AAAFH0,-4)
            CALL VTUPD(0)
10832     GOTO 10776
10833     GOBBLE=LEN
          NEWCOL=1
        GOTO 10784
10834     CALL VTUPD(1)
          GOTO 10776
10835     CALL C1IN(STORE)
          NEWCOL=NEWCOL+(1)
        GOTO 10784
10836     STATUS=VT$DEF(C)
          GOTO 10776
10837     STATUS=VT$NDF(C)
          GOTO 10776
10782   AAAFI0=AAAFF0-999
        GOTO(10783,10785,10787,10788,10791,10792,10794,10795,10798,10799
     *,10801,10805,10808,10809,10811,10812,10815,10816,10817,10817,10817
     *,10818,10819,10821,10827,10830,10833,10834,10835,10836,10837,10822
     *,10823,10824),AAAFI0
          IF((C.LT.160))GOTO 10838
          IF((C.GE.255))GOTO 10838
            NEWCOL=NEWCOL+(1)
            STORE=C
            IF((INVER0.NE.1))GOTO 10843
            IF((193.GT.C))GOTO 10841
            IF((C.GT.218))GOTO 10841
            GOTO 10840
10841       IF((225.GT.C))GOTO 10843
            IF((C.GT.250))GOTO 10843
            GOTO 10840
10840         STORE=XOR(STORE,32)
10839       GOTO 10843
10838       IF((C.GE.0))GOTO 10844
              TERMI0=C
              GOTO 10776
10844         IF((C.LT.4000))GOTO 10845
                STATUS=VT$IDF(C)
                GOTO 10776
10845           CALL VT$ERR(AAAFJ0)
                STATUS=-3
                GOTO 10776
10843   CONTINUE
10784   IF((NEWCOL.LT.1))GOTO 10847
        IF((NEWCOL.GT.LEN))GOTO 10847
        GOTO 10846
10847     CALL VT$ERR(AAAFK0)
          STATUS=-3
          GOTO 10776
10846   IF((STORE.EQ.-1))GOTO 10848
          IF((INSERT.LE.0))GOTO 10849
            I=LEN-INSERT
            J=LEN
            GOTO 10852
10850       J=J-(1)
            I=I-(1)
10852       IF((I.LT.COL))GOTO 10855
              INBUF0(J)=INBUF0(I)
            GOTO 10850
10853       J=J-(1)
10855       IF((J.LE.I))GOTO 10854
              INBUF0(J)=STORE
            GOTO 10853
10854       AAAFD0=1
            GOTO 10774
10849       POS=COL+START-1
            CALL VTMOVE(ROW,POS)
            IF((STORE.EQ.160))GOTO 10858
            IF((LASTC0(ROW).GE.POS))GOTO 10858
              LASTC0(ROW)=POS
10858       CALL VT$OUT(STORE)
            CURSC0(POS,ROW)=STORE
            NEWSC0(POS,ROW)=STORE
            INBUF0(COL)=STORE
10857     GOTO 10859
10848     IF((GOBBLE.LE.0))GOTO 10860
            I=NEWCOL
            J=NEWCOL+GOBBLE
            GOTO 10863
10861       I=I+(1)
            J=J+(1)
10863       IF((J.GT.LEN))GOTO 10866
              INBUF0(I)=INBUF0(J)
            GOTO 10861
10864       I=I+(1)
10866       IF((I.GT.LEN))GOTO 10865
              INBUF0(I)=160
            GOTO 10864
10865       AAAFD0=2
            GOTO 10774
10867     CONTINUE
10860   CONTINUE
10859   COL=NEWCOL
      GOTO 10776
10777 CCOL=START+COL
      VT$GET=TERMI0
      RETURN
10772 AAAFE0=2
      GOTO 10775
10868 IF((INVER0.NE.1))GOTO 10869
      IF((193.GT.C))GOTO 10871
      IF((C.GT.218))GOTO 10871
      GOTO 10870
10871 IF((225.GT.C))GOTO 10869
      IF((C.GT.250))GOTO 10869
      GOTO 10870
10870   C=XOR(C,32)
10869 IF((C.NE.AAAEY0))GOTO 10873
        C=LASTD0
10873 LASTD0=C
      IF((AAAEY0.EQ.1003))GOTO 10875
      IF((AAAEY0.EQ.1007))GOTO 10875
      GOTO 10874
10875   AAAFL0=-1
        GOTO 10876
10874   AAAFL0=+1
10876 SCANP0=COL
10877   IF((SCANP0.GE.1))GOTO 10878
          IF((AAAEZ0.NE.0))GOTO 10879
            GOTO 10880
10879       SCANP0=LEN
          GOTO 10881
10878     IF((SCANP0.LE.LEN))GOTO 10882
            IF((AAAEZ0.NE.0))GOTO 10883
              GOTO 10880
10883         SCANP0=1
            GOTO 10884
10882       SCANP0=SCANP0+(AAAFL0)
10884   CONTINUE
10881   IF((0.GE.SCANP0))GOTO 10885
        IF((SCANP0.GE.LEN))GOTO 10885
        IF((INBUF0(SCANP0).NE.C))GOTO 10885
          GOTO 10880
10885 CONTINUE
      IF((SCANP0.NE.COL))GOTO 10877
10880 IF((SCANP0.LE.0))GOTO 10887
      IF((SCANP0.GE.LEN))GOTO 10887
      IF((INBUF0(SCANP0).NE.C))GOTO 10887
      GOTO 10888
10887   SCANP0=0
10886 GOTO 10888
10773 AAAFM0=-1
      TABPOS=COL-1
      IF((AAAFB0.NE.1001))GOTO 10889
        AAAFM0=-1
        TABPOS=COL-1
        GOTO 10893
10889   AAAFM0=+1
        TABPOS=COL+1
10890 GOTO 10893
10891 TABPOS=TABPOS+(AAAFM0)
10893 IF((0.GE.TABPOS))GOTO 10895
      IF((TABPOS.GT.MAXCO0))GOTO 10895
        IF((TABSA0(TABPOS).EQ.0))GOTO 10891
          GOTO 10895
10774 CALL VT$PUT(INBUF0,ROW,START,LEN)
      CALL VTUPD(0)
      GOTO 10896
10775 TBL=1
10897   IF((PBPTR0.GT.0))GOTO 10898
          NESTI0=0
          CALL C1IN(CI)
          GOTO 10899
10898     CI=PBBUF0(PBPTR0)
          PBPTR0=PBPTR0-(1)
10899   C=FNTAB0(CI-127,TBL)
        IF((C.GE.5000))GOTO 10900
          GOTO 10902
10900   TBL=C-5000
      GOTO 10897
10895 GOTO(10786,10793,10800,10810,10820),AAAFC0
      GOTO 10895
10888 GOTO(10789,10796,10806,10813),AAAFA0
      GOTO 10888
10896 GOTO(10859,10867),AAAFD0
      GOTO 10896
10902 GOTO(10781,10868),AAAFE0
      GOTO 10902
      END
      INTEGER FUNCTION VT$GSQ(MSG,DELIM,SEQ,MAX)
      INTEGER MSG(1),DELIM,SEQ(1)
      INTEGER MAX
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER SP,TP
      INTEGER ENCODE,CTOMN
      INTEGER C
      INTEGER TEXT(85),DTEXT(4)
      INTEGER AAAFN0(9)
      INTEGER AAAFO0(9)
      INTEGER AAAFP0(23)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAFN0/170,243,160,168,170,243,169,186,0/
      DATA AAAFO0/212,239,239,160,236,239,238,231,0/
      DATA AAAFP0/197,237,240,244,249,160,243,229,241,245,229,238,227,22
     *9,160,233,236,236,229,231,225,236,0/
      CALL CTOMN(DELIM,DTEXT)
      TP=1+ENCODE(TEXT,85,AAAFN0,MSG,DTEXT)
      CALL VTMSG(TEXT,-2)
      CALL VTUPD(0)
      CALL C1IN(C)
      SP=1
      GOTO 10905
10903 SP=SP+(1)
10905 IF((C.EQ.DELIM))GOTO 10904
      IF((SP.GE.MAX))GOTO 10904
        IF((TP.GE.85-5))GOTO 10906
          TEXT(TP)=160
          TP=TP+(1+CTOMN(C,TEXT(TP+1)))
          CALL VTMSG(TEXT,-2)
          CALL VTUPD(0)
10906   SEQ(SP)=C
        CALL C1IN(C)
      GOTO 10903
10904 IF((SP.LT.MAX))GOTO 10907
        CALL VT$ERR(AAAFO0)
        SEQ(1)=0
        VT$GSQ=-3
        RETURN
10907 IF((SP.GT.1))GOTO 10908
        CALL VT$ERR(AAAFP0)
        SEQ(1)=0
        VT$GSQ=-3
        RETURN
10908 SEQ(SP)=0
      VT$GSQ=SP-1
      RETURN
      END
      INTEGER FUNCTION VT$IDF(C)
      INTEGER C
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I,LIM
      INTEGER AAAFQ0(29)
      INTEGER AAAFR0(20)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAFQ0/193,244,244,229,237,240,244,229,228,160,233,238,230,23
     *3,238,233,244,229,160,242,229,227,245,242,243,233,239,238,0/
      DATA AAAFR0/196,229,230,233,238,233,244,233,239,238,160,244,239,23
     *9,160,236,239,238,231,0/
      NESTI0=NESTI0+(1)
      IF((NESTI0.LE.20))GOTO 10909
        CALL VT$ERR(AAAFQ0)
        VT$IDF=-3
        RETURN
10909 LIM=C-4000+1
      I=LIM
      GOTO 10912
10910 I=I+(1)
10912 IF((DEFBU0(I).EQ.0))GOTO 10911
      GOTO 10910
10911 I=I-(1)
      PBPTR0=PBPTR0+(1)
      GOTO 10915
10913 I=I-(1)
      PBPTR0=PBPTR0+(1)
10915 IF((I.LT.LIM))GOTO 10914
      IF((PBPTR0.GE.400))GOTO 10914
        PBBUF0(PBPTR0)=DEFBU0(I)
      GOTO 10913
10914 IF((PBPTR0.LT.400))GOTO 10916
        CALL VT$ERR(AAAFR0)
        VT$IDF=-3
        RETURN
10916 PBPTR0=PBPTR0-(1)
      VT$IDF=-2
      RETURN
      END
      INTEGER FUNCTION VT$IER(MSG,NAME,LINE,FD)
      INTEGER MSG(1),NAME(1),LINE(1)
      INTEGER FD
      INTEGER AAAFS0(24)
      INTEGER AAAFT0(15)
      DATA AAAFS0/229,242,242,239,242,160,233,238,160,246,244,232,160,23
     *0,233,236,229,186,160,170,243,170,238,0/
      DATA AAAFT0/170,243,170,238,236,233,238,229,186,160,170,243,170,23
     *8,0/
      CALL PRINT(-15,AAAFS0,NAME)
      CALL PRINT(-15,AAAFT0,MSG,LINE)
      CALL CLOSE(FD)
      VT$IER=-3
      RETURN
      END
      INTEGER FUNCTION VT$NDF(CH)
      INTEGER CH
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER SP,TBL,I,CL
      INTEGER VT$GSQ
      INTEGER DELIM,C
      INTEGER SEQ(12)
      INTEGER AAAFU0(26)
      INTEGER AAAFV0(25)
      INTEGER AAAFW0(21)
      INTEGER AAAFX0(21)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA AAAFU0/213,206,196,197,198,201,206,197,186,160,197,238,244,22
     *9,242,160,228,229,236,233,237,233,244,229,242,0/
      DATA AAAFV0/213,206,196,197,198,201,206,197,186,160,197,238,244,22
     *9,242,160,243,229,241,245,229,238,227,229,0/
      DATA AAAFW0/211,229,241,245,229,238,227,229,160,238,239,244,160,22
     *8,229,230,233,238,229,228,0/
      DATA AAAFX0/211,229,241,245,229,238,227,229,160,238,239,244,160,22
     *8,229,230,233,238,229,228,0/
      CALL VTMSG(AAAFU0,-2)
      CALL VTUPD(0)
      CALL C1IN(DELIM)
      SP=VT$GSQ(AAAFV0,DELIM,SEQ,12)
      IF((SP.NE.-3))GOTO 10917
        VT$NDF=-3
        RETURN
10917 TBL=1
      I=1
      GOTO 10920
10918 I=I+(1)
10920 IF((I.GE.SP))GOTO 10919
        C=FNTAB0(SEQ(I)-127,TBL)
        IF((C.GE.5000))GOTO 10921
          CALL VT$ERR(AAAFW0)
          VT$NDF=-3
          RETURN
10921   TBL=C-5000
      GOTO 10918
10919 CL=SEQ(I)-127
      C=FNTAB0(CL,TBL)
      IF((C.LT.4000))GOTO 10923
      IF((C.GE.5000))GOTO 10923
      GOTO 10922
10923   CALL VT$ERR(AAAFX0)
        VT$NDF=-3
        RETURN
10922 CALL VT$RDF(CL,TBL)
      CALL VT$DSW
      CALL VTMSG(0,-2)
      CALL VTUPD(0)
      VT$NDF=-2
      RETURN
      END
      SUBROUTINE VT$OUT(CHR)
      INTEGER CHR
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER TCHR
      INTEGER AAAFY0
      INTEGER AAAFZ0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((CURRO0.NE.MAXRO0))GOTO 10924
      IF((CURCO0.NE.MAXCO0))GOTO 10924
        RETURN
10924 TCHR=OR(CHR,128)
      IF((TCHR.LT.160))GOTO 10925
      IF((TCHR.GE.255))GOTO 10925
        CALL TNOUA(LS(TCHR,8),1)
        GOTO 10926
10925   IF((TCSHJ0(1).EQ.0))GOTO 10928
        IF((TCHR.EQ.TCSHI0(1)))GOTO 10928
        IF((TCHR.LT.128))GOTO 10928
        IF((TCHR.GE.255))GOTO 10928
        GOTO 10927
10928     CALL TNOUA(LS(UNPRI0,8),1)
          GOTO 10929
10927     AAAFY0=1
          GOTO 10932
10930     AAAFY0=AAAFY0+(1)
10932     IF((TCSHJ0(AAAFY0).EQ.0))GOTO 10931
            CALL TNOUA(LS(TCSHJ0(AAAFY0),8),1)
          GOTO 10930
10931     CALL TNOUA(LS(TCHR+TCSHK0-128,8),1)
          AAAFZ0=1
          GOTO 10935
10933     AAAFZ0=AAAFZ0+(1)
10935     IF((TCSHI0(AAAFZ0).EQ.0))GOTO 10934
            CALL TNOUA(LS(TCSHI0(AAAFZ0),8),1)
          GOTO 10933
10934   CONTINUE
10929 CONTINUE
10926 IF((CURCO0.NE.MAXCO0))GOTO 10936
      IF((TCWRA0.NE.1))GOTO 10936
        CURCO0=1
        CURRO0=CURRO0+(1)
        GOTO 10937
10936   CURCO0=CURCO0+(1)
10937 RETURN
      END
      INTEGER FUNCTION VT$POS(ROW,COL,CROW,CCOL)
      INTEGER ROW,COL,CROW,CCOL
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      LOGICAL MISSIN
      INTEGER AAAGA0
      INTEGER AAAGB0
      INTEGER AAAGD0
      INTEGER AAAGF0
      INTEGER AAAGG0
      INTEGER AAAGH0
      INTEGER AAAGI0
      INTEGER AAAGJ0
      INTEGER AAAGK0
      INTEGER AAAGL0
      INTEGER AAAGM0
      INTEGER AAAGN0,AAAGO0,AAAGP0,AAAGQ0
      INTEGER AAAGR0
      INTEGER AAAGS0,AAAGT0,AAAGU0,AAAGV0,AAAGW0
      INTEGER AAAGX0
      INTEGER AAAGC0
      INTEGER AAAGY0,AAAGZ0,AAAHA0
      INTEGER AAAGE0
      INTEGER AAAHB0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((ROW.LT.1))GOTO 10943
      IF((COL.LT.1))GOTO 10943
      IF((ROW.GT.MAXRO0))GOTO 10943
      IF((COL.GT.MAXCO0))GOTO 10943
      GOTO 10942
10943   VT$POS=-3
        RETURN
10942 IF(MISSIN(CROW))GOTO 10944
      IF(MISSIN(CCOL))GOTO 10944
      IF((TCSEQ0.EQ.4))GOTO 10944
        IF((ROW.NE.CROW))GOTO 10945
        IF((IABS(CCOL-COL).GE.TCABT0))GOTO 10945
          IF((CCOL.LT.COL))GOTO 10946
          IF((TCCUS0(1).EQ.0))GOTO 10946
            I=CCOL-COL
            GOTO 10949
10947       I=I-(1)
10949       IF((I.LE.0))GOTO 10948
              AAAGG0=1
              GOTO 10952
10950         AAAGG0=AAAGG0+(1)
10952         IF((TCCUS0(AAAGG0).EQ.0))GOTO 10947
                CALL TNOUA(LS(TCCUS0(AAAGG0),8),1)
              GOTO 10950
10948       RETURN
10946       IF((TCCUT0(1).EQ.0))GOTO 10953
              I=COL-CCOL
              GOTO 10956
10954         I=I-(1)
10956         IF((I.LE.0))GOTO 10955
                AAAGH0=1
                GOTO 10959
10957           AAAGH0=AAAGH0+(1)
10959           IF((TCCUT0(AAAGH0).EQ.0))GOTO 10954
                  CALL TNOUA(LS(TCCUT0(AAAGH0),8),1)
                GOTO 10957
10955         RETURN
10953     CONTINUE
10945 CONTINUE
10944 AAAGI0=TCSEQ0
      GOTO 10960
10961   AAAGJ0=1
        GOTO 10964
10962   AAAGJ0=AAAGJ0+(1)
10964   IF((TCABS0(AAAGJ0).EQ.0))GOTO 10963
          CALL TNOUA(LS(TCABS0(AAAGJ0),8),1)
        GOTO 10962
10963   AAAGA0=1
        GOTO 10938
10965   AAAGB0=1
        GOTO 10939
10968   AAAGK0=1
        GOTO 10971
10969   AAAGK0=AAAGK0+(1)
10971   IF((TCABS0(AAAGK0).EQ.0))GOTO 10970
          CALL TNOUA(LS(TCABS0(AAAGK0),8),1)
        GOTO 10969
10970   AAAGB0=2
        GOTO 10939
10972   AAAGA0=2
        GOTO 10938
10974   AAAGL0=1
        GOTO 10977
10975   AAAGL0=AAAGL0+(1)
10977   IF((TCVER0(AAAGL0).EQ.0))GOTO 10976
          CALL TNOUA(LS(TCVER0(AAAGL0),8),1)
        GOTO 10975
10976   AAAGA0=3
        GOTO 10938
10978   CALL VT$DEL(TCPOS0)
        AAAGM0=1
        GOTO 10981
10979   AAAGM0=AAAGM0+(1)
10981   IF((TCHOR0(AAAGM0).EQ.0))GOTO 10980
          CALL TNOUA(LS(TCHOR0(AAAGM0),8),1)
        GOTO 10979
10980   AAAGB0=3
        GOTO 10939
10983   CALL VT$REL(ROW,COL,CROW,CCOL)
      GOTO 10967
10960 GOTO(10961,10968,10974,10983),AAAGI0
10967 CALL VT$DEL(TCPOS0)
      VT$POS=-2
      RETURN
10938 AAAGR0=TCCOP0
      GOTO 10984
10985   CALL TNOUA(LS(TCCOO0+ROW,8),1)
      GOTO 10996
10987   AAAGC0=ROW
        AAAGD0=1
        GOTO 10940
10989   AAAGE0=ROW
        AAAGF0=1
        GOTO 10941
10991   AAAGN0=511-10*(ROW-1)
        AAAGO0=MOD(AAAGN0,10)
        AAAGN0=AAAGN0/(10)
        AAAGP0=MOD(AAAGN0,10)
        AAAGN0=AAAGN0/(10)
        AAAGQ0=MOD(AAAGN0,10)
        CALL TNOUA(LS(160+16+AAAGQ0,8),1)
        CALL TNOUA(LS(160+16+AAAGP0,8),1)
        CALL TNOUA(LS(160+16+AAAGO0,8),1)
      GOTO 10996
10992   AAAGN0=ROW-1
        AAAGO0=MOD(AAAGN0,10)
        AAAGP0=AAAGN0/10
        IF((AAAGP0.EQ.0))GOTO 10993
          CALL TNOUA(LS(AAAGP0+176,8),1)
10993   CALL TNOUA(LS(AAAGO0+176,8),1)
        CALL TNOUA(LS(249,8),1)
      GOTO 10996
10994   AAAGO0=MOD(ROW,10)
        AAAGP0=ROW/10
        IF((AAAGP0.EQ.0))GOTO 10995
          CALL TNOUA(LS(AAAGP0+176,8),1)
10995   CALL TNOUA(LS(AAAGO0+176,8),1)
        CALL TNOUA(LS(187,8),1)
      GOTO 10996
10984 GOTO(10985,10987,10989,10985,10991,10992,10994),AAAGR0
10986 GOTO 10996
10939 AAAGX0=TCCOP0
      GOTO 10997
10998   CALL TNOUA(LS(TCCOO0+COL,8),1)
      GOTO 11010
11000   AAAGC0=COL
        AAAGD0=2
        GOTO 10940
11002   AAAGE0=COL
        AAAGF0=2
        GOTO 10941
11004   CALL TNOUA(LS(176+((COL-1)/10),8),1)
        CALL TNOUA(LS(176+MOD(COL-1,10),8),1)
      GOTO 11010
11005   AAAGW0=6*(COL-1)
        AAAGU0=MOD(AAAGW0,10)
        AAAGW0=AAAGW0/(10)
        AAAGT0=MOD(AAAGW0,10)
        AAAGW0=AAAGW0/(10)
        AAAGV0=MOD(AAAGW0,10)
        CALL TNOUA(LS(160+16+AAAGV0,8),1)
        CALL TNOUA(LS(160+16+AAAGT0,8),1)
        CALL TNOUA(LS(160+16+AAAGU0,8),1)
      GOTO 11010
11006   AAAGW0=COL-1
        AAAGU0=MOD(AAAGW0,10)
        AAAGT0=AAAGW0/10
        IF((AAAGT0.EQ.0))GOTO 11007
          CALL TNOUA(LS(AAAGT0+176,8),1)
11007   CALL TNOUA(LS(AAAGU0+176,8),1)
        CALL TNOUA(LS(195,8),1)
      GOTO 11010
11008   AAAGU0=MOD(COL,10)
        AAAGT0=COL/10
        IF((AAAGT0.EQ.0))GOTO 11009
          CALL TNOUA(LS(AAAGT0+176,8),1)
11009   CALL TNOUA(LS(AAAGU0+176,8),1)
        CALL TNOUA(LS(200,8),1)
      GOTO 11010
10997 GOTO(10998,11000,11002,11004,11005,11006,11008),AAAGX0
10999 GOTO 11010
10940 AAAGY0=AAAGC0-1
      AAAHA0=AAAGY0/10
      AAAGZ0=AAAGY0-10*AAAHA0
      AAAGY0=AAAGZ0+16*AAAHA0
      CALL TNOUA(LS(AAAGY0,8),1)
      GOTO 11011
10941 CALL TNOUA(LS(176,8),1)
      AAAHB0=AAAGE0-1
      CALL TNOUA(LS(176+(AAAHB0/10),8),1)
      CALL TNOUA(LS(176+MOD(AAAHB0,10),8),1)
      GOTO 11012
10996 GOTO(10965,10967,10978),AAAGA0
      GOTO 10996
11010 GOTO(10967,10972,10967),AAAGB0
      GOTO 11010
11012 GOTO(10996,11010),AAAGF0
      GOTO 11012
11011 GOTO(10996,11010),AAAGD0
      GOTO 11011
      END
      SUBROUTINE VT$PUT(STR,ROW,COL,CLEN)
      INTEGER ROW,COL,CLEN
      INTEGER STR(1)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I,LEN
      INTEGER C
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      LEN=CLEN
      IF((ROW.GT.MAXRO0))GOTO 11014
      IF((ROW.LT.1))GOTO 11014
      IF((COL.LT.1))GOTO 11014
      GOTO 11013
11014   PADRO0=1
        PADCO0=MAXCO0
        PADLE0=0
        RETURN
11013 IF((COL+LEN-1.LE.MAXCO0))GOTO 11015
        LEN=MAXCO0-COL+1
11015 IF((ROW.GE.ROWCH0))GOTO 11016
        ROWCH0=ROW
11016 IF((ROW.LE.ROWCI0))GOTO 11017
        ROWCI0=ROW
11017 IF((COL.GE.COLCH0(ROW)))GOTO 11018
        COLCH0(ROW)=COL
11018 IF((COL+LEN-1.LE.COLCI0(ROW)))GOTO 11019
        COLCI0(ROW)=COL+LEN-1
11019 IF((COL+LEN-1.GE.LASTC0(ROW)))GOTO 11020
        I=LEN-1
        GOTO 11023
11021   I=I-(1)
11023   IF((I.LT.0))GOTO 11024
          NEWSC0(COL+I,ROW)=STR(I+1)
        GOTO 11021
11020   I=LEN-1
        GOTO 11027
11025   I=I-(1)
11027   IF((I.LT.0))GOTO 11026
        IF((STR(I+1).NE.160))GOTO 11026
          NEWSC0(COL+I,ROW)=160
        GOTO 11025
11026   IF((I.LT.0))GOTO 11028
          LASTC0(ROW)=COL+I
          GOTO 11031
11029     I=I-(1)
11031     IF((I.LT.0))GOTO 11032
            NEWSC0(COL+I,ROW)=STR(I+1)
          GOTO 11029
11028     I=COL
          GOTO 11035
11033     I=I-(1)
11035     IF((I.LE.0))GOTO 11034
            C=NEWSC0(I,ROW)
            IF((C.EQ.160))GOTO 11033
              GOTO 11034
11034     LASTC0(ROW)=I
11032 CONTINUE
11024 PADRO0=ROW
      PADCO0=COL+LEN
      PADLE0=LEN
      RETURN
      END
      SUBROUTINE VT$RDF(C,TBL)
      INTEGER C,TBL
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER P,LEN,I,J,LIM
      INTEGER LENGTH
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      LIM=FNTAB0(C,TBL)
      P=LIM-4000
      FNTAB0(C,TBL)=DEFBU0(P)
      LEN=1+LENGTH(DEFBU0(P+1))
      I=P
      J=P+LEN+1
      GOTO 11039
11037 I=I+(1)
      J=J+(1)
11039 IF((J.GT.LASTE0))GOTO 11038
        DEFBU0(I)=DEFBU0(J)
      GOTO 11037
11038 LASTE0=LASTE0-(LEN+1)
      DO 11040 I=1,20
        IF((FNUSE0(I).NE.1))GOTO 11042
          DO 11043 J=1,128
            IF((FNTAB0(J,I).LT.LIM))GOTO 11045
            IF((FNTAB0(J,I).GE.5000))GOTO 11045
              FNTAB0(J,I)=FNTAB0(J,I)-(LEN+1)
11045       CONTINUE
11043     CONTINUE
11044   CONTINUE
11042   CONTINUE
11040 CONTINUE
11041 RETURN
      END
      SUBROUTINE VTCLR(SROWX,SCOLX,EROWX,ECOLX)
      INTEGER SROWX,SCOLX,EROWX,ECOLX
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER SROW,SCOL,EROW,LEN,I
      INTEGER BLANKS(85)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA BLANKS/85*160/
      SROW=MAX0(SROWX,1)
      SCOL=MAX0(SCOLX,1)
      EROW=MIN0(EROWX,MAXRO0)
      LEN=MIN0(ECOLX,MAXCO0)-SCOL+1
      I=SROW
      GOTO 11048
11046 I=I+(1)
11048 IF((I.GT.EROW))GOTO 11047
        CALL VT$PUT(BLANKS,I,SCOL,LEN)
      GOTO 11046
11047 RETURN
      END
      INTEGER FUNCTION VTDLIN(ROW,CNT)
      INTEGER ROW,CNT
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      LOGICAL MISSIN
      INTEGER I,J,COUNT
      INTEGER BLANKS(85)
      INTEGER AAAHC0
      INTEGER AAAHD0
      INTEGER AAAHE0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA BLANKS/85*160/
      COUNT=1
      IF(MISSIN(CNT))GOTO 11049
        COUNT=CNT
11049 IF((ROW.LT.1))GOTO 11051
      IF((ROW.GT.MAXRO0))GOTO 11051
      IF((COUNT.LT.1))GOTO 11051
      GOTO 11050
11051   VTDLIN=-3
        RETURN
11050 IF((COUNT+ROW-1.LE.MAXRO0))GOTO 11052
        COUNT=MAXRO0-ROW+1
11052 CALL VTMOVE(ROW,1)
      IF((TCDEL0(1).EQ.0))GOTO 11053
        I=1
        GOTO 11056
11054   I=I+(1)
11056   IF((I.GT.COUNT))GOTO 11060
          AAAHC0=1
          GOTO 11059
11057     AAAHC0=AAAHC0+(1)
11059     IF((TCDEL0(AAAHC0).EQ.0))GOTO 11058
            CALL TNOUA(LS(TCDEL0(AAAHC0),8),1)
          GOTO 11057
11058     CALL VT$DEL(TCLIN0)
        GOTO 11054
11053   I=ROW+COUNT
        GOTO 11063
11061   I=I+(1)
11063   IF((I.GT.MAXRO0))GOTO 11062
          J=1
          GOTO 11066
11064     J=J+(1)
11066     IF((J.GT.LASTC0(I)))GOTO 11065
            IF((CURSC0(J,I).EQ.CURSC0(J,I-COUNT)))GOTO 11064
              CALL VTMOVE(I-COUNT,J)
              CALL VT$OUT(CURSC0(J,I))
11067     GOTO 11064
11065     IF((LASTC0(I-COUNT).LE.LASTC0(I)))GOTO 11061
            IF((TCCLF0(1).EQ.0))GOTO 11076
              CALL VTMOVE(I-COUNT,J)
              AAAHD0=1
              GOTO 11072
11070         AAAHD0=AAAHD0+(1)
11072         IF((TCCLF0(AAAHD0).EQ.0))GOTO 11073
                CALL TNOUA(LS(TCCLF0(AAAHD0),8),1)
              GOTO 11070
11074         J=J+(1)
11076         IF((J.GT.LASTC0(I-COUNT)))GOTO 11075
                IF((CURSC0(J,I-COUNT).EQ.160))GOTO 11074
                  CALL VTMOVE(I-COUNT,J)
                  CALL VT$OUT(160)
11077         GOTO 11074
11075       CONTINUE
11073     CONTINUE
11068   GOTO 11061
11062   I=MAXRO0-COUNT+1
        GOTO 11080
11078   I=I+(1)
11080   IF((I.GT.MAXRO0))GOTO 11079
          IF((TCCLF0(1).EQ.0))GOTO 11081
            CALL VTMOVE(I,1)
            AAAHE0=1
            GOTO 11084
11082       AAAHE0=AAAHE0+(1)
11084       IF((TCCLF0(AAAHE0).EQ.0))GOTO 11078
              CALL TNOUA(LS(TCCLF0(AAAHE0),8),1)
            GOTO 11082
11081       J=1
            GOTO 11088
11086       J=J+(1)
11088       IF((J.GT.LASTC0(I)))GOTO 11087
              IF((CURSC0(J,I).EQ.160))GOTO 11086
                CALL VTMOVE(I,J)
                CALL VT$OUT(160)
11089       GOTO 11086
11087     CONTINUE
11085   GOTO 11078
11079 CONTINUE
11060 I=ROW
      GOTO 11092
11090 I=I+(1)
11092 IF((I+COUNT.GT.MAXRO0))GOTO 11095
        CALL MOVE$(CURSC0(1,I+COUNT),CURSC0(1,I),MAXCO0)
        CALL MOVE$(NEWSC0(1,I+COUNT),NEWSC0(1,I),MAXCO0)
        LASTC0(I)=LASTC0(I+COUNT)
        COLCI0(I)=COLCI0(I+COUNT)
        COLCH0(I)=COLCH0(I+COUNT)
      GOTO 11090
11093 I=I+(1)
11095 IF((I.GT.MAXRO0))GOTO 11094
        CALL MOVE$(BLANKS,CURSC0(1,I),MAXCO0)
        CALL MOVE$(BLANKS,NEWSC0(1,I),MAXCO0)
        LASTC0(I)=0
        COLCI0(I)=0
        COLCH0(I)=85
      GOTO 11093
11094 IF((ROW.GE.ROWCI0))GOTO 11096
        ROWCI0=ROWCI0-(COUNT)
11096 IF((ROW.GE.ROWCH0))GOTO 11097
        ROWCH0=ROWCH0-(COUNT)
11097 IF((ROWCI0.GE.0))GOTO 11098
        ROWCI0=0
11098 IF((ROWCH0.GE.0))GOTO 11099
        ROWCH0=0
11099 VTDLIN=-2
      RETURN
      END
      SUBROUTINE VTENB(ROW,COL,LEN)
      INTEGER ROW,COL,LEN
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((ROW.GT.MAXRO0))GOTO 11101
      IF((ROW.LT.1))GOTO 11101
      GOTO 11100
11101   RETURN
11100 INPUT0(ROW)=MAX0(1,MIN0(COL,MAXCO0))
      INPUU0(ROW)=MAX0(1,MIN0(COL+LEN-1,MAXCO0))
      RETURN
      END
      INTEGER FUNCTION VTGETL(STR,ROW,COL,CLEN)
      INTEGER STR(1)
      INTEGER ROW,COL,CLEN
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER POS,I,LEN
      INTEGER C
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      LEN=CLEN
      IF((ROW.LT.1))GOTO 11103
      IF((ROW.GT.MAXRO0))GOTO 11103
      GOTO 11102
11103   STR(1)=0
        VTGETL=0
        RETURN
11102 POS=MIN0(MAXCO0,COL+LEN-1)
11104 IF((POS.LT.COL))GOTO 11105
        C=NEWSC0(POS,ROW)
        IF((C.EQ.160))GOTO 11106
          GOTO 11105
11106   POS=POS-(1)
      GOTO 11104
11105 I=POS-COL+1
      LEN=I
      STR(I+1)=0
      IF((I.LE.0))GOTO 11107
11108     STR(I)=C
          I=I-(1)
          POS=POS-(1)
          IF((I.GT.0))GOTO 11109
            GOTO 11110
11109     C=NEWSC0(POS,ROW)
        GOTO 11108
11110 CONTINUE
11107 VTGETL=LEN
      RETURN
      END
      INTEGER FUNCTION VTILIN(ROW,CNT)
      INTEGER ROW,CNT
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      LOGICAL MISSIN
      INTEGER I,J,COUNT
      INTEGER BLANKS(85)
      INTEGER AAAHF0
      INTEGER AAAHG0
      INTEGER AAAHH0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA BLANKS/85*160/
      COUNT=1
      IF(MISSIN(CNT))GOTO 11111
        COUNT=CNT
11111 IF((ROW.LT.1))GOTO 11113
      IF((ROW.GT.MAXRO0))GOTO 11113
      IF((COUNT.LT.1))GOTO 11113
      GOTO 11112
11113   VTILIN=-3
        RETURN
11112 IF((COUNT+ROW-1.LE.MAXRO0))GOTO 11114
        COUNT=MAXRO0-ROW+1
11114 CALL VTMOVE(ROW,1)
      IF((TCINS0(1).EQ.0))GOTO 11115
        I=ROW
        GOTO 11118
11116   I=I+(1)
11118   IF((I.GE.ROW+COUNT))GOTO 11122
          AAAHF0=1
          GOTO 11121
11119     AAAHF0=AAAHF0+(1)
11121     IF((TCINS0(AAAHF0).EQ.0))GOTO 11120
            CALL TNOUA(LS(TCINS0(AAAHF0),8),1)
          GOTO 11119
11120     CALL VT$DEL(TCLIN0)
        GOTO 11116
11115   I=ROW
        GOTO 11125
11123   I=I+(1)
11125   IF((I.GE.ROW+COUNT))GOTO 11137
          IF((TCCLF0(1).EQ.0))GOTO 11126
            CALL VTMOVE(I,1)
            AAAHG0=1
            GOTO 11129
11127       AAAHG0=AAAHG0+(1)
11129       IF((TCCLF0(AAAHG0).EQ.0))GOTO 11123
              CALL TNOUA(LS(TCCLF0(AAAHG0),8),1)
            GOTO 11127
11126       J=1
            GOTO 11133
11131       J=J+(1)
11133       IF((J.GT.LASTC0(I)))GOTO 11132
              IF((CURSC0(J,I).EQ.160))GOTO 11131
                CALL VTMOVE(I,J)
                CALL VT$OUT(160)
11134       GOTO 11131
11132     CONTINUE
11130   GOTO 11123
11135   I=I+(1)
11137   IF((I.GT.MAXRO0))GOTO 11136
          J=1
          GOTO 11140
11138     J=J+(1)
11140     IF((J.GT.LASTC0(I-COUNT)))GOTO 11139
            IF((CURSC0(J,I).EQ.CURSC0(J,I-COUNT)))GOTO 11138
              CALL VTMOVE(I,J)
              CALL VT$OUT(CURSC0(J,I-COUNT))
11141     GOTO 11138
11139     IF((LASTC0(I).LE.LASTC0(I-COUNT)))GOTO 11135
            IF((TCCLF0(1).EQ.0))GOTO 11150
              CALL VTMOVE(I,J)
              AAAHH0=1
              GOTO 11146
11144         AAAHH0=AAAHH0+(1)
11146         IF((TCCLF0(AAAHH0).EQ.0))GOTO 11147
                CALL TNOUA(LS(TCCLF0(AAAHH0),8),1)
              GOTO 11144
11148         J=J+(1)
11150         IF((J.GT.LASTC0(I)))GOTO 11149
                IF((CURSC0(J,I).EQ.CURSC0(J,I-COUNT)))GOTO 11148
                  CALL VTMOVE(I,J)
                  CALL VT$OUT(CURSC0(J,I-COUNT))
11151         GOTO 11148
11149       CONTINUE
11147     CONTINUE
11142   GOTO 11135
11136   CALL VTMOVE(ROW,1)
11122 I=MAXRO0
      GOTO 11154
11152 I=I-(1)
11154 IF((I-COUNT.LT.ROW))GOTO 11157
        CALL MOVE$(CURSC0(1,I-COUNT),CURSC0(1,I),MAXCO0)
        CALL MOVE$(NEWSC0(1,I-COUNT),NEWSC0(1,I),MAXCO0)
        LASTC0(I)=LASTC0(I-COUNT)
        COLCI0(I)=COLCI0(I-COUNT)
        COLCH0(I)=COLCH0(I-COUNT)
      GOTO 11152
11155 I=I-(1)
11157 IF((I.LT.ROW))GOTO 11156
        CALL MOVE$(BLANKS,CURSC0(1,I),MAXCO0)
        CALL MOVE$(BLANKS,NEWSC0(1,I),MAXCO0)
        LASTC0(I)=0
        COLCI0(I)=0
        COLCH0(I)=85
      GOTO 11155
11156 IF((ROW.GE.ROWCI0))GOTO 11158
        ROWCI0=ROWCI0+(COUNT)
11158 IF((ROW.GE.ROWCH0))GOTO 11159
        ROWCH0=ROWCH0+(COUNT)
11159 IF((ROWCI0.LE.51))GOTO 11160
        ROWCI0=51
11160 IF((ROWCH0.LE.51))GOTO 11161
        ROWCH0=51
11161 VTILIN=-2
      RETURN
      END
      INTEGER FUNCTION VTINFO(KEY,INFO)
      INTEGER KEY,INFO(1)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER AAAHI0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      AAAHI0=KEY
      GOTO 11162
11163   INFO(1)=MAXRO0
        INFO(2)=MAXCO0
      GOTO 11164
11165   INFO(1)=TCWRA0
      GOTO 11164
11166   INFO(1)=0
        IF((TCINS0(1).EQ.0))GOTO 11164
          INFO(1)=1
11167 GOTO 11164
11168   INFO(1)=0
        IF((TCDEL0(1).EQ.0))GOTO 11164
          INFO(1)=1
11169 GOTO 11164
11170   INFO(1)=0
        IF((TCCLF0(1).EQ.0))GOTO 11164
          INFO(1)=1
11171 GOTO 11164
11172   INFO(1)=TCSPE0
      GOTO 11164
11162 GOTO(11163,11165,11166,11168,11170,11172),AAAHI0
        VTINFO=-3
        RETURN
11164 VTINFO=-2
      RETURN
      END
      INTEGER FUNCTION VTINIT(TERMU0)
      INTEGER TERMU0(7)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER VTTERM,I,J
      INTEGER DUPLX$
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((VTTERM(TERMU0).NE.-3))GOTO 11173
        VTINIT=-3
        RETURN
11173 CURRO0=0
      CURCO0=0
      DO 11174 I=1,51
        COLCH0(I)=85
        COLCI0(I)=0
        LASTC0(I)=0
11174 CONTINUE
11175 ROWCH0=51
      ROWCI0=0
      MSGRO0=0
      DO 11176 I=1,85
        MSGOW0(I)=0
11176 CONTINUE
11177 PADRO0=1
      PADCO0=1
      PADLE0=80
      DISPL0=0
      I=1
      GOTO 11180
11178 I=I+(1)
11180 IF((I.GT.51))GOTO 11179
        J=1
        GOTO 11183
11181   J=J+(1)
11183   IF((J.GT.85))GOTO 11178
          NEWSC0(J,I)=160
          CURSC0(J,I)=160
        GOTO 11181
11179 UNPRI0=191
      LASTD0=0
      INSER0=0
      INVER0=0
      DUPLE0=DUPLX$(-1)
      CALL DUPLX$(:140000)
      INPUV0=0
      PBPTR0=0
      NESTI0=0
      VTINIT=-2
      RETURN
      END
      SUBROUTINE VTMOVE(ROW,COL)
      INTEGER ROW,COL
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      INTEGER CHR
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      CALL VT$POS(ROW,COL,CURRO0,CURCO0)
      CURRO0=ROW
      CURCO0=COL
      RETURN
      END
      SUBROUTINE VTMSG(S,T)
      INTEGER S(1)
      INTEGER T
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER COL,NEED,C,FIRST,LAST
      INTEGER LENGTH
      INTEGER CH
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((MSGRO0.GT.0))GOTO 11184
        RETURN
11184 FIRST=1
      GOTO 11187
11185 FIRST=FIRST+(1)
11187 IF((FIRST.GT.MAXCO0))GOTO 11186
        IF((MSGOW0(FIRST).NE.T))GOTO 11185
          GOTO 11186
11186 LAST=FIRST
      GOTO 11191
11189 LAST=LAST+(1)
11191 IF((LAST.GT.MAXCO0))GOTO 11190
        IF((MSGOW0(LAST).EQ.T))GOTO 11192
          GOTO 11190
11192   MSGOW0(LAST)=0
      GOTO 11189
11190 NEED=LENGTH(S)+2
      IF((NEED.LE.2))GOTO 11193
        IF((NEED.GT.LAST-FIRST))GOTO 11194
          COL=FIRST
          GOTO 11195
11194     COL=1
          GOTO 11198
11196     COL=C
11198     IF((COL.GE.MAXCO0))GOTO 11197
11199       IF((COL.GE.MAXCO0))GOTO 11200
            IF((MSGOW0(COL).EQ.0))GOTO 11200
              COL=COL+(1)
            GOTO 11199
11200       C=COL
            GOTO 11203
11201       C=C+(1)
11203       IF((MSGOW0(C).NE.0))GOTO 11202
              IF((C.LT.MAXCO0))GOTO 11201
                GOTO 11202
11202       IF((C-COL.LT.NEED))GOTO 11196
              GOTO 11197
11197   CONTINUE
11195   IF((COL+NEED.LE.MAXCO0))GOTO 11206
          COL=1
          C=1
          GOTO 11209
11207     C=C+(1)
11209     IF((C.GT.MAXCO0))GOTO 11208
            IF((MSGOW0(C).EQ.0))GOTO 11207
              CH=NEWSC0(C,MSGRO0)
              CALL VT$PUT(CH,MSGRO0,COL,1)
              MSGOW0(COL)=MSGOW0(C)
              COL=COL+(1)
11210     GOTO 11207
11208     C=COL
          GOTO 11213
11211     C=C+(1)
11213     IF((C.GT.MAXCO0))GOTO 11212
            MSGOW0(C)=0
          GOTO 11211
11212   CONTINUE
11206   CALL VT$PUT(160,MSGRO0,COL,1)
        CALL VT$PUT(S,MSGRO0,COL+1,NEED-2)
        CALL VT$PUT(160,MSGRO0,COL+NEED-1,1)
        C=COL
        GOTO 11216
11214   C=C+(1)
11216   IF((C.GT.MIN0(COL+NEED-1,MAXCO0)))GOTO 11215
          MSGOW0(C)=T
        GOTO 11214
11215 CONTINUE
11193 DO 11217 COL=1,MAXCO0
        IF((MSGOW0(COL).NE.0))GOTO 11219
          CALL VT$PUT(174,MSGRO0,COL,1)
11219   CONTINUE
11217 CONTINUE
11218 RETURN
      END
      INTEGER FUNCTION VTOC(VAR,STR,LEN)
      INTEGER VAR(1),LEN
      INTEGER STR(1)
      INTEGER CP,MAX,I
      CP=2
      MAX=VAR(1)+1
      IF((LEN.GE.MAX))GOTO 11220
        MAX=LEN
11220 I=1
      GOTO 11223
11221 I=I+(1)
11223 IF((I.GE.MAX))GOTO 11222
        IF((AND(CP,1).NE.0))GOTO 11224
          STR(I)=RS(VAR(RS(CP,1)+1),8)
          GOTO 11225
11224     STR(I)=RT(VAR(RS(CP,1)+1),8)
11225   CP=CP+(1)
      GOTO 11221
11222 STR(I)=0
      VTOC=I-1
      RETURN
      END
      SUBROUTINE VTOPT(OPT,STR)
      INTEGER OPT,STR(1)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I,VAL
      INTEGER DOTS(85),BLANKS(85)
      INTEGER AAAHJ0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA DOTS/85*174/
      DATA BLANKS/85*160/
      VAL=STR(1)
      AAAHJ0=OPT
      GOTO 11226
11227   IF((MSGRO0.LE.0))GOTO 11228
          CALL VT$PUT(BLANKS,MSGRO0,1,MAXCO0)
11228   IF((VAL.LT.1))GOTO 11230
        IF((VAL.GT.MAXRO0))GOTO 11230
        GOTO 11229
11230     MSGRO0=0
          GOTO 11231
11229     MSGRO0=VAL
11231   IF((MSGRO0.LE.0))GOTO 11232
          CALL VT$PUT(DOTS,MSGRO0,1,MAXCO0)
11232   DO 11233 I=1,MAXCO0
          MSGOW0(I)=0
11233   CONTINUE
11234 GOTO 11235
11236   IF((VAL.GE.1))GOTO 11237
          INPUV0=0
          GOTO 11235
11237     INPUV0=VAL
11238 GOTO 11235
11239   IF((VAL.NE.1))GOTO 11240
          DISPL0=1
          GOTO 11235
11240     DISPL0=0
11241 GOTO 11235
11242   IF((VAL.LT.160))GOTO 11243
        IF((VAL.GE.255))GOTO 11243
          UNPRI0=VAL
          GOTO 11235
11243     UNPRI0=191
11244 GOTO 11235
11245   I=1
        GOTO 11248
11246   I=I+(1)
11248   IF((STR(I).EQ.0))GOTO 11247
        IF((I.GT.MAXCO0))GOTO 11247
          IF((STR(I).NE.160))GOTO 11249
            TABSA0(I)=0
            GOTO 11246
11249       TABSA0(I)=1
11250   GOTO 11246
11247   CONTINUE
11251   IF((I.GT.MAXCO0))GOTO 11235
          TABSA0(I)=1
          I=I+(1)
        GOTO 11251
11226 GOTO(11227,11236,11239,11242,11245),AAAHJ0
11235 RETURN
      END
      SUBROUTINE VTPAD(LEN)
      INTEGER LEN
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      INTEGER BLANKS(85)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA BLANKS/85*160/
      I=MIN0(80,PADCO0-PADLE0+LEN-1)
      IF((PADRO0.GE.ROWCH0))GOTO 11253
        ROWCH0=PADRO0
11253 IF((PADRO0.LE.ROWCI0))GOTO 11254
        ROWCI0=PADRO0
11254 IF((PADCO0.GE.COLCH0(PADRO0)))GOTO 11255
        COLCH0(PADRO0)=PADCO0
11255 IF((I.LE.COLCI0(PADRO0)))GOTO 11256
        COLCI0(PADRO0)=I
11256 CALL VT$PUT(BLANKS,PADRO0,PADCO0,I-PADCO0+1)
      RETURN
      END
      INTEGER FUNCTION VTPRT(ROW,COL,FMT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER ROW,COL
      INTEGER FMT(1)
      INTEGER A1,A2,A3,A4,A5,A6,A7,A8,A9,A10
      INTEGER STR(102),FMT1(102)
      INTEGER ENCODE,SIZE
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((ROW.GT.MAXRO0))GOTO 11258
      IF((ROW.LT.1))GOTO 11258
      IF((COL.LT.1))GOTO 11258
      GOTO 11257
11258   VTPRT=-3
        RETURN
11257 IF((AND(FMT(1),:177400).NE.0))GOTO 11259
        SIZE=ENCODE(STR,102,FMT,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
        GOTO 11260
11259   CALL PTOC(FMT,174,FMT1,102)
        SIZE=ENCODE(STR,102,FMT1,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10)
11260 CALL VT$PUT(STR,ROW,COL,SIZE)
      VTPRT=SIZE
      RETURN
      END
      SUBROUTINE VTPUTL(STR,ROW,COL)
      INTEGER ROW,COL
      INTEGER STR(1)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER LENGTH
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      CALL VT$PUT(STR,ROW,COL,LENGTH(STR))
      RETURN
      END
      INTEGER FUNCTION VTREAD(CROW,CCOL,CLR)
      INTEGER CROW,CCOL,CLR
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER ROW,COL,I,J,T
      INTEGER VT$GET
      INTEGER FILL(85)
      INTEGER AAAHL0
      INTEGER AAAHK0
      INTEGER AAAHM0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA FILL/85*160/
      IF((CLR.NE.1))GOTO 11262
        DO 11263 I=1,MAXRO0
          IF((INPUT0(I).GT.INPUU0(I)))GOTO 11265
            CALL VT$PUT(FILL,I,INPUT0(I),INPUU0(I)-INPUT0(I)+1)
11265     CONTINUE
11263   CONTINUE
11264 CONTINUE
11262 CALL VTUPD(0)
      ROW=CROW-1
      COL=CCOL
      AAAHK0=+1
      AAAHL0=1
      GOTO 11261
11266 CONTINUE
11267   I=1
        J=INPUT0(ROW)
        GOTO 11270
11268   I=I+(1)
        J=J+(1)
11270   IF((J.GT.INPUU0(ROW)))GOTO 11269
          INBUF0(I)=NEWSC0(J,ROW)
        GOTO 11268
11269   T=VT$GET(ROW,COL,INPUT0(ROW),INPUU0(ROW)-INPUT0(ROW)+1)
        IF((T.NE.1019))GOTO 11271
          AAAHK0=-1
          AAAHL0=2
          GOTO 11261
11271     IF((T.NE.1020))GOTO 11277
            AAAHK0=+1
            AAAHL0=3
            GOTO 11261
11276   CONTINUE
11273 CONTINUE
      GOTO 11267
11277 VTREAD=T
      RETURN
11261 AAAHM0=MOD(ROW+MAXRO0-1,MAXRO0)+1
      ROW=MOD(AAAHM0+MAXRO0+AAAHK0-1,MAXRO0)+1
11278 IF((INPUT0(ROW).LE.INPUU0(ROW)))GOTO 11281
        IF((ROW.NE.AAAHM0))GOTO 11280
          VTREAD=0
          RETURN
11280   ROW=MOD(ROW+MAXRO0+AAAHK0-1,MAXRO0)+1
      GOTO 11278
11281 GOTO(11266,11273,11276),AAAHL0
      GOTO 11281
      END
      SUBROUTINE VTSTOP
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      CALL VTMOVE(MAXRO0,1)
      CALL DUPLX$(DUPLE0)
      RETURN
      END
      INTEGER FUNCTION VTTERM(TERMU0)
      INTEGER TERMU0(7)
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER FD,I,BP,TP,SP,F,STATE
      INTEGER LENAC(7),LENHC(7),LENVC(7)
      INTEGER OPEN,LENGTH,STRBSR,EQUAL,CTOI,GETLIN,MNTOC
      INTEGER VT$ALC,CTOC,VT$IER,GTTYPE,GTATTR
      INTEGER FNAME(102)
      INTEGER BUF(102),TBUF(102),SBUF(102)
      INTEGER MNTOC
      INTEGER IPOS(38)
      INTEGER ITEXT(452)
      INTEGER OPOS(24)
      INTEGER OTEXT(269)
      INTEGER AAAHN0
      INTEGER AAAHO0
      INTEGER AAAHP0
      INTEGER AAAHQ0
      INTEGER AAAHR0(9)
      INTEGER AAAHS0(6)
      INTEGER AAAHT0(7)
      INTEGER AAAHU0
      INTEGER AAAHV0(50)
      INTEGER AAAHW0(21)
      INTEGER AAAHX0(21)
      INTEGER AAAHY0
      INTEGER AAAHZ0
      INTEGER AAAIA0
      INTEGER AAAIB0(4)
      INTEGER AAAIC0,AAAID0,AAAIE0
      INTEGER AAAIF0(41)
      INTEGER AAAIG0(34)
      INTEGER AAAIH0(48)
      INTEGER AAAII0(28)
      INTEGER AAAIJ0(21)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      DATA LENAC/2,2,6,3,6,6,6/
      DATA LENVC/1,1,3,1,3,3,3/
      DATA LENHC/1,1,3,2,3,3,3/
      DATA ITEXT/-3,225,244,244,238,0,1029,228,229,230,233,238,229,0,400
     *0,228,229,230,233,238,233,244,233,239,238,0,1028,229,243,227,225,2
     *40,229,0,1027,230,233,248,223,243,227,242,229,229,238,0,1018,230,2
     *45,238,238,249,223,242,229,244,245,242,238,0,1004,231,239,226,226,
     *236,229,223,236,229,230,244,0,1012,231,239,226,226,236,229,223,242
     *,233,231,232,244,0,1007,231,239,226,226,236,229,223,243,227,225,23
     *8,223,236,229,230,244,0,1015,231,239,226,226,236,229,223,243,227,2
     *25,238,223,242,233,231,232,244,0,1005,231,239,226,226,236,229,223,
     *244,225,226,223,236,229,230,244,0,1013,231,239,226,226,236,229,223
     *,244,225,226,223,242,233,231,232,244,0,1021,233,238,243,229,242,24
     *4,223,226,236,225,238,235,0,1023,233,238,243,229,242,244,223,238,2
     *29,247,236,233,238,229,0,1022,233,238,243,229,242,244,223,244,225,
     *226,0,1026,235,233,236,236,223,225,236,236,0,1006,235,233,236,236,
     *223,236,229,230,244,0,1014,235,233,236,236,223,242,233,231,232,244
     *,0,1017,235,233,236,236,223,242,233,231,232,244,223,225,238,228,22
     *3,242,229,244,245,242,238,0,1020,237,239,246,229,223,228,239,247,2
     *38,0,1000,237,239,246,229,223,236,229,230,244,0,1008,237,239,246,2
     *29,223,242,233,231,232,244,0,1019,237,239,246,229,223,245,240,0,-5
     *,240,230,0,1016,242,229,244,245,242,238,0,1003,243,227,225,238,223
     *,236,229,230,244,0,1011,243,227,225,238,223,242,233,231,232,244,0,
     *1025,243,232,233,230,244,223,227,225,243,229,0,1002,243,235,233,24
     *0,223,236,229,230,244,0,1010,243,235,233,240,223,242,233,231,232,2
     *44,0,1033,244,225,226,223,227,236,229,225,242,0,1001,244,225,226,2
     *23,236,229,230,244,0,1032,244,225,226,223,242,229,243,229,244,0,10
     *09,244,225,226,223,242,233,231,232,244,0,1031,244,225,226,223,243,
     *229,244,0,1024,244,239,231,231,236,229,223,233,238,243,229,242,244
     *,223,237,239,228,229,0,1030,245,238,228,229,230,233,238,229,0/
      DATA IPOS/37,1,7,15,27,35,47,61,74,88,106,125,142,160,174,190,202,
     *212,223,235,258,269,280,292,301,305,313,324,336,348,359,371,382,39
     *2,403,414,423,443/
      DATA OTEXT/9,225,226,243,223,240,239,243,0,22,227,236,229,225,242,
     *223,228,229,236,225,249,0,1,227,236,229,225,242,223,243,227,242,22
     *9,229,238,0,2,227,236,229,225,242,223,244,239,223,229,239,236,0,3,
     *227,236,229,225,242,223,244,239,223,229,239,243,0,15,227,239,236,2
     *45,237,238,243,0,12,227,239,239,242,228,223,244,249,240,229,0,8,22
     *7,245,242,243,239,242,223,228,239,247,238,0,4,227,245,242,243,239,
     *242,223,232,239,237,229,0,5,227,245,242,243,239,242,223,236,229,23
     *0,244,0,6,227,245,242,243,239,242,223,242,233,231,232,244,0,7,227,
     *245,242,243,239,242,223,245,240,0,21,228,229,236,229,244,229,223,2
     *36,233,238,229,0,11,232,239,242,223,240,239,243,0,20,233,238,243,2
     *29,242,244,223,236,233,238,229,0,23,236,233,238,229,223,228,229,23
     *6,225,249,0,13,240,239,243,223,228,229,236,225,249,0,14,242,239,24
     *7,243,0,16,243,232,233,230,244,223,233,238,0,17,243,232,233,230,24
     *4,223,239,245,244,0,18,243,232,233,230,244,223,244,249,240,229,0,1
     *0,246,229,242,244,223,240,239,243,0,19,247,242,225,240,223,225,242
     *,239,245,238,228,0/
      DATA OPOS/23,1,10,23,37,51,65,74,86,99,112,125,139,150,163,172,185
     *,197,208,214,224,235,247,257/
      DATA AAAHR0/189,246,244,232,189,175,170,243,0/
      DATA AAAHS0/233,238,240,245,244,0/
      DATA AAAHT0/239,245,244,240,245,244,0/
      DATA AAAHV0/227,232,225,242,225,227,244,229,242,233,243,244,233,22
     *7,160,225,240,240,229,225,242,243,160,226,229,230,239,242,229,160,
     *167,233,238,240,245,244,167,160,239,242,160,167,239,245,244,240,24
     *5,244,167,0/
      DATA AAAHW0/245,238,242,229,227,239,231,238,233,250,229,228,160,23
     *5,229,249,247,239,242,228,0/
      DATA AAAHX0/245,238,242,229,227,239,231,238,233,250,229,228,160,23
     *5,229,249,247,239,242,228,0/
      DATA AAAIB0/217,197,211,0/
      DATA AAAIF0/233,238,240,245,244,160,227,239,238,244,242,239,236,16
     *0,243,229,241,245,229,238,227,229,160,237,245,243,244,160,226,229,
     *160,243,240,229,227,233,230,233,229,228,0/
      DATA AAAIG0/244,239,239,160,237,225,238,249,160,245,238,233,241,24
     *5,229,160,243,229,241,245,229,238,227,229,160,240,242,229,230,233,
     *248,229,243,0/
      DATA AAAIH0/240,242,239,240,229,242,160,243,245,226,243,244,242,23
     *3,238,231,160,239,230,160,225,238,239,244,232,229,242,160,243,229,
     *241,245,229,238,227,229,160,233,243,160,233,236,236,229,231,225,23
     *6,0/
      DATA AAAII0/243,229,241,245,229,238,227,229,160,240,242,229,246,23
     *3,239,245,243,236,249,160,228,229,230,233,238,229,228,0/
      DATA AAAIJ0/244,239,239,160,237,225,238,249,160,228,229,230,233,23
     *8,233,244,233,239,238,243,0/
      IF((GTTYPE(TERMU0).EQ.0))GOTO 11287
      IF((GTATTR(2).EQ.0))GOTO 11287
      GOTO 11286
11287   VTTERM=-3
        RETURN
11286 CALL ENCODE(FNAME,102,AAAHR0,TERMU0)
      FD=OPEN(FNAME,1)
      IF((FD.NE.-3))GOTO 11288
        VTTERM=-3
        RETURN
11288 LASTE0=0
      FNUSE0(1)=1
      DO 11289 I=2,20
        FNUSE0(I)=0
11289 CONTINUE
11290 DO 11291 I=1,128
        FNTAB0(I,1)=0
11291 CONTINUE
11292 DO 11293 I=1,85
        TABSA0(I)=0
11293 CONTINUE
11294 DO 11295 I=1,85,3
        TABSA0(I)=1
11295 CONTINUE
11296 DO 11297 I=1,51
        INPUT0(I)=85
        INPUU0(I)=0
11297 CONTINUE
11298 MAXRO0=8
      MAXCO0=32
      TCCLE0(1)=0
      TCCLF0(1)=0
      TCCLG0(1)=0
      TCCUR0(1)=0
      TCCUS0(1)=0
      TCCUT0(1)=0
      TCCUU0(1)=0
      TCCUV0(1)=0
      TCABS0(1)=0
      TCVER0(1)=0
      TCHOR0(1)=0
      TCINS0(1)=0
      TCDEL0(1)=0
      TCSHI0(1)=0
      TCSHJ0(1)=0
      TCCOO0=160
      TCSHK0=128
      TCCOP0=0
      TCSEQ0=0
      TCCLH0=0
      TCLIN0=0
      TCPOS0=0
      TCSPE0=9600
      TCWRA0=1
      TCCLR0=9999
      TCCEO0=9999
      TCCEP0=9999
      TCABT0=9999
      TCVES0=9999
      TCHOS0=9999
      TCHOM0=9999
      TCLEF0=9999
      TCUPL0=9999
      STATE=-3
11299 IF((GETLIN(TBUF,FD).EQ.-1))GOTO 11300
        TP=1
        BP=1
        GOTO 11303
11301   TP=TP+(1)
        BP=BP+(1)
11303   IF((TBUF(TP).EQ.138))GOTO 11302
        IF((TBUF(TP).EQ.0))GOTO 11302
          IF((TBUF(TP).NE.192))GOTO 11304
          IF((TBUF(TP+1).EQ.0))GOTO 11304
            TP=TP+(1)
            GOTO 11305
11304       IF((TBUF(TP).NE.163))GOTO 11306
              GOTO 11302
11306     CONTINUE
11305     BUF(BP)=TBUF(TP)
        GOTO 11301
11302   BUF(BP)=0
        BP=1
        AAAHN0=1
        GOTO 11282
11311     STATE=1
        GOTO 11299
11312     STATE=2
        GOTO 11299
11308   IF((TBUF(1).EQ.0))GOTO 11299
        IF((EQUAL(TBUF,AAAHS0).EQ.1))GOTO 11311
        IF((EQUAL(TBUF,AAAHT0).EQ.1))GOTO 11312
        AAAHU0=STATE
        GOTO 11313
11314     VTTERM=VT$IER(AAAHV0,FNAME,BUF,FD)
          RETURN
11315     F=STRBSR(IPOS,ITEXT,1,TBUF)
          IF((F.NE.-1))GOTO 11316
            VTTERM=VT$IER(AAAHW0,FNAME,BUF,FD)
            RETURN
11316     F=ITEXT(IPOS(F))
          AAAHP0=1
          GOTO 11284
11319     F=STRBSR(OPOS,OTEXT,1,TBUF)
          IF((F.NE.-1))GOTO 11320
            VTTERM=VT$IER(AAAHX0,FNAME,BUF,FD)
            RETURN
11320     F=OTEXT(OPOS(F))
          AAAHQ0=1
          GOTO 11285
11313   AAAHY0=AAAHU0+4
        GOTO(11314,11322,11322,11322,11315,11319),AAAHY0
11322   CONTINUE
11318 GOTO 11299
11300 CALL CLOSE(FD)
      I=1
      GOTO 11325
11323 I=I+(1)
11325 IF((I.GE.128))GOTO 11324
        IF((FNTAB0(I,1).NE.0))GOTO 11323
          FNTAB0(I,1)=I+127
11326 GOTO 11323
11324 IF((TCCLE0(1).NE.0))GOTO 11327
        CALL REMARK('Screen clear sequence required.')
        VTTERM=-3
        RETURN
11327 TCCLR0=LENGTH(TCCLE0)
      IF((TCCLF0(1).EQ.0))GOTO 11328
        TCCEP0=LENGTH(TCCLF0)
11328 IF((TCCLG0(1).EQ.0))GOTO 11329
        TCCEP0=LENGTH(TCCLG0)
11329 IF((TCCUS0(1).EQ.0))GOTO 11330
        TCLEF0=LENGTH(TCCUS0)
11330 IF((TCCUU0(1).EQ.0))GOTO 11331
        TCUPL0=LENGTH(TCCUU0)
11331 IF((TCCUR0(1).EQ.0))GOTO 11332
        TCHOM0=LENGTH(TCCUR0)
11332 IF((TCCOP0.LT.1))GOTO 11334
      IF((TCCOP0.GT.7))GOTO 11334
      GOTO 11333
11334   CALL REMARK('Invalid coordinate type.')
        VTTERM=-3
        RETURN
11333 AAAHZ0=TCSEQ0
      GOTO 11335
11336   IF((TCABS0(1).NE.0))GOTO 11337
          CALL REMARK('Absolute positioning sequence required.')
          VTTERM=-3
          RETURN
11337   TCABT0=LENGTH(TCABS0)+LENAC(TCCOP0)
        IF((TCVER0(1).EQ.0))GOTO 11338
          TCVES0=LENGTH(TCVER0)
11338   IF((TCHOR0(1).EQ.0))GOTO 11340
          TCHOS0=LENGTH(TCHOR0)
11339 GOTO 11340
11341   IF((TCVER0(1).EQ.0))GOTO 11343
        IF((TCHOR0(1).EQ.0))GOTO 11343
        GOTO 11342
11343     CALL REMARK('Horizontal/vertical sequence missing.')
          VTTERM=-3
          RETURN
11342   TCVES0=LENGTH(TCVER0)+LENVC(TCCOP0)
        TCHOS0=LENGTH(TCHOR0)+LENHC(TCCOP0)
      GOTO 11340
11344   IF((TCCUU0(1).NE.0))GOTO 11345
        IF((TCCUR0(1).NE.0))GOTO 11345
          CALL REMARK('Cursor_home or cursor_up must be specified.')
          VTTERM=-3
          RETURN
11345   IF((TCCUT0(1).NE.0))GOTO 11340
          CALL REMARK('Cursor_right must be specified.')
          VTTERM=-3
          RETURN
11335 GOTO(11336,11336,11341,11344),AAAHZ0
        CALL REMARK('Invalid sequence type.')
        VTTERM=-3
        RETURN
11340 VTTERM=-2
      RETURN
11282 CONTINUE
11347 IF((BUF(BP).NE.160))GOTO 11348
        BP=BP+(1)
      GOTO 11347
11348 TP=1
      GOTO 11351
11349 BP=BP+(1)
      TP=TP+(1)
11351 IF((BUF(BP).EQ.160))GOTO 11350
      IF((BUF(BP).EQ.0))GOTO 11350
        TBUF(TP)=BUF(BP)
      GOTO 11349
11350 TBUF(TP)=0
      GOTO 11352
11285 AAAIA0=F
      GOTO 11353
11354   AAAHO0=1
        GOTO 11283
11355   CALL CTOC(SBUF,TCCLE0,10)
      GOTO 11299
11357   AAAHO0=2
        GOTO 11283
11358   CALL CTOC(SBUF,TCCLF0,10)
      GOTO 11299
11359   AAAHO0=3
        GOTO 11283
11360   CALL CTOC(SBUF,TCCLG0,10)
      GOTO 11299
11361   AAAHO0=4
        GOTO 11283
11362   CALL CTOC(SBUF,TCCUR0,10)
      GOTO 11299
11363   AAAHO0=5
        GOTO 11283
11364   CALL CTOC(SBUF,TCCUS0,10)
      GOTO 11299
11365   AAAHO0=6
        GOTO 11283
11366   CALL CTOC(SBUF,TCCUT0,10)
      GOTO 11299
11367   AAAHO0=7
        GOTO 11283
11368   CALL CTOC(SBUF,TCCUU0,10)
      GOTO 11299
11369   AAAHO0=8
        GOTO 11283
11370   CALL CTOC(SBUF,TCCUV0,10)
      GOTO 11299
11371   AAAHO0=9
        GOTO 11283
11372   CALL CTOC(SBUF,TCABS0,10)
      GOTO 11299
11373   AAAHO0=10
        GOTO 11283
11374   CALL CTOC(SBUF,TCVER0,10)
      GOTO 11299
11375   AAAHO0=11
        GOTO 11283
11376   CALL CTOC(SBUF,TCHOR0,10)
      GOTO 11299
11377   AAAHO0=12
        GOTO 11283
11378   CALL CTOC(SBUF,TCDEL0,10)
      GOTO 11299
11379   AAAHO0=13
        GOTO 11283
11380   CALL CTOC(SBUF,TCINS0,10)
      GOTO 11299
11381   AAAHO0=14
        GOTO 11283
11382   CALL CTOC(SBUF,TCSHI0,10)
      GOTO 11299
11383   AAAHO0=15
        GOTO 11283
11384   CALL CTOC(SBUF,TCSHJ0,10)
      GOTO 11299
11385   TCSEQ0=CTOI(BUF,BP)
        TCCOP0=CTOI(BUF,BP)
11386   IF((BUF(BP).NE.160))GOTO 11387
          BP=BP+(1)
        GOTO 11386
11387   TCCOO0=MNTOC(BUF,BP,128)
      GOTO 11299
11388   CONTINUE
11389   IF((BUF(BP).NE.160))GOTO 11390
          BP=BP+(1)
        GOTO 11389
11390   TCSHK0=MNTOC(BUF,BP,128)
      GOTO 11299
11391   AAAHN0=2
        GOTO 11282
11392   IF((EQUAL(TBUF,AAAIB0).NE.1))GOTO 11393
          TCWRA0=1
          GOTO 11299
11393     TCWRA0=0
11394 GOTO 11299
11395   TCCLH0=MAX0(1,MIN0(CTOI(BUF,BP),5000))
      GOTO 11299
11396   TCLIN0=MAX0(1,MIN0(CTOI(BUF,BP),5000))
      GOTO 11299
11397   TCPOS0=MAX0(1,MIN0(CTOI(BUF,BP),5000))
      GOTO 11299
11398   MAXRO0=MAX0(1,MIN0(CTOI(BUF,BP),51))
      GOTO 11299
11399   MAXCO0=MAX0(1,MIN0(CTOI(BUF,BP),85))
      GOTO 11299
11353 GOTO(11354,11357,11359,11361,11363,11365,11367,11369,11371,11373, 
     *    11375,11385,11397,11398,11399,11381,11383,11388,11391,11379,  
     *   11377,11395,11396),AAAIA0
11356 GOTO 11299
11283 SP=0
11401   SP=SP+(1)
        AAAHN0=3
        GOTO 11282
11402   IF((TBUF(1).NE.0))GOTO 11403
          GOTO 11404
11403   TP=1
        SBUF(SP)=MNTOC(TBUF,TP,0)
      IF((SBUF(SP).EQ.0))GOTO 11405
      IF((SP.GE.102))GOTO 11405
      GOTO 11401
11405 CONTINUE
11404 SBUF(SP)=0
      GOTO 11406
11284 IF((F.NE.-1))GOTO 11407
        AAAHN0=4
        GOTO 11282
11408   F=MNTOC(TBUF,1,160)
        GOTO 11409
11407   IF((F.NE.-5))GOTO 11410
          F=F-(CTOI(BUF,BP))
11410 CONTINUE
11409 AAAHO0=16
      GOTO 11283
11411 IF((SP.GT.1))GOTO 11412
        VTTERM=VT$IER(AAAIF0,FNAME,BUF,FD)
        RETURN
11412 AAAID0=1
      I=1
      GOTO 11415
11413 I=I+(1)
11415 IF((I.GE.SP-1))GOTO 11414
        AAAIC0=FNTAB0(SBUF(I)-127,AAAID0)
        IF((AAAIC0.NE.0))GOTO 11416
          IF((VT$ALC(AAAID0,SBUF(I)-127).NE.-3))GOTO 11413
            VTTERM=VT$IER(AAAIG0,FNAME,BUF,FD)
            RETURN
11416     IF((AAAIC0.LE.5000))GOTO 11419
            AAAID0=AAAIC0-5000
            GOTO 11420
11419       VTTERM=VT$IER(AAAIH0,FNAME,BUF,FD)
            RETURN
11420   CONTINUE
11418 GOTO 11413
11414 AAAIE0=SBUF(I)-127
      IF((FNTAB0(AAAIE0,AAAID0).EQ.0))GOTO 11421
        VTTERM=VT$IER(AAAII0,FNAME,BUF,FD)
        RETURN
11421 IF((F.NE.4000))GOTO 11422
        IF((SP+1.LT.1000))GOTO 11423
          VTTERM=VT$IER(AAAIJ0,FNAME,BUF,FD)
          RETURN
11423   AAAHO0=17
        GOTO 11283
11424   LASTE0=LASTE0+(1)
        F=F+(LASTE0)
        DEFBU0(LASTE0)=0
        LASTE0=LASTE0+(1+CTOC(SBUF,DEFBU0(LASTE0+1),1000-LASTE0))
11422 FNTAB0(AAAIE0,AAAID0)=F
      GOTO 11299
11352 GOTO(11308,11392,11402,11408),AAAHN0
      GOTO 11352
11406 GOTO(11355,11358,11360,11362,11364,11366,11368,11370,11372,11374, 
     *    11376,11378,11380,11382,11384,11411,11424),AAAHO0
      GOTO 11406
      END
      SUBROUTINE VTUPD(CLR)
      INTEGER CLR
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER ROW,COL,LIM
      INTEGER NCH,CCH
      INTEGER AAAIK0
      INTEGER AAAIL0
      INTEGER AAAIM0(10)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((DISPL0.NE.1))GOTO 11427
        AAAIK0=1
        GOTO 11426
11428 CONTINUE
11427 IF((CLR.NE.1))GOTO 11429
        CURRO0=1
        CURCO0=1
        CALL VT$CLR(CLR)
        ROW=1
        GOTO 11432
11430   ROW=ROW+(1)
11432   IF((ROW.GT.MAXRO0))GOTO 11431
          IF((LASTC0(ROW).GE.MAXCO0))GOTO 11433
            LIM=LASTC0(ROW)
            GOTO 11434
11433       LIM=MAXCO0
11434     COL=1
          GOTO 11437
11435     COL=COL+(1)
11437     IF((COL.GT.LIM))GOTO 11436
            NCH=NEWSC0(COL,ROW)
            IF((NCH.EQ.160))GOTO 11438
              CALL VTMOVE(ROW,COL)
              CALL VT$OUT(NCH)
11438       CURSC0(COL,ROW)=NCH
          GOTO 11435
11436     COLCH0(ROW)=85
          COLCI0(ROW)=0
        GOTO 11430
11431   ROWCH0=51
        ROWCI0=0
        GOTO 11460
11429   ROW=ROWCH0
        GOTO 11442
11440   ROW=ROW+(1)
11442   IF((ROW.GT.ROWCI0))GOTO 11441
          IF((LASTC0(ROW).GE.COLCI0(ROW)))GOTO 11443
          IF((TCCLF0(1).EQ.0))GOTO 11443
            LIM=LASTC0(ROW)
            GOTO 11444
11443       LIM=COLCI0(ROW)
11444     COL=COLCH0(ROW)
          GOTO 11447
11445     COL=COL+(1)
11447     IF((COL.GT.LIM))GOTO 11451
            NCH=NEWSC0(COL,ROW)
            CCH=CURSC0(COL,ROW)
            IF((NCH.EQ.CCH))GOTO 11445
              CALL VTMOVE(ROW,COL)
              CALL VT$OUT(NCH)
              CURSC0(COL,ROW)=NCH
11448     GOTO 11445
11449     COL=COL+(1)
11451     IF((COL.GT.COLCI0(ROW)))GOTO 11450
            CCH=CURSC0(COL,ROW)
            IF((CCH.EQ.160))GOTO 11449
              GOTO 11450
11450     IF((COL.GT.COLCI0(ROW)))GOTO 11453
            CALL VTMOVE(ROW,COL)
            AAAIL0=1
            GOTO 11456
11454       AAAIL0=AAAIL0+(1)
11456       IF((TCCLF0(AAAIL0).EQ.0))GOTO 11455
              CALL TNOUA(LS(TCCLF0(AAAIL0),8),1)
            GOTO 11454
11455       CURRO0=MAXRO0+10
            CURCO0=MAXCO0+10
            GOTO 11459
11457       COL=COL+(1)
11459       IF((COL.GT.COLCI0(ROW)))GOTO 11458
              CURSC0(COL,ROW)=160
            GOTO 11457
11458     CONTINUE
11453     COLCH0(ROW)=85
          COLCI0(ROW)=0
        GOTO 11440
11441   ROWCH0=51
        ROWCI0=0
11439 GOTO 11460
11426 CALL DATE(2,AAAIM0)
      AAAIM0(6)=0
      CALL VTMSG(AAAIM0,-1)
      GOTO 11428
11460 RETURN
      END
      INTEGER FUNCTION WIND(FD)
      INTEGER FD
      INTEGER SEEKF
      WIND=SEEKF(:17777777777,FD)
      RETURN
      END
      INTEGER FUNCTION WKDAY(MONTH,DAY,YEAR)
      INTEGER MONTH,DAY,YEAR
      INTEGER LMONTH,LDAY,LYEAR
      LMONTH=MONTH-2
      LDAY=DAY
      LYEAR=YEAR
      IF((LMONTH.GT.0))GOTO 11462
        LMONTH=LMONTH+(12)
        LYEAR=LYEAR-(1)
11462 WKDAY=MOD(LDAY+(26*LMONTH-2)/10+LYEAR+LYEAR/4-34,7)+1
      IF((WKDAY.GE.1))GOTO 11463
        WKDAY=WKDAY+(7)
11463 RETURN
      END
      INTEGER FUNCTION WRITEF(BUF,NW,FD)
      INTEGER BUF(1),NW,FD
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER OFF,F
      INTEGER MAPSU,TWRIT$,DWRIT$
      INTEGER AAAIN0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      F=MAPSU(FD)
      OFF=F*16-16+1
      IF((F.LT.1))GOTO 11465
      IF((F.GT.128))GOTO 11465
      IF((AND(FDFLA0(OFF),:020000).EQ.0))GOTO 11465
      IF((AND(FDFLA0(OFF),:004000).NE.0))GOTO 11465
      GOTO 11464
11465   WRITEF=-3
        RETURN
11464 IF((NW.GT.0))GOTO 11466
        WRITEF=0
        RETURN
11466 AAAIN0=FDDEV0(OFF)
      GOTO 11467
11468   IF((AND(FDFLA0(OFF),:000017).EQ.2))GOTO 11469
          CALL FLUSH$(F)
          FDFLA0(OFF)=AND(FDFLA0(OFF),NOT(:000017))+2
11469   WRITEF=TWRIT$(BUF,NW,OFF)
      GOTO 11470
11471   IF((AND(FDFLA0(OFF),:000017).EQ.2))GOTO 11472
          CALL FLUSH$(F)
          FDCOU0(OFF)=-FDBUH0(OFF)
          FDBUI0(OFF)=FDBUG0(OFF)+FDBUH0(OFF)
          FDFLA0(OFF)=AND(FDFLA0(OFF),NOT(:000017))+2
11472   WRITEF=DWRIT$(BUF,NW,OFF)
      GOTO 11470
11473   IF((AND(FDFLA0(OFF),:000017).EQ.2))GOTO 11474
          CALL FLUSH$(F)
          FDFLA0(OFF)=AND(FDFLA0(OFF),NOT(:000017))+2
11474   WRITEF=-1
      GOTO 11470
11467 GOTO(11468,11471,11473),AAAIN0
        WRITEF=-3
11470 RETURN
      END
      INTEGER FUNCTION VT$CEL(DUMMY)
      INTEGER DUMMY
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER AAAIO0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((TCCLF0(1).NE.0))GOTO 11475
        VT$CEL=-3
        RETURN
11475 AAAIO0=1
      GOTO 11478
11476 AAAIO0=AAAIO0+(1)
11478 IF((TCCLF0(AAAIO0).EQ.0))GOTO 11477
        CALL TNOUA(LS(TCCLF0(AAAIO0),8),1)
      GOTO 11476
11477 VT$CEL=-2
      RETURN
      END
      INTEGER FUNCTION VT$DLN(DUMMY)
      INTEGER DUMMY
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      INTEGER AAAIP0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((TCDEL0(1).NE.0))GOTO 11479
        VT$DLN=-3
        RETURN
11479 AAAIP0=1
      GOTO 11482
11480 AAAIP0=AAAIP0+(1)
11482 IF((TCDEL0(AAAIP0).EQ.0))GOTO 11481
        CALL TNOUA(LS(TCDEL0(AAAIP0),8),1)
      GOTO 11480
11481 CALL VT$DEL(TCLIN0)
      VT$DLN=-2
      RETURN
      END
      INTEGER FUNCTION VT$ILN(DUMMY)
      INTEGER DUMMY
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER I
      INTEGER AAAIQ0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((TCINS0(1).NE.0))GOTO 11483
        VT$ILN=-3
        RETURN
11483 AAAIQ0=1
      GOTO 11486
11484 AAAIQ0=AAAIQ0+(1)
11486 IF((TCINS0(AAAIQ0).EQ.0))GOTO 11485
        CALL TNOUA(LS(TCINS0(AAAIQ0),8),1)
      GOTO 11484
11485 CALL VT$DEL(TCLIN0)
      VT$ILN=-2
      RETURN
      END
      SUBROUTINE VTBAUD(RATE)
      INTEGER RATE
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      IF((RATE.LE.19200))GOTO 11487
        TCSPE0=19200
        GOTO 11488
11487   IF((RATE.GE.50))GOTO 11489
          TCSPE0=50
          GOTO 11490
11489     TCSPE0=RATE
11490 CONTINUE
11488 RETURN
      END
      SUBROUTINE VT$REL(ROW,COL,CROW,CCOL)
      INTEGER ROW,COL,CROW,CCOL
      COMMON /SWT$CM/TERMB0(128),TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFC
     *H0,ESCCH0,RTCHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0(6),KILLR0(33),FDMEM0(
     *16,128),RESER0(846),FDBUF0(16384),PASSW0(7),BPLAB0(4),UTEMP0,FDLAS
     *0,PRTDE0(17),PRTFO0(9),UHASH0(37),UTEMQ0(4059),RESES0(985),CMDST0,
     *COMUN0,RTLAB0(4),FIRST0,ARGCA0,ARGVA0(256),TERMA0(6),TERMT0(7),LWO
     *RD0,LSHOA0,LSTOP0,LSNAA0,LSREF0(16384),RESET0(743),TSSTA0,TSGTA0,T
     *SATA0,TSEOS0,TSUNA0(32),TSPSA0(32),TSBFA0(32,32),TSPWA0(3,32),TSPA
     *T0(180),RESEU0(680),NEWSC0(85,51),RESEV0(785),CURSC0(85,51),RESEW0
     *(785),TCCLE0(10),TCCLF0(10),TCCLG0(10),TCCUR0(10),TCCUS0(10),TCCUT
     *0(10),TCCUU0(10),TCCUV0(10),TCABS0(10),TCVER0(10),TCHOR0(10),TCINS
     *0(10),TCDEL0(10),TCSHI0(10),TCSHJ0(10),TCCOO0,TCSHK0,TCCOP0,TCSEQ0
     *,TCSPE0,TCCLH0,TCLIN0,TCPOS0,TCWRA0,TCCLR0,TCCEO0,TCCEP0,TCABT0,TC
     *VES0,TCHOS0,TCHOM0,TCLEF0,TCUPL0,UNPRI0,COLCH0(51),COLCI0(51),ROWC
     *H0,ROWCI0,LASTC0(51),MAXRO0,MAXCO0,CURRO0,CURCO0,MSGRO0,MSGOW0(85)
     *,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0(128,20),LASTF0,TABSA0(85),INPU
     *T0(51),INPUU0(51),INBUF0(85),LASTD0,INSER0,INVER0,DUPLE0,INPUV0,PB
     *BUF0(400),PBPTR0,FNUSE0(20),DEFBU0(1000),LASTE0,NESTI0,RESEX0(1)
      INTEGER TERMB0,TERMC0,TERMD0,ECHAR0,KCHAR0,NLCHA0,EOFCH0,ESCCH0,RT
     *CHA0,ISPHA0,CPUTY0,ERRCO0,STDPO0,FDMEM0,RESER0,FDBUF0,PASSW0,BPLAB
     *0,UTEMP0,UHASH0,UTEMQ0,RESES0,CMDST0,COMUN0,RTLAB0,FIRST0,ARGCA0,A
     *RGVA0,TERMA0,TERMT0,LSHOA0,LSTOP0,LSNAA0,LSREF0,RESET0,FDLAS0,KILL
     *R0,PRTDE0,PRTFO0,LWORD0,TSSTA0,TSGTA0,TSATA0,TSEOS0,TSUNA0,TSPSA0,
     *TSBFA0,TSPWA0,TSPAT0,RESEU0,NEWSC0,RESEV0,CURSC0,RESEW0,TCCLE0,TCC
     *LF0,TCCLG0,TCCUR0,TCCUS0,TCCUT0,TCCUU0,TCCUV0,TCABS0,TCVER0,TCHOR0
     *,TCINS0,TCDEL0,TCCLH0,TCLIN0,TCPOS0,TCSHI0,TCSHJ0,TCCOO0,TCSHK0,TC
     *COP0,TCSEQ0,TCDEM0,TCWRA0,TCCLR0,TCSPE0,TCCEO0,TCCEP0,TCABT0,TCVES
     *0,TCHOS0,UNPRI0,COLCH0,COLCI0,ROWCH0,ROWCI0,LASTC0,MAXRO0,MAXCO0,C
     *URRO0,CURCO0,MSGRO0,MSGOW0,PADRO0,PADCO0,PADLE0,DISPL0,FNTAB0,LAST
     *F0,TABSA0,INPUT0,INPUU0,INBUF0,LASTD0,INSER0,INVER0,DUPLE0,INPUV0,
     *PBBUF0,PBPTR0,FNUSE0,DEFBU0,LASTE0,NESTI0,TCHOM0,TCLEF0,TCUPL0,RES
     *EX0
      INTEGER FDESC0(16),FDDEV0(1),FDUNI0(1),FDBUG0(1),FDBUH0(1),FDBUI0(
     *1),FDCOU0(1),FDBCO0(1),FDFLA0(1),FDVCS0(1),FDVCT0(1),FDOPS0(1),FDO
     *PT0(1),FDOPU0(1)
      INTEGER R,C
      INTEGER AAAIR0
      INTEGER AAAIS0
      INTEGER AAAIT0
      INTEGER AAAIU0
      INTEGER AAAIV0
      INTEGER AAAIW0
      INTEGER AAAIX0
      EQUIVALENCE (FDMEM0,FDESC0),(FDDEV0,FDESC0(1)),(FDUNI0,FDESC0(2)),
     *(FDBUG0,FDESC0(3)),(FDBUH0,FDESC0(4)),(FDBUI0,FDESC0(5)),(FDCOU0,F
     *DESC0(6)),(FDBCO0,FDESC0(7)),(FDFLA0,FDESC0(8)),(FDVCS0,FDESC0(9))
     *,(FDVCT0,FDESC0(10)),(FDOPS0,FDESC0(11)),(FDOPT0,FDESC0(12)),(FDOP
     *U0,FDESC0(13))
      R=CROW
      C=CCOL
      IF((IABS(ROW-R)+IABS(COL-C).LE.TCHOM0+ROW+COL-2))GOTO 11491
        IF((TCCUR0(1).EQ.0))GOTO 11492
          AAAIR0=1
          GOTO 11495
11493AAAIR0=AAAIR0+(1)
11495     IF((TCCUR0(AAAIR0).EQ.0))GOTO 11494
            CALL TNOUA(LS(TCCUR0(AAAIR0),8),1)
          GOTO 11493
11494     R=1
          C=1
11492 CONTINUE
11491 IF((TCCUU0(1).EQ.0))GOTO 11496
        GOTO 11499
11497   R=R-(1)
11499   IF((R.LE.ROW))GOTO 11503
          AAAIS0=1
          GOTO 11502
11500     AAAIS0=AAAIS0+(1)
11502     IF((TCCUU0(AAAIS0).EQ.0))GOTO 11497
            CALL TNOUA(LS(TCCUU0(AAAIS0),8),1)
          GOTO 11500
11496   IF((R.LE.ROW))GOTO 11504
          AAAIT0=1
          GOTO 11507
11505     AAAIT0=AAAIT0+(1)
11507     IF((TCCUR0(AAAIT0).EQ.0))GOTO 11506
            CALL TNOUA(LS(TCCUR0(AAAIT0),8),1)
          GOTO 11505
11506     R=1
          C=1
11504 CONTINUE
11503 IF((TCCUV0(1).EQ.0))GOTO 11508
        GOTO 11511
11509   R=R+(1)
11511   IF((R.GE.ROW))GOTO 11515
          AAAIU0=1
          GOTO 11514
11512     AAAIU0=AAAIU0+(1)
11514     IF((TCCUV0(AAAIU0).EQ.0))GOTO 11509
            CALL TNOUA(LS(TCCUV0(AAAIU0),8),1)
          GOTO 11512
11508   IF((R.GE.ROW))GOTO 11516
          GOTO 11519
11517     R=R+(1)
11519     IF((R.GE.ROW))GOTO 11518
            CALL TNOUA(LS(138,8),1)
          GOTO 11517
11518   CONTINUE
11516 CONTINUE
11515 IF((IABS(COL-C).LE.COL-1))GOTO 11520
        CALL TNOUA(LS(141,8),1)
        C=1
11520 IF((TCCUT0(1).EQ.0))GOTO 11521
        GOTO 11524
11522   C=C+(1)
11524   IF((C.GE.COL))GOTO 11528
          AAAIV0=1
          GOTO 11527
11525     AAAIV0=AAAIV0+(1)
11527     IF((TCCUT0(AAAIV0).EQ.0))GOTO 11522
            CALL TNOUA(LS(TCCUT0(AAAIV0),8),1)
          GOTO 11525
11521   IF((C.GE.COL))GOTO 11529
          CALL ERROR('can''t position cursor.')
11529 CONTINUE
11528 IF((TCCUS0(1).EQ.0))GOTO 11530
        GOTO 11533
11531   C=C-(1)
11533   IF((C.LE.COL))GOTO 11537
          AAAIW0=1
          GOTO 11536
11534     AAAIW0=AAAIW0+(1)
11536     IF((TCCUS0(AAAIW0).EQ.0))GOTO 11531
            CALL TNOUA(LS(TCCUS0(AAAIW0),8),1)
          GOTO 11534
11530   IF((C.LE.COL))GOTO 11538
          CALL TNOUA(LS(141,8),1)
          C=1
          GOTO 11541
11539     C=C+(1)
11541     IF((C.GE.COL))GOTO 11540
            AAAIX0=1
            GOTO 11544
11542       AAAIX0=AAAIX0+(1)
11544       IF((TCCUT0(AAAIX0).EQ.0))GOTO 11539
              CALL TNOUA(LS(TCCUT0(AAAIX0),8),1)
            GOTO 11542
11540   CONTINUE
11538 CONTINUE
11537 RETURN
      END
C ---- Long Name Map ----
C Fdflags                        fdfla0
C Aclcount                       aclco0
C acl$00                         acl$00
C putkillresp                    putki0
C blankok                        blank0
C Eofchar                        eofch0
C Inputstart                     input0
C Escchar                        escch0
C Invertcase                     inver0
C Tccoordchar                    tccoo0
C Tabs                           tabsa0
C Fdbufstart                     fdbug0
C Rtchar                         rtcha0
C Prtdest                        prtde0
C Tcdelline                      tcdel0
C Colchgstop                     colci0
C Rowchgstart                    rowch0
C Maxcol                         maxco0
C Aclversion                     aclve0
C findisacat                     findi0
C Echar                          echar0
C Tseos                          tseos0
C Tclinedelay                    tclin0
C Fnused                         fnuse0
C enterpwd                       enter0
C Termcount                      termd0
C Reservedio                     reser0
C Tsstate                        tssta0
C Tccursorright                  tccut0
C Tcabspos                       tcabs0
C Tcposdelay                     tcpos0
C Tchorlen                       tchos0
C Reservedopen                   reses0
C Lsna                           lsnaa0
C Tcseqtype                      tcseq0
C Unprintablechar                unpri0
C Fdesc                          fdesc0
C infobuf                        infob0
C Cputype                        cputy0
C Prtform                        prtfo0
C Tsbf                           tsbfa0
C Curcol                         curco0
C Lastfn                         lastf0
C Insertmode                     inser0
C filltermbuf                    fillt0
C Fdbuf                          fdbuf0
C Argv                           argva0
C Lstop                          lstop0
C Tcceollen                      tccep0
C Tcshiftchar                    tcshk0
C Inputwait                      inpuv0
C Fdunit                         fduni0
C displayline                    dispm0
C Termcp                         termc0
C Kchar                          kchar0
C Fdmem                          fdmem0
C Fddev                          fddev0
C Fdvcstat1                      fdvcs0
C rowcoord                       rowco0
C nextargument                   nexta0
C Lastdef                        laste0
C Tcdelaytime                    tcdem0
C Fdvcstat2                      fdvct0
C Killresp                       killr0
C Tccleardelay                   tcclh0
C Padrow                         padro0
C Fntab                          fntab0
C Reservednewscr                 resev0
C Reservedcurscr                 resew0
C Utempbuf                       utemq0
C Rtlabel                        rtlab0
C Lsho                           lshoa0
C Tcvertpos                      tcver0
C Tcwraparound                   tcwra0
C Tchomelen                      tchom0
C profile                        profi0
C enterinfo                      entes0
C Tcceoslen                      tcceo0
C Fdbufend                       fdbui0
C Tcspeed                        tcspe0
C Tcleftlen                      tclef0
C Pbbuf                          pbbuf0
C Fdopstat1                      fdops0
C scanfortab                     scang0
C Passwd                         passw0
C Newscr                         newsc0
C Curscr                         cursc0
C Duplex                         duple0
C Fdopstat2                      fdopt0
C nonownerbits                   nonow0
C fixpath                        fixpa0
C Tccursorhome                   tccur0
C Fdopstat3                      fdopu0
C reattach                       reatt0
C Tspath                         tspat0
C dogetto                        doget0
C Tsat                           tsata0
C Tccursorleft                   tccus0
C Colchgstart                    colch0
C pathname                       pathn0
C maketree                       maket0
C putchar                        putch0
C scanpos                        scanp0
C Reservedshell                  reset0
C Inbuf                          inbuf0
C Nestingcount                   nesti0
C termination                    termi0
C termtype                       termu0
C Reservedtscan                  reseu0
C Defbuf                         defbu0
C Uhashtb                        uhash0
C Fdbuflen                       fdbuh0
C Acluser                        aclus0
C Cmdstat                        cmdst0
C Tchorpos                       tchor0
C Tcinsline                      tcins0
C Msgowner                       msgow0
C doprotect                      dopro0
C argtype                        argty0
C Fdlastfd                       fdlas0
C Termattr                       terma0
C Mem                            memaa0
C Primosacl                      primo0
C getword                        getwo0
C Tsgt                           tsgta0
C Tcshiftout                     tcshj0
C Inputstop                      inpuu0
C Acltype                        aclty0
C laststatus                     lasts0
C Firstuse                       first0
C Tcshiftin                      tcshi0
C Displaytime                    displ0
C Fdcount                        fdcou0
C checkpostorder                 check0
C colcoord                       colco0
C interpretoutput                intes0
C Termbuf                        termb0
C Lsref                          lsref0
C Tcabslen                       tcabt0
C Rowchgstop                     rowci0
C Maxrow                         maxro0
C Padcol                         padco0
C Lastcharscanned                lastd0
C erasechar                      erase0
C interpretinput                 inter0
C Msgrow                         msgro0
C Padlen                         padle0
C Stdporttbl                     stdpo0
C Argc                           argca0
C Termtype                       termt0
C Tccleartoeol                   tcclf0
C Aclpairs                       aclpa0
C getescape                      getes0
C validname                      valid0
C scanforchar                    scanf0
C Tccursordown                   tccuv0
C Currow                         curro0
C ownerbits                      owner0
C packedname                     packe0
C Nlchar                         nlcha0
C Isphantom                      ispha0
C Tsun                           tsuna0
C Tsps                           tspsa0
C Reservedvthmisc                resex0
C Tcuplen                        tcupl0
C Lastchar                       lastc0
C routine                        routi0
C hundreds                       hundr0
C Utemptop                       utemp0
C Aclname                        aclna0
C Bplabel                        bplab0
C attachsw                       attac0
C sbeecoord                      sbeec0
C Tspw                           tspwa0
C Tcclearscreen                  tccle0
C Tccoordtype                    tccop0
C Tcvertlen                      tcves0
C Fdbcount                       fdbco0
C getchar                        getch0
C b200coord                      b200c0
C Comunit                        comun0
C Tccleartoeos                   tcclg0
C Tccursorup                     tccuu0
C nodesize                       nodes0
C permissions                    permi0
C Tcclrlen                       tcclr0
C Aclmode                        aclmo0
C getargtype                     getar0
C Errcod                         errco0
C Lword                          lword0
C Pbptr                          pbptr0
