INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER A$BUF(200) INTEGER CSW,FILE,MODE,REC INTEGER BLKSP0,CONVS0,CHECK0,CHECL0,POSSP0,POSIT0,READW0,UNITS0 INTEGER USAGE(78) INTEGER AAAAA0 INTEGER PARSCL INTEGER AAAAB0(25) INTEGER AAAAC0(24) INTEGER AAAAD0(22) DATA USAGE/213,243,225,231,229,186,160,237,244,160,219,188,245,238 *,233,244,190,221,160,219,173,240,160,188,240,239,243,190,221,160,2 *19,173,168,242,252,247,169,160,219,173,226,160,188,226,236,239,227 *,235,190,221,160,219,173,227,160,188,227,239,238,246,190,221,160,2 *51,188,230,233,236,229,190,253,221,160,219,173,246,221,0/ DATA AAAAB0/240,188,242,243,190,226,188,242,243,190,227,188,242,24 *3,190,238,188,233,231,238,190,242,247,246,0/ DATA AAAAC0/170,233,160,242,229,227,239,246,229,242,229,228,160,23 *3,175,239,160,229,242,242,239,242,243,0/ DATA AAAAD0/160,168,170,233,160,195,210,195,160,227,239,242,242,22 *9,227,244,233,239,238,243,169,0/ IF((UNITS0(UNITA0).NE.-3))GOTO 10001 CALL ERROR(USAGE) 10001 IF((CHECL0(CSW).NE.-3))GOTO 10002 AAAAA0=1 GOTO 10000 10003 CONTINUE 10002 IF((PARSCL(AAAAB0,A$BUF).NE.-3))GOTO 10004 CALL ERROR(USAGE) 10004 IF((A$BUF(242-225+1).EQ.0))GOTO 10005 IF((A$BUF(247-225+1).EQ.0))GOTO 10005 CALL ERROR(USAGE) 10005 CONVA0=0 RECSI0=80 BLKSI0=800 CORRE0=0 RECOV0=0 VERBO0=0 IF((A$BUF(246-225+1).EQ.0))GOTO 10006 VERBO0=1 10006 IF((A$BUF(226-225+1).EQ.0))GOTO 10007 IF((BLKSP0(A$BUF(A$BUF(226-225+27)),RECSI0,BLKSI0).NE.-3))GOTO 100 *07 AAAAA0=2 GOTO 10000 10008 CONTINUE 10007 IF((A$BUF(227-225+1).EQ.0))GOTO 10009 IF((CONVS0(A$BUF(A$BUF(227-225+27)),CONVA0).NE.-3))GOTO 10009 AAAAA0=3 GOTO 10000 10010 CONTINUE 10009 IF((CONVA0.NE.1))GOTO 10011 BLKSI0=(BLKSI0+1)/2 10011 IF((CHECK0(CONVA0,RECSI0,BLKSI0).NE.-3))GOTO 10012 AAAAA0=4 GOTO 10000 10013 CONTINUE 10012 IF((A$BUF(240-225+1).EQ.0))GOTO 10014 IF((POSSP0(A$BUF(A$BUF(240-225+27)),MODE,FILE,REC).EQ.-3))GOTO 1 *0016 IF((POSIT0(MODE,FILE,REC).EQ.-3))GOTO 10016 GOTO 10015 10016 AAAAA0=5 GOTO 10000 10017 CONTINUE 10015 CONTINUE 10014 BADDR0(1)=LOC(BUFFE0) BADDR0(2)=LOC(BUFFF0) IF((A$BUF(242-225+1).EQ.0))GOTO 10018 CSW=READW0(1) GOTO 10019 10018 IF((A$BUF(247-225+1).EQ.0))GOTO 10020 CSW=READW0(2) 10020 CONTINUE 10019 IF((CSW.NE.-3))GOTO 10021 AAAAA0=6 GOTO 10000 10022 CONTINUE 10021 IF((RECOV0.EQ.0))GOTO 10023 CALL PRINT(-15,AAAAC0,RECOV0) IF((CORRE0.EQ.0))GOTO 10024 CALL PRINT(-15,AAAAD0,CORRE0) 10024 CALL PUTCH(138,-15) 10023 CALL SWT 10000 CALL SETERR(1000) CALL SWT 10025 GOTO(10003,10008,10010,10013,10017,10022),AAAAA0 GOTO 10025 END SUBROUTINE ASCII0(BUF,LEN) INTEGER BUF(1) INTEGER LEN INTEGER I INTEGER TABLE(128) DATA TABLE/0,1,2,3,55,45,46,47,22,5,37,11,12,13,14,15,16,17,18,19, *60,61,50,38,24,25,63,39,28,29,30,31,64,90,127,123,91,108,80,125,77 *,93,92,78,107,96,75,97,240,241,242,243,244,245,246,247,248,249,122 *,94,76,126,110,111,124,193,194,195,196,197,198,199,200,201,209,210 *,211,212,213,214,215,216,217,226,227,228,229,230,231,232,233,74,22 *4,79,95,109,121,129,130,131,132,133,134,135,136,137,145,146,147,14 *8,149,150,151,152,153,162,163,164,165,166,167,168,169,192,106,208, *161,7/ DO 10026 I=1,LEN BUF(I)=TABLE(AND(BUF(I),127)+1) 10026 CONTINUE 10027 RETURN END INTEGER FUNCTION BLKSP0(STR,RECSZ,BLKSZ) INTEGER RECSZ,BLKSZ INTEGER STR(1) INTEGER I INTEGER CTOI INTEGER AAAAE0(46) DATA AAAAE0/243,249,238,244,225,248,186,160,160,173,226,160,188,24 *2,229,227,239,242,228,160,243,233,250,229,190,219,175,188,226,236, *239,227,235,233,238,231,160,230,225,227,244,239,242,190,221,0/ I=1 RECSZ=CTOI(STR,I) IF((STR(I).EQ.175))GOTO 10029 IF((STR(I).EQ.174))GOTO 10029 GOTO 10028 10029 I=I+(1) BLKSZ=CTOI(STR,I)*RECSZ GOTO 10030 10028 BLKSZ=RECSZ 10030 IF((STR(I).EQ.0))GOTO 10031 CALL REMARK(AAAAE0) BLKSP0=-3 RETURN 10031 BLKSP0=-2 RETURN END INTEGER FUNCTION CHECK0(CONV,RECSZ,BLKSZ) INTEGER CONV,RECSZ,BLKSZ INTEGER MAXB,MAXW INTEGER AAAAF0(33) DATA AAAAF0/237,225,248,233,237,245,237,160,226,236,239,227,235,16 *0,243,233,250,229,160,233,243,160,170,233,160,226,249,244,229,243, *170,238,0/ IF((CONV.NE.1))GOTO 10032 MAXW=5120 MAXB=5120*2 GOTO 10033 10032 MAXW=5120-1 MAXB=MAXW 10033 IF((BLKSZ.LE.MAXW))GOTO 10034 CALL PRINT(-15,AAAAF0,MAXB) CHECK0=-3 RETURN 10034 CHECK0=-2 RETURN END INTEGER FUNCTION POSSP0(STR,MODE,FILE,REC) INTEGER STR(1) INTEGER MODE,FILE,REC INTEGER I INTEGER CTOI INTEGER AAAAG0(48) DATA AAAAG0/243,249,238,244,225,248,186,160,160,173,240,160,219,17 *1,252,173,221,188,230,233,236,229,160,238,245,237,226,229,242,190, *219,175,188,226,236,239,227,235,160,238,245,237,226,229,242,190,22 *1,0/ IF((STR(1).EQ.171))GOTO 10036 IF((STR(1).EQ.173))GOTO 10036 GOTO 10035 10036 IF((STR(1).NE.171))GOTO 10037 MODE=1 GOTO 10038 10037 MODE=-1 10038 I=2 GOTO 10039 10035 MODE=0 I=1 10039 FILE=CTOI(STR,I) IF((FILE.NE.0))GOTO 10040 IF((MODE.NE.0))GOTO 10040 FILE=1 10040 IF((STR(I).EQ.174))GOTO 10042 IF((STR(I).EQ.175))GOTO 10042 GOTO 10041 10042 I=I+(1) REC=CTOI(STR,I) GOTO 10043 10041 REC=0 10043 IF((REC.NE.0))GOTO 10044 IF((MODE.NE.0))GOTO 10044 REC=1 10044 IF((STR(I).EQ.0))GOTO 10045 CALL REMARK(AAAAG0) POSSP0=-3 RETURN 10045 POSSP0=-2 RETURN END INTEGER FUNCTION CHECL0(CSW) INTEGER CSW INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER MTSCH0,MTSTAT INTEGER AAAAH0(21) DATA AAAAH0/245,238,233,244,243,160,225,242,229,160,170,233,160,24 *4,239,160,170,233,170,238,0/ CSW=0 GOTO 10046 10047 CALL PRINT(-15,AAAAH0,0,7) GOTO 10048 10049 GOTO 10048 10048 CHECL0=-3 RETURN 10046 IF((UNITA0.LT.0))GOTO 10047 IF((UNITA0.GT.7))GOTO 10047 IF((MTSCH0(MTSTAT(CSW)).EQ.-3))GOTO 10049 CHECL0=-2 RETURN END INTEGER FUNCTION CONVS0(STR,CONV) INTEGER CONV INTEGER STR(1) INTEGER AAAAI0 INTEGER AAAAJ0 INTEGER AAAAK0(44) DATA AAAAK0/243,249,238,244,225,248,186,160,160,173,227,160,168,22 *5,219,243,227,233,233,221,160,252,160,226,219,233,238,225,242,249, *221,160,252,160,229,219,226,227,228,233,227,221,169,0/ AAAAI0=STR(1) GOTO 10050 10051 CONV=0 GOTO 10052 10053 CONV=1 GOTO 10052 10054 CONV=2 GOTO 10052 10050 AAAAJ0=AAAAI0-192 GOTO(10051,10053,10055,10055,10054),AAAAJ0 AAAAJ0=AAAAI0-224 GOTO(10051,10053,10055,10055,10054),AAAAJ0 10055 CALL REMARK(AAAAK0) CONVS0=-3 RETURN 10052 CONVS0=-2 RETURN END SUBROUTINE EBCDI0(BUF,LEN) INTEGER BUF(1) INTEGER LEN INTEGER TABLE(256) INTEGER I DATA TABLE/128,129,130,131,63,137,63,255,63,63,63,139,140,141,142, *143,144,145,146,147,63,63,136,63,152,153,63,63,156,157,158,159,63, *63,63,63,63,138,151,155,63,63,63,63,63,133,134,135,63,63,150,63,63 *,63,63,132,63,63,63,63,148,149,63,154,160,63,63,63,63,63,63,63,63, *63,219,174,188,168,171,221,166,63,63,63,63,63,63,63,63,63,161,164, *170,169,187,222,173,175,63,63,63,63,63,63,63,63,252,172,165,223,19 *0,191,63,63,63,63,63,63,63,63,63,224,186,163,192,167,189,162,63,22 *5,226,227,228,229,230,231,232,233,63,63,63,63,63,63,63,234,235,236 *,237,238,239,240,241,242,63,63,63,63,63,63,63,254,243,244,245,246, *247,248,249,250,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63 *,63,63,63,63,63,251,193,194,195,196,197,198,199,200,201,63,63,63,6 *3,63,63,253,202,203,204,205,206,207,208,209,210,63,63,63,63,63,63, *220,63,211,212,213,214,215,216,217,218,63,63,63,63,63,63,176,177,1 *78,179,180,181,182,183,184,185,63,63,63,63,63,63/ DO 10056 I=1,LEN BUF(I)=TABLE(BUF(I)+1) 10056 CONTINUE 10057 RETURN END INTEGER FUNCTION GETBUF(BUFN,FD) INTEGER BUFN,FD INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER FILL INTEGER NB,NW,I INTEGER READF,READLN INTEGER AAAAL0 INTEGER AAAAM0 INTEGER AAAAN0 INTEGER AAAAO0 INTEGER AAAAP0 INTEGER AAAAQ0 INTEGER AAAAR0,AAAAS0 IF((CONVA0.NE.1))GOTO 10058 AAAAL0=BUFN GOTO 10059 10060 NW=READF(BUFFE0,BLKSI0,FD) IF((NW.GT.0))GOTO 10061 GETBUF=-1 RETURN 10061 CONTINUE 10062 IF((NW.GE.BLKSI0))GOTO 10063 NW=NW+(1) BUFFE0(NW)=0 GOTO 10062 10063 BUFLE0(1)=BLKSI0 GOTO 10064 10065 NW=READF(BUFFF0,BLKSI0,FD) IF((NW.GT.0))GOTO 10066 GETBUF=-1 RETURN 10066 CONTINUE 10067 IF((NW.GE.BLKSI0))GOTO 10068 NW=NW+(1) BUFFF0(NW)=0 GOTO 10067 10068 BUFLE0(2)=BLKSI0 GOTO 10064 10059 GOTO(10060,10065),AAAAL0 10064 GOTO 10069 10058 AAAAM0=BUFN GOTO 10070 10071 NB=0 GOTO 10074 10072 NB=NB+(RECSI0) 10074 IF((NB.GE.BLKSI0))GOTO 10073 IF((READLN(FD,BUFFE0(NB+1),RECSI0).NE.-1))GOTO 10075 GOTO 10073 10075 GOTO 10072 10073 IF((NB.NE.0))GOTO 10076 GETBUF=-1 RETURN 10076 AAAAN0=CONVA0 GOTO 10077 10078 FILL=32 DO 10079 I=1,NB BUFFE0(I)=AND(BUFFE0(I),127) 10079 CONTINUE 10080 GOTO 10081 10082 FILL=64 CALL ASCII0(BUFFE0,NB) GOTO 10081 10077 AAAAO0=AAAAN0+1 GOTO(10078,10083,10082),AAAAO0 10083 CONTINUE 10081 CONTINUE 10084 IF((NB.GE.BLKSI0))GOTO 10085 NB=NB+(1) BUFFE0(NB)=FILL GOTO 10084 10085 BUFLE0(1)=BLKSI0 GOTO 10086 10087 NB=0 GOTO 10090 10088 NB=NB+(RECSI0) 10090 IF((NB.GE.BLKSI0))GOTO 10089 IF((READLN(FD,BUFFF0(NB+1),RECSI0).NE.-1))GOTO 10091 GOTO 10089 10091 GOTO 10088 10089 IF((NB.NE.0))GOTO 10092 GETBUF=-1 RETURN 10092 AAAAP0=CONVA0 GOTO 10093 10094 FILL=32 DO 10095 I=1,NB BUFFF0(I)=AND(BUFFF0(I),127) 10095 CONTINUE 10096 GOTO 10097 10098 FILL=64 CALL ASCII0(BUFFF0,NB) GOTO 10097 10093 AAAAQ0=AAAAP0+1 GOTO(10094,10099,10098),AAAAQ0 10099 CONTINUE 10097 CONTINUE 10100 IF((NB.GE.BLKSI0))GOTO 10101 NB=NB+(1) BUFFF0(NB)=FILL GOTO 10100 10101 BUFLE0(2)=BLKSI0 GOTO 10086 10070 GOTO(10071,10087),AAAAM0 10086 CONTINUE 10069 CALL PRWF$$(2,3,BADDR0(BUFN),BUFLE0(BUFN),INTL(0),AAAAR0,AAAAS0) GETBUF=-2 RETURN END INTEGER FUNCTION MTSCH0(CSW) INTEGER CSW INTEGER AAAAT0(18) INTEGER AAAAU0(19) DATA AAAAT0/228,242,233,246,229,160,233,243,160,239,230,230,160,23 *6,233,238,229,0/ DATA AAAAU0/228,242,233,246,229,160,233,243,160,238,239,244,160,24 *2,229,225,228,249,0/ GOTO 10102 10103 CALL REMARK(AAAAT0) GOTO 10104 10105 CALL REMARK(AAAAU0) GOTO 10104 10104 MTSCH0=-3 RETURN 10102 IF((AND(CSW,64).EQ.0))GOTO 10103 IF((AND(CSW,128).EQ.0))GOTO 10105 MTSCH0=-2 RETURN END INTEGER FUNCTION MTCHE0(RW,BUFN,CSW) INTEGER RW,BUFN,CSW INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER R INTEGER MTSCH0,MTSTAT LOGICAL CORR INTEGER AAAAV0 INTEGER AAAAW0 INTEGER AAAAX0(15) INTEGER AAAAY0(13) INTEGER AAAAZ0(5) INTEGER AAABA0(5) INTEGER AAABB0(5) INTEGER AAABC0(5) INTEGER AAABD0(5) INTEGER AAABE0(5) INTEGER AAABF0(5) DATA AAAAX0/194,236,239,227,235,160,170,181,172,173,177,176,233,18 *6,0/ DATA AAAAY0/160,213,238,242,229,227,239,246,229,242,229,228,0/ DATA AAAAZ0/160,214,208,197,0/ DATA AAABA0/160,210,213,206,0/ DATA AAABB0/160,195,210,195,0/ DATA AAABC0/160,204,210,195,0/ DATA AAABD0/160,196,205,193,0/ DATA AAABE0/160,213,206,195,0/ DATA AAABF0/160,210,193,215,0/ CALL MTWAIT(BUFST0(1,BUFN)) CSW=BUFST0(2,BUFN) IF((MTSCH0(CSW).NE.-3))GOTO 10108 MTCHE0=-3 RETURN 10108 IF((AND(CSW,:177000).NE.0))GOTO 10109 BUFOK0(BUFN)=1 BUFLE0(BUFN)=BUFST0(3,BUFN) MTCHE0=-2 RETURN 10109 CORR=.FALSE. DO 10110 R=1,10 CALL MTSKI0(-1) AAAAW0=1 GOTO 10107 10112 CONTINUE 10110 CONTINUE 10111 DO 10113 R=1,10 CALL MTSKI0(-1) IF((AND(MTSTAT(CSW),8).NE.0))GOTO 10115 CALL MTSKI0(-1) CALL MTSKI0(1) 10115 AAAAW0=2 GOTO 10107 10116 CONTINUE 10113 CONTINUE 10114 IF((RW.NE.1))GOTO 10117 CORR=.TRUE. AAAAW0=3 GOTO 10107 10118 CONTINUE 10117 CALL PRINT(-15,AAAAX0,BLOCK0) AAAAV0=1 GOTO 10106 10119 CALL REMARK(AAAAY0) BUFOK0(BUFN)=0 MTCHE0=-2 RETURN 10106 IF((AND(CSW,:100000).EQ.0))GOTO 10120 CALL PUTLIN(AAAAZ0,-15) 10120 IF((AND(CSW,16384).EQ.0))GOTO 10121 CALL PUTLIN(AAABA0,-15) 10121 IF((AND(CSW,8192).EQ.0))GOTO 10122 CALL PUTLIN(AAABB0,-15) 10122 IF((AND(CSW,4096).EQ.0))GOTO 10123 CALL PUTLIN(AAABC0,-15) 10123 IF((AND(CSW,2048).EQ.0))GOTO 10124 CALL PUTLIN(AAABD0,-15) 10124 IF((AND(CSW,1024).EQ.0))GOTO 10125 CALL PUTLIN(AAABE0,-15) 10125 IF((AND(CSW,512).EQ.0))GOTO 10126 CALL PUTLIN(AAABF0,-15) 10126 GOTO 10127 10107 CALL MTIO(RW,BUFN,CORR) CALL MTWAIT(BUFST0(1,BUFN)) CSW=BUFST0(2,BUFN) IF((MTSCH0(CSW).NE.-3))GOTO 10128 MTCHE0=-3 RETURN 10128 IF((AND(CSW,:177000).NE.0))GOTO 10129 RECOV0=RECOV0+(1) IF((.NOT.CORR))GOTO 10130 CORRE0=CORRE0+(1) 10130 BUFOK0(BUFN)=1 BUFLE0(BUFN)=BUFST0(3,BUFN) MTCHE0=-2 RETURN 10129 GOTO 10131 10131 GOTO(10112,10116,10118),AAAAW0 GOTO 10131 10127 GOTO 10119 END SUBROUTINE MTIO(RW,BUFN,CORR) INTEGER RW,BUFN LOGICAL CORR INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER INSTR,LEN INTEGER AAABG0 AAABG0=RW GOTO 10132 10133 LEN=5120 IF((CONVA0.NE.1))GOTO 10134 INSTR=17792 GOTO 10135 10134 INSTR=17536 10135 IF((.NOT.CORR))GOTO 10136 INSTR=XOR(INSTR,4096) 10136 GOTO 10137 10138 LEN=BUFLE0(BUFN) IF((CONVA0.NE.1))GOTO 10139 INSTR=17808 GOTO 10140 10139 INSTR=17552 10140 GOTO 10137 10132 GOTO(10133,10138),AAABG0 10137 CALL T$MT(UNITA0,BADDR0(BUFN),LEN,INSTR,BUFST0(1,BUFN)) RETURN END INTEGER FUNCTION MTREAD(FD) INTEGER FD INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER BUFN,CSW INTEGER ONEOFR,ONEOVR,MTCHE0 BLOCK0=1 BUFN=1 CALL MTIO(1,BUFN,.FALSE.) 10141 IF((MTCHE0(1,BUFN,CSW).EQ.-3))GOTO 10142 IF((AND(CSW,256).EQ.0))GOTO 10143 MTREAD=ONEOFR(CSW) RETURN 10143 IF((AND(CSW,32).EQ.0))GOTO 10144 IF((ONEOVR(CSW).NE.-3))GOTO 10145 GOTO 10142 10145 CALL MTREW0 CALL NEWRE0(1) 10144 CALL MTIO(1,XOR(BUFN,3),.FALSE.) CALL PUTBUF(BUFN,FD) BUFN=XOR(BUFN,3) BLOCK0=BLOCK0+(1) GOTO 10141 10142 MTREAD=-3 RETURN END SUBROUTINE MTREW0 INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER STATUS(8) SAVE STATUS CALL T$MT(UNITA0,LOC(0),0,32,STATUS) RETURN END SUBROUTINE MTSKJ0(DIREC0) INTEGER DIREC0 INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER INSTR,STATUS(8) SAVE STATUS IF((DIREC0.NE.1))GOTO 10146 INSTR=9344 GOTO 10147 10146 INSTR=9280 10147 CALL T$MT(UNITA0,LOC(0),0,INSTR,STATUS) RETURN END SUBROUTINE MTSKI0(DIREC0) INTEGER DIREC0 INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER INSTR,STATUS(8) SAVE STATUS IF((DIREC0.NE.-1))GOTO 10148 INSTR=25664 GOTO 10149 10148 INSTR=25728 10149 CALL T$MT(UNITA0,LOC(0),0,INSTR,STATUS) RETURN END INTEGER FUNCTION MTSTAT(CSW) INTEGER CSW INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER STATUS(8) SAVE STATUS CALL T$MT(UNITA0,LOC(0),0,:100000,STATUS) IF((AND(STATUS(2),16).EQ.0))GOTO 10150 CALL MTREW0 CALL T$MT(UNITA0,LOC(0),0,:100000,STATUS) 10150 CSW=STATUS(2) MTSTAT=CSW RETURN END SUBROUTINE MTWAIT(NOTDO0) LOGICAL NOTDO0 INTEGER CSW 10151 IF((.NOT.NOTDO0))GOTO 10152 CALL MTSTAT(CSW) GOTO 10151 10152 RETURN END INTEGER FUNCTION MTWRI0(FD) INTEGER FD INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER CSW,BUFN,STAT INTEGER GETBUF,MTCHE0,ONEOFW,ONEOVW BLOCK0=1 BUFN=1 STAT=GETBUF(BUFN,FD) 10153 IF((STAT.EQ.-1))GOTO 10154 CALL MTIO(2,BUFN,.FALSE.) STAT=GETBUF(XOR(BUFN,3),FD) IF((MTCHE0(2,BUFN,CSW).NE.-3))GOTO 10155 MTWRI0=-3 RETURN 10155 IF((AND(CSW,32).EQ.0))GOTO 10156 IF((STAT.NE.-1))GOTO 10159 IF((ONEOFW(CSW).NE.-3))GOTO 10159 GOTO 10158 10159 IF((ONEOVW(CSW).EQ.-3))GOTO 10158 GOTO 10157 10158 MTWRI0=-3 RETURN 10157 CALL MTREW0 IF((STAT.EQ.-1))GOTO 10160 CALL NEWRE0(2) GOTO 10161 10160 MTWRI0=-2 RETURN 10161 CONTINUE 10156 BUFN=XOR(BUFN,3) BLOCK0=BLOCK0+(1) GOTO 10153 10154 MTWRI0=ONEOFW(CSW) RETURN END SUBROUTINE MTFMA0 INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER STATUS(8) SAVE STATUS CALL T$MT(UNITA0,LOC(0),0,9360,STATUS) RETURN END SUBROUTINE NEWRE0(RW) INTEGER RW INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER CSW INTEGER INPUT,CHECL0 INTEGER AAABH0(9) INTEGER AAABI0(23) INTEGER AAABJ0(24) INTEGER AAABK0(20) DATA AAABH0/245,238,233,244,186,160,170,233,0/ DATA AAABI0/244,225,240,229,160,233,243,160,225,244,160,229,238,22 *8,160,239,230,160,242,229,229,236,0/ DATA AAABJ0/244,225,240,229,160,233,243,160,247,242,233,244,229,16 *0,240,242,239,244,229,227,244,229,228,0/ DATA AAABK0/244,225,240,229,160,233,243,160,233,238,160,237,233,22 *8,160,230,233,236,229,0/ 10162 CONTINUE 10163 IF((INPUT(-10,AAABH0,UNITA0).NE.-1))GOTO 10164 GOTO 10163 10164 GOTO 10165 10166 GOTO 10167 10168 CALL REMARK(AAABI0) GOTO 10167 10169 CALL REMARK(AAABJ0) GOTO 10167 10170 CALL REMARK(AAABK0) GOTO 10167 10165 IF((CHECL0(CSW).EQ.-3))GOTO 10166 IF((AND(CSW,32).NE.0))GOTO 10168 IF((RW.NE.2))GOTO 10171 IF((AND(CSW,4).EQ.0))GOTO 10171 GOTO 10169 10171 IF((RW.NE.2))GOTO 10172 IF((AND(CSW,264).NE.0))GOTO 10172 GOTO 10170 10172 CONTINUE GOTO 10173 10167 CONTINUE GOTO 10162 10173 RETURN END INTEGER FUNCTION ONEOFR(CSW) INTEGER CSW CSW=0 ONEOFR=-2 RETURN END INTEGER FUNCTION ONEOFW(CSW) INTEGER CSW INTEGER MTSTAT,MTSCH0 CALL MTFMA0 CALL MTFMA0 IF((MTSCH0(MTSTAT(CSW)).NE.-3))GOTO 10174 ONEOFW=-3 RETURN 10174 CALL MTSKJ0(-1) ONEOFW=MTSCH0(MTSTAT(CSW)) RETURN END INTEGER FUNCTION ONEOVR(CSW) INTEGER CSW CSW=0 ONEOVR=-2 RETURN END INTEGER FUNCTION ONEOVW(CSW) INTEGER CSW INTEGER MTSCH0,MTSTAT CALL MTFMA0 CALL MTFMA0 ONEOVW=MTSCH0(MTSTAT(CSW)) RETURN END INTEGER FUNCTION POSIT0(MODE,FILE,REC) INTEGER MODE,FILE,REC INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER I,CSW INTEGER MTSTAT,MTSCH0 INTEGER AAABL0 INTEGER AAABM0(12) INTEGER AAABN0(12) INTEGER AAABO0(12) INTEGER AAABP0(12) INTEGER AAABQ0(12) INTEGER AAABR0(12) INTEGER AAABS0(18) INTEGER AAABT0(18) INTEGER AAABU0(18) INTEGER AAABV0 DATA AAABM0/229,238,228,160,239,230,160,244,225,240,229,0/ DATA AAABN0/229,238,228,160,239,230,160,244,225,240,229,0/ DATA AAABO0/229,238,228,160,239,230,160,230,233,236,229,0/ DATA AAABP0/229,238,228,160,239,230,160,244,225,240,229,0/ DATA AAABQ0/229,238,228,160,239,230,160,244,225,240,229,0/ DATA AAABR0/229,238,228,160,239,230,160,230,233,236,229,0/ DATA AAABS0/226,229,231,233,238,238,233,238,231,160,239,230,160,24 *4,225,240,229,0/ DATA AAABT0/226,229,231,233,238,238,233,238,231,160,239,230,160,24 *4,225,240,229,0/ DATA AAABU0/226,229,231,233,238,238,233,238,231,160,239,230,160,23 *0,233,236,229,0/ AAABL0=MODE GOTO 10175 10176 CALL MTREW0 I=1 GOTO 10179 10177 I=I+(1) 10179 IF((I.GE.FILE))GOTO 10178 IF((MTSCH0(MTSTAT(CSW)).NE.-3))GOTO 10180 POSIT0=-3 RETURN 10180 IF((AND(CSW,32).EQ.0))GOTO 10181 CALL REMARK(AAABM0) POSIT0=-3 RETURN 10181 CALL MTSKJ0(1) GOTO 10177 10178 I=1 GOTO 10184 10182 I=I+(1) 10184 IF((I.GE.REC))GOTO 10183 IF((MTSCH0(MTSTAT(CSW)).NE.-3))GOTO 10185 POSIT0=-3 RETURN 10185 GOTO 10186 10187 CALL REMARK(AAABN0) GOTO 10188 10189 CALL REMARK(AAABO0) GOTO 10188 10188 POSIT0=-3 RETURN 10186 IF((AND(CSW,32).NE.0))GOTO 10187 IF((I.LE.1))GOTO 10190 IF((AND(CSW,256).EQ.0))GOTO 10190 GOTO 10189 10190 CONTINUE CALL MTSKI0(1) GOTO 10182 10183 GOTO 10191 10192 I=1 GOTO 10195 10193 I=I+(1) 10195 IF((I.GT.FILE))GOTO 10194 IF((MTSCH0(MTSTAT(CSW)).NE.-3))GOTO 10196 POSIT0=-3 RETURN 10196 IF((AND(CSW,32).EQ.0))GOTO 10197 CALL REMARK(AAABP0) POSIT0=-3 RETURN 10197 CALL MTSKJ0(1) GOTO 10193 10194 I=1 GOTO 10200 10198 I=I+(1) 10200 IF((I.GT.REC))GOTO 10199 IF((MTSCH0(MTSTAT(CSW)).NE.-3))GOTO 10201 POSIT0=-3 RETURN 10201 GOTO 10202 10203 CALL REMARK(AAABQ0) GOTO 10204 10205 CALL REMARK(AAABR0) GOTO 10204 10204 POSIT0=-3 RETURN 10202 IF((AND(CSW,32).NE.0))GOTO 10203 IF((I.LE.1))GOTO 10206 IF((AND(CSW,256).EQ.0))GOTO 10206 GOTO 10205 10206 CONTINUE CALL MTSKI0(1) GOTO 10198 10199 GOTO 10191 10207 IF((FILE.NE.0))GOTO 10209 IF((REC.EQ.0))GOTO 10209 GOTO 10208 10209 CALL MTSKJ0(-1) 10208 I=1 GOTO 10212 10210 I=I+(1) 10212 IF((I.GT.FILE))GOTO 10211 IF((MTSCH0(MTSTAT(CSW)).NE.-3))GOTO 10213 POSIT0=-3 RETURN 10213 IF((AND(CSW,8).EQ.0))GOTO 10214 CALL REMARK(AAABS0) POSIT0=-3 RETURN 10214 CALL MTSKJ0(-1) GOTO 10210 10211 IF((REC.NE.0))GOTO 10215 IF((AND(MTSTAT(CSW),8).NE.0))GOTO 10215 CALL MTSKJ0(1) GOTO 10216 10215 I=1 GOTO 10219 10217 I=I+(1) 10219 IF((I.GT.REC))GOTO 10218 IF((MTSCH0(MTSTAT(CSW)).NE.-3))GOTO 10220 POSIT0=-3 RETURN 10220 GOTO 10221 10222 CALL REMARK(AAABT0) GOTO 10223 10224 CALL REMARK(AAABU0) GOTO 10223 10223 POSIT0=-3 RETURN 10221 IF((AND(CSW,8).NE.0))GOTO 10222 IF((I.LE.1))GOTO 10225 IF((AND(CSW,256).EQ.0))GOTO 10225 GOTO 10224 10225 CONTINUE CALL MTSKI0(-1) GOTO 10217 10218 CONTINUE 10216 GOTO 10191 10175 AAABV0=AAABL0+2 GOTO(10207,10176,10192),AAABV0 10191 IF((MTSCH0(MTSTAT(CSW)).NE.-3))GOTO 10226 POSIT0=-3 RETURN 10226 POSIT0=-2 RETURN END SUBROUTINE PUTBUF(BUFN,FD) INTEGER BUFN,FD INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER NB INTEGER AAABW0 INTEGER AAABX0 IF((CONVA0.NE.1))GOTO 10227 AAABW0=BUFN GOTO 10228 10229 CALL WRITEF(BUFFE0,BUFLE0(1),FD) GOTO 10230 10231 CALL WRITEF(BUFFF0,BUFLE0(2),FD) GOTO 10230 10228 GOTO(10229,10231),AAABW0 10230 GOTO 10232 10227 AAABX0=BUFN GOTO 10233 10234 IF((CONVA0.NE.0))GOTO 10235 NB=1 GOTO 10238 10236 NB=NB+(1) 10238 IF((NB.GT.BUFLE0(1)))GOTO 10237 BUFFE0(NB)=OR(BUFFE0(NB),128) GOTO 10236 10237 GOTO 10239 10235 CALL EBCDI0(BUFFE0,BUFLE0(1)) 10239 NB=0 GOTO 10242 10240 NB=NB+(RECSI0) 10242 IF((NB+RECSI0.GT.BUFLE0(1)))GOTO 10241 CALL WRITE0(FD,BUFFE0(NB+1),RECSI0) GOTO 10240 10241 IF((NB.GE.BUFLE0(1)))GOTO 10243 CALL WRITE0(FD,BUFFE0(NB+1),BUFLE0(1)-NB) 10243 GOTO 10244 10245 IF((CONVA0.NE.0))GOTO 10246 NB=1 GOTO 10249 10247 NB=NB+(1) 10249 IF((NB.GT.BUFLE0(2)))GOTO 10248 BUFFF0(NB)=OR(BUFFF0(NB),128) GOTO 10247 10248 GOTO 10250 10246 CALL EBCDI0(BUFFF0,BUFLE0(2)) 10250 NB=0 GOTO 10253 10251 NB=NB+(RECSI0) 10253 IF((NB+RECSI0.GT.BUFLE0(2)))GOTO 10252 CALL WRITE0(FD,BUFFF0(NB+1),RECSI0) GOTO 10251 10252 IF((NB.GE.BUFLE0(2)))GOTO 10254 CALL WRITE0(FD,BUFFF0(NB+1),BUFLE0(2)-NB) 10254 GOTO 10244 10233 GOTO(10234,10245),AAABX0 10244 CONTINUE 10232 RETURN END INTEGER FUNCTION READW0(RW) INTEGER RW INTEGER * 4 BADDR0 INTEGER BUFFE0,BUFFF0,BUFST0,BUFLE0,BUFOK0,CONVA0,BLKSI0,RECSI0,BL *OCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$COM/BADDR0(2),BUFST0(8,2),BUFLE0(2),BUFOK0(2),CONVA0,BL *KSI0,RECSI0,BLOCK0,CORRE0,RECOV0,UNITA0,VERBO0 COMMON /MT$BUF/BUFFE0(5120),BUFFF0(5120) INTEGER FD,CSW,STAT,STATE(4) INTEGER GFNARG,CREATE,OPEN,MTREAD,MTWRI0,MTSTAT,EQUAL INTEGER ARG(102) INTEGER AAABY0(23) INTEGER AAABZ0(21) INTEGER AAACA0(20) INTEGER AAACB0 INTEGER AAACC0(20) INTEGER AAACD0(12) INTEGER AAACE0(13) INTEGER AAACF0(12) INTEGER AAACG0(13) INTEGER AAACH0(12) INTEGER AAACI0(13) INTEGER AAACJ0(19) INTEGER AAACK0(31) INTEGER AAACL0(17) INTEGER AAACM0(33) INTEGER AAACN0 DATA AAABY0/244,225,240,229,160,233,243,160,225,244,160,229,238,22 *8,160,239,230,160,242,229,229,236,0/ DATA AAABZ0/244,225,240,229,160,233,243,160,238,239,244,160,247,24 *2,233,244,225,226,236,229,0/ DATA AAACA0/244,225,240,229,160,233,243,160,233,238,160,237,233,22 *8,173,230,233,236,229,0/ DATA AAACC0/170,243,186,160,226,225,228,160,230,233,236,229,160,23 *8,225,237,229,170,238,0/ DATA AAACD0/175,228,229,246,175,243,244,228,233,238,177,0/ DATA AAACE0/175,228,229,246,175,243,244,228,239,245,244,177,0/ DATA AAACF0/175,228,229,246,175,243,244,228,233,238,178,0/ DATA AAACG0/175,228,229,246,175,243,244,228,239,245,244,178,0/ DATA AAACH0/175,228,229,246,175,243,244,228,233,238,179,0/ DATA AAACI0/175,228,229,246,175,243,244,228,239,245,244,179,0/ DATA AAACJ0/170,243,186,160,227,225,238,167,244,160,227,242,229,22 *5,244,229,170,238,0/ DATA AAACK0/170,243,186,160,170,233,160,226,236,239,227,235,243,16 *0,242,229,225,228,160,230,242,239,237,160,244,225,240,229,170,238, *0/ DATA AAACL0/170,243,186,160,227,225,238,167,244,160,239,240,229,23 *8,170,238,0/ DATA AAACM0/170,243,186,160,170,233,160,226,236,239,227,235,243,16 *0,247,242,233,244,244,229,238,160,244,239,160,244,225,240,229,160, *170,238,0/ IF((AND(MTSTAT(CSW),32).EQ.0))GOTO 10255 CALL REMARK(AAABY0) RETURN 10255 IF((RW.NE.2))GOTO 10256 GOTO 10257 10258 CALL REMARK(AAABZ0) GOTO 10259 10260 CALL REMARK(AAACA0) GOTO 10259 10259 RETURN 10257 IF((AND(CSW,4).NE.0))GOTO 10258 IF((AND(CSW,264).EQ.0))GOTO 10260 10256 STAT=-2 STATE(1)=1 10261 IF((STAT.EQ.-3))GOTO 10262 AAACB0=GFNARG(ARG,STATE) GOTO 10263 10264 GOTO 10262 10265 CALL PRINT(-15,AAACC0,ARG) STAT=-3 GOTO 10266 10267 IF((RW.NE.1))GOTO 10268 GOTO 10269 10270 CALL SCOPY(AAACE0,1,ARG,1) GOTO 10271 10272 CALL SCOPY(AAACG0,1,ARG,1) GOTO 10271 10273 CALL SCOPY(AAACI0,1,ARG,1) GOTO 10271 10269 IF((EQUAL(ARG,AAACD0).NE.0))GOTO 10270 IF((EQUAL(ARG,AAACF0).NE.0))GOTO 10272 IF((EQUAL(ARG,AAACH0).NE.0))GOTO 10273 10271 FD=CREATE(ARG,2) IF((FD.NE.-3))GOTO 10274 STAT=-3 CALL PRINT(-15,AAACJ0,ARG) GOTO 10275 10274 STAT=MTREAD(FD) CALL CLOSE(FD) IF((VERBO0.NE.1))GOTO 10276 CALL PRINT(-15,AAACK0,ARG,BLOCK0-1) 10276 CONTINUE 10275 GOTO 10277 10268 FD=OPEN(ARG,1) IF((FD.NE.-3))GOTO 10278 CALL PRINT(-15,AAACL0,ARG) STAT=-3 GOTO 10279 10278 STAT=MTWRI0(FD) CALL CLOSE(FD) IF((VERBO0.NE.1))GOTO 10280 CALL PRINT(-15,AAACM0,ARG,BLOCK0-1) 10280 CONTINUE 10279 CONTINUE 10277 GOTO 10266 10263 AAACN0=AAACB0+4 GOTO(10265,10267,10264),AAACN0 10266 GOTO 10261 10262 READW0=STAT RETURN END INTEGER FUNCTION READLN(FD,BUF,LEN) INTEGER FD,BUF(1),LEN INTEGER GETLIN LOGICAL LONGL0 DATA LONGL0/.FALSE./ READLN=GETLIN(BUF,FD,LEN+1) IF((.NOT.LONGL0))GOTO 10281 IF((READLN.NE.1))GOTO 10281 IF((BUF(1).NE.138))GOTO 10281 READLN=GETLIN(BUF,FD,LEN+1) 10281 IF((READLN.NE.-1))GOTO 10282 RETURN 10282 IF((BUF(READLN).NE.138))GOTO 10283 LONGL0=.FALSE. READLN=READLN-(1) GOTO 10284 10283 LONGL0=.TRUE. 10284 CONTINUE 10285 IF((READLN.GE.LEN))GOTO 10286 READLN=READLN+(1) BUF(READLN)=160 GOTO 10285 10286 RETURN END INTEGER FUNCTION UNITS0(UNIT) INTEGER UNIT INTEGER I INTEGER CTOI,GETARG INTEGER ARG(128) IF((GETARG(1,ARG,128).EQ.-1))GOTO 10287 IF((ARG(1).EQ.173))GOTO 10287 I=1 UNIT=CTOI(ARG,I) IF((ARG(I).EQ.0))GOTO 10288 UNITS0=-3 RETURN 10288 CALL DELARG(1) GOTO 10289 10287 UNIT=0 10289 UNITS0=-2 RETURN END SUBROUTINE WRITE0(FD,BUF,LEN) INTEGER FD,BUF(1),LEN INTEGER I,TEMP I=LEN GOTO 10292 10290 I=I-(1) 10292 IF((I.LE.0))GOTO 10291 IF((BUF(I).EQ.160))GOTO 10293 GOTO 10291 10293 GOTO 10290 10291 TEMP=BUF(I+1) BUF(I+1)=0 CALL PUTLIN(BUF,FD) BUF(I+1)=TEMP CALL PUTCH(138,FD) RETURN END C ---- Long Name Map ---- C Buffer2 bufff0 C blkspec blksp0 C checkunit checl0 C asciitoebcdic ascii0 C ebcdictoascii ebcdi0 C mtrewind mtrew0 C direction direc0 C unitspec units0 C Corrected corre0 C readwrite readw0 C Block block0 C Conv conva0 C Recovered recov0 C newreel newre0 C mtfmark mtfma0 C position posit0 C notdone notdo0 C Bufok bufok0 C Unit unita0 C mtscheck mtsch0 C printerrorbits print0 C posspec possp0 C mtskipf mtskj0 C Blksize blksi0 C Recsize recsi0 C Verbose verbo0 C longline longl0 C Bufstat bufst0 C writeln write0 C Buflen bufle0 C convspec convs0 C mtcheck mtche0 C mtskipr mtski0 C checkblk check0 C Baddr baddr0 C Buffer1 buffe0 C mtwrite mtwri0