home *** CD-ROM | disk | FTP | other *** search
- version$="v1.2"
- main
- > PROCEDURE main
- CLS
- rez|=XBIOS(4)
- PRINT "p";SPC(32);"q"
- PRINT "p QBBS PUG ";version$;" q"
- PRINT "p (Protocol Usage Graph) q"
- PRINT "p Copyright © 1992 M.J.Matts q"
- PRINT "p";SPC(32);"q"
- maxchk|=20
- DIM chk$(maxchk|),chkd$(maxchk|),chk#(maxchk|,1),txtov#(maxchk|,1)
- ctl
- reg_info
- PRINT
- PRINT register$
- PRINT
- PRINT "Sorting LOG files..."
- QSORT chk$(-)
- r#=0
- DO
- IF chk$(0)=""
- DELETE chk$(0)
- DEC maxchk|
- ENDIF
- EXIT IF chk$(0)<>""
- LOOP
- FOR r#=0 TO maxchk|
- IF INSTR(chk$(r#),",")
- chkd$(r#)=MID$(chk$(r#),INSTR(chk$(r#),",")+1)
- chk$(r#)=UPPER$(LEFT$(chk$(r#),INSTR(chk$(r#),",")-1))
- ELSE
- chk$(r#)=UPPER$(chk$(r#))
- chkd$(r#)=UPPER$(chk$(r#))
- ENDIF
- NEXT r#
- @download.log
- @upload.log
- @overall.log
- @overall.txt
- CLS
- END
- RETURN
- > PROCEDURE ctl
- dlgraph$="DL_GRAPH"
- ulgraph$="UL_GRAPH"
- ovgraph$="OV_GRAPH"
- ovtext$="OV_TEXT"
- IF EXIST("QBBS_PUG.CTL")
- DIM ctw$(100)
- OPEN "I",#1,"QBBS_PUG.CTL"
- RECALL #1,ctw$(),-1,ctl#
- CLOSE #1
- chek#=0
- FOR r#=0 TO ctl#
- ctl$=UPPER$(ctw$(r#))
- IF LEFT$(ctl$,11)="SYSTEMPATH="
- syspath$=MID$(ctl$,12)
- IF RIGHT$(syspath$,1)<>"\"
- syspath$=syspath$+"\"
- ENDIF
- ENDIF
- IF LEFT$(ctl$,9)="TEXTPATH="
- textpath$=MID$(ctl$,10)
- IF RIGHT$(textpath$,1)<>"\"
- textpath$=textpath$+"\"
- ENDIF
- ENDIF
- IF LEFT$(ctl$,8)="DLGRAPH="
- dlgraph$=MID$(ctl$,9)
- ENDIF
- IF LEFT$(ctl$,8)="ULGRAPH="
- ulgraph$=MID$(ctl$,9)
- ENDIF
- IF LEFT$(ctl$,8)="OVGRAPH="
- ovgraph$=MID$(ctl$,9)
- ENDIF
- IF LEFT$(ctl$,7)="OVTEXT="
- ovtext$=MID$(ctl$,8)
- ENDIF
- IF LEFT$(ctl$,5)="HORIZ"
- horiz%=TRUE
- ENDIF
- IF LEFT$(UPPER$(ctw$(r#)),4)="INC=" AND chek#<17
- chk$(chek#)=MID$(ctw$(r#),5)
- INC chek#
- ENDIF
- NEXT r#
- ELSE
- PRINT
- PRINT "I cannot find QBBS_PUG.CTL.. Please correct this then try again.."
- PAUSE 50
- END
- ENDIF
- RETURN
- '
- > PROCEDURE reg_info
- IF EXIST(syspath$+"QCONFIG.BBS")
- syspath%=TRUE
- OPEN "R",#25,syspath$+"QCONFIG.BBS",2048
- FIELD #25,831 AS void$,40 AS sysop$,40 AS bbsname$
- GET #25
- CLOSE #25
- sysop$=TRIM$(MID$(sysop$,1))
- bbsname$=TRIM$(MID$(bbsname$,1))
- IF RIGHT$(sysop$)=CHR$(0)
- sysop$=LEFT$(sysop$,LEN(sysop$)-1)
- ENDIF
- IF RIGHT$(bbsname$)=CHR$(0)
- bbsname$=LEFT$(bbsname$,LEN(bbsname$)-1)
- ENDIF
- register$="Registered To "+bbsname$
- ELSE
- register$="*** UNREGISTERED ***"
- ENDIF
- RETURN
- '
- > PROCEDURE download.log
- IF EXIST(syspath$+"DOWNLOAD.LOG")
- ov#=0
- INC overall#
- ERASE dl$()
- DIM dl$(4000)
- OPEN "I",#1,syspath$+"DOWNLOAD.LOG"
- RECALL #1,dl$(),-1,dl#
- CLOSE #1
- convert_log
- dltot#=totdl#
- totov#=totov#+totdl#
- IF horiz%
- make_hori_graph(textpath$+dlgraph$,"Download Protocol Graph")
- ELSE
- make_vert_graph(textpath$+dlgraph$,"Download Protocol Graph")
- ENDIF
- ENDIF
- RETURN
- > PROCEDURE upload.log
- IF EXIST(syspath$+"UPLOAD.LOG")
- ov#=1
- INC overall#
- ERASE dl$()
- DIM dl$(4000)
- OPEN "I",#1,syspath$+"UPLOAD.LOG"
- RECALL #1,dl$(),-1,dl#
- CLOSE #1
- convert_log
- ultot#=totdl#
- totov#=totov#+totdl#
- IF horiz%
- make_hori_graph(textpath$+ulgraph$,"Upload Protocol Graph")
- ELSE
- make_vert_graph(textpath$+ulgraph$,"Upload Protocol Graph")
- ENDIF
- ENDIF
- RETURN
- > PROCEDURE overall.log
- IF overall#>1
- ' ### Work out each xfer's overall percentage ###
- FOR xfer#=0 TO maxchk|
- IF chk$(xfer#)<>""
- chk#(xfer#,1)=((txtov#(xfer#,0)+txtov#(xfer#,1))/totov#)*100
- chk#(xfer#,0)=txtov#(xfer#,0)+txtov#(xfer#,1)
- ENDIF
- NEXT xfer#
- IF horiz%
- make_hori_graph(textpath$+ovgraph$,"Overall Protocol Graph")
- ELSE
- make_vert_graph(textpath$+ovgraph$,"Overall Protocol Graph")
- ENDIF
- ENDIF
- RETURN
- > PROCEDURE overall.txt
- IF overall#>1
- message$="Overall Protocol Chart"
- OPEN "O",#1,textpath$+ovtext$+".ASC"
- OPEN "O",#2,textpath$+ovtext$+".ANS"
- OPEN "O",#3,textpath$+ovtext$+".VTC"
- OPEN "O",#4,textpath$+ovtext$+".VTM"
- CLS
- title$="QBBS PUG (Protocol Usage Graph) "+version$+" Copyright (c) 1992 M.J.Matts"
- hd1$=" Download Upload Overall Totals"
- hd2$="Protocol Used Files Perc Files Perc Files Perc"
- hd3$=STRING$(65,"-")
- IF rez|=1
- PRINT "E"+@ctr$("c3b2 "+title$+" c0b3",12)
- PRINT @ctr$("b1"+message$+" : "+register$+"b3",6)
- ELSE
- PRINT "E"+@ctr$("p "+title$+" q",4)
- PRINT @ctr$(message$+" : "+register$,0)
- ENDIF
- PRINT
- PRINT @ctr$(hd1$,0)
- PRINT @ctr$(hd2$,0)
- PRINT @ctr$(hd3$,0)
- PRINT #1,@ctr$(title$,0)
- PRINT #1,@ctr$(message$+" : "+register$,0)
- PRINT #1
- PRINT #1,@ctr$(hd1$,0)
- PRINT #1,@ctr$(hd2$,0)
- PRINT #1,@ctr$(hd3$,0)
- PRINT #2,""+@ctr$(" "+title$+" ",8)
- PRINT #2,@ctr$(message$+" : "+register$,0)
- PRINT #2
- PRINT #2,@ctr$(hd1$,0)
- PRINT #2,@ctr$(hd2$,0)
- PRINT #2,@ctr$(hd3$,0)
- PRINT #3,"E"+@ctr$("c3b2 "+title$+" c0b3",12)
- PRINT #3,@ctr$("b1"+message$+" : "+register$+"b3",6)
- PRINT #3
- PRINT #3,@ctr$(hd1$,0)
- PRINT #3,@ctr$(hd2$,0)
- PRINT #3,@ctr$(hd3$,0)
- PRINT #4,"E"+@ctr$("p "+title$+" q",4)
- PRINT #4,@ctr$(message$+" : "+register$,0)
- PRINT #4
- PRINT #4,@ctr$(hd1$,0)
- PRINT #4,@ctr$(hd2$,0)
- PRINT #4,@ctr$(hd3$,0)
- dlc$=" "
- ulc$=" "
- ovc$=" "
- dlp$=" "
- ulp$=" "
- ovp$=" "
- FOR r#=0 TO maxchk|
- IF chk$(r#)<>""
- RSET dlc$=STR$(txtov#(r#,0))
- RSET ulc$=STR$(txtov#(r#,1))
- RSET ovc$=STR$(txtov#(r#,0)+txtov#(r#,1))
- dlp#=((txtov#(r#,0)/dltot#)*100)
- ulp#=((txtov#(r#,1)/ultot#)*100)
- ovp#=(((txtov#(r#,0)+txtov#(r#,1))/totov#)*100)
- RSET dlp$=STR$(TRUNC(dlp#))+"."+MID$(STR$(FRAC(dlp#)),3,2)
- RSET ulp$=STR$(TRUNC(ulp#))+"."+MID$(STR$(FRAC(ulp#)),3,2)
- RSET ovp$=STR$(TRUNC(ovp#))+"."+MID$(STR$(FRAC(ovp#)),3,2)
- IF RIGHT$(dlp$,1)="."
- RSET dlp$=LEFT$(dlp$,LEN(dlp$)-1)
- ENDIF
- IF RIGHT$(ulp$,1)="."
- RSET ulp$=LEFT$(ulp$,LEN(ulp$)-1)
- ENDIF
- IF RIGHT$(ovp$,1)="."
- RSET ovp$=LEFT$(ovp$,LEN(ovp$)-1)
- ENDIF
- line$=LEFT$(chkd$(r#)+SPACE$(16),16)
- line$=line$+RIGHT$(SPACE$(10)+dlc$,6)+" "+LEFT$(dlp$+"%"+SPACE$(10),8)
- line$=line$+RIGHT$(SPACE$(10)+ulc$,6)+" "+LEFT$(ulp$+"%"+SPACE$(10),8)
- line$=line$+RIGHT$(SPACE$(10)+ovc$,6)+" "+LEFT$(ovp$+"%"+SPACE$(10),8)
- PRINT @ctr$(line$,2)
- PRINT #1,@ctr$(line$,2)
- PRINT #2,@ctr$(line$,2)
- PRINT #3,@ctr$(line$,2)
- PRINT #4,@ctr$(line$,2)
- ENDIF
- NEXT r#
- ENDIF
- CLOSE
- RETURN
- '
- > PROCEDURE convert_log
- ARRAYFILL chk#(),0
- totdl#=0
- ' ### Work out the count for each xfer ###
- FOR xfer#=0 TO maxchk|
- FOR r#=0 TO dl#
- IF LEFT$(UPPER$(dl$(r#)),LEN(chk$(xfer#)))=UPPER$(chk$(xfer#)) AND chk$(xfer#)<>""
- dl$(r#)=""
- INC chk#(xfer#,0)
- INC txtov#(xfer#,ov#)
- ENDIF
- NEXT r#
- NEXT xfer#
- ' ### Work out total download count ###
- FOR xfer#=0 TO maxchk|
- IF chk$(xfer#)<>""
- totdl#=totdl#+chk#(xfer#,0)
- ENDIF
- NEXT xfer#
- ' ### Work out each xfer's percentage ###
- FOR xfer#=0 TO maxchk|
- IF chk$(xfer#)<>""
- chk#(xfer#,1)=(chk#(xfer#,0)/totdl#)*100
- ENDIF
- NEXT xfer#
- RETURN
- > PROCEDURE make_vert_graph(fname$,message$)
- OPEN "O",#1,fname$+".ASC"
- OPEN "O",#2,fname$+".ANS"
- OPEN "O",#3,fname$+".VTC"
- OPEN "O",#4,fname$+".VTM"
- CLS
- title$="QBBS PUG (Protocol Usage Graph) "+version$+" Copyright (c) 1992 M.J.Matts"
- IF rez|=1
- PRINT "E"+@ctr$("c3b2 "+title$+" c0b3",12)
- PRINT @ctr$("b1"+message$+" : "+register$+"b3",6)
- ELSE
- PRINT "E"+@ctr$("p "+title$+" q",4)
- PRINT @ctr$(message$+" : "+register$,4)
- ENDIF
- PRINT #1,@ctr$(title$,0)
- PRINT #1,@ctr$(message$+" : "+register$,0)
- PRINT #2,""+@ctr$(" "+title$+" ",8)
- PRINT #2,@ctr$(message$+" : "+register$,0)
- PRINT #3,"E"+@ctr$("c3b2 "+title$+" c0b3",12)
- PRINT #3,@ctr$("b1"+message$+" : "+register$+"b3",6)
- PRINT #4,"E"+@ctr$("p "+title$+" q",4)
- PRINT #4,@ctr$(message$+" : "+register$,0)
- pe$=" "
- pert$=" PERCENTAGE% "
- pro#=0
- ab$=" "
- rr#=0
- maxchrs|=0
- FOR xfer#=0 TO maxchk|
- IF chk$(xfer#)<>""
- INC maxchrs|
- ENDIF
- NEXT xfer#
- FOR r#=100 TO 0.1 STEP -6.25
- ans#=0
- vtm#=0
- vtc#=0
- asc$=""
- ans$=""
- vtc$=""
- vtm$=""
- RSET pe$=STR$(INT(r#))
- INC rr#
- IF pe$="100" OR pe$=" 75" OR pe$=" 50" OR pe$=" 25"
- asc$=asc$+MID$(pert$,rr#,1)+pe$+"| "
- ans$=ans$+MID$(pert$,rr#,1)+pe$+"| "
- vtc$=vtc$+MID$(pert$,rr#,1)+pe$+"c1 c0 "
- vtm$=vtm$+MID$(pert$,rr#,1)+pe$+"p|q "
- ELSE
- asc$=asc$+MID$(pert$,rr#,1)+" -"+"| "
- ans$=ans$+MID$(pert$,rr#,1)+" -"+"| "
- vtc$=vtc$+MID$(pert$,rr#,1)+" -"+"c1 c0 "
- vtm$=vtm$+MID$(pert$,rr#,1)+" -"+"p|q "
- ENDIF
- ADD ans#,8
- ADD vtc#,6
- ADD vtm#,4
- FOR xfer#=0 TO maxchk|
- IF chk$(xfer#)<>""
- IF chk#(xfer#,1)>r#-6.25
- asc$=asc$+"∞∞ "
- ans$=ans$+" "
- vtc$=vtc$+"c2 c0 "
- vtm$=vtm$+"p q "
- ADD ans#,8
- ADD vtc#,6
- ADD vtm#,4
- ELSE
- asc$=asc$+" "
- ans$=ans$+" "
- vtc$=vtc$+" "
- vtm$=vtm$+" "
- ENDIF
- ENDIF
- NEXT xfer#
- IF chkd$(pro#)<>""
- RSET ab$=STR$(pro#+1)
- chkd$(pro#)=chkd$(pro#)
- asc$=asc$+"|"+ab$+":"+LEFT$(chkd$(pro#)+" ("+STR$(chk#(pro#,0))+")"+SPACE$(15),15)
- ans$=ans$+"|"+ab$+":"+LEFT$(chkd$(pro#)+" ("+STR$(chk#(pro#,0))+")"+SPACE$(15),15)
- vtc$=vtc$+"c1 c0"+ab$+":"+LEFT$(chkd$(pro#)+" ("+STR$(chk#(pro#,0))+")"+SPACE$(15),15)
- vtm$=vtm$+"p|q"+ab$+":"+LEFT$(chkd$(pro#)+" ("+STR$(chk#(pro#,0))+")"+SPACE$(15),15)
- ELSE
- asc$=asc$+"|"+SPACE$(18)
- ans$=ans$+"|"+SPACE$(18)
- vtc$=vtc$+"c1 c0"+SPACE$(18)
- vtm$=vtm$+"p|q"+SPACE$(18)
- ENDIF
- ADD ans#,8
- ADD vtc#,6
- ADD vtm#,4
- IF rez|=1
- PRINT @ctr$(vtc$,vtc#)
- ELSE
- PRINT @ctr$(vtm$,vtm#)
- ENDIF
- PRINT #1,@ctr$(asc$,0)
- PRINT #2,@ctr$(ans$,ans#)
- PRINT #3,@ctr$(vtc$,vtc#)
- PRINT #4,@ctr$(vtm$,vtm#)
- INC pro#
- NEXT r#
- asc$=""
- ans$=""
- vtc$=""
- vtm$=""
- ans#=0
- vtc#=0
- vtm#=0
- asc$=asc$+" 0+"
- ans$=ans$+" 0+"
- vtc$=vtc$+" 0c1 "
- vtm$=vtm$+" 0p+"
- FOR xfer#=0 TO maxchk|
- IF chk$(xfer#)<>""
- asc$=asc$+"---"
- ans$=ans$+"---"
- vtc$=vtc$+" "
- vtm$=vtm$+"---"
- ENDIF
- NEXT xfer#
- asc$=asc$+"-+"
- ans$=ans$+"-+"
- vtc$=vtc$+" c0"
- vtm$=vtm$+"-+q"
- ADD ans#,9
- ADD vtc#,6
- ADD vtm#,4
- IF chkd$(pro#)<>""
- RSET ab$=STR$(pro#+1)
- chkd$(pro#)=chkd$(pro#)
- asc$=asc$+ab$+":"+LEFT$(chkd$(pro#)+" ("+STR$(chk#(pro#,0))+")"+SPACE$(15),15)
- ans$=ans$+ab$+":"+LEFT$(chkd$(pro#)+" ("+STR$(chk#(pro#,0))+")"+SPACE$(15),15)
- vtc$=vtc$+ab$+":"+LEFT$(chkd$(pro#)+" ("+STR$(chk#(pro#,0))+")"+SPACE$(15),15)
- vtm$=vtm$+ab$+":"+LEFT$(chkd$(pro#)+" ("+STR$(chk#(pro#,0))+")"+SPACE$(15),15)
- ELSE
- asc$=asc$+SPACE$(18)
- ans$=ans$+SPACE$(18)
- vtc$=vtc$+SPACE$(18)
- vtm$=vtm$+SPACE$(18)
- ENDIF
- IF rez|=1
- PRINT @ctr$(vtc$,vtc#)
- ELSE
- PRINT @ctr$(vtm$,vtm#)
- ENDIF
- PRINT #1,@ctr$(asc$,0)
- PRINT #2,@ctr$(ans$,ans#)
- PRINT #3,@ctr$(vtc$,vtc#)
- PRINT #4,@ctr$(vtm$,vtm#)
- nn#=0
- pe$=" "
- ans#=0
- vtc#=0
- vtm#=0
- asc$=" "
- ans$=" "
- vtc$=" "
- vtm$=" "
- FOR xfer#=0 TO maxchk|
- IF chk$(xfer#)<>""
- INC nn#
- RSET pe$=STR$(nn#)
- asc$=asc$+pe$+" "
- ans$=ans$+pe$+" "
- vtc$=vtc$+pe$+" "
- vtm$=vtm$+pe$+" "
- ENDIF
- NEXT xfer#
- IF rez|=1
- PRINT @ctr$(vtc$+SPACE$(20),0)
- ELSE
- PRINT @ctr$(vtm$+SPACE$(20),0)
- ENDIF
- PRINT #1,@ctr$(asc$+SPACE$(20),0)
- PRINT #2,@ctr$(ans$+SPACE$(20),ans#)
- PRINT #3,@ctr$(vtc$+SPACE$(20),vtc#)
- PRINT #4,@ctr$(vtm$+SPACE$(20),vtm#)
- CLOSE
- RETURN
- > PROCEDURE make_hori_graph(fname$,message$)
- OPEN "O",#1,fname$+".ASC"
- OPEN "O",#2,fname$+".ANS"
- OPEN "O",#3,fname$+".VTC"
- OPEN "O",#4,fname$+".VTM"
- CLS
- title$="QBBS PUG (Protocol Usage Graph) "+version$+" Copyright (c) 1992 M.J.Matts"
- IF rez|=1
- PRINT "E"+@ctr$("c3b2 "+title$+" c0b3",12)
- PRINT @ctr$("b1"+message$+" : "+register$+"b3",6)
- ELSE
- PRINT "E"+@ctr$("p "+title$+" q",4)
- PRINT @ctr$(message$+" : "+register$,4)
- ENDIF
- PRINT #1,@ctr$(title$,0)
- PRINT #1,@ctr$(message$+" : "+register$,0)
- PRINT #2,""+@ctr$(" "+title$+" ",8)
- PRINT #2,@ctr$(message$+" : "+register$,0)
- PRINT #3,"E"+@ctr$("c3b2 "+title$+" c0b3",12)
- PRINT #3,@ctr$("b1"+message$+" : "+register$+"b3",6)
- PRINT #4,"E"+@ctr$("p "+title$+" q",4)
- PRINT #4,@ctr$(message$+" : "+register$,0)
- pe$=" "
- asc$=CHR$(10)+CHR$(13)+SPACE$(20)
- FOR r#=0 TO 100 STEP 6.25
- RSET pe$=STR$(INT(r#))
- IF pe$="100" OR pe$=" 75" OR pe$=" 50" OR pe$=" 25" OR pe$=" 0"
- asc$=asc$+pe$
- ELSE
- asc$=asc$+" "
- ENDIF
- NEXT r#
- PRINT asc$
- PRINT #1,asc$
- PRINT #2,asc$
- PRINT #3,asc$
- PRINT #4,asc$
- '
- asc$=SPACE$(20)+"+"+STRING$(50,"-")
- ans$=SPACE$(20)+"+"+STRING$(50,"-")+""
- vtc$=SPACE$(20)+"c1"+STRING$(51," ")+"c0"
- vtm$=SPACE$(20)+"p+"+STRING$(50,"-")+"q"
- IF rez|=1
- PRINT vtc$
- ELSE
- PRINT vtm$
- ENDIF
- PRINT #1,asc$
- PRINT #2,ans$
- PRINT #3,vtc$
- PRINT #4,vtm$
- FOR ho#=0 TO maxchk|
- IF chkd$(ho#)<>""
- asc$=""
- ans$=""
- vtc$=""
- vtm$=""
- asc$=RIGHT$(SPACE$(20)+chkd$(ho#)+" ("+STR$(chk#(ho#,0))+")",19)+" |"
- asc$=asc$+STRING$(chk#(ho#,1)/2,"∞")
- ans$=RIGHT$(SPACE$(20)+chkd$(ho#)+" ("+STR$(chk#(ho#,0))+")",19)+" | "
- ans$=ans$+""+STRING$(chk#(ho#,1)/2,"#")+""
- vtc$=RIGHT$(SPACE$(20)+chkd$(ho#)+" ("+STR$(chk#(ho#,0))+")",19)+" c1 c0"
- vtc$=vtc$+"c2"+STRING$(chk#(ho#,1)/2," ")+"c0"
- vtm$=RIGHT$(SPACE$(20)+chkd$(ho#)+" ("+STR$(chk#(ho#,0))+")",19)+" p| q"
- vtm$=vtm$+"p"+STRING$(chk#(ho#,1)/2,"∞")+"q"
- PRINT #1,asc$
- PRINT #2,ans$
- PRINT #3,vtc$
- PRINT #4,vtm$
- IF rez|=1
- PRINT vtc$
- ELSE
- PRINT vtm$
- ENDIF
- ENDIF
- NEXT ho#
- asc$=SPACE$(20)+"+"+STRING$(50,"-")
- ans$=SPACE$(20)+"+"+STRING$(50,"-")+""
- vtc$=SPACE$(20)+"c1"+STRING$(51," ")+"c0"
- vtm$=SPACE$(20)+"p+"+STRING$(50,"-")+"q"
- IF rez|=1
- PRINT vtc$
- ELSE
- PRINT vtm$
- ENDIF
- PRINT #1,asc$
- PRINT #2,ans$
- PRINT #3,vtc$
- PRINT #4,vtm$
- CLOSE
- RETURN
- '
- > FUNCTION ctr$(tmptxt$,ofset#)
- ofset#=ofset#/2
- tmptxt$=SPACE$((40+ofset#)-(LEN(tmptxt$)/2))+tmptxt$
- ofset#=0
- RETURN tmptxt$
- ENDFUNC
-