SUBROUTINE CLOSEF(FD) INTEGER FD INTEGER JUNK CALL SRCH$$(4,0,0,FD,JUNK,JUNK) RETURN END SUBROUTINE CLRBUF 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 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)) IF((LASTL0.LE.1))GOTO 10000 CALL SVDEL(1,LASTL0) 10000 CALL CLOSEF(SCRAA0) CALL REMOVE(SCRNA0) RETURN END SUBROUTINE MAKSCR(FD,STR) INTEGER FD INTEGER STR(1) INTEGER F,I,NAME(512),L INTEGER SCOPY,CREATE,MAPFD INTEGER AAAAA0(15) DATA AAAAA0/189,244,229,237,240,189,175,243,229,189,240,233,228,18 *9,0/ L=SCOPY(AAAAA0,1,NAME,1) I=176 GOTO 10003 10001 I=I+(1) 10003 IF((I.GT.185))GOTO 10002 NAME(L+1)=I NAME(L+2)=0 F=CREATE(NAME,3+:2000) IF((F.EQ.-3))GOTO 10001 FD=MAPFD(F) CALL SCOPY(NAME,1,STR,1) RETURN 10002 CALL ERROR('can''t create scratch file.') END SUBROUTINE SETBUF 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 P 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 MAKSCR(SCRAA0,SCRNA0) SCREN0=0 CURLN0=0 LASTL0=0 LASTB0=1 FREEA0=-1 LIMBO0=-1 LIMCN0=0 LOSTL0=0 CALL MAKLIN(0,1,P) CALL RELINK(P,P,P,P) MARKN0(P)=0 LINE00=P RETURN END INTEGER FUNCTION SPINJ0(LIN,LEN,LINE) INTEGER LIN(1) INTEGER LEN INTEGER LINE 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 K,PTR INTEGER ALLOC 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)) SPINJ0=ALLOC(PTR) IF((PTR.NE.-1))GOTO 10005 ERRCO0=25 RETURN 10005 SEEKA0(PTR)=SCREN0 LINEL0(PTR)=LEN+1 GLOBM0(PTR)=0 MARKN0(PTR)=160 CALL SEEKF(SCREN0,SCRAA0) CALL WRITEF(LIN,LEN+1,SCRAA0) SCREN0=SCREN0+(LEN+1) LASTL0=LASTL0+(1) BUFFE0=1 K=NEXTL0(LINE) CALL RELINK(LINE,PTR,PTR,K) CALL RELINK(PTR,K,LINE,PTR) RETURN END SUBROUTINE DOLOG0(CP) INTEGER * 4 CP INTEGER JUNK 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 AAAAB0(17) 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 AAAAB0/189,232,239,237,229,189,175,243,229,174,236,239,231,23 *9,245,244,0/ CALL REMARK('saving buffer because of pending logout.') CALL DOWRIT(1,LASTL0,AAAAB0,0,1) CALL CLRBUF CALL DUPLX$(TTYST0) CALL BREAK$(0) CALL CNSIG$(JUNK) RETURN END INTEGER FUNCTION DOREAD(LINE,FILE) INTEGER LINE INTEGER FILE(512) 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 LIN(512) INTEGER COUNT,FD,LEN,LOCAL0,COUNT0 INTEGER GETLIN,OPEN INTEGER PTR INTEGER SPINJ0,GETIND LOGICAL INTRPT,BRKFL0 INTEGER AAAAC0(8) 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 AAAAC0/242,229,225,228,233,238,231,0/ LOCAL0=LINE IF((SAVFI0(1).NE.0))GOTO 10006 CALL CTOC(FILE,SAVFI0,512) CALL MESG(SAVFI0,6) 10006 FD=OPEN(FILE,1) IF((FD.NE.-3))GOTO 10007 DOREAD=-3 ERRCO0=6 GOTO 10008 10007 FIRSU0=MIN0(FIRSU0,LOCAL0+1) PTR=GETIND(LOCAL0) DOREAD=-2 CALL MESG(AAAAC0,1) COUNT0=100 LEN=GETLIN(LIN,FD,512) COUNT=0 GOTO 10011 10009 COUNT=COUNT+(1) 10011 IF((LEN.EQ.-1))GOTO 10010 COUNT0=COUNT0-(1) IF((COUNT0.GT.0))GOTO 10012 IF((.NOT.INTRPT(BRKFL0)))GOTO 10013 DOREAD=-3 GOTO 10010 10013 COUNT0=100 10012 PTR=SPINJ0(LIN,LEN,PTR) IF((PTR.NE.-1))GOTO 10014 DOREAD=-3 GOTO 10010 10014 LEN=GETLIN(LIN,FD,512) GOTO 10009 10010 CALL CLOSE(FD) CALL SAYNUM(COUNT) CURLN0=LOCAL0+COUNT CALL SVINS(LINE,COUNT) 10008 RETURN END INTEGER FUNCTION DOWRIT(FROM,TO,FILE,AFLAG,FFLAG) INTEGER FROM,TO,AFLAG,FFLAG INTEGER FILE(512) 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,LINE,TEMP,COUNT0 INTEGER CREATE,OPEN,MAPFD,EQUAL,FILTST INTEGER K INTEGER GETIND LOGICAL INTRPT,BRKFL0 INTEGER AAAAD0(8) 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 AAAAD0/247,242,233,244,233,238,231,0/ DOWRIT=-3 IF((LINE10.GT.0))GOTO 10015 ERRCO0=17 GOTO 10016 10015 IF((AFLAG.NE.1))GOTO 10017 FD=OPEN(FILE,3) GOTO 10018 10017 IF((EQUAL(FILE,SAVFI0).EQ.1))GOTO 10020 IF((FFLAG.EQ.1))GOTO 10020 IF((PROBA0.EQ.247))GOTO 10020 IF((FILTST(FILE,0,0,1,0,0,0,0).EQ.0))GOTO 10020 GOTO 10019 10020 FD=CREATE(FILE,2) GOTO 10021 10019 ERRCO0=33 PROBA0=247 RETURN 10021 CONTINUE 10018 IF((FD.NE.-3))GOTO 10022 ERRCO0=24 GOTO 10023 10022 DOWRIT=-2 CALL MESG(AAAAD0,1) IF((AFLAG.NE.1))GOTO 10024 CALL WIND(FD) 10024 COUNT0=100 K=GETIND(FROM) LINE=FROM GOTO 10027 10025 K=NEXTL0(K) LINE=LINE+(1) 10027 IF((LINE.GT.TO))GOTO 10026 COUNT0=COUNT0-(1) IF((COUNT0.GT.0))GOTO 10028 IF((.NOT.INTRPT(BRKFL0)))GOTO 10029 DOWRIT=-3 GOTO 10026 10029 COUNT0=100 10028 CALL GTXT(K) CALL PUTLIN(TXTAA0,FD) GOTO 10025 10026 TEMP=MAPFD(FD) IF((TEMP.EQ.-3))GOTO 10030 CALL FORCEW(0,TEMP) 10030 CALL CLOSE(FD) CALL SAYNUM(LINE-FROM) IF((FROM.NE.1))GOTO 10031 IF((LINE-1.NE.LASTL0))GOTO 10031 BUFFE0=0 10031 CONTINUE 10023 CONTINUE 10016 RETURN END INTEGER FUNCTION CKUPD(LIN,I,CMD,STATUS) INTEGER LIN(1),CMD INTEGER I,STATUS 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 FLAG INTEGER CKCHAR 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)) STATUS=CKCHAR(161,161,LIN,I,FLAG,STATUS) IF((FLAG.NE.0))GOTO 10032 IF((BUFFE0.NE.1))GOTO 10032 IF((PROBA0.EQ.CMD))GOTO 10032 STATUS=-3 ERRCO0=20 PROBA0=CMD 10032 CKUPD=STATUS RETURN END INTEGER FUNCTION GETFN(LIN,I,FILE) INTEGER I INTEGER LIN(512),FILE(512) 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 J,K 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)) GETFN=-3 IF((LIN(I+1).NE.160))GOTO 10033 J=I+2 10034 IF((LIN(J).NE.160))GOTO 10035 J=J+(1) GOTO 10034 10035 K=1 GOTO 10038 10036 K=K+(1) J=J+(1) 10038 IF((LIN(J).EQ.138))GOTO 10037 FILE(K)=LIN(J) GOTO 10036 10037 FILE(K)=0 IF((K.LE.1))GOTO 10040 GETFN=-2 10039 GOTO 10040 10033 IF((LIN(I+1).NE.138))GOTO 10041 IF((SAVFI0(1).EQ.0))GOTO 10041 CALL SCOPY(SAVFI0,1,FILE,1) GETFN=-2 GOTO 10042 10041 IF((LIN(I+1).NE.138))GOTO 10043 ERRCO0=27 GOTO 10044 10043 ERRCO0=8 10044 CONTINUE 10042 CONTINUE 10040 IF((GETFN.NE.-2))GOTO 10045 IF((SAVFI0(1).NE.0))GOTO 10045 CALL SCOPY(FILE,1,SAVFI0,1) CALL MESG(SAVFI0,6) 10045 RETURN END INTEGER FUNCTION SENDM0(TONAME,FROM,TO) INTEGER TONAME(512) INTEGER FROM,TO 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 DOFW(10),PID(4),TIME(9),FNAME(42),FROMN0(33) INTEGER MAPUP INTEGER FD,TMP INTEGER OPEN,CREATE INTEGER I,ID INTEGER VFYUSR,CTOI,DOWRIT INTEGER TMPNA0(18) INTEGER AAAAE0(18) INTEGER AAAAF0(12) 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 TMPNA0/189,244,229,237,240,189,175,243,229,174,237,243,189,24 *0,233,228,189,0/ DATA AAAAE0/189,231,239,243,243,233,240,189,175,170,170,170,179,17 *2,172,176,233,0/ DATA AAAAF0/189,231,239,243,243,233,240,189,175,170,243,0/ IF((FROM.GT.0))GOTO 10046 ERRCO0=17 SENDM0=-3 RETURN 10046 I=1 ID=CTOI(TONAME,I) IF((I.EQ.1))GOTO 10047 IF((ID.GT.128))GOTO 10049 IF((ID.LT.1))GOTO 10049 GOTO 10048 10049 ERRCO0=37 SENDM0=-3 RETURN 10048 CALL ENCODE(FNAME,9+33,AAAAE0,ID) GOTO 10050 10047 IF((VFYUSR(TONAME).NE.-3))GOTO 10051 ERRCO0=37 SENDM0=-3 RETURN 10051 CALL ENCODE(FNAME,9+33,AAAAF0,TONAME) 10050 CALL DATE(3,FROMN0) CALL DATE(2,TIME) CALL DATE(4,PID) CALL DATE(5,DOFW) DOFW(1)=MAPUP(DOFW(1)) TMP=CREATE(TMPNA0,3) IF((TMP.NE.-3))GOTO 10052 SENDM0=-3 RETURN 10052 CALL PRINT(TMP,'*2nFrom *s (*s) at *,5s on *s@.*2n.',FROMN0,PID,TI *ME,DOFW) CALL CLOSE(TMP) IF((DOWRIT(FROM,TO,TMPNA0,1,0).EQ.-2))GOTO 10053 CALL REMOVE(TMPNA0) SENDM0=-3 RETURN 10053 TMP=OPEN(TMPNA0,1) IF((TMP.NE.-3))GOTO 10054 SENDM0=-3 RETURN 10054 I=0 GOTO 10057 10055 I=I+(1) 10057 IF((I.GE.10))GOTO 10056 FD=OPEN(FNAME,2) IF((FD.EQ.-3))GOTO 10058 CALL WIND(FD) CALL FCOPY(TMP,FD) CALL CLOSE(FD) CALL CLOSE(TMP) CALL REMOVE(TMPNA0) SENDM0=-2 RETURN 10058 CALL SLEEP$(INTL(500)) GOTO 10055 10056 CALL CLOSE(TMP) CALL REMOVE(TMPNA0) ERRCO0=38 SENDM0=-3 RETURN END SUBROUTINE RECVM0 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,TFD INTEGER OPEN,CREATE,MKTEMP,DISPL0 INTEGER PATH(512) INTEGER AAAAG0(16) INTEGER AAAAH0(16) INTEGER AAAAI0(12) 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 AAAAG0/189,231,239,243,243,233,240,189,175,189,245,243,229,24 *2,189,0/ DATA AAAAH0/189,231,239,243,243,233,240,189,175,170,189,240,233,22 *8,189,0/ DATA AAAAI0/206,239,160,237,229,243,243,225,231,229,243,0/ CALL SCOPY(AAAAG0,1,PATH,1) FD=OPEN(PATH,1) IF((FD.NE.-3))GOTO 10059 CALL SCOPY(AAAAH0,1,PATH,1) FD=OPEN(PATH,1) 10059 IF((FD.NE.-3))GOTO 10060 CALL MESG(AAAAI0,1) GOTO 10061 10060 IF((DISPL0(FD).NE.-1))GOTO 10062 CALL CLOSE(FD) CALL REMOVE(PATH) GOTO 10063 10062 TFD=MKTEMP(3) CALL FCOPY(FD,TFD) CALL REWIND(TFD) CALL CLOSE(FD) FD=CREATE(PATH,3) IF((FD.EQ.-3))GOTO 10064 CALL FCOPY(TFD,FD) CALL CLOSE(FD) 10064 CALL RMTEMP(TFD) 10063 CONTINUE 10061 RETURN END C ---- Long Name Map ---- C Toprow topro0 C Sctop sctop0 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 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 Txt txtaa0 C Savknm savkn0 C Tabstr tabsu0 C Nrows nrows0 C Unixmode unixm0 C tmpname tmpna0 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 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 fromname fromn0 C sendmesg sendm0 C Botrow botro0 C Markname markn0 C Probation proba0 C Lastcharscanned lastc0 C counter count0 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 brkflag brkfl0 C recvmesg recvm0 C Scr scraa0 C Firstaffected firsu0 C NOTINCCL notin0 C localline local0 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 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