%EXTERNALROUTINE mtbf(%STRING (255) s) %STRING (255) t,u,v,qq %STRING (255) title,x axis %INTEGER h,x,q,mon %ROUTINE easygraph(%STRING (255) s) %externalroutinespec emas3(%stringname command,params, %integername flag) %integer flag emas3("EASYGRAPH",s,flag) %end %ROUTINE define(%STRING (255) s) %EXTERNALROUTINESPEC emas3(%STRINGNAME command,params, %INTEGERNAME flag) %INTEGER flag emas3("DEFINE",s,flag) %END; ! Of %ROUTINE define. %EXTERNALROUTINESPEC prompt %ALIAS "S#PROMPT"(%STRING (255) s) %CONSTINTEGER nl= 10 %OWNSTRING (24) %ARRAY ss(1:12)= "January", "February", "March", "April", "May", "June", "july", "August", "september", "October", "November", "December" %INTEGERARRAY hw(1:50),sw(1:50) %INTEGER i,j,k %REAL z,hr,sr,allr %REALARRAY ha,sa,all(1:50) %ROUTINE readstring(%STRING (*) %NAME s) %INTEGER i s = "" %CYCLE readsymbol(i) %IF i=nl %THENRETURN s = s.tostring(i) %REPEAT %END %IF s="" %START prompt("Input file?") readstring(s) %FINISH define("1,".s) define("2,temp") select output(2); select input(1) readstring(title) readstring(x axis) printstring(" title """); printstring(title); printstring(""" xaxis 20,""") printstring(x axis); printstring(""" xformat 3,0 xscale 0,2 size_xnumber .15 xlabel Jan/Mar/May/Jul/Sep/Nov/Jan/Mar/May/Jul/Sep/Nov/Jan/Mar/May/Jul/Sep/Nov yaxis 16,""Hours MTBF"" yformat 3,0 yscale 0,150 flatnumber linetype line+points pen 3 symbol square data ") z = 3*30.5*24 read(q); ! REM number of months (last%C month entered=FEB 86) %CYCLE i = 1,1,q read(sw(i)); read(hw(i)) %REPEAT select output(0) printstring(" Month soft MTBF Hard MTBF Both MTBF ") select output(2) %CYCLE i = 2,1,q-1 x = sw(i-1)+sw(i)+sw(i+1) h = hw(i-1)+hw(i)+hw(i+1) mon = i-1 %CYCLE %IF mon<=12 %THENEXIT mon = mon-12 %REPEAT qq = ss(mon) select output(0) printstring(qq) %IF h=0 %THEN hr = 2500 %ELSE hr = z/h %IF x=0 %THEN sr = 2500 %ELSE sr = z/x %IF x+h=0 %THEN allr = 2500 %ELSE allr = z/(h+x) print(hr,10,0); print(sr,10,0); print(allr,10,0) newline select output(2) ha(i) = hr; sa(i) = sr; all(i) = allr %REPEAT %CYCLE i = 2,1,q-1 write(i-1,1); print(sa(i),3,0) newline %REPEAT printstring("annotate ""Software"" plot key 0,16.9 No Crashes endkey overlay pen 4 symbol diamond data ") %CYCLE i = 2,1,q-1 write(i-1,1); print(ha(i),3,0) newline %REPEAT printstring("annotate ""Hardware"" plot overlay pen 1 symbol triangle data ") %CYCLE i = 2,1,q-1 write(i-1,1); print(all(i),3,0) newline %REPEAT printstring("annotate ""Both"" plot plotter .gp15 stop ") select output(0) printstring(" Calling Easygraph temp,.gp15 ") close stream(2) easygraph("temp,.gp15") %END %ENDOFFILE