%EXTERNALROUTINE CON(%STRING (255) S) %EXTERNALROUTINESPEC DEFINE(%STRING (255) S) %STRING (255) T,U,V %integer a,b,c,i,j,n,rx,tx,seq,tim,x,y, q %string(15) from,to %integerarray val(1:40) %string (14) %array froma,toa(1:40) %integerarray dur(1:40) %bytearray tos(0:255) %owninteger mtarg = 1 %constinteger nhosts=40 %ownintegerarray tno(0:nhosts) %ownintegerarray trx(0:nhosts) %ownintegerarray ttx(0:nhosts) %ownintegerarray tdur(0:nhosts) %ownstring (14) %array targa(0:nhosts) %owninteger print all = 0; ! 0=dont print - see ":p" %string (255) %fn getstring(%integer n) %integer i readsymbol(tos(i)) %for i = 1, 1, n TOS(0)=N %RESULT = STRING(ADDR(TOS(0))) %END %integerfn get time %integer a,b,c,s %integerfn get %integer i readsymbol(i) %result = i-'0' %end %integerfn part %integer i,j %result = get*10+get %end a=part; skipsymbol b = part; skipsymbol c = part %result = ((a*60)+b)*60+c %end %routine print it(%integer i) q = tno(i) printstring(targa(i)) write(tno(i), 4) print(trx(i)/q, 7, 0); print(ttx(i)/q, 7, 0) print(tdur(i)/(q*60), 6, 1) print(trx(i)*60/tdur(i), 5, 1) print(ttx(i)*60/tdur(i), 7, 1) newline %end %on 9 %start; ->eof; %finish val(i) = 0 %for i = 1, 1, 40 %UNLESS S->T.("/").U %START PRINTSTRING("PARAMS ? ") %STOP %FINISH %if u -> u.(":P").s %then printall = 1; ! print every connection define("1,".t); define("2,".u) select input(1); select output(2) from="" %if printall = 1 %then printstring( %c " From To Rx pkt Tx Time Rx/Min Tx/min ") %cycle skipsymbol %for i = 1, 1, 5 readsymbol(j) %unless '0'<=j<='9' %then -> skip skipsymbol %for i=1,1,3 tim=get time skipsymbol;skipsymbol s=getstring(3) %if s#"CON" %and s#"END" %then -> skip skipsymbol %for i=1,1,10 read(seq) %if s="CON" %start skipsymbol from=getstring(14) skipsymbol %for i=1,1,4 to=getstring(14) skipsymbol %for i=1,1,7 v=getstring(5) ->skip %if v # "00 00" %cycle i = 1,1,40 %if val(i) = 0 %start val(i) = seq; froma(i)=from; toa(i)=to dur(i) = tim ->skip %finish %repeat printstring("no room ") -> skip %finish ! this is END skipsymbol %for i=1,1,27 read(rx); read(tx) %cycle i = 1, 1, 40 %if val(i) = seq %start %if printall = 1 %start write(seq, 4); printstring(froma(i)) printstring(" -> ") printstring(toa(i)) write(rx, 4); write(tx, 4) x=tim-dur(i) write(x, 6) x=1 %if x=0 print(rx*60/x, 5, 1); print(tx*60/x, 5, 1) newline %finish val(i) = 0 %cycle x = 1, 1, mtarg %if targa(x) = toa(i) %then q = x %and -> ok %repeat q=mtarg; mtarg = mtarg+1 targa(q) = toa(i) ok: trx(q) = trx(q)+rx; ttx(q) = ttx(q)+tx tdur(q) = tdur(q)+tim-dur(i) tno(q) = tno(q)+1 -> skip %finish %repeat %if printall = 1 %start printstring("No con for"); write(seq, 1); newline %finish skip: readsymbol(i); -> skip %unless i = nl %repeat eof: newpage printstring("Summary of all calls from ") printstring(from) printstring(" to Hosts (average) Host Calls Pkts Rx Tx Mins Rx/Min Tx/min ") %stop %if mtarg=1 %cycle i = 1, 1, mtarg-1 print it(i) tno(0) = tno(0)+q trx(0) = trx(0)+trx(i); ttx(0) = ttx(0)+ttx(i) tdur(0) = tdur(0)+tdur(i) %repeat printsymbol('-') %for i = 1, 1, 80 newline targa(0) = " All" print it (0) printsymbol('-') %for i = 1, 1, 80 newlines(10) %end %endoffile