%REALSLONG ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! NODE STATISTICS PACKAGE ! ! ! ! GRAPH1 - CONNECTS V BLKS AND CPU ! ! GRAPH2 - 2900 USERS V BLOCKS RXD & TXD ! ! GRAPH3 - 2970 USERS V BLOCKS RXD & TXD ! ! GRAPH4 - FREQUENCY V CON/MIN/USER ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! %EXTERNALROUTINESPEC OPENPLOTTER(%INTEGER N) %EXTERNALROUTINESPEC CLOSEPLOTTER %EXTERNALROUTINESPEC PLOTSTRING(%STRING(255) S) %EXTERNALROUTINESPEC PLOTSYMBOL(%INTEGER N) %EXTERNALROUTINESPEC SETPLOT(%REAL XL,YL,XH,YH,%INTEGER N) %EXTERNALROUTINESPEC POINTSYMBOL(%INTEGER ICODE,%REAL SIZE) %EXTERNALROUTINESPEC SCALE(%REAL X0,Y0,XS,YS,THETA) %EXTERNALROUTINESPEC AXIS(%REAL X,Y,%INTEGER M,%REAL D,%INTEGER N) %EXTERNALROUTINESPEC ANNOTATE(%REAL X,Y,SIZE,THETA) %EXTERNALROUTINESPEC PLOTNUMBER(%REAL X,%INTEGER M,N) %EXTERNALROUTINESPEC PLOT(%INTEGER IPEN,%REAL TOX,TOY,DASH,GAP) %EXTERNALROUTINESPEC CHANGEPEN(%INTEGER IPEN) %EXTERNALROUTINESPEC LINEGRAPH(%LONGREALARRAYNAME X,Y,%INTEGER M,N, %C %LONGREAL DASH,GAP,%INTEGER ICODE,%LONGREAL SIZE) ! %EXTERNALROUTINESPEC DEFINE(%STRING(63) S) %EXTERNALROUTINESPEC DESTROY(%STRING(63) S) %EXTERNALROUTINESPEC PROMPT(%STRING(15) S) ! ! ! ALL INPUT IS IN THE FORM OF LINES OF SEVEN NUMBERS ! THE NUMBERS ARE (IN A PER MIN FORM OR PERCENTAGE) ! CPU, ATT, TOTAL CON, MES CON, COK CON, CFAIL, BLKS, OTHERS ! ! ! %EXTERNALROUTINE NODEGRAPHS(%STRING (255) S) %OWNINTEGER TARGET = 0 %OWNINTEGER END = -1 %OWNLONGREALARRAY TIME(0:1100) = 0(1101) %OWNLONGREALARRAY OTHERS(0:1100) = 0(1101) %OWNLONGREALARRAY CPU(0:1100) = 0(1101) %OWNLONGREALARRAY ATT(0:1100) = 0(1101) %OWNLONGREALARRAY MES(0:1100) = 0(1101) %LONGREALARRAY CON(0:1100) %LONGREALARRAY COK(0:1100) %LONGREALARRAY CFAIL(0:1100) %LONGREALARRAY BL(0:1100) %OWNINTEGERARRAY RFREQ(0:14) %OWNINTEGERARRAY RKEEP(0:1100) %REAL RAVER %LONGINTEGER RCOUNT,TCOUNT %OWNREAL TIMEI = 1 %ROUTINE READ RECORDS %INTEGER I,MAXNIB,GROT,J RCOUNT = 0 SELECT INPUT(1) %CYCLE READ(I); %EXITIF I<0 %IF I # TARGET %START %CYCLE READSYMBOL(I); %EXIT %IF I = NL %REPEAT %CONTINUE %FINISH %EXIT %IF END = 1090 END=END+1; TIME(END)=END/2 READ(I); ! TIM READ(ATT(END)); READ(CON(END)) READ(CPU(END)); %IF CPU(END)<=0 %THEN CPU(END)=1 READ(BL(END)) READ(MES(END)) READ(I); READ(I); READ(I) J = INT(BL(END)/(CPU(END)*10)) %IF J<0 %THEN J=0 %IF J>=150 %START PRINTSTRING("RX BOUNDS"); WRITE(J,2); NEWLINE J = 149 %FINISH RFREQ(J//10)=RFREQ(J//10)+1 RCOUNT=RCOUNT+J RKEEP(END)=J %REPEAT RAVER = RCOUNT/END PRINT(RAVER,2,2); NEWLINE PRINTSTRING("No of records was "); WRITE(END, 1); NEWLINE %IF END > 540 %START %CYCLE I = 0, 1, END TIME(I) = TIME(I)/2 %REPEAT TIMEI = 2 %FINISH !! %IF END < 270 %START %CYCLE I = 0, 1, END TIME(I) = TIME(I)*2 %REPEAT TIMEI = 0.5 %FINISH %END ! %ROUTINE BOX(%REAL X1, Y1, X2, Y2) %REAL X1I, Y1I, X2I, Y2I !! X1I = X1; Y1I = Y1; X2I = X2; Y2I = Y2 SCALE(0, 0, 1, 1, 0) !! PLOT(1,X1I, Y1I, 0, 0) PLOT(2, X2I, Y1I, 0, 0) PLOT(2, X2I, Y2I, 0, 0) PLOT(2, X1I, Y2I, 0, 0) PLOT(2, X1I, Y1I, 0, 0) %END %ROUTINE REGRESSION(%LONGREALARRAYNAME X,Y, %C %INTEGER END, %LONGREALNAME A0,B0,A1,B1) %INTEGER I %LONGREAL SX,SY,SX2,SXY,SY2 SX=0;SY=0;SX2=0;SXY=0;SY2=0 %CYCLE I = 0, 1, END SX = SX+X(I); SY = SY+Y(I) SX2 = SX2 + X(I)*X(I); SY2 = SY2+Y(I)*Y(I) SXY = SXY+X(I)*Y(I) %REPEAT %RETURN %IF SX=0 %OR SY=0 B0 = ((SY*SX2)-(SX*SXY))/((END*SX2-SX*SX)) B1 = ((SX*SY2)-(SY*SXY))/(END*SY2-SY*SY) A0 = (END*SXY-SX*SY)/(END*SX2-SX*SX) A1 = (END*SXY-SX*SY)/(END*SY2-SY*SY) %END ! %ROUTINE DRAW REGRESSION LINES(%LONGREALARRAYNAME X, Y, %C %INTEGER END, %LONGREAL MINX,MAXX,MINY,MAXY) %OWNLONGREAL A0=0,A1=0,B0=0,B1=0 %LONGREALARRAY NOS,AVS(0:1) REGRESSION(X,Y,END,A0,B0,A1,B1) PRINT(A0, 2, 1); PRINT(B0, 2, 1) PRINT(A1, 2, 1); PRINT(B1, 2, 1); NEWLINE NOS(0) = 0; NOS(1) = MAXX AVS(0) = B0; AVS(1) = MAXX*A0+B0 %IF B0<0 %START %RETURN %IF A0=0 AVS(0) = 0; NOS(0) = -B0/A0 %FINISH %IF AVS(1) > MAXY %START %RETURN %IF A0=0 AVS(1) = MAXY; NOS(1) = MAXY/A0-B0/A0 %FINISH LINEGRAPH(NOS, AVS, 0, 1, 1, 0, 0, 0) NOS(0) = 0; NOS(1) = MAXX %RETURN %IF A1=0 AVS(0) = -B1/A1; AVS(1) = MAXX/A1-B1/A1 %IF AVS(0) < 0 %START AVS(0) = 0; NOS(0) = B1 %FINISH %IF AVS(1)>MAXY %START AVS(1) = MAXY NOS(1) = MAXY*A1+B1 %FINISH LINEGRAPH(NOS, AVS, 0, 1, 1, 0, 0, 0) %END ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! NODE STATISTICS GRAPH 1 ROUTINE ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! THIS ANALYSES THE DATA FROM THE #PRE FILE AND PRODUCES A ! GRAPH OF TIME V. TOTAL USERS,NIBBLES AND CPU RATE. ! THE FILE IS LISTED AUTOMATICALLY TO .GP ! ! %ROUTINE GRAPH1(%STRING(63) S) %LONGREALARRAY NOS,AVS(0:400) %LONGREALARRAY R(0:1100) %STRING(63) FILE,TITLE %INTEGER I,K ! ! %ROUTINE NIBYAX(%REAL S1,S2,S3,S4) AXIS(0,0,2,500,14) %CYCLE I=1000,1000,7000; !NUMBER Y AXIS ANNOTATE(S3,I-150,S1,90) PLOTNUMBER(I,1,0) %REPEAT ANNOTATE(S4,1500,S2,90); !TITLE PLOTSTRING("BLKS PER MINUTE") %END ! %ROUTINE CPUYAX(%REAL S1,S2,S3,S4) AXIS(0,0,2,20,5) %CYCLE I=20,20,100 ANNOTATE(S3,I-12,S1,90) PLOTNUMBER(I,1,0) %REPEAT ANNOTATE(S4,10,S2,90); !TITLE PLOTSTRING("% CPU USED") %END ! %ROUTINE ZAP %INTEGER I %CYCLE I=0,1,400 AVS(I)=0; NOS(I)=0 %REPEAT %END ! %ROUTINE AVG %INTEGER I %LONGREALARRAY TT(0:40) %CYCLE I=0,1,40 TT(I) = I %IF NOS(I)>0 %THEN AVS(I)=AVS(I)/NOS(I) %REPEAT LINEGRAPH(TT,AVS,0,40,1,0,0,0) %END %ROUTINE COMMON X(%REAL Y) %INTEGER I ! ! ! COMMON X AXIS ! AXIS(0,Y,1,10,27); !27 TICS %CYCLE I=10,10,270; !NUMBER AXIS ANNOTATE(I-4,Y-3,1,0) PLOTNUMBER(I*TIMEI*2,1,0) %REPEAT ANNOTATE(90,Y-10,2,0); !X AXIS TITLE PLOTSTRING("TIME (MINS)") ! %END ! ! %ROUTINE COMMON X 2(%REAL Y) %INTEGER I ! ! COMMON X AXIS ! AXIS(0,Y,1,5,8) %CYCLE I=5,5,40; !NUMBER USERS ANNOTATE(I-1,Y-20,0.4,0) PLOTNUMBER(I,1,0) %REPEAT ANNOTATE(14,Y-50,0.7,0); !TITLE PLOTSTRING("TOTAL CONNECT") %END ! ! CODE STARTS HERE ! S->FILE.(",").TITLE; !SEPARATE FILE AND TITLE DEFINE("1,".FILE) DEFINE("SQ40,GRAPH1#TMP"); !TEMP PLOT FILE READ RECORDS %IF END = -1 OPENPLOTTER(40) PLOTSTRING("ROOM 1013 ERCC") SETPLOT(0,0,40,30,M'CMS'); !40*30 CMS WINDOW BOX(3.1, 3, 33.1, 24) BOX(3.2, 3.1, 33.0, 23.9); ! 2 BOXES AT A4 SCALE(5,5,0.1,0.1,0); !1ST SCALE,X&Y 1CM=10UNITS ! ! COMMON X AXIS ! COMMON X(0) COMMON X(70) COMMON X(150) ! ! 1ST Y AXIS ATT ! SCALE(5, 5, 0.1, .05, 0) AXIS(0,0,2,10,10); !10 TICS %CYCLE I=10,10,100; !NUMBER AXIS ANNOTATE(-3,I-3,1,90) PLOTNUMBER(I,1,0) %REPEAT ANNOTATE(-10,10,2,90); !Y AXIS TITLE PLOTSTRING("NO OF CONNS") LINEGRAPH(TIME,CON,0,END,1,0,0,0) CHANGEPEN(4) LINEGRAPH(TIME, ATT, 0, END, 1, 0, 0,0) CHANGEPEN(1) ! ! 2ND Y AXIS OTHERS ! SCALE(5,12,0.1,0.001,0); !CHANGE ORIGIN,1Y CM=50 UNITS NIBYAX(1,2,-3,-10) LINEGRAPH(TIME,BL,0,END,1,0,0,0) CHANGEPEN(4) ANNOTATE(1, 3000, 1, 0) PLOTSTRING("MESSAGES") %CYCLE I = 0, 1, END; R(I)=MES(I); %REPEAT LINEGRAPH(TIME,R,0,END,1,0,0,0) ! ANNOTATE(1, 4000, 1, 0) ! PLOTSTRING("THRU SB") ! CHANGEPEN(2) ! %CYCLE I = 0, 1, END; ! R(I)=RBL(I); ! %REPEAT ! LINEGRAPH(TIME,R, 0, END,1,0,0,0) ! ANNOTATE(1, 5000, 1, 0) ! PLOTSTRING("REMOTE SB") ! CHANGEPEN(0) ! %CYCLE I = 0, 1, END; ! R(I)=R(I)+TBL(I)+BL(I); ! %REPEAT ! LINEGRAPH(TIME, R, 0, END, 1, 0, 0, 0) CHANGEPEN(0) ANNOTATE(1, 6000, 1, 0) PLOTSTRING("TOTAL SBS") ! ! 3RD Y AXIS CPU RATE ! SCALE(5,20,0.1,0.025,0); !CHANGE ORIGIN,1YCM=40 UNITS CPUYAX(1,2,-3,-10) LINEGRAPH(TIME,CPU,0,END,1,0,0,0) ANNOTATE(50,125,4,0); !OVERALL TITLE PLOTSTRING(TITLE) ! CLOSEPLOTTER ! DESTROY("GRAPH#TMP") %END ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! NODE STATISTICS GRAPH 2 ROUTINE ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! THIS ANALYSES THE DATA FROM THE #PRE FILE AND PRODUCES A ! GRAPH OF TIME V NSI BLOCKS RECEIVED AND TRANSMITTEDTO 4 75 ! THE FILE IS LISTED AUTOMATICALLY TO .GP ! ! %ROUTINE GRAPH2(%STRING(63) S) %LONGREALARRAY NOS,AVS(0:400) %LONGREALARRAY R(0:1100) %STRING(63) FILE,TITLE %INTEGER I,K ! ! %ROUTINE NIBYAX(%REAL S1,S2,S3,S4) AXIS(0,0,2,100,20) %CYCLE I=200,200,2000; !NUMBER Y AXIS ANNOTATE(S3,I-25,S1,90) PLOTNUMBER(I,1,0) %REPEAT ANNOTATE(S4,700,S2,90); !TITLE PLOTSTRING("NO OF PKTS") %END ! %ROUTINE ZAP %INTEGER I %CYCLE I=0,1,400 AVS(I)=0; NOS(I)=0 %REPEAT %END ! %ROUTINE AVG %INTEGER I %LONGREALARRAY TT(0:40) %CYCLE I=0,1,40 TT(I) = I %IF NOS(I)>0 %THEN AVS(I)=AVS(I)/NOS(I) %REPEAT LINEGRAPH(TT,AVS,0,40,1,0,0,0) %END ! ! CODE STARTS HERE ! S->FILE.(",").TITLE; !SEPARATE FILE AND TITLE DEFINE("1,".FILE) DEFINE("SQ40,GRAPH2#TMP"); !TEMP PLOT FILE READ RECORDS %IF END = -1 OPENPLOTTER(40) PLOTSTRING("ROOM 1013 ERCC") SETPLOT(0,0,40,30,M'CMS'); !30*40 CMS WINDOW BOX(3.1, 3,33.1,24) BOX(3.2,3.1,33,23.9) SCALE(5,5,0.1,0.1,0); !1ST SCALE,X&Y 1CM=10UNITS ! ! COMMON X AXIS ! AXIS(0,0,1,10,27); !27 TICS %CYCLE I=10,10,270; !NUMBER AXIS ANNOTATE(I-4,-3,1,0) PLOTNUMBER(I*TIMEI,1,0) %REPEAT ANNOTATE(90,-10,2,0); !X AXIS TITLE PLOTSTRING("TIME (MINS)") ! ! 1ST Y AXIS CON ! AXIS(0,0,2,5,8); !8 TICS %CYCLE I=5,5,40; !NUMBER AXIS ANNOTATE(-3,I-3,1,90) PLOTNUMBER(I,1,0) %REPEAT ANNOTATE(-10,5,2,90); !Y AXIS TITLE PLOTSTRING("NO OF CONN") LINEGRAPH(TIME,CON,0,END,1,0,0,0) CHANGEPEN(4) LINEGRAPH(TIME, ATT, 0, END, 1, 0, 0,0) CHANGEPEN(1) ! ! 2ND Y AXIS BLOCKS ! SCALE(5,10,0.1,0.005,0); !CHANGE ORIGIN,1Y CM=100 UNITS NIBYAX(1,2,-3,-10) %CYCLE I = 0, 1, END; R(I)=MES(I); %REPEAT LINEGRAPH(TIME,R,0,END,1,0,0,0) ANNOTATE(1,1800,1,0) PLOTSTRING("SM/MIN") CHANGEPEN(4) %CYCLE I = 0, 1, END; R(I)=CFAIL(I);%REPEAT ! LINEGRAPH(TIME,R,0,END,1,0,0,0) ! ANNOTATE(1,1600,1,0) ! PLOTSTRING("FAILED CON/MIN") ! CHANGEPEN(2) ! %CYCLE I = 0,1,END; !R(I)=COK(I)+RCOK(I)+TCOK(I); !%REPEAT ! LINEGRAPH(TIME,R,0,END,1,0,0,0) ! ANNOTATE(1,1400,1,0) ! PLOTSTRING("OK CON/MIN") CHANGEPEN(1) ANNOTATE(50,2100,4,0); !OVERALL TITLE PLOTSTRING(TITLE) ! CLOSEPLOTTER %END ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! NODE STATISTICS GRAPH 4 ROUTINE ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! THIS PRODUCES A GRAPH OF THE FREQUENCY AGAINST ! PACKETS PER USER PER MIN AND CALCULATES THE AVERAGE AND ! STANDARD DEVIATION. ! ! %ROUTINE GRAPH4(%STRING(63) S) %STRING(63) FILE,TITLE %REAL TAVER,RDEVIATION,TDEVIATION %OWNINTEGERARRAY TFREQ(0:14) %OWNINTEGERARRAY TKEEP(1:1000) %LONGINTEGER TCOUNT %INTEGER CO %CONSTINTEGER MAXHOST=2 %INTEGER HOST,I ! %RETURN ! %ROUTINE HIST(%INTEGERARRAYNAME D) %REAL TOX,TOY %INTEGER I PLOT(1,0,0,0,0); !RETURN TO ORIGIN %CYCLE I=0,1,14 TOX=I*10 TOY=D(I) PLOT(2,TOX,TOY,0,0) PLOT(2,TOX+10,TOY,0,0) PLOT(2,TOX+10,0,0,0) %REPEAT %END ! %ROUTINE COMPUTE DEVIATION %INTEGER I,RJ,TJ %REAL RTOT,TTOT RTOT=0; TTOT=0 %CYCLE I=1,1,CO RTOT=RTOT+((RAVER-RKEEP(I))**2) TTOT=TTOT+((TAVER-TKEEP(I))**2) %REPEAT RDEVIATION=SQRT(RTOT/CO) TDEVIATION=SQRT(TTOT/CO) %END ! ! CODE STARTS HERE ! S->FILE.(",").TITLE DEFINE("1,".FILE) DEFINE("SQ40,GRAPH4#TMP") COMPUTE DEVIATION OPENPLOTTER(40) PLOTSTRING("ROOM 2006 ERCC") SETPLOT(0,0,30,40,M'CMS') BOX(3.1, 3, 24.1, 33) BOX(3.2, 3.1, 24.0, 32.9) SCALE(5,5,0.1,0.1,0); !1CM=10 UNITS ! ! X AXIS ! AXIS(0,0,1,10,15) %CYCLE I=0,10,140 ANNOTATE(I+1,-3,0.5,0) PLOTNUMBER(I,1,0) ANNOTATE(I+5,-3,0.5,0) POINTSYMBOL(12,1) ANNOTATE(I+7,-3,0.5,0) PLOTNUMBER(I+9,1,0) %REPEAT ANNOTATE(55,-10,2,0) PLOTSTRING("BLKS/MIN/CONNECT") ! ! Y AXIS ! AXIS(0,0,2,10,15) %CYCLE I=10,10,150 ANNOTATE(-3,I-4,1,90) PLOTNUMBER(I,1,0) %REPEAT ANNOTATE(-10,65,2,90) PLOTSTRING("FREQUENCY") ! HIST(RFREQ) ANNOTATE(40,155,2,0) PLOTSTRING(TITLE) ANNOTATE(120,130,1,0) PLOTSTRING("BL(BLACK) AVERAGE ST.DEV.") ANNOTATE(138,127,1,0) PLOTNUMBER(RAVER,3,2) ANNOTATE(152,127,1,0) PLOTNUMBER(RDEVIATION,3,2) ! CLOSEPLOTTER %END %ROUTINE GRAPH5(%STRING(63) S) %STRING(63) FILE,TITLE %REALARRAY T(0:1100) %INTEGER I,K,MAX ! ! %ROUTINE NIBYAX(%REAL S1,S2,S3,S4) AXIS(0,0,2,1000,20) %CYCLE I=2000,2000,20000; !NUMBER Y AXIS ANNOTATE(S3,I-500,S1,90) PLOTNUMBER(I,1,0) %REPEAT ANNOTATE(S4,5000,S2,90); !TITLE PLOTSTRING("No of Pkts/Min") %END ! ! ! CODE STARTS HERE ! S->FILE.(",").TITLE; !SEPARATE FILE AND TITLE DEFINE("1,".FILE) DEFINE("SQ40,GRAPH5#TMP"); !TEMP PLOT FILE READ RECORDS %IF END = -1 OPENPLOTTER(40) PLOTSTRING("ROOM 2007 ERCC") MAX = END %IF END > 200 %THEN END = 200 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! SEBLD PLOT STARTS HERE ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! SETPLOT(0,0,30,40,M'CMS') BOX(2.1, 2, 23.1, 26.9) BOX(2.2, 2.1, 23.0, 26.8) SCALE(5,4,0.1,0.0005,0) ! ! COMMON X AXIS ! AXIS(0,0,1,10,10) %CYCLE I=10,10,100; !NUMBER ATT ANNOTATE(I-1,-500,.8,0) PLOTNUMBER(I,1,0) %REPEAT ANNOTATE(45,-2500,3.5,0); !TITLE PLOTSTRING("% CPU USED") ! ! 1ST Y AXIS ! NIBYAX(1,3,-3,-15) %CYCLE I=0,1,END; !SCATTER T(I) = BL(I) PLOT(1,CPU(I),T(I),0,0) POINTSYMBOL(1,0) %REPEAT DRAW REGRESSION LINES(CPU,BL,END,0,100,0,20000) ANNOTATE(10,17500,3,0) PLOTSTRING("NSI SBS VS CPU") ! ! 2ND Y AXIS ! SCALE(5,16,0.1,0.0005,0) NIBYAX(1,3,-3,-15) %CYCLE I=0,1,END T(I) = T(I)+MES(I) PLOT(1,CPU(I),T(I),0,0) POINTSYMBOL(1,0) %REPEAT DRAW REGRESSION LINES(CPU, T, END, 0, 100, 0, 20000) ANNOTATE(10,17000,3,0) PLOTSTRING("ALL PKTS V CPU") ANNOTATE(50,20000,2.5,0) PLOTSTRING(TITLE) CLOSEPLOTTER ! DESTROY("GRAPH2#TMP") %END !! %EXTERNALROUTINESPEC CLEAR(%STRING (255) S) %EXTERNALROUTINESPEC LIST(%STRING (255) S) PROMPT("Target Node?"); READ(TARGET) %IF TARGET = 9 %START TARGET = 6; S = S." Node 9" %FINISHELSESTART TARGET = 7; S = S." Node 6" %FINISH GRAPH1(S) SELECT INPUT(0); CLOSE STREAM(1); CLOSE STREAM(40) CLEAR("") ! GRAPH2(S) ! SELECT INPUT(0); CLOSE STREAM(1); CLOSE STREAM(40) CLEAR("") GRAPH5(S) SELECT INPUT(0); CLOSE STREAM(1); CLOSESTREAM(40) ! GRAPH6(S) ! LIST("GRAPH1#TMP,.GP") ! LIST("GRAPH2#TMP,.GP") ! LIST("GRAPH4#TMP,.GP") %END %ENDOFFILE