      SUBROUTINE MAIN
      COMMON /CLINES/LINE10,LINE20,NLINE0,CURLN0,LASTL0
      INTEGER LINE10,LINE20,NLINE0,CURLN0,LASTL0
      COMMON /CPAT/PATAA0(256),TLPAT0(256),SUBSA0(256),TSETA0(256)
      INTEGER PATAA0,TLPAT0,SUBSA0,TSETA0
      COMMON /CTXT/TXTAA0(512)
      INTEGER TXTAA0
      COMMON /CFILE/SAVFI0(512)
      INTEGER SAVFI0
      COMMON /CBUFR$/LASTB0,FENCE0,FREEA0,LINE00,BUFAA0(65520)
      INTEGER LASTB0,FENCE0,FREEA0,LINE00
      INTEGER BUFAA0
      INTEGER PREVL0(1),NEXTL0(1)
      INTEGER GLOBM0(1),LINEL0(1)
      INTEGER * 4 SEEKA0(1)
      INTEGER MARKN0(1)
      COMMON /CUNDO/LIMBO0,LIMCN0
      INTEGER LIMBO0,LIMCN0
      COMMON /CSCRAT/SCRAA0,SCREN0,SCRNA0(512),LOSTL0
      INTEGER SCRAA0
      INTEGER * 4 SCREN0
      INTEGER SCRNA0
      INTEGER LOSTL0
      COMMON /CMISC/BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0,PEEKC0,SAV
     *CO0
      INTEGER BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0
      INTEGER PEEKC0,SAVCO0(512)
      COMMON /CMARK/SAVKN0
      INTEGER SAVKN0
      COMMON /COPT/TABST0(512),TABSU0(512),UNPRI0,DDIRA0,ABSNO0,NCHOI0,O
     *VERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GLOBA0
      INTEGER TABST0,TABSU0,UNPRI0
      INTEGER DDIRA0,ABSNO0,NCHOI0,OVERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GL
     *OBA0
      COMMON /CTERM/TERMT0
      INTEGER TERMT0
      COMMON /CSCRN/SCREE0(128,51),MSGAL0(128),NROWS0,NCOLS0,CURRO0,CURC
     *O0,TOPRO0,BOTRO0,CMDRO0,TOPLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,
     *SCLEN0,SCTOP0,SCLIN0
      INTEGER SCREE0
      INTEGER MSGAL0,NROWS0,NCOLS0,CURRO0,CURCO0,TOPRO0,BOTRO0,CMDRO0,TO
     *PLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,SCLEN0,SCTOP0,SCLIN0(51)
      COMMON /CUNIX0/UNIXM0,BACKS0,NOTIN0,XMARK0,ESCAP0
      INTEGER UNIXM0
      INTEGER BACKS0,NOTIN0,XMARK0,ESCAP0
      COMMON /CTTY/TTYST0
      INTEGER TTYST0
      INTEGER SAVEL0
      INTEGER DUPLX$
      EQUIVALENCE (PREVL0(1),BUFAA0(1)),(NEXTL0(1),BUFAA0(2)),(GLOBM0(1)
     *,BUFAA0(3)),(SEEKA0(1),BUFAA0(4)),(LINEL0(1),BUFAA0(6)),(MARKN0(1)
     *,BUFAA0(7))
      CALL INITI0
      CALL BREAK$(1)
      SAVEL0=DUPLX$(-1)
      CALL DUPLX$(:140000)
      TTYST0=SAVEL0
      CALL EDIT
      CALL DUPLX$(SAVEL0)
      CALL BREAK$(0)
      CALL SWT
      END
      SUBROUTINE INITI0
      COMMON /CLINES/LINE10,LINE20,NLINE0,CURLN0,LASTL0
      INTEGER LINE10,LINE20,NLINE0,CURLN0,LASTL0
      COMMON /CPAT/PATAA0(256),TLPAT0(256),SUBSA0(256),TSETA0(256)
      INTEGER PATAA0,TLPAT0,SUBSA0,TSETA0
      COMMON /CTXT/TXTAA0(512)
      INTEGER TXTAA0
      COMMON /CFILE/SAVFI0(512)
      INTEGER SAVFI0
      COMMON /CBUFR$/LASTB0,FENCE0,FREEA0,LINE00,BUFAA0(65520)
      INTEGER LASTB0,FENCE0,FREEA0,LINE00
      INTEGER BUFAA0
      INTEGER PREVL0(1),NEXTL0(1)
      INTEGER GLOBM0(1),LINEL0(1)
      INTEGER * 4 SEEKA0(1)
      INTEGER MARKN0(1)
      COMMON /CUNDO/LIMBO0,LIMCN0
      INTEGER LIMBO0,LIMCN0
      COMMON /CSCRAT/SCRAA0,SCREN0,SCRNA0(512),LOSTL0
      INTEGER SCRAA0
      INTEGER * 4 SCREN0
      INTEGER SCRNA0
      INTEGER LOSTL0
      COMMON /CMISC/BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0,PEEKC0,SAV
     *CO0
      INTEGER BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0
      INTEGER PEEKC0,SAVCO0(512)
      COMMON /CMARK/SAVKN0
      INTEGER SAVKN0
      COMMON /COPT/TABST0(512),TABSU0(512),UNPRI0,DDIRA0,ABSNO0,NCHOI0,O
     *VERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GLOBA0
      INTEGER TABST0,TABSU0,UNPRI0
      INTEGER DDIRA0,ABSNO0,NCHOI0,OVERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GL
     *OBA0
      COMMON /CTERM/TERMT0
      INTEGER TERMT0
      COMMON /CSCRN/SCREE0(128,51),MSGAL0(128),NROWS0,NCOLS0,CURRO0,CURC
     *O0,TOPRO0,BOTRO0,CMDRO0,TOPLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,
     *SCLEN0,SCTOP0,SCLIN0
      INTEGER SCREE0
      INTEGER MSGAL0,NROWS0,NCOLS0,CURRO0,CURCO0,TOPRO0,BOTRO0,CMDRO0,TO
     *PLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,SCLEN0,SCTOP0,SCLIN0(51)
      COMMON /CUNIX0/UNIXM0,BACKS0,NOTIN0,XMARK0,ESCAP0
      INTEGER UNIXM0
      INTEGER BACKS0,NOTIN0,XMARK0,ESCAP0
      COMMON /CTTY/TTYST0
      INTEGER TTYST0
      INTEGER GETARG,DECOD0
      INTEGER LIN(512)
      INTEGER DEFAU0(3)
      EQUIVALENCE (PREVL0(1),BUFAA0(1)),(NEXTL0(1),BUFAA0(2)),(GLOBM0(1)
     *,BUFAA0(3)),(SEEKA0(1),BUFAA0(4)),(LINEL0(1),BUFAA0(6)),(MARKN0(1)
     *,BUFAA0(7))
      DATA DEFAU0/171,179,0/
      ARGNO0=1
      IF((GETARG(ARGNO0,LIN,512).EQ.-1))GOTO 10000
      IF((LIN(1).NE.173))GOTO 10000
      IF((LIN(2).EQ.244))GOTO 10001
      IF((LIN(2).EQ.212))GOTO 10001
      GOTO 10000
10001 IF((LIN(3).NE.0))GOTO 10000
        ARGNO0=2
        IF((GETARG(ARGNO0,LIN,512).EQ.-1))GOTO 10002
          ARGNO0=3
          CALL MAPSTR(LIN,1)
          TERMT0=DECOD0(LIN)
          IF((TERMT0.NE.-3))GOTO 10005
            CALL USAGE
10003     GOTO 10005
10002     CALL USAGE
10004   GOTO 10005
10000   CALL GETTE0(TERMT0)
10005 CALL SETBUF
      CALL SETSC0
      BUFFE0=0
      ERRCO0=14
      SAVER0=14
      PROBA0=0
      SAVCO0(1)=0
      PATAA0(1)=0
      TLPAT0(1)=0
      SUBSA0(1)=0
      SAVFI0(1)=0
      SAVKN0=160
      LASTC0=0
      CALL SCOPY(DEFAU0,1,TABSU0,1)
      CALL SETTAB(TABSU0)
      DDIRA0=0
      ABSNO0=0
      NCHOI0=0
      OVERM0=0
      UNPRI0=160
      WARNC0=74
      FIRST0=1
      INDEN0=1
      TSPEE0=9600
      UNIXM0=0
      BACKS0=220
      XMARK0=161
      NOTIN0=254
      ESCAP0=192
      CALL SETPAT(UNIXM0)
      RETURN
      END
      SUBROUTINE GETTE0(TERMU0)
      INTEGER TERMU0
      INTEGER GTTYPE,GTATTR,DECOD0
      INTEGER TTYPE(7)
      INTEGER AAAAA0(46)
      INTEGER AAAAB0(47)
      INTEGER AAAAC0(40)
      DATA AAAAA0/201,167,237,160,243,239,242,242,249,172,160,226,245,24
     *4,160,201,160,227,225,238,167,244,160,243,245,240,240,239,242,244,
     *160,225,160,170,243,160,244,229,242,237,233,238,225,236,174,0/
      DATA AAAAB0/195,239,238,244,242,225,242,249,160,244,239,160,244,23
     *2,229,160,243,229,244,244,233,238,231,160,239,230,160,244,232,229,
     *160,167,243,229,167,160,244,229,242,237,233,238,225,236,170,238,0/
      DATA AAAAC0/239,240,244,233,239,238,172,160,201,160,227,225,238,23
     *8,239,244,160,243,245,240,240,239,242,244,160,225,160,170,243,160,
     *244,229,242,237,233,238,225,236,174,0/
      IF((GTTYPE(TTYPE).NE.0))GOTO 10006
        CALL ERROR('I''m sorry, but you must supply a terminal type@..')
10006 IF((GTATTR(1).NE.0))GOTO 10007
        CALL PRINT(-15,AAAAA0,TTYPE)
        CALL ERROR('.')
10007 TERMU0=DECOD0(TTYPE)
      IF((TERMU0.NE.-3))GOTO 10008
        CALL PRINT(-15,AAAAB0)
        CALL PRINT(-15,AAAAC0,TTYPE)
        CALL ERROR('.')
10008 RETURN
      END
      INTEGER FUNCTION DECOD0(STR)
      INTEGER STR(1)
      INTEGER I
      INTEGER STRBSR
      INTEGER SPOS(45)
      INTEGER STAB(292)
      DATA STAB/20,225,228,237,179,177,0,13,225,228,237,179,225,0,43,225
     *,228,237,180,178,0,36,225,228,237,181,0,15,225,238,240,0,6,226,177
     *,181,176,0,7,226,178,176,176,0,28,226,225,238,244,225,237,0,44,226
     *,229,229,178,0,11,227,231,0,1,227,239,238,243,245,236,0,35,230,239
     *,242,243,249,243,0,3,230,239,248,0,5,231,244,180,176,0,17,232,177,
     *185,0,19,232,240,178,182,178,177,0,29,232,240,178,182,178,182,0,39
     *,232,240,178,182,180,184,0,26,232,240,185,184,180,181,0,41,232,250
     *,177,180,178,176,0,27,232,250,177,180,178,177,0,10,232,250,177,181
     *,177,176,0,14,233,226,237,0,38,233,238,230,239,0,12,233,243,227,0,
     *30,237,233,227,242,239,226,0,32,238,226,249,0,16,238,229,244,242,2
     *39,238,0,33,240,243,244,177,176,176,0,31,240,244,180,181,0,2,242,2
     *29,231,229,238,244,0,8,243,226,229,229,0,9,243,239,236,0,40,244,22
     *9,242,225,235,0,18,244,242,243,184,176,0,25,244,243,177,0,21,244,2
     *46,233,0,4,244,246,244,0,24,246,227,180,180,176,180,0,23,246,233,1
     *78,176,176,0,42,246,233,229,247,185,176,0,37,246,233,229,247,240,2
     *44,0,34,246,244,177,176,176,0,22,250,177,185,0/
      DATA SPOS/44,1,8,15,22,28,33,39,45,53,59,63,71,79,84,90,95,103,111
     *,119,127,135,143,151,156,162,167,175,180,188,196,202,210,216,221,2
     *28,235,240,245,250,258,265,273,281,288/
      I=STRBSR(SPOS,STAB,1,STR)
      IF((I.NE.-1))GOTO 10009
        DECOD0=-3
        RETURN
10009   DECOD0=STAB(SPOS(I))
        RETURN
      END
      SUBROUTINE USAGE
      INTEGER U1(51)
      INTEGER U2(59)
      INTEGER U3(59)
      INTEGER U4(59)
      INTEGER U5(59)
      INTEGER U6(59)
      INTEGER U7(59)
      INTEGER U8(59)
      INTEGER U9(59)
      INTEGER U10(45)
      INTEGER U11(54)
      INTEGER U12(59)
      INTEGER U13(61)
      INTEGER U14(57)
      DATA U1/213,243,225,231,229,186,160,243,229,160,219,160,173,244,16
     *0,188,244,229,242,237,190,160,221,160,251,160,188,240,225,244,232,
     *238,225,237,229,190,160,252,160,173,188,239,240,244,233,239,238,19
     *0,160,253,0/
      DATA U2/160,160,160,188,244,229,242,237,190,160,186,186,189,160,22
     *5,228,237,179,177,160,160,252,160,225,228,237,179,225,160,160,252,
     *160,225,228,237,180,178,160,160,252,160,225,228,237,181,160,160,16
     *0,252,160,225,238,240,160,160,160,160,252,0/
      DATA U3/160,160,160,160,160,160,160,160,160,160,160,160,160,160,22
     *6,177,181,176,160,160,160,252,160,226,178,176,176,160,160,160,252,
     *160,226,225,238,244,225,237,160,252,160,226,229,229,178,160,160,16
     *0,252,160,227,231,160,160,160,160,160,252,0/
      DATA U4/160,160,160,160,160,160,160,160,160,160,160,160,160,160,22
     *7,239,238,243,245,236,160,252,160,230,239,242,243,249,243,160,252,
     *160,230,239,248,160,160,160,160,252,160,231,244,180,176,160,160,16
     *0,252,160,232,177,185,160,160,160,160,252,0/
      DATA U5/160,160,160,160,160,160,160,160,160,160,160,160,160,160,23
     *2,240,178,182,178,177,160,252,160,232,240,178,182,178,182,160,252,
     *160,232,240,178,182,180,184,160,252,160,232,240,185,184,180,181,16
     *0,252,160,232,250,177,180,178,176,160,252,0/
      DATA U6/160,160,160,160,160,160,160,160,160,160,160,160,160,160,23
     *2,250,177,180,178,177,160,252,160,232,250,177,181,177,176,160,252,
     *160,233,226,237,160,160,160,160,252,160,233,238,230,239,160,160,16
     *0,252,160,233,243,227,160,160,160,160,252,0/
      DATA U7/160,160,160,160,160,160,160,160,160,160,160,160,160,160,23
     *7,233,227,242,239,226,160,252,160,238,226,249,160,160,160,160,252,
     *160,238,229,244,242,239,238,160,252,160,240,243,244,177,176,176,16
     *0,252,160,240,244,180,181,160,160,160,252,0/
      DATA U8/160,160,160,160,160,160,160,160,160,160,160,160,160,160,24
     *2,229,231,229,238,244,160,252,160,243,226,229,229,160,160,160,252,
     *160,243,239,236,160,160,160,160,252,160,244,229,242,225,235,160,16
     *0,252,160,244,242,243,184,176,160,160,252,0/
      DATA U9/160,160,160,160,160,160,160,160,160,160,160,160,160,160,24
     *4,243,177,160,160,160,160,252,160,244,246,233,160,160,160,160,252,
     *160,244,246,244,160,160,160,160,252,160,246,227,180,180,176,180,16
     *0,252,160,246,233,178,176,176,160,160,252,0/
      DATA U10/160,160,160,160,160,160,160,160,160,160,160,160,160,160,2
     *46,233,229,247,240,244,160,252,160,246,233,229,247,185,176,160,252
     *,160,246,244,177,176,176,160,160,252,160,250,177,185,0/
      DATA U11/160,160,160,188,239,240,244,190,160,160,186,186,189,160,2
     *25,160,252,160,227,160,252,160,228,219,188,228,233,242,190,221,160
     *,252,160,230,160,252,160,231,160,252,160,232,219,188,243,240,229,2
     *29,228,190,221,160,252,0/
      DATA U12/160,160,160,160,160,160,160,160,160,160,160,160,160,160,2
     *33,219,225,160,252,160,188,233,238,228,229,238,244,190,221,160,252
     *,160,235,160,252,160,236,219,188,236,239,240,190,221,160,252,160,2
     *36,237,219,188,227,239,236,190,221,160,252,0/
      DATA U13/160,160,160,160,160,160,160,160,160,160,160,160,160,160,2
     *37,219,188,239,240,244,243,190,221,160,252,160,240,219,188,243,160
     *,252,160,245,190,221,160,252,160,243,188,236,225,238,231,190,160,2
     *52,160,244,219,188,244,225,226,243,190,221,160,252,0/
      DATA U14/160,160,160,160,160,160,160,160,160,160,160,160,160,160,2
     *45,219,188,227,232,242,190,221,160,252,160,246,219,188,227,239,236
     *,190,221,160,160,252,160,247,219,188,227,239,236,190,221,160,252,1
     *60,173,219,188,242,239,247,190,221,0/
      CALL PRINT(-15,'*s*n.',U1)
      CALL PRINT(-15,'*s*n.',U2)
      CALL PRINT(-15,'*s*n.',U3)
      CALL PRINT(-15,'*s*n.',U4)
      CALL PRINT(-15,'*s*n.',U5)
      CALL PRINT(-15,'*s*n.',U6)
      CALL PRINT(-15,'*s*n.',U7)
      CALL PRINT(-15,'*s*n.',U8)
      CALL PRINT(-15,'*s*n.',U9)
      CALL PRINT(-15,'*s*n*n.',U10)
      CALL PRINT(-15,'*s*n.',U11)
      CALL PRINT(-15,'*s*n.',U12)
      CALL PRINT(-15,'*s*n.',U13)
      CALL PRINT(-15,'*s*n.',U14)
      CALL ERROR('.')
      RETURN
      END
      SUBROUTINE SETSC0
      COMMON /CLINES/LINE10,LINE20,NLINE0,CURLN0,LASTL0
      INTEGER LINE10,LINE20,NLINE0,CURLN0,LASTL0
      COMMON /CPAT/PATAA0(256),TLPAT0(256),SUBSA0(256),TSETA0(256)
      INTEGER PATAA0,TLPAT0,SUBSA0,TSETA0
      COMMON /CTXT/TXTAA0(512)
      INTEGER TXTAA0
      COMMON /CFILE/SAVFI0(512)
      INTEGER SAVFI0
      COMMON /CBUFR$/LASTB0,FENCE0,FREEA0,LINE00,BUFAA0(65520)
      INTEGER LASTB0,FENCE0,FREEA0,LINE00
      INTEGER BUFAA0
      INTEGER PREVL0(1),NEXTL0(1)
      INTEGER GLOBM0(1),LINEL0(1)
      INTEGER * 4 SEEKA0(1)
      INTEGER MARKN0(1)
      COMMON /CUNDO/LIMBO0,LIMCN0
      INTEGER LIMBO0,LIMCN0
      COMMON /CSCRAT/SCRAA0,SCREN0,SCRNA0(512),LOSTL0
      INTEGER SCRAA0
      INTEGER * 4 SCREN0
      INTEGER SCRNA0
      INTEGER LOSTL0
      COMMON /CMISC/BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0,PEEKC0,SAV
     *CO0
      INTEGER BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0
      INTEGER PEEKC0,SAVCO0(512)
      COMMON /CMARK/SAVKN0
      INTEGER SAVKN0
      COMMON /COPT/TABST0(512),TABSU0(512),UNPRI0,DDIRA0,ABSNO0,NCHOI0,O
     *VERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GLOBA0
      INTEGER TABST0,TABSU0,UNPRI0
      INTEGER DDIRA0,ABSNO0,NCHOI0,OVERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GL
     *OBA0
      COMMON /CTERM/TERMT0
      INTEGER TERMT0
      COMMON /CSCRN/SCREE0(128,51),MSGAL0(128),NROWS0,NCOLS0,CURRO0,CURC
     *O0,TOPRO0,BOTRO0,CMDRO0,TOPLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,
     *SCLEN0,SCTOP0,SCLIN0
      INTEGER SCREE0
      INTEGER MSGAL0,NROWS0,NCOLS0,CURRO0,CURCO0,TOPRO0,BOTRO0,CMDRO0,TO
     *PLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,SCLEN0,SCTOP0,SCLIN0(51)
      COMMON /CUNIX0/UNIXM0,BACKS0,NOTIN0,XMARK0,ESCAP0
      INTEGER UNIXM0
      INTEGER BACKS0,NOTIN0,XMARK0,ESCAP0
      COMMON /CTTY/TTYST0
      INTEGER TTYST0
      INTEGER ROW,COL
      INTEGER AAAAD0
      EQUIVALENCE (PREVL0(1),BUFAA0(1)),(NEXTL0(1),BUFAA0(2)),(GLOBM0(1)
     *,BUFAA0(3)),(SEEKA0(1),BUFAA0(4)),(LINEL0(1),BUFAA0(6)),(MARKN0(1)
     *,BUFAA0(7))
      AAAAD0=TERMT0
      GOTO 10010
10011   NROWS0=24
        NCOLS0=80
      GOTO 10012
10013   NROWS0=24
        NCOLS0=96
      GOTO 10012
10014   NROWS0=16
        NCOLS0=64
      GOTO 10012
10015   NROWS0=16
        NCOLS0=63
      GOTO 10012
10016   NROWS0=32
        NCOLS0=73
      GOTO 10012
10017   NROWS0=51
        NCOLS0=85
      GOTO 10012
10018   NROWS0=48
        NCOLS0=80
      GOTO 10012
10019   NROWS0=25
        NCOLS0=80
      GOTO 10012
10020   NROWS0=20
        NCOLS0=80
      GOTO 10012
10010 GOTO(10011,10011,10011,10015,10016,10011,10019,10019,10014,10011, 
     *    10017,10018,10011,10011,10013,10014,10011,10014,10011,10011,  
     *   10011,10011,10011,10011,10011,10020,10011,10011,10011,10011,   
     *  10011,10011,10011,10011,10019,10011,10011,10011,10011,10011,    
     * 10011,10011,10011,10020),AAAAD0
10012 CALL CLRSC0
      TOPRO0=1
      BOTRO0=NROWS0-2
      CMDRO0=BOTRO0+1
      TOPLN0=1
      SCLEN0=-1
      DO 10021 ROW=1,NROWS0
        DO 10023 COL=1,NCOLS0
          SCREE0(COL,ROW)=160
10023   CONTINUE
10024   CONTINUE
10021 CONTINUE
10022 DO 10025 COL=1,NCOLS0
        MSGAL0(COL)=0
10025 CONTINUE
10026 INSER0=0
      INVER0=0
      RELAA0=193
      RELZA0=218
      RETURN
      END
      SUBROUTINE LOG
      COMMON /CLINES/LINE10,LINE20,NLINE0,CURLN0,LASTL0
      INTEGER LINE10,LINE20,NLINE0,CURLN0,LASTL0
      COMMON /CPAT/PATAA0(256),TLPAT0(256),SUBSA0(256),TSETA0(256)
      INTEGER PATAA0,TLPAT0,SUBSA0,TSETA0
      COMMON /CTXT/TXTAA0(512)
      INTEGER TXTAA0
      COMMON /CFILE/SAVFI0(512)
      INTEGER SAVFI0
      COMMON /CBUFR$/LASTB0,FENCE0,FREEA0,LINE00,BUFAA0(65520)
      INTEGER LASTB0,FENCE0,FREEA0,LINE00
      INTEGER BUFAA0
      INTEGER PREVL0(1),NEXTL0(1)
      INTEGER GLOBM0(1),LINEL0(1)
      INTEGER * 4 SEEKA0(1)
      INTEGER MARKN0(1)
      COMMON /CUNDO/LIMBO0,LIMCN0
      INTEGER LIMBO0,LIMCN0
      COMMON /CSCRAT/SCRAA0,SCREN0,SCRNA0(512),LOSTL0
      INTEGER SCRAA0
      INTEGER * 4 SCREN0
      INTEGER SCRNA0
      INTEGER LOSTL0
      COMMON /CMISC/BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0,PEEKC0,SAV
     *CO0
      INTEGER BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0
      INTEGER PEEKC0,SAVCO0(512)
      COMMON /CMARK/SAVKN0
      INTEGER SAVKN0
      COMMON /COPT/TABST0(512),TABSU0(512),UNPRI0,DDIRA0,ABSNO0,NCHOI0,O
     *VERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GLOBA0
      INTEGER TABST0,TABSU0,UNPRI0
      INTEGER DDIRA0,ABSNO0,NCHOI0,OVERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GL
     *OBA0
      COMMON /CTERM/TERMT0
      INTEGER TERMT0
      COMMON /CSCRN/SCREE0(128,51),MSGAL0(128),NROWS0,NCOLS0,CURRO0,CURC
     *O0,TOPRO0,BOTRO0,CMDRO0,TOPLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,
     *SCLEN0,SCTOP0,SCLIN0
      INTEGER SCREE0
      INTEGER MSGAL0,NROWS0,NCOLS0,CURRO0,CURCO0,TOPRO0,BOTRO0,CMDRO0,TO
     *PLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,SCLEN0,SCTOP0,SCLIN0(51)
      COMMON /CUNIX0/UNIXM0,BACKS0,NOTIN0,XMARK0,ESCAP0
      INTEGER UNIXM0
      INTEGER BACKS0,NOTIN0,XMARK0,ESCAP0
      COMMON /CTTY/TTYST0
      INTEGER TTYST0
      INTEGER FD
      INTEGER OPEN
      INTEGER NAME(33),PID(4),DAT(9),TIM(9)
      INTEGER LOGFI0(12)
      INTEGER AAAAE0(15)
      EQUIVALENCE (PREVL0(1),BUFAA0(1)),(NEXTL0(1),BUFAA0(2)),(GLOBM0(1)
     *,BUFAA0(3)),(SEEKA0(1),BUFAA0(4)),(LINEL0(1),BUFAA0(6)),(MARKN0(1)
     *,BUFAA0(7))
      DATA LOGFI0/175,175,225,227,227,244,175,243,236,239,231,0/
      DATA AAAAE0/170,163,243,160,170,243,160,170,243,160,170,243,170,23
     *8,0/
      IF((TERMT0.NE.2))GOTO 10027
        FD=OPEN(LOGFI0,2)
        IF((FD.NE.-3))GOTO 10028
          RETURN
10028   CALL DATE(1,DAT)
        CALL DATE(2,TIM)
        CALL DATE(3,NAME)
        CALL DATE(4,PID)
        CALL WIND(FD)
        CALL PRINT(FD,AAAAE0,33-1,NAME,PID,DAT,TIM)
        CALL CLOSE(FD)
10027 RETURN
      END
      SUBROUTINE GARBA0
      COMMON /CLINES/LINE10,LINE20,NLINE0,CURLN0,LASTL0
      INTEGER LINE10,LINE20,NLINE0,CURLN0,LASTL0
      COMMON /CPAT/PATAA0(256),TLPAT0(256),SUBSA0(256),TSETA0(256)
      INTEGER PATAA0,TLPAT0,SUBSA0,TSETA0
      COMMON /CTXT/TXTAA0(512)
      INTEGER TXTAA0
      COMMON /CFILE/SAVFI0(512)
      INTEGER SAVFI0
      COMMON /CBUFR$/LASTB0,FENCE0,FREEA0,LINE00,BUFAA0(65520)
      INTEGER LASTB0,FENCE0,FREEA0,LINE00
      INTEGER BUFAA0
      INTEGER PREVL0(1),NEXTL0(1)
      INTEGER GLOBM0(1),LINEL0(1)
      INTEGER * 4 SEEKA0(1)
      INTEGER MARKN0(1)
      COMMON /CUNDO/LIMBO0,LIMCN0
      INTEGER LIMBO0,LIMCN0
      COMMON /CSCRAT/SCRAA0,SCREN0,SCRNA0(512),LOSTL0
      INTEGER SCRAA0
      INTEGER * 4 SCREN0
      INTEGER SCRNA0
      INTEGER LOSTL0
      COMMON /CMISC/BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0,PEEKC0,SAV
     *CO0
      INTEGER BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0
      INTEGER PEEKC0,SAVCO0(512)
      COMMON /CMARK/SAVKN0
      INTEGER SAVKN0
      COMMON /COPT/TABST0(512),TABSU0(512),UNPRI0,DDIRA0,ABSNO0,NCHOI0,O
     *VERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GLOBA0
      INTEGER TABST0,TABSU0,UNPRI0
      INTEGER DDIRA0,ABSNO0,NCHOI0,OVERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GL
     *OBA0
      COMMON /CTERM/TERMT0
      INTEGER TERMT0
      COMMON /CSCRN/SCREE0(128,51),MSGAL0(128),NROWS0,NCOLS0,CURRO0,CURC
     *O0,TOPRO0,BOTRO0,CMDRO0,TOPLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,
     *SCLEN0,SCTOP0,SCLIN0
      INTEGER SCREE0
      INTEGER MSGAL0,NROWS0,NCOLS0,CURRO0,CURCO0,TOPRO0,BOTRO0,CMDRO0,TO
     *PLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,SCLEN0,SCTOP0,SCLIN0(51)
      COMMON /CUNIX0/UNIXM0,BACKS0,NOTIN0,XMARK0,ESCAP0
      INTEGER UNIXM0
      INTEGER BACKS0,NOTIN0,XMARK0,ESCAP0
      COMMON /CTTY/TTYST0
      INTEGER TTYST0
      INTEGER NEWNA0(512)
      INTEGER NEWFD,I
      INTEGER * 4 NEWSC0
      INTEGER P
      INTEGER AAAAF0(19)
      EQUIVALENCE (PREVL0(1),BUFAA0(1)),(NEXTL0(1),BUFAA0(2)),(GLOBM0(1)
     *,BUFAA0(3)),(SEEKA0(1),BUFAA0(4)),(LINEL0(1),BUFAA0(6)),(MARKN0(1)
     *,BUFAA0(7))
      DATA AAAAF0/227,239,236,236,229,227,244,233,238,231,160,231,225,24
     *2,226,225,231,229,0/
      CALL MAKSCR(NEWFD,NEWNA0)
      CALL MESG(AAAAF0,1)
      NEWSC0=0
      P=LIMBO0
      I=1
      GOTO 10031
10029 P=NEXTL0(P)
      I=I+(1)
10031 IF((I.GT.LIMCN0))GOTO 10030
        CALL GTXT(P)
        CALL WRITEF(TXTAA0,LINEL0(P),NEWFD)
        SEEKA0(P)=NEWSC0
        NEWSC0=NEWSC0+(LINEL0(P))
      GOTO 10029
10030 P=LINE00
      I=0
      GOTO 10034
10032 P=NEXTL0(P)
      I=I+(1)
10034 IF((I.GT.LASTL0))GOTO 10033
        CALL GTXT(P)
        CALL WRITEF(TXTAA0,LINEL0(P),NEWFD)
        SEEKA0(P)=NEWSC0
        NEWSC0=NEWSC0+(LINEL0(P))
      GOTO 10032
10033 CALL CLOSEF(SCRAA0)
      CALL REMOVE(SCRNA0)
      SCRAA0=NEWFD
      CALL SCOPY(NEWNA0,1,SCRNA0,1)
      SCREN0=NEWSC0
      LOSTL0=0
      CALL MESG(0,1)
      RETURN
      END
      SUBROUTINE RESTO0
      COMMON /CLINES/LINE10,LINE20,NLINE0,CURLN0,LASTL0
      INTEGER LINE10,LINE20,NLINE0,CURLN0,LASTL0
      COMMON /CPAT/PATAA0(256),TLPAT0(256),SUBSA0(256),TSETA0(256)
      INTEGER PATAA0,TLPAT0,SUBSA0,TSETA0
      COMMON /CTXT/TXTAA0(512)
      INTEGER TXTAA0
      COMMON /CFILE/SAVFI0(512)
      INTEGER SAVFI0
      COMMON /CBUFR$/LASTB0,FENCE0,FREEA0,LINE00,BUFAA0(65520)
      INTEGER LASTB0,FENCE0,FREEA0,LINE00
      INTEGER BUFAA0
      INTEGER PREVL0(1),NEXTL0(1)
      INTEGER GLOBM0(1),LINEL0(1)
      INTEGER * 4 SEEKA0(1)
      INTEGER MARKN0(1)
      COMMON /CUNDO/LIMBO0,LIMCN0
      INTEGER LIMBO0,LIMCN0
      COMMON /CSCRAT/SCRAA0,SCREN0,SCRNA0(512),LOSTL0
      INTEGER SCRAA0
      INTEGER * 4 SCREN0
      INTEGER SCRNA0
      INTEGER LOSTL0
      COMMON /CMISC/BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0,PEEKC0,SAV
     *CO0
      INTEGER BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0
      INTEGER PEEKC0,SAVCO0(512)
      COMMON /CMARK/SAVKN0
      INTEGER SAVKN0
      COMMON /COPT/TABST0(512),TABSU0(512),UNPRI0,DDIRA0,ABSNO0,NCHOI0,O
     *VERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GLOBA0
      INTEGER TABST0,TABSU0,UNPRI0
      INTEGER DDIRA0,ABSNO0,NCHOI0,OVERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GL
     *OBA0
      COMMON /CTERM/TERMT0
      INTEGER TERMT0
      COMMON /CSCRN/SCREE0(128,51),MSGAL0(128),NROWS0,NCOLS0,CURRO0,CURC
     *O0,TOPRO0,BOTRO0,CMDRO0,TOPLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,
     *SCLEN0,SCTOP0,SCLIN0
      INTEGER SCREE0
      INTEGER MSGAL0,NROWS0,NCOLS0,CURRO0,CURCO0,TOPRO0,BOTRO0,CMDRO0,TO
     *PLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,SCLEN0,SCTOP0,SCLIN0(51)
      COMMON /CUNIX0/UNIXM0,BACKS0,NOTIN0,XMARK0,ESCAP0
      INTEGER UNIXM0
      INTEGER BACKS0,NOTIN0,XMARK0,ESCAP0
      COMMON /CTTY/TTYST0
      INTEGER TTYST0
      INTEGER ROW,COL
      EQUIVALENCE (PREVL0(1),BUFAA0(1)),(NEXTL0(1),BUFAA0(2)),(GLOBM0(1)
     *,BUFAA0(3)),(SEEKA0(1),BUFAA0(4)),(LINEL0(1),BUFAA0(6)),(MARKN0(1)
     *,BUFAA0(7))
      CALL CLRSC0
      DO 10035 ROW=1,NROWS0
        DO 10037 COL=1,NCOLS0
          IF((SCREE0(COL,ROW).EQ.160))GOTO 10039
            CALL POSIT0(ROW,COL)
            CALL SEND(SCREE0(COL,ROW))
10039     CONTINUE
10037   CONTINUE
10038   CONTINUE
10035 CONTINUE
10036 RETURN
      END
      SUBROUTINE CLRSC0
      COMMON /CLINES/LINE10,LINE20,NLINE0,CURLN0,LASTL0
      INTEGER LINE10,LINE20,NLINE0,CURLN0,LASTL0
      COMMON /CPAT/PATAA0(256),TLPAT0(256),SUBSA0(256),TSETA0(256)
      INTEGER PATAA0,TLPAT0,SUBSA0,TSETA0
      COMMON /CTXT/TXTAA0(512)
      INTEGER TXTAA0
      COMMON /CFILE/SAVFI0(512)
      INTEGER SAVFI0
      COMMON /CBUFR$/LASTB0,FENCE0,FREEA0,LINE00,BUFAA0(65520)
      INTEGER LASTB0,FENCE0,FREEA0,LINE00
      INTEGER BUFAA0
      INTEGER PREVL0(1),NEXTL0(1)
      INTEGER GLOBM0(1),LINEL0(1)
      INTEGER * 4 SEEKA0(1)
      INTEGER MARKN0(1)
      COMMON /CUNDO/LIMBO0,LIMCN0
      INTEGER LIMBO0,LIMCN0
      COMMON /CSCRAT/SCRAA0,SCREN0,SCRNA0(512),LOSTL0
      INTEGER SCRAA0
      INTEGER * 4 SCREN0
      INTEGER SCRNA0
      INTEGER LOSTL0
      COMMON /CMISC/BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0,PEEKC0,SAV
     *CO0
      INTEGER BUFFE0,ERRCO0,SAVER0,PROBA0,ARGNO0,LASTC0
      INTEGER PEEKC0,SAVCO0(512)
      COMMON /CMARK/SAVKN0
      INTEGER SAVKN0
      COMMON /COPT/TABST0(512),TABSU0(512),UNPRI0,DDIRA0,ABSNO0,NCHOI0,O
     *VERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GLOBA0
      INTEGER TABST0,TABSU0,UNPRI0
      INTEGER DDIRA0,ABSNO0,NCHOI0,OVERM0,WARNC0,FIRST0,TSPEE0,INDEN0,GL
     *OBA0
      COMMON /CTERM/TERMT0
      INTEGER TERMT0
      COMMON /CSCRN/SCREE0(128,51),MSGAL0(128),NROWS0,NCOLS0,CURRO0,CURC
     *O0,TOPRO0,BOTRO0,CMDRO0,TOPLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,
     *SCLEN0,SCTOP0,SCLIN0
      INTEGER SCREE0
      INTEGER MSGAL0,NROWS0,NCOLS0,CURRO0,CURCO0,TOPRO0,BOTRO0,CMDRO0,TO
     *PLN0,INSER0,INVER0,FIRSU0,RELAA0,RELZA0,SCLEN0,SCTOP0,SCLIN0(51)
      COMMON /CUNIX0/UNIXM0,BACKS0,NOTIN0,XMARK0,ESCAP0
      INTEGER UNIXM0
      INTEGER BACKS0,NOTIN0,XMARK0,ESCAP0
      COMMON /CTTY/TTYST0
      INTEGER TTYST0
      INTEGER AAAAG0
      EQUIVALENCE (PREVL0(1),BUFAA0(1)),(NEXTL0(1),BUFAA0(2)),(GLOBM0(1)
     *,BUFAA0(3)),(SEEKA0(1),BUFAA0(4)),(LINEL0(1),BUFAA0(6)),(MARKN0(1)
     *,BUFAA0(7))
      CURCO0=1
      CURRO0=1
      AAAAG0=TERMT0
      GOTO 10040
10041   CALL T1OU(140)
      GOTO 10042
10043   CALL T1OU(155)
        CALL T1OU(203)
      GOTO 10042
10044   CALL T1OU(155)
        CALL T1OU(170)
      GOTO 10042
10045   CALL T1OU(140)
        CALL T1OU(143)
      GOTO 10042
10046   CALL T1OU(155)
        CALL T1OU(197)
      GOTO 10042
10047   CALL T1OU(155)
        CALL T1OU(156)
      GOTO 10042
10048   CALL T1OU(154)
      GOTO 10042
10049   CALL T1OU(155)
        CALL T1OU(246)
      GOTO 10042
10050   CALL T1OU(155)
        CALL T1OU(171)
      GOTO 10042
10051   CALL T1OU(155)
        CALL T1OU(204)
      GOTO 10042
10052   CALL T1OU(155)
        CALL T1OU(200)
        CALL T1OU(155)
        CALL T1OU(202)
      GOTO 10042
10053   CALL T1OU(156)
        CALL T1OU(159)
      GOTO 10042
10054   CALL T1OU(159)
      GOTO 10042
10055   CALL T1OU(155)
        CALL T1OU(191)
      GOTO 10042
10056   CALL T1OU(155)
        CALL T1OU(219)
        CALL T1OU(187)
        CALL T1OU(200)
        CALL T1OU(155)
        CALL T1OU(219)
        CALL T1OU(178)
        CALL T1OU(202)
      GOTO 10042
10057   CALL T1OU(133)
        CALL T1OU(139)
      GOTO 10042
10040 GOTO(10041,10041,10043,10045,10041,10046,10046,10046,10046,10047, 
     *    10041,10041,10048,10051,10041,10041,10046,10053,10052,10050,  
     *   10048,10046,10049,10048,10044,10052,10047,10043,10052,10046,   
     *  10046,10054,10055,10056,10041,10048,10044,10041,10052,10041,    
     * 10058,10041,10050,10057),AAAAG0
      IF(AAAAG0.EQ.1420)GOTO 10047
10058 CONTINUE
10042 IF((TERMT0.EQ.14))GOTO 10059
      IF((TERMT0.EQ.15))GOTO 10059
      IF((TERMT0.EQ.33))GOTO 10059
        CALL SENDD0(20)
10059 RETURN
      END
C ---- Long Name Map ----
C Toprow                         topro0
C Sctop                          sctop0
C logfile                        logfi0
C inslines                       insli0
C Lostlines                      lostl0
C Indent                         inden0
C Invertcase                     inver0
C Fence                          fence0
C Topln                          topln0
C gt40pos                        gt40p0
C terakpos                       terak0
C Savfil                         savfi0
C Line0                          line00
C Tspeed                         tspee0
C clrscreen                      clrsc0
C printverboseerrormessage       print0
C Line1                          line10
C Absnos                         absno0
C uniquelyname                   uniqu0
C Line2                          line20
C Limcnt                         limcn0
C Curcol                         curco0
C Insertmode                     inser0
C dologout                       dolog0
C doshell                        doshe0
C Nlines                         nline0
C Savcom                         savco0
C newname                        newna0
C Peekc                          peekc0
C addspos                        addsp0
C fixscreen                      fixsc0
C Prevline                       prevl0
C Cmdrow                         cmdro0
C adjustwindow                   adjus0
C Bufferchanged                  buffe0
C Errcode                        errco0
C Firstcol                       first0
C Globals                        globa0
C updscreen                      updsc0
C Lastln                         lastl0
C Nextline                       nextl0
C Overlaycol                     overm0
C newscrend                      newsc0
C Txt                            txtaa0
C Savknm                         savkn0
C Tabstr                         tabsu0
C Nrows                          nrows0
C Unixmode                       unixm0
C setscreen                      setsc0
C forsyspos                      forsy0
C Scrname                        scrna0
C Nchoise                        nchoi0
C litmesg                        litme0
C getrange                       getra0
C drawbox                        drawb0
C Seekaddr                       seeka0
C Limbo                          limbo0
C garbagecollect                 garba0
C Subs                           subsa0
C Relz                           relza0
C termtype                       termu0
C dellines                       delli0
C displaymessage                 displ0
C loadstr                        loads0
C restorescreen                  resto0
C Tabstops                       tabst0
C Sclen                          sclen0
C cleartoeol                     clear0
C Buf                            bufaa0
C whereami                       where0
C Tset                           tseta0
C Argno                          argno0
C ansipos                        ansip0
C Unprintable                    unpri0
C regentpos                      regen0
C savelword                      savel0
C sendmesg                       sendm0
C Botrow                         botro0
C Markname                       markn0
C Probation                      proba0
C Lastcharscanned                lastc0
C Warncol                        warnc0
C initialize                     initi0
C overlay                        overl0
C Pat                            pataa0
C Lineleng                       linel0
C cunixswt                       cunix0
C decodemnemonic                 decod0
C Globmark                       globm0
C Termtype                       termt0
C Ncols                          ncols0
C Currow                         curro0
C recvmesg                       recvm0
C Scr                            scraa0
C Firstaffected                  firsu0
C NOTINCCL                       notin0
C bee2pos                        bee2p0
C positioncursor                 posit0
C Msgalloc                       msgal0
C hwinsdel                       hwins0
C litnnum                        litnn0
C Screenimage                    scree0
C gettermtype                    gette0
C sbeecoord                      sbeec0
C warndeleted                    warnd0
C Curln                          curln0
C Free                           freea0
C XMARK                          xmark0
C defaulttabs                    defau0
C b200coord                      b200c0
C spinject                       spinj0
C Tlpat                          tlpat0
C Lastbf                         lastb0
C Saverrcode                     saver0
C Ddir                           ddira0
C Rela                           relaa0
C ESCAPE                         escap0
C senddelay                      sendd0
C Scline                         sclin0
C Ttystate                       ttyst0
C cgcoord                        cgcoo0
C Scrend                         scren0
C BACKSCAN                       backs0
