home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
bbs
/
fscan157
/
fscan157.gfa
(
.txt
)
next >
Wrap
GFA-BASIC Atari
|
1992-05-02
|
34KB
|
1,620 lines
' FidoNet Scanning program. (C) D.M.Brewood, 1990,1991,1992
' Graphics/Windows & Registration Code (C) P.Gadsby 1991,1992
'
' test = 0 for running, 1 = for testing
'
' Mail Packet type: way2go = 387 for CrashMail, or 385 for Routed
'
tt%=TIMER
CLOSEW 0
CLOSEW #0
EVERY 600 GOSUB show_it
sysop_reg
sysreg%=1
key_check%=0
CLS
IF XBIOS(4)=0
CLS
ALERT 1,"* Medium or HiRes ONLY *",1,"Whoops!",a%
CLOSE
CLOSEW #0
END
ENDIF
way2go%=387
aaa#=FRE(x#)
DEFINT "a-z"
pos%=0
'
test#=0
ver$="1.57"
'
IF INSTR(ver$,"b")
note$="BETA RELEASE ONLY - NOT FOR DISTRIBUTION!!!!!"
ENDIF
'
'
max_rec#=500
pro$="Init master arrays"
addr_pointer%=0
max_address%=100
coder_address$="2:255/401.0"
DIM adr#(31),master_index$(100),map$(31,max_rec#)
DIM day_ad$(31,max_rec#+50)
DIM baud#(5)
DIM xaddress$(max_address%),seenby$(max_address%)
' ON ERROR GOSUB cleanup
ON BREAK GOSUB shutdown
pro$="Does fidocall.dat exist?"
IF EXIST("fidocall.dat")
main_routine
ELSE
pro$="FIDOCALL.DAT not found......"
PRINT "FIDOCALL.DAT not found......"
PAUSE 100
CLOSE
END
ENDIF
CLOSE
barchart
reg_checker
barsum
reg_checker
CLOSE #3
mes_count
CLOSE
bbb%=FRE(x%)
IF test#
PRINT "Memory used: ";aaa#-bbb%;" bytes."
ENDIF
PRINT "Time taken to execute F-Scan:";(TIMER-tt%)/200;" seconds."
PAUSE 100
CLOSEW #2
CLOSEW #1
CLOSEW #0
CLOSEW 0
END
'
' ********************************************
' * START OF PROCEDURES *
' ********************************************
'
'
> PROCEDURE main_routine
pro$="main routine"
title
pjgsize%=60
pjgdown%=135
pjgdown2%=120
IF XBIOS(4)=2
pjgsize%=110
pjgdown%=270
pjgdown2%=250
ENDIF
TITLEW #2," Approvals: "
OPENW #2,440,pjgdown2%/2,124,pjgsize%/2,0
'
PRINT
PRINT "NeST: 01224-923";
'
'
OPENW #1,4,pjgdown%,632,pjgsize%,&H10
PRINT
set_mask
inf_read
key_confirm
set_var
notify_reg
reg_checker
init_io
main_loop
RETURN
> PROCEDURE set_var
pro$="set_var"
offset#=5
adr_max#=0
marker$=LEFT$(DATE$,2)
marker$=STR$(INT(VAL(marker$)))
mark#=VAL(marker$)
IF test#
mark#=31
ENDIF
call$="I"
pprint$=""
mess_stat$=""
xfer$=""
sysop$=""
tick$=""
pass$=" "
daron$=""
RETURN
> PROCEDURE main_loop
pro$="main loop"
REPEAT
pro$="repeat"
LINE INPUT #1,bink_line$
pro$="line input #1,bink_line$"
IF INSTR(bink_line$," BINK ") OR INSTR(bink_line$," COME ")
IF INSTR(bink_line$," TIDY ")=0 OR INSTR(bink_line$," ECHOFIX ")=0 OR INSTR(bink_line$,"INTRO")=0
scan
pro$="scan"
count_baud
pro$="count baud"
ENDIF
ENDIF
UNTIL EOF(#1)
IF tot_call#<>0
give_stats
ENDIF
key
RETURN
> PROCEDURE change_date
pro$="change date"
marker$=MID$(bink_line$,3,2)
mark_new#=VAL(marker$)
marker$=STR$(mark_new#)
IF mark_new#>=1 AND mark_new#<=31 AND mark_new#<>mark#
mark#=mark_new#
CLOSE #4
day_dat$="fscan."+marker$
IF test#
PRINT
PRINT "day_dat$= ";day_dat$
PRINT
ENDIF
'
IF EXIST(store$+day_dat$)
OPEN "a",#4,store$+day_dat$
ELSE
OPEN "o",#4,store$+day_dat$
ENDIF
'
ENDIF
RETURN
> PROCEDURE count_baud
pro$="count baud"
IF INSTR(UPPER$(bink_line$),"EXITING TO")
IF INSTR(UPPER$(bink_line$),"EXITING TO EXTERNAL MAILER")
INC ext_mail#
IF test#
PRINT "Exiting to external mailer."
ENDIF
ENDIF
RESTORE meek
FOR q#=1 TO 4
READ pk#
IF INSTR(UPPER$(bink_line$),"EXITING TO BBS WITH ERRORLEVEL "+STR$(pk#))
INC baud#(q#)
INC tot_call#
IF test#
PRINT "Exiting with errorlevel ";pk#
ENDIF
ENDIF
NEXT q#
ENDIF
RETURN
> PROCEDURE give_stats
pro$="give stats"
tot$=" External mailers "+STR$(ext_mail#,4)+"."
IF test#
PRINT
PRINT tot$
ENDIF
PRINT #2
PRINT #2,tot$
tot$=" User's Calls Found "+STR$(tot_call#,4)+"."
IF test#
PRINT
PRINT tot$
ENDIF
PRINT #2
PRINT #2,tot$
PRINT #2
RESTORE meek
FOR x#=1 TO 4
READ pk#
IF pk#=3
pad$=" "
ELSE
pad$=""
ENDIF
calc$=" Callers at "+pad$+STR$(pk#*100)+" baud "+STR$(baud#(x#),4)+". Percentage: "+STR$(baud#(x#)/tot_call#*100,4)+"%."
IF test#
PRINT calc$
ENDIF
PRINT #2,calc$
NEXT x#
RETURN
> PROCEDURE init_io
pro$="init io"
IF EXIST(binkley.log$)
OPEN "i",#1,binkley.log$
ELSE
CLOSE
pro$="binkley logfile not found..(CLOSE)"
END
ENDIF
OPEN "o",#2,binkley.out$
OPEN "o",#3,store$+"Msglog.dat"
day_dat$="fscan."+marker$
OPEN "o",#4,store$+day_dat$
title1$=" F-Scan "+ver$+". Binkley Mail Activity. © D.M.Brewood & P.Gadsby, 1990,91,92."
title2$=" FidoNet: 2:255/401.0 NeST: 90:1/0.0"
PRINT #2
PRINT #2,title1$
PRINT #2,title2$
PRINT #2
PRINT #2," Date/Timestamp: Address: SysOp/BBS if Poll: Xfer: Cll/Sts:"
PRINT #2," ------------------- ------------------- ------------------- ------ --------"
RETURN
> PROCEDURE inf_read
IF EXIST("FIDOCALL.DAT")
pro$="*ERROR in the format of FIDOCALL.DAT* - Check the documentation!"
OPEN "i",#1,"fidocall.dat"
pro$="open #1,'fidocall.dat'"
LINE INPUT #1,binkley.log$
pro$="line input #1,binkley.log$"
' PRINT binkley.log$
' binkley.log$="e:\bink.log$"
LINE INPUT #1,binkley.out$
pro$="line input #1,binkley.out$"
LINE INPUT #1,out_log$
pro$="line input #1,out_log$"
LINE INPUT #1,barchart$
pro$="line input #1,barchart$"
LINE INPUT #1,store$
pro$="line input #1,store$"
LINE INPUT #1,cfg_file$
pro$="line input #1,cfg_file$"
LINE INPUT #1,areas$
pro$="line input #1,areas$"
LINE INPUT #1,netmail$
netmail$=TRIM$(netmail$)
pro$="line input #1,netmail$"
IF NOT EOF(#1)
LINE INPUT #1,key$
key$=TRIM$(key$)
pro$="line input #1,key$"
key$=TRIM$(MID$(key$,4))
ENDIF
CLOSE #1
ELSE
pro$="*ERROR - FIDOCALL.DAT not found!"
ENDIF
RETURN
> PROCEDURE title
pro$="title"
pjgrez%=XBIOS(4)
CLS
RBOX 1,1,638,132*pjgrez%
width%=610
DEFTEXT 1,25,0,32
TEXT 10,32,width%,"FidoNet Call Analysis. V"+ver$
DEFTEXT 1,16,0,13
TEXT 100,54*pjgrez%,"(C) D.M.Brewood & P.J.Gadsby 1990,1991,1992. "
DEFTEXT 1,0,0,4
TEXT 200,63*pjgrez%," For Support Contact:"
DEFTEXT 1,1,0,6
IF pjgrez%=2
DEFTEXT 1,1,0,13
ENDIF
TEXT 25,72*pjgrez%,"Daron Brewood @ FidoNet....2:255/401.0 "
TEXT 25,80*pjgrez%," NeST.......90:1/0.0 "
TEXT 25,88*pjgrez%," MysticNet..69:200/102.0"
TEXT 25,96*pjgrez%," ChristNet..12:1001/0.0"
TEXT 25,106*pjgrez%," Phil Gadsby @ FidoNet....2:255/400.0"
TEXT 25,114*pjgrez%," NeST.......90:1040/0.0"
TEXT 25,122*pjgrez%," MysticNet..69:200/103.0"
TEXT 25,130*pjgrez%," ClariNet...11:9200/100.0"
DEFTEXT 1,24,0,13
TEXT 90,54*pjgrez%,note$
DEFTEXT 1,0,0,4
nest_picture
DEFTEXT 1,0,0,13
IF pjgrez%=1
DEFTEXT 1,0,0,6
ENDIF
RETURN
> PROCEDURE key
pro$="key"
IF test#
PRINT
PRINT " O = Outgoing Call I = Incoming call F = File Request S = Send Mail"
PRINT " R = Receive Mail ! = Session Aborted Q = File Request Limit Exceeded"
PRINT " C = Compressed Mail L = Lost Carrier ? = Called X and got Y"
PRINT " P = Password Protected Session X = Password Error"
PRINT " Z = Zmodem Recv Problem D = Other End Died"
PRINT " E = Remote Didn't Respond $ = Connection Attempt Aborted"
PRINT " # = Outgoing Poll N = No Carrier + = Bad Line Connection"
ENDIF
PRINT #2,""
PRINT #2," O = Outgoing Call I = Incoming call F = File Request S = Send Mail"
PRINT #2," R = Receive Mail ! = Session Aborted Q = File Request Limit Exceeded"
PRINT #2," C = Compressed Mail L = Lost Carrier ? = Called X and got Y"
PRINT #2," P = Password Protected Session X = Password Error"
PRINT #2," Z = Zmodem Recv Problem D = Other End Died"
PRINT #2," E = Remote Didn't Respond $ = Connection Attempt Aborted"
PRINT #2," # = Outgoing Poll N = No Carrier + = Bad Line Connection"
PRINT #2
PRINT #2,note$
PRINT #3
PRINT #3,note$
RETURN
> PROCEDURE scan
pro$="scan"
processing#=INSTR(bink_line$,"Processing node")>1
IF INSTR(UPPER$(bink_line$),"POLL COMPLETED")<>0
pollcomp#=1
ENDIF
IF INSTR(UPPER$(bink_line$),"INCOMING CALL, DIAL ABORTED")<>0
pollcomp#=1
ENDIF
IF INSTR(UPPER$(bink_line$),"DIALING") ! AND new_bbs=0
call$="O"
new_bbs#=1
ENDIF
IF INSTR(UPPER$(bink_line$),"ENTERING POLL MODE") AND new_bbs#=0
call$="#"
pass$="-"
new_bbs#=1
ENDIF
'
'
IF INSTR(bink_line$,"-|-")>=1 OR INSTR(bink_line$,"|")
IF test#
PRINT bink_line$
ENDIF
PRINT #3,bink_line$
ENDIF
'
'
IF INSTR(UPPER$(bink_line$),"SENDING MAIL FOR") AND gotit%=0
node$=MID$(bink_line$,41)
strip
node$="("+node$+")"
x_node$=node$
' PRINT x_node$
gotit%=1
ENDIF
'
IF INSTR(UPPER$(bink_line$),"SENDING MAIL USING FTS-0001") AND gotit%=0
gotit%=1
ftsc%=1
ENDIF
'
IF INSTR(UPPER$(bink_line$),"(") AND INSTR(UPPER$(bink_line$),":") AND ftsc%=1
node$=MID$(bink_line$,41)
strip
x_node$=node$
' PRINT x_node$
gotit%=1
ENDIF
'
'
' flag code moved to here to ensure it works properly.
'
IF INSTR(UPPER$(bink_line$),"RECEIVED")
mess_stat$=mess_stat$+"R"
ENDIF
IF INSTR(UPPER$(bink_line$),"SENT")>=1
mess_stat$=mess_stat$+"S"
ENDIF
IF INSTR(UPPER$(bink_line$),"ZMODEM RECV PROBLEM")>=1
mess_stat$=mess_stat$+"Z"
ENDIF
IF INSTR(UPPER$(bink_line$),"OTHER END DIED")>=1
mess_stat$=mess_stat$+"D"
ENDIF
IF INSTR(UPPER$(bink_line$),"REMOTE DIDN'T RESPOND")>=1
mess_stat$=mess_stat$+"E"
ENDIF
IF INSTR(UPPER$(bink_line$),"FILE REQUEST (")>=1
mess_stat$=mess_stat$+"F"
ENDIF
IF INSTR(UPPER$(bink_line$),"FILE REQUEST LIMIT EXCEEDED")>=1
mess_stat$=mess_stat$+"Q"
ENDIF
IF INSTR(UPPER$(bink_line$),"SESSION ABORTED")>=1
mess_stat$=mess_stat$+"!"
ENDIF
IF INSTR(UPPER$(bink_line$),"CONNECTION ATTEMPT ABORTED")>=1
mess_stat$=mess_stat$+"$"
ENDIF
IF INSTR(UPPER$(bink_line$),"AND GOT")>=1 AND INSTR(UPPER$(bink_line$),"CALLED")>=1
mess_stat$=mess_stat$+"?"
ENDIF
IF INSTR(UPPER$(bink_line$),"ZEDZAP")
xfer$="ZedZap"
ENDIF
IF INSTR(UPPER$(bink_line$),"JANUS")
xfer$="Janus"
ENDIF
'
IF INSTR(UPPER$(bink_line$),"EMSI")
xfer$="EMSI"
ENDIF
IF INSTR(UPPER$(bink_line$),"FTS-0001")
xfer$="FTS-1"
sysop$="FTS-0001 - Unknown"
ENDIF
'
IF INSTR(UPPER$(bink_line$),"PASSWORD-PROTECTED SESSION")
pass$="P"
ENDIF
IF INSTR(UPPER$(bink_line$),"PASSWORD ERROR")
pass$="X"
ENDIF
'
IF processing# AND test#
PRINT bink_line$
ENDIF
IF INSTR(UPPER$(bink_line$),"END ")>=1 AND new_bbs#=1 OR pollcomp#=1 OR processing#=1
tock$=MID$(bink_line$,10,5)
bink_line$=UPPER$(bink_line$)
IF INSTR(bink_line$,"END OF EMSI")
tock$=MID$(bink_line$,10,5)
ENDIF
IF INSTR(bink_line$,"END OF FTS-0001")
tock$=MID$(bink_line$,10,5)
ENDIF
IF xfer$<>"" OR processing#
crab:
IF LEN(node$)>20
node$="(Address Error)"
ENDIF
IF INSTR(mess_stat$,"S")>=1
daron$=daron$+"S"
ENDIF
IF INSTR(mess_stat$,"R")>=1
daron$=daron$+"R"
ENDIF
IF INSTR(mess_stat$,"F")>=1
daron$=daron$+"F"
ENDIF
IF INSTR(mess_stat$,"Q")>=1
daron$=daron$+"Q"
ENDIF
IF INSTR(mess_stat$,"C")>=1
daron$=daron$+"C"
ENDIF
IF INSTR(mess_stat$,"L")>=1
daron$=daron$+"L"
ENDIF
IF INSTR(mess_stat$,"X")>=1
daron$=daron$+"X"
ENDIF
IF INSTR(mess_stat$,"?")>=1
daron$=daron$+"?"
ENDIF
IF INSTR(mess_stat$,"!")>=1
daron$=daron$+"!"
ENDIF
IF INSTR(mess_stat$,"Z")>=1
daron$=daron$+"Z"
ENDIF
IF INSTR(mess_stat$,"D")>=1
daron$=daron$+"D"
ENDIF
IF INSTR(mess_stat$,"E")>=1
daron$=daron$+"E"
ENDIF
IF INSTR(mess_stat$,"$")>=1
daron$=daron$+"$"
ENDIF
IF INSTR(mess_stat$,"N")>=1
daron$=daron$+"N"
ENDIF
IF INSTR(mess_stat$,"+")>=1
daron$=daron$+"+"
ENDIF
' IF INSTR(UPPER$(bink_line$),"SENDING MAIL FOR")
' node$=MID$(bink_line$,41)
' strip
' node$="("+node$+")"
' x_node$=node$
' ' PRINT x_node$
' ENDIF
IF tick$<>""
IF LEN(node$)>20
node$=LEFT$(node$,20)
ENDIF
IF LEN(sysop$)>20
sysop$=LEFT$(sysop$,20)
ENDIF
IF LEN(xfer$)>8
xfer$=LEFT$(xfer$,8)
ENDIF
pprint$=" "+tick$+" "+tock$+" "+node$+SPACE$(20-LEN(node$))+sysop$+SPACE$(20-LEN(sysop$))+xfer$+SPACE$(8-LEN(xfer$))+freq$+pass$+call$+"|"+daron$
' PRINT LEN(pprint$)
PRINT pprint$
gotit%=0
ftsc%=0
show_it
create_key
ENDIF
ENDIF
x_node$=""
pollcomp#=0
new_bbs#=0
IF INSTR(pprint$,":") AND tick$<>""
PRINT #2,pprint$
IF test# THEN
PRINT pprint$
ENDIF
ENDIF
set_var
ENDIF
slash#=INSTR(bink_line$,"/")>1
colon#=INSTR(bink_line$,":")>1
open_bracket#=INSTR(bink_line$,"(")>1
'
ads%=INSTR(UPPER$(bink_line$),"ADDRESS:")
IF ads%>=1 AND x_node$=""
x_node$="("+MID$(bink_line$,ads%+9)+")"
x_node$=TRIM$(x_node$)
node$=x_node$
strip
x_node$=node$
ENDIF
sys%=INSTR(UPPER$(bink_line$),"SYSOP:")
IF sys%
sysop$=MID$(bink_line$,sys%+7)
sysop$=TRIM$(sysop$)
ENDIF
'
IF (slash# AND colon# AND open_bracket#)
change_date
new_bbs#=1
tick$=MID$(bink_line$,3,12)
woops:
IF test#
PRINT "woops"
ENDIF
brkt_pos#=INSTR(bink_line$,"(")
node$=MID$(bink_line$,brkt_pos#)
IF processing#>0
node$=MID$(bink_line$,processing#+41)
tear#=INSTR(node$," --")
IF test#
PRINT node$
ENDIF
node$=LEFT$(node$,tear#-1)
IF test#
PRINT node$
ENDIF
node$="("+node$+")"
'
IF test#
PRINT node$
PRINT bink_line$
PRINT "tear ";tear#
ENDIF
tear#=RINSTR(bink_line$,"-- ")
IF test#
PRINT "tear 2 ";tear#
ENDIF
' sysop$=MID$(bink_line$,tear#+3)
IF LEN(sysop$)>19
sysop$=RIGHT$(sysop$,19)
ENDIF
xfer$="-"
IF test#
PRINT "sysops$>";sysop$;"< LEN sysop$ ";LEN(sysop$)
ENDIF
ENDIF
IF INSTR(node$,":")>5
bink_line$=MID$(bink_line$,brkt_pos#+1)
GOTO woops
ENDIF
node$=LEFT$(node$,INSTR(node$,")"))
strip
ENDIF
IF INSTR(node$,":")=0
node$=x_node$
strip
ENDIF
IF new_bbs#=1 OR processing#
'
' flag test code was her ein older versions before 1.49
'
IF INSTR(bink_line$,"Sysop:")
sysop$=MID$(bink_line$,INSTR(bink_line$,"Sysop:")+7)
ENDIF
IF INSTR(UPPER$(bink_line$),"LOST CARRIER")>=1
mess_stat$=mess_stat$+"L"
ENDIF
IF INSTR(UPPER$(bink_line$),"NO CARRIER")>=1
mess_stat$=mess_stat$+"N"
ENDIF
IF INSTR(UPPER$(bink_line$),"REMOTE SYNC")>=1 OR INSTR(UPPER$(bink_line$),"SAVING PARTIAL")>=1
mess_stat$=mess_stat$+"+"
ENDIF
ENDIF
'
IF INSTR(UPPER$(bink_line$),"EXIT AFTER COMPRESSED MAIL")>=1
mess_stat$=mess_stat$+"C"
ENDIF
IF INSTR(UPPER$(bink_line$),"EXITING TO EXTERNAL MAILER")>=1
mess_stat$=mess_stat$+"K"
ENDIF
RETURN
> PROCEDURE cleanup
PRINT "Error found...... Check FSCAN.ERR file."
CLOSE
IF EXIST("fscan.err")
OPEN "a",#1,"fscan.err"
ELSE
OPEN "o",#1,"fscan.err"
ENDIF
PRINT #1
PRINT #1,"**ERROR**"
PRINT #1,"Error is number: ";+ERR
PRINT #1,"Error is: "+ERR$(ERR)
PRINT #1,"Error is in Routine, or is: '"+pro$+"'."
PRINT #1,"Error took place at: "+TIME$+" on "+DATE$+"."
PRINT #1,line$
CLOSE
CLS
PRINT "**ERROR**"
PRINT "Error is number: ";ERR
PRINT "Error is: ";ERR$(ERR)
PRINT "Error is in Routine, or is: '";pro$;"'."
PAUSE 100
END
RETURN
> PROCEDURE shutdown
CLOSE
CLOSEW 0
END
RETURN
> PROCEDURE set_mask
pro$="set mask"
RESTORE mask
READ punt#
DIM mask$(punt#)
FOR t#=1 TO punt#
READ mask$(t#)
mask$(t#)=UPPER$(mask$(t#))
NEXT t#
RETURN
> PROCEDURE strip
pro$="strip(address$)"
node$=UPPER$(node$)
FOR eek#=1 TO punt#
post#=INSTR(node$,mask$(eek#))
IF post#>0
cut_it
ENDIF
NEXT eek#
RETURN
> PROCEDURE cut_it
pro$="cut it"
node_left$=LEFT$(node$,post#-1)
node_right$=MID$(node$,post#+LEN(mask$(eek#)))
node$=node_left$+node_right$
node$=TRIM$(node$)
RETURN
> PROCEDURE create_key
pro$="create key"
key$=MID$(node$,2)
IF INSTR(node$,":")
pos_colon#=INSTR(key$,":")
pos_slash#=INSTR(key$,"/")
pos_point#=INSTR(key$,".")
key_zone$=LEFT$(key$,pos_colon#-1)
key_zone#=VAL(key_zone$)
key_zone$=STR$(key_zone#,8)
key_net$=MID$(key$,pos_colon#+1,pos_slash#-pos_colon#-1)
key_net#=VAL(key_net$)
key_net$=STR$(key_net#,8)
IF pos_point#<>0
key_node$=MID$(key$,pos_slash#+1,pos_point#-pos_slash#-1)
ELSE
key_node$=MID$(key$,pos_slash#+1)
ENDIF
key_node#=VAL(key_node$)
key_node$=STR$(key_node#,8)
IF pos_point#<>0
key_point$=MID$(key$,pos_point#+1)
key_point#=VAL(key_point$)
ELSE
key_point#=0
ENDIF
key_point$=STR$(key_point#,8)
key$=key_zone$+key_net$+key_node$+key_point$
IF test#
PRINT "key$= ";key$
ENDIF
PRINT #4,key$
IF test#
PRINT AT(14,16);">>>>>>>>> ";key$;" <<<<<<<<<<"
ENDIF
ENDIF
RETURN
> PROCEDURE barchart
CLS
PRINT "Creating barchart."
pro$="barchart"
day#=mark#
show_it
read_date_data
show_it
create_master_index
show_it
sort_index
show_it
create_array_map
show_it
put_array_into_screen
RETURN
> PROCEDURE read_date_data
pro$="read date data"
FOR dayt#=1 TO day#
file$=store$+"FSCAN."+STR$(dayt#)
IF EXIST(file$)
read_day
ELSE
IF test#
PRINT file$;" Not found.."
ENDIF
ENDIF
NEXT dayt#
RETURN
> PROCEDURE read_day
pro$="read day"
IF test#
PRINT "Day = ";dayt#
ENDIF
OPEN "i",#1,file$
WHILE NOT EOF(#1)
INC adr#(dayt#)
IF adr#(dayt#)>adr_max#
adr_max#=adr#(dayt#)
ENDIF
LINE INPUT #1,day_ad$(dayt#,adr#(dayt#))
IF test#
PRINT "Day_ad$(dayt,adr(dayt)= ";day_ad$(dayt#,adr#(dayt#))
ENDIF
WEND
adr#(dayt#)=0
CLOSE #1
RETURN
> PROCEDURE create_master_index
pro$="create master index"
FOR file#=1 TO day#
FOR node#=1 TO adr_max#
IF LEN(day_ad$(file#,node#))>10
INC master_pointer#
master_index$(master_pointer#)=day_ad$(file#,node#)
IF test#
PRINT "Master Index: ";master_index$(master_pointer%);" Day: ";day#;"Adr_max: ";adr_max#
ENDIF
FOR dmb#=1 TO master_pointer#-1
IF day_ad$(file#,node#)=master_index$(dmb#)
DEC master_pointer#
ENDIF
NEXT dmb#
ENDIF
NEXT node#
NEXT file#
IF test#
PRINT "Master pointer at: ";master_pointer#
ENDIF
RETURN
> PROCEDURE sort_index
PRINT "Sorting index."
pro$="sort index"
QSORT master_index$(+),master_pointer#+1
RETURN
> PROCEDURE create_array_map
PRINT "Creating array map.";
pro$="create array map"
FOR call#=1 TO day#
PRINT ".";
IF call#/2=INT(call#/2)
show_it
ENDIF
IF test#
PRINT call#
ENDIF
FOR node#=1 TO adr_max#
FOR check3#=1 TO master_pointer#
IF master_index$(check3#)=day_ad$(call#,node#)
map$(call#,check3#)="*"
IF check3#>check_max#
check_max#=check3#
ENDIF
ENDIF
NEXT check3#
NEXT node#
NEXT call#
PRINT
RETURN
> PROCEDURE put_array_into_screen
PRINT "Putting array into screen."
pro$="put array into screen"
width#=75
DIM xscreen$(width#,check_max#+50)
FOR q#=1 TO width#
FOR w#=1 TO check_max#+50
xscreen$(q#,w#)=" "
NEXT w#
NEXT q#
IF test#
CLS
ENDIF
get_month
xwrite_scr("Zone",5,4)
xwrite_scr("----",5,5)
xwrite_scr("Net",14,4)
xwrite_scr("---",14,5)
xwrite_scr("Node",21,4)
xwrite_scr("----",21,5)
xwrite_scr("Point",32,4)
xwrite_scr("-----",32,5)
xwrite_scr("Month / Year: "+month$+" "+MID$(DATE$,7,4),5,2)
' IF test#
' CLS
PRINT "Building map."
' ENDIF
FOR x#=1 TO day#
FOR y#=1 TO master_pointer# ! check_max
IF test#
PRINT ".";
ENDIF
xwrite_scr(master_index$(y#),1,y#+5)
x$=RIGHT$(STR$(x#),1)
y$=LEFT$(STR$(x#,2),1)
xscreen$(x#+40,3)=y$
xscreen$(x#+40,4)=x$
xscreen$(x#+40,5)="-"
xscreen$(40,5)="+"
xscreen$(40,y#+5)="|"
IF map$(x#,y#)<>"*"
map$(x#,y#)=" "
ENDIF
xscreen$(x#+40,y#+5)=map$(x#,y#)
NEXT y#
NEXT x#
print_screen$=""
title1$=" F-Scan "+ver$+". Barchart of Binkley Mail Activity. © D.M.Brewood, 1990,91,92."
title2$=" FidoNet: 2:255/401.0 NeST: 90:1/0.0"
OPEN "o",#2,barchart$
PRINT #2,""
PRINT #2,title1$
PRINT #2,title2$
IF test#
PRINT
PRINT title1$
PRINT title2$
ENDIF
FOR a#=1 TO master_pointer#+5 !check_max
FOR b#=1 TO width#
print_screen$=print_screen$+xscreen$(b#,a#)
NEXT b#
PRINT #2,print_screen$
IF test#
' PRINT ">";print_screen$;"<"
ENDIF
print_screen$=""
NEXT a#
IF test#
PRINT #2
PRINT #2,note$
ENDIF
CLOSE #2
RETURN
> PROCEDURE xwrite_scr(text_to_write$,position_x#,position_y#)
pro$="xwrite_scr(text_to_write$,position_x,position_y)"
we#=LEN(text_to_write$)
FOR qw#=1 TO we#
xscreen$(position_x#+qw#,position_y#)=MID$(text_to_write$,qw#,1)
NEXT qw#
RETURN
> PROCEDURE barsum
pro$="barsum"
checkpoint$="bardate.fcn"
IF EXIST(checkpoint$)
check_checkpoint !Checks to see if as$ changes.
ELSE
' make_barchart_backup !line REMmed out anyway.
create_checkpoint
ENDIF
IF VAL(as$)<>VAL(MID$(DATE$,4,2))
' make_barchart_backup !REMmed out to stop barchart being made
create_checkpoint
ENDIF
RETURN
> PROCEDURE check_checkpoint
pro$="check checkpoint"
OPEN "i",#3,checkpoint$
LINE INPUT #3,as$
CLOSE #3
RETURN
> PROCEDURE wread_write_barchart_backup
pro$="wread write barchart backup"
IF EXIST(barchart$)
OPEN "i",#2,barchart$
FOR x#=1 TO 4
LINE INPUT #2,dummy$
NEXT x#
REPEAT
LINE INPUT #2,readir$
PRINT #5,readir$
IF test#
PRINT readir$
ENDIF
UNTIL EOF(#2)
CLOSE #2
ENDIF
RETURN
> PROCEDURE get_month
pro$="get month"
a#=VAL(MID$(DATE$,4,2))
SELECT a#
CASE 1
month$="January"
CASE 2
month$="February"
CASE 3
month$="March"
CASE 4
month$="April"
CASE 5
month$="May"
CASE 6
month$="June"
CASE 7
month$="july"
CASE 8
month$="August"
CASE 9
month$="September"
CASE 10
month$="October"
CASE 11
month$="November"
CASE 12
month$="December"
ENDSELECT
RETURN
> PROCEDURE title_barchart
pro$="title barchart"
title1$=" F-Scan "+ver$+". Summary of Binkley Mail Activity. (C) D.M.Brewood, 1990,91."
title2$=" FidoNet: 2:255/401.0 NeST: 90:1/0.0"
PRINT #5,title1$
PRINT #5,title2$
PRINT #5
RETURN
> PROCEDURE create_checkpoint
pro$="create checkpoint"
OPEN "o",#3,checkpoint$
as$=MID$(DATE$,4,2)
PRINT #3,as$
CLOSE #3
RETURN
> PROCEDURE make_barchart_backup
pro$="make barchart backup"
IF EXIST(barsum$)
OPEN "a",#5,barsum$
ELSE
OPEN "o",#5,barsum$
title_barchart
ENDIF
wread_write_barchart_backup
CLOSE #5
RETURN
> PROCEDURE notify_reg
pro$="notify reg"
IF EXIST(store$+"FSCAN_U.NOT")
OPEN "i",#5,store$+"FSCAN_U.NOT"
LINE INPUT #5,ck$
CLOSE #5
ENDIF
IF ck$=ver$
IF test#
PRINT "Program is latest version."
ENDIF
notice%=1
' notice=0
ELSE
IF test#
PRINT "Sending notification of upgrade to version ";ver$;"."
ENDIF
ENDIF
IF notice%<>1
IF EXIST(cfg_file$)
IF test#
PRINT "F-Scan Notice of useage sent.."
ENDIF
reg_loop
make_tic
xsave_notification
ELSE
PRINT UPPER$(cfg_file$);" Not found.... check FIDOCALL.DAT"
PAUSE 100
END
ENDIF
ENDIF
RETURN
> PROCEDURE xsave_notification
OPEN "o",#5,store$+"FSCAN_U.NOT"
PRINT #5,ver$
PRINT #5,"F-Scan notice of useage sent on "+DATE$+"."
CLOSE #5
RETURN
> PROCEDURE reg_loop
pro$="reg loop"
OPEN "I",#5,cfg_file$
REPEAT
LINE INPUT #5,line$
line$=UPPER$(line$)
line$=TRIM$(line$)
scan_it
UNTIL EOF(#5)
CLOSE #5
RETURN
> PROCEDURE make_tic
pro$="make tic"
add_check
IF key_check%=1
keyadd$="Valid Key in Use with this program"
ELSE
keyadd$="This program is being used without a Key, expect a key request soon"
ENDIF
from$="From : "+xaddress$(1)
sysop$=RIGHT$(sysop$,LEN(sysop$)-5)
sysop$=TRIM$(sysop$)
pgsysop$=sysop$
sysop$="SysOp : "+sysop$
system$=MID$(system$,INSTR(system$," ")+1)
system$=TRIM$(system$)
system$="System: "+system$
desc$="Notice: F-Scan Notice of use from node "+xaddress$(1)+" on "+DATE$+"."
created$="Info : Created by F-Scan v"+ver$+" ©1990/91/92 Daron Brewood 2:255/401.0"
path$="Path : "+xaddress$(1)
FOR x%=2 TO xaddr_pointer%
seenby$(x%)="AKA : "+xaddress$(x%)
NEXT x%
' IF INSTR(xaddress$(1),coder_address$)<1
msg$=msg$+from$+CHR$(10)+sysop$+CHR$(10)+system$+CHR$(10)
msg$=msg$+desc$+CHR$(10)+created$+CHR$(10)+path$+CHR$(10)
FOR x%=2 TO xaddr_pointer%
seenby$(x%)=TRIM$(seenby$(x%))
msg$=msg$+seenby$(x%)+CHR$(10)
NEXT x%
msg$=msg$+CHR$(10)+CHR$(10)+keyadd$+CHR$(10)
CLOSE #5
netmail_write
' ELSE
' PRINT "Hi Daron, Upgraded your version then!"
'
' ENDIF
RETURN
> PROCEDURE add_check
FOR x%=1 TO xaddr_pointer%
IF INSTR(xaddress$(x%),"100:")
IF key_check%<>1
PRINT
PRINT " F-Scan detects a TurboNet '100:' address in your config files. This program"
PRINT " will not operate on your system without a registration fee being paid to:"
PRINT " Daron Brewood @ 2:255/401.0@fidonet.org 90:1/0.0@nest.ftn"
PRINT " Phil Gadsby @ 2:255/400.0@fidonet.org 90:1040/0.0@nest.ftn"
PAUSE 200
CLS
END
ELSE
good%=2
ENDIF
ENDIF
NEXT x%
RETURN
> PROCEDURE check_sysop
' Called from Netmail_Write
RESTORE bad
READ bad_sysop%
DIM bad_sys$(bad_sysop%)
clean%=0
FOR x%=1 TO bad_sysop%
READ bad_sysop$
bad_sys$(x%)=bad_sysop$
NEXT x%
FOR x%=1 TO bad_sysop%
bad_sysop$=bad_sys$(x%)
' test_good
IF INSTR(UPPER$(pgsysop$),UPPER$(bad_sysop$)) AND key_check%=0
PRINT
PRINT " F-Scan recognises you as 'unregistered' and will not operate"
PRINT " on your system. By order of:"
PRINT " Daron Brewood @ 2:255/401.0@fidonet.org 90:1/0.0@nest.ftn"
PRINT " Phil Gadsby @ 2:255/400.0@fidonet.org 90:1040/0.0@nest.ftn"
PAUSE 200
CLOSE
CLS
END
ENDIF
NEXT x%
PRINT
PRINT "F-Scan approves of your system.... nice gear!"
PRINT
RETURN
> PROCEDURE test_good
' RESTORE good
' READ qty
' FOR y=1 TO qty
' READ good_sysop$
' IF INSTR(UPPER$(pgsysop$),UPPER$(good_sysop$))
' good=1
' ENDIF
' NEXT y
RETURN
> PROCEDURE send_reg
pro$="send reg"
make_tic
RETURN
> PROCEDURE scan_it
pro$="scan it"
IF LEFT$(line$,1)<>";" AND INSTR(line$,"APPLICATION")<=0
IF INSTR(line$,"ADDRESS")>=1 AND INSTR(line$,":")>1
' line below removed to get rid of spurious ADDRESS messages.
' PRINT line$
'
line$=MID$(line$,8)
' PRINT line$;"<"
'
IF test#
PRINT "line$ ";line$
ENDIF
line$=TRIM$(line$)
IF INSTR(line$,":")>0
INC xaddr_pointer%
ENDIF
xaddress$(xaddr_pointer%)=line$
'
IF test#
PRINT
PRINT xaddress$(xaddr_pointer%);" ";xaddr_pointer%
PRINT
ENDIF
at#=INSTR(xaddress$(xaddr_pointer%),"@")
spac#=RINSTR(xaddress$(xaddr_pointer%)," ")
IF test#
PRINT " spac;";spac#
ENDIF
IF spac#>at#
xaddress$(xaddr_pointer%)=LEFT$(xaddress$(xaddr_pointer%),spac#-1)
ENDIF
'
colon%=LEN(xaddress$(xaddr_pointer%))-RINSTR(xaddress$(xaddr_pointer%),":")
IF colon%>=1
space%=LEN(xaddress$(xaddr_pointer%))-RINSTR(xaddress$(xaddr_pointer%)," ")
xaddress$(xaddr_pointer%)=RIGHT$(xaddress$(xaddr_pointer%),colon%+(space%-colon%))
ENDIF
at%=INSTR(xaddress$(xaddr_pointer%),"@")
IF at%=0
at%=LEN(xaddress$(xaddr_pointer%))+1
ENDIF
xaddress$(xaddr_pointer%)=LEFT$(xaddress$(xaddr_pointer%),at%-1)
xaddress$(xaddr_pointer%)=TRIM$(xaddress$(xaddr_pointer%))
IF test#
PRINT xaddress$(xaddr_pointer%);" < xaddress$(xaddr_pointer)"
ENDIF
ENDIF
IF INSTR(line$,"HOLD")>=1
hold$=line$
IF RIGHT$(hold$,1)<>"\"
hold$=hold$+"\"
ENDIF
ENDIF
IF INSTR(line$,"NETFILE")>=1
netfile$=line$
ENDIF
IF INSTR(line$,"SYSTEM")>=1
system$=line$
ENDIF
IF INSTR(LEFT$(line$,6),"SYSOP")>=1
sysop$=line$
ENDIF
ENDIF
RETURN
> PROCEDURE strip_hold
pro$="strip hold"
colon%=INSTR(hold$,":")
hold$=MID$(hold$,colon%-1)
slash%=RINSTR(hold$,"\")
hold$=LEFT$(hold$,LEN(hold$)-(LEN(hold$)-slash%))
RETURN
> PROCEDURE netmail_write
pro$="NetMail_Write"
IF EXIST(netmail$+".HDR") AND EXIST(netmail$+".MSG") AND netmail$<>""
' PRINT "Found Netmail...."
GOTO nm_open
ELSE
PRINT
PRINT "Error Netmail Path Not Found, Should be Path & Filename without extension"
PRINT "i.e. D:\FIDO\MSGS\0000"
PRINT
PAUSE 100
CLOSE
END
ENDIF
nm_open:
pro$="NetMail OPen"
OPEN "R",#50,netmail$+".HDR",216
OPEN "A",#51,netmail$+".MSG"
FOR balls%=1 TO 36
fill$=fill$+CHR$(0)
NEXT balls%
offset%=LOF(#51)+1
pro$="NetMail Field"
FIELD #50,36 AS from$,36 AS to$,72 AS subject$,20 AS xtime$
FIELD #50,4 AT(*stamp%),4 AT(*offset%),2 AT(*res&),2 AT(*rep&)
FIELD #50,2 AT(*attr&),16 AS resmail$,2 AT(*m_size&),2 AT(*r_cnt&)
FIELD #50,2 AT(*costx&),2 AT(*ozone&),2 AT(*onet&),2 AT(*onode&)
FIELD #50,2 AT(*opoint&),2 AT(*dzone&),2 AT(*dnet&)
FIELD #50,2 AT(*dnode&),2 AT(*dpoint&)
pro$="NetMail calc"
newer%=(LOF(#50)/216)+1
from$=LEFT$(pgsysop$+fill$,36)
check_sysop
to$=LEFT$("Daron Brewood"+fill$,36)
subject$=LEFT$("Notification Of Use for Fscan"+fill$+fill$,72)
xtime$=LEFT$(TIME$+" "+DATE$+fill$,20)
dzone&=2
dnet&=255
dnode&=401
dpoint&=0
pgnode$=xaddress$(1)
IF INSTR(pgnode$,".")=0
pgnode$=pgnode$+".0"
ENDIF
ozone&=VAL(LEFT$(pgnode$,INSTR(pgnode$,":")-1))
onet&=VAL(MID$(pgnode$,INSTR(pgnode$,":")+1,INSTR(pgnode$,"/")-1))
onode&=VAL(MID$(pgnode$,INSTR(pgnode$,"/")+1,INSTR(pgnode$,".")-1))
opoint&=VAL(MID$(pgnode$,INSTR(pgnode$,".")+1))
pro$="Netmail Node show"
' PRINT "From Node:-";ozone&,onet&,onode&,opoint&
resmail$=LEFT$(fill$,16)
attr&=way2go%
stamp%=946080000 ! dont need acurate stamp, 30 years will do :-)
mail$=CHR$(0)+CHR$(1)+"PID: FSCAN "+ver$+CHR$(10)
mail$=mail$+msg$+CHR$(10)+CHR$(0)
m_size&=LEN(mail$)
' works till here
pro$="Netmail Put"
PUT #50,newer%
pro$="NetMail Print"
PRINT #51,mail$
CLOSE #50
CLOSE #51
pro$="End Of NetMail"
RETURN
> PROCEDURE sysop_reg
max_sysop%=6
DIM sys_reg$(max_sysop%)
sys_reg$(1)=".......Fscan Processing......."
sys_reg$(2)="Daron Brewood ................. FidoNet 2:255/401.0"
sys_reg$(3)="Phil Gadsby ................... FidoNet 2:255/400.0"
sys_reg$(4)="Alexander Bochmann ............ FidoNet 2:241/7042.0"
sys_reg$(5)="Steve Pitt .................... FidoNet 2:255/403.0"
sys_reg$(6)="David Thomas .................. FidoNet 2:253/600.0"
RETURN
> PROCEDURE show_it
IF sysreg%<max_sysop%
INC sysreg%
ELSE
sysreg%=1
ENDIF
IF sysreg%=1
TITLEW #1,sys_reg$(sysreg%)
ELSE
TITLEW #1,"Registered SysOps: "+sys_reg$(sysreg%)
ENDIF
RETURN
> PROCEDURE nest_picture
pjg%=XBIOS(4)
TEXT 350,103*pjg%," --=//\ //| // ////// ////// //////"
TEXT 351,108*pjg%," // /\ // | // // // //"
TEXT 352,113*pjg%," // \/\ // 9|0 // //// ////// //"
TEXT 353,118*pjg%," \\ * / // | // // // //"
TEXT 354,123*pjg%," \\ / - // | // // // //"
TEXT 355,128*pjg%," \\/ - // |// ////// ////// //"
RETURN
> PROCEDURE reg_checker
IF key_check%=0
ALERT 1,"You are using this program| Without a Key| Please Register| See Docs for more info",1,"I Will",a%
ENDIF
RETURN
PROCEDURE key_confirm
OPEN "I",#1,cfg_file$
REPEAT
LINE INPUT #1,cfg$
UNTIL UPPER$(LEFT$(cfg$,5))="SYSOP"
CLOSE #1
cfg$=TRIM$(MID$(cfg$,6))
' cfg$="ALEXANDER BOCHMANN"
' PRINT "cfg$ ";cfg$
lower
full_key$=""
' key_check = 1 for good 0 for unreg
key_check%=0
FOR t%=LEN(key$) TO 1 STEP -1
value%=0
z$=MID$(key$,t%,1)
IF z$="!"
z$=" "
GOTO skipit
ENDIF
IF t%/2=INT(t%/2)
value%=value%-4
ELSE
value%=value%+16
ENDIF
z$=CHR$(ASC(z$)+value%)
skipit:
full_key$=full_key$+z$
NEXT t%
IF cfg$=full_key$
key_check%=1
ENDIF
RETURN
> PROCEDURE mes_count
show_it
pro$="Proc start Mes_count"
mesmonth$=store$+"mesmonth.dat"
pointer$=store$+"pointer.dat"
mes_log$=msglog$
' out_log$="month.log"
DIM areas$(200),total%(12,200)
FOR t%=1 TO 200
areas$(t%)="**"
NEXT t%
'
month$=MID$(DATE$,4,2)
month%=VAL(month$)
IF EXIST(mesmonth$)
open_up
IF noway%=99
GOTO buggerit
ENDIF
FOR t%=1 TO 200
GET #88,t%
total%(1,t%)=jan%
total%(2,t%)=feb%
total%(3,t%)=mar%
total%(4,t%)=apr%
total%(5,t%)=may%
total%(6,t%)=jun%
total%(7,t%)=jul%
total%(8,t%)=aug%
total%(9,t%)=sep%
total%(10,t%)=oct%
total%(11,t%)=nov%
total%(12,t%)=dec%
NEXT t%
buggerit:
ELSE
open_up
ENDIF
IF EXIST(pointer$)
OPEN "R",#89,pointer$,8
IF LOF(#89)<>8
GOTO blastit
ENDIF
FIELD #89,4 AT(*timemark%),4 AT(*lastdate%)
GET #89,1
old_timemark%=timemark%
old_date%=lastdate%
blastit:
timemark%=0
lastdate%=0
ELSE
OPEN "R",#89,pointer$,8
FIELD #89,4 AT(*timemark%),4 AT(*lastdate%)
old_timemark%=0
old_date%=0
ENDIF
maxy%=200
a%=0
IF NOT EXIST(areas$)
PRINT
PRINT "Error......... Areas.BBS file not found, please check all your paths"
PRINT
CLOSE
END
ENDIF
OPEN "I",#22,areas$
show_it
LINE INPUT #22,a$
DO UNTIL EOF(#22)
LINE INPUT #22,a$
a$=UPPER$(a$)
IF LEFT$(a$,1)<>"-" AND LEFT$(a$,1)<>";"
INC a%
f%=INSTR(a$," ")
a$=TRIM$(MID$(a$,f%))
f%=INSTR(a$," ")
IF f%<>0
a$=TRIM$(LEFT$(a$,f%))
ELSE
a$=TRIM$(a$)
ENDIF
areas$(a%)=a$
ENDIF
LOOP
maxmess%=a%
CLOSE #22
OPEN "I",#11,store$+"msglog.dat"
DO UNTIL EOF(#11)
LINE INPUT #11,a$
timemark$=MID$(a$,10,8)
IF INSTR(timemark$,":")=0
GOTO notime
ENDIF
timemark%=VAL(LEFT$(timemark$,2))*3600
timemark%=timemark%+(VAL(MID$(timemark$,4,2))*60)
timemark%=timemark%+VAL(MID$(timemark$,7,2))
lastdate$=MID$(a$,3,2)
lastdate%=VAL(lastdate$)
IF lastdate%<>old_date%
old_date%=lastdate%
old_timemark%=0
ENDIF
' PRINT timemark;" > ";old_timemark,timemark>old_timemark,lastdate,old_date
PAUSE 20
IF timemark%>=old_timemark%
IF INSTR(a$,"Area")=0 AND INSTR(a$,"------")=0 AND INSTR(a$,"Total")=0
a%=INSTR(a$,"|")
b%=INSTR(a$,"|",a%+1)
c%=INSTR(a$,"COME")+4
IF a%>0 AND b%>0
amount%=VAL(TRIM$(MID$(a$,a%+1,b%-a%-1)))
area$=TRIM$(UPPER$(MID$(a$,c%,a%-c%-1)))
' PRINT amount,area$
check_area
ENDIF
ENDIF
ENDIF
notime:
LOOP
CLOSE #11
print_screen
RETURN
> PROCEDURE check_area
FOR t%=1 TO 200
IF area$=areas$(t%)
' PRINT "OK, good one..."
total%(month%,t%)=total%(month%,t%)+amount%
t%=200
ENDIF
NEXT t%
RETURN
> PROCEDURE print_screen
show_it
PRINT "Writing Monthly Message log."
timemark%=timemark%+1
liner$=""
t%=0
OPEN "O",#45,out_log$
PRINT #45," FidoMail Monthly Message Activity Log (c) 1992 P.Gadsby "
PRINT #45," Part of FSCAN (c) D.M.Brewood & P.Gadsby 1991/1992"
PRINT #45
PRINT #45,"Area Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"
PRINT #45,"------------------------------------------------------------------------------"
PRINT #45
DO UNTIL t%=201
liner$=STRING$(78,32)
INC t%
IF areas$(t%)="**"
t%=201
GOTO whoop
ELSE
MID$(liner$,1,18)=areas$(t%)
ENDIF
FOR m%=1 TO 12
off%=m%*5
pjg$=STR$(total%(m%,t%))
MID$(liner$,19+off%-LEN(pjg$))=pjg$
NEXT m%
PRINT #45,liner$
LOOP
CLOSE #45
whoop:
write_new_file
RETURN
> PROCEDURE write_new_file
show_it
' PRINT lastdate,timemark
PUT #89,1
PRINT "Writing Data Files....."
FOR z%=1 TO 200
jan%=total%(1,z%)
feb%=total%(2,z%)
mar%=total%(3,z%)
apr%=total%(4,z%)
may%=total%(5,z%)
jun%=total%(6,z%)
jul%=total%(7,z%)
aug%=total%(8,z%)
sep%=total%(9,z%)
oct%=total%(10,z%)
nov%=total%(11,z%)
dec%=total%(12,z%)
PUT #88,z%
NEXT z%
RETURN
> PROCEDURE open_up
OPEN "r",#88,mesmonth$,48
FIELD #88,4 AT(*jan%),4 AT(*feb%),4 AT(*mar%),4 AT(*apr%),4 AT(*may%),4 AT(*jun%)
FIELD #88,4 AT(*jul%),4 AT(*aug%),4 AT(*sep%),4 AT(*oct%),4 AT(*nov%),4 AT(*dec%)
IF LOF(#88)<>9600
noway%=99
ENDIF
RETURN
PROCEDURE lower
cfg$=UPPER$(cfg$)
FOR x%=1 TO LEN(cfg$)
b$=MID$(cfg$,x%,1)
fred%=ASC(b$)
IF fred%>=65 AND fred%<=90
fred%=fred%+32
te$=te$+CHR$(fred%)
ELSE
te$=te$+" "
ENDIF
NEXT x%
lowname$=te$
lowname$=TRIM$(lowname$)
cfg$=lowname$
convert_to_upper
te$=""
RETURN
PROCEDURE convert_to_upper
cfg$=UPPER$(LEFT$(cfg$,1))+MID$(cfg$,2)
fuckit:
spa%=INSTR(cfg$," ",flag%)
' PRINT spa
IF spa%>1
cfg$=LEFT$(cfg$,spa%)+UPPER$(MID$(cfg$,spa%+1,1))+MID$(cfg$,spa%+1+1)
flag%=spa%+1
ENDIF
IF spa%<>0
GOTO fuckit
ENDIF
' PRINT "cfg$ ";cfg$
' ~INP(2)
' STOP
RETURN
mask:
DATA 29
DATA "@FIDONET.ORG"," @ FIDONET.ORG"
DATA "@Fidonet.org"," @ Fidonet.Org"
DATA " FIDONET "
DATA "@CHRISTNET.FTN"," @ CHRISTNET.FTN"
DATA "@Christnet.Ftn"," @ Christnet.Ftn"
DATA " CHRISTNET "
DATA "@NEST.FTN"," @ NEST.FTN"
DATA "@Nest.Ftn"," @ Nest.Ftn"
DATA " NEST "
DATA "@MYSTIC.FTN"," @ MYSTIC.FTN"
DATA "@Mystic.Ftn"," @ Mystic.Ftn"
DATA " MYSTIC "
DATA "@FNET.FTN"," @ FNET.FTN"
DATA "@Fnet.Ftn"," @ Fnet.Ftn"
DATA " FNET "
DATA ".FTN",".ORG"
DATA "@"," @ "
meek:
DATA 3,12,24,96
bad:
DATA 3
DATA "BEN VAN BOKKEM"
DATA "BOKKEM"
DATA "FLORENTINE"
good:
DATA 5
DATA "PHIL GADSBY"
DATA "JAMES PARTNER"
DATA "DARON BREWOOD"
DATA "MICK COLEMAN"
DATA "STEVE CAPLE"