home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
BBS
/
PB12A_1.ZIP
/
CTL.LZH
/
C1
Wrap
Text File
|
1992-09-29
|
69KB
|
2,841 lines
BATCHCTL¿Kill(Free.%NODE%,batch.%node%)
*startbatch
SetEqual(m=0) ;clear some variables we'll be using...
SetEqual(w=0)
setequal(d=)
*fname
Say(&10&Pressing (&11&ENTER&10&) will allow you to start the download.)
Say(&3&Please enter name of the file to download&12&: &14&(&F&12)&15&*)
Back(13)
MenuAsk%NOCR%%CRON%%LEN12%(*)
if (%RESP%)=(<CR>) then Say ()
If (%RESP%)=(<CR>) Then Goto (entpressed)
len(%Resp%)
Back(%ARESP%)
AddDef(.%DEFEXT%)
say (%Resp%)
if (%Resp%)=(&d) then goto (ah)
Say(&CR&&11&Please wait!... We're searching for the file...*)
SeekFall(%RESP%)
If (%ARESP%)=(INVALID) Then Goto (invfn) ;If invalid filename...
If (%ARESP%)=(No) Then Goto (nothere) ;If it doesn't exist..
If (%ARESP%)=(NOT ENOUGH) Then Goto (notenuf) ;If not enuf security
If (%RATIO%)=(NOT OK) Then Goto (badratio) ;If ratio is bad...
selFarea(%ARESP%) ;select the area it's in...
Size(%FILPATH%%RESP%)
setequal(j=%aresp%)
Say(Found!&CR&&CR&&14& ─────── &12&Statistics for %RESP% &14& ───────&15&)
Say(Free Download: &11&%FREE% &15&*)
If (%FREE%)=(No) Then Say( *)
Say(&F&8&Size: &11&%ARESP% &15&) ;ARESP is from up there where we checked fileSize
fDate(%FILPATH%%RESP%) ;get date stamp from file
Say(Dated: &11&%ARESP% &15&&F&9&Transfer Time: *)
tTime(%var%J) ;calculate time to d/l (var J is file size)
Say(&11&%ARESP%&CR&)
setequal(g=%ttim%)
if (%FREE%)=(Yes) then setequal(g=0)
AddVar(&m+&g=m) ;add to total # of minutes it'll take to d/l
SetEqual(d=%RESP%)
AppendTo(free.%NODE%,%FREE%) ;append to our free temporary file...
IfTrue( AddVar(&m+-%TTIM%=m)) ;don't count If freefile...
AppendTo(batch.%NODE%,%FILPATH%%var%d) ;append to list of files in batch
inc(w)
Goto (fname) ;go Back and see If they want to d/l another file...
*initxfer
CmpVal(%var%m,/:LEFT/) ;see If they have enough time
IfNotTrue( Goto (notenuftime))
Say(&3& Would you like to download these files? &9&[ ]&14&*)
Back(4)
YesNoAsk(*)
If (%RESP%)=(No) Then Goto (ex)
Say(&3&Would you like us to log you off afterwards? &9&[ ]&14&*)
Back(4)
YesNoAsk(*)
SetEqual(m=%RESP%)
Say(&CR&&11&We're sending the files you requested. Please get ready to receive them now.)
FixFile(protocol\%var%b-d.bt,protocol\%var%b-d.bat) ;filter percent codes
InitClock ;init transfer time clock...
Exec(protocol\%var%b-d.BAT│) ;run the protocol
Kill(protocol\%var%b-d.bat) ;get rid of temporary prot batch file
*success
TogLocal ;go into local mode..just in case they hang up.
NotIf (%ARESP%)=(0) Then Goto (aborted) ;If errorlevel Goto aborted
XferTime ;calc time it took for d/l
SetEqual(e=%ARESP%)
InpOpen(batch.%NODE%) ;start reading our batch temp file
If (%ARESP%)=(ERROR) Then Goto (dsucc) ;If we cant read it...
SetEqual(t=0)
linefeed(1)
SetEqual(a=/:DOWNLOADS/) ;set a to current # of d/l's
Kill(tagged.%NODE%) ;get rid of tag file
SetEqual(c=0)
*stcalc
inc(c)
InpRead
SetEqual(d=%ARESP%)
Size(%var%d)
AddVar(&t+%ARESP%=t)
log(--,%var%d Downloaded (batch).)
AppendTo(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
InpLine(free.%NODE%,%var%c)
NotIf(%ARESP%)=(Yes) Then inc(a)
Iftrue (Goto (fre))
fEndIf(donecalc)
Goto (stcalc)
*fre
Size(%var%d)
tTime(%ARESP%)
AddVar(/:LEFT/+%TTIM%=a)
SetEqual(/left=%var%a)
fEndIf(donecalc)
Goto (stcalc)
*donecalc
InpClose
Say(%BEEP%)
MultVar(%XMIN%*60=o) ;calculate transfer rate (cps)
DivVar(&t/%var%o=g)
CnvtK(%var%t)
AddVar(%ARESP%+/:KDOWN/=o)
SetEqual(/KDOWN=%var%o)
SetEqual(/DOWNLOADS=%var%a)
Log(--,Rate: %var%g CPS) ;Log our calculated cps rate...
*dsucc
TogLocal ;go Back to remote, non-local, mode
Display (Display\SUCCESSB) ;show success screen
if (%VAR%B)=(HS) then loadmem(control\hslink.ctl)
If (&m)=(Yes) Then Goto (autooff)
*ex
Kill(free.%NODE%)
SelFarea(/:LASTDOWN/) ;set d/l area Back to their default d/l area
linefeed(1)
return ;go Back to files menu
*aborted
TogLocal
Log(--,Batch Download aborted.)
*lcl
Display (Display\ABORTED)
Goto (ex)
*badratio
Display(Display\BADRATIO)
SelFarea(/:LASTDOWN/)
linefeed(1)
return
*autooff
loadmem(control\autoOff.ctl)
*free
Log(--,Freefile downloaded, time refunded.)
AddVar(%XMIN%+%LEFT%=t)
SetEqual(/LEFT=t)
If (&m)=(Yes) Then Goto (autooff)
Goto (ex)
*Notenuf
Display (Display\fbadsec)
Goto (fname)
*nothere
Display(Display\notfnd)
Goto (fname)
*invfn
Display(Display\INVALID)
FlushOut
SelFarea(/:LASTDOWN/)
Enter
Goto (fname)
*entpressed
linefeed(1)
If (&w)=(0) Then return
Goto (initxfer)
*notenuftime
Display(Display\NODLTIME)
Return
*ah
Say(&CR&&12&That file is already in the download batch!&CR&)
goto (fname)
ZIPVIEWCTL *EXLP
Say(&CR&&7& Length Method Size Ratio Date Time CRC-32 Attr Name&11&)
InpRead
Say(──────────────────────────────────────────────────────────────────&15&)
setequal(l=0)
setequal(p=2)
resetpause
DO
fEndIf(eloop)
InpRead
SetEqual(h=%ARESP%)
Get (%ARESP%,1,3)
If (%ARESP%)=( --) then goto (elp)
inc(l)
Say(%var%h)
inc(p)
if (&p)=(/screenlen) then jump (pause)
LOOP
*ELP
InpRead
Say(&11&──────────────────────────────────────────────────────────────────)
get (%aresp%,1,50)
Say(&12&%ARESP%)
InpClose
say (&CR&&14& %var%l File(s) in archive)
*ELOOP
MenuAsk %MIN1%%LEN1% (&CR&&3&Would you like to &11&(&7&R&11&)ead Textfile, (&7&D&11&)ownload File, (&7&L)&11&ist, (&7&Q&11&)uit?&14& *)
BigIf (d:download,r:read,q:quit,l:list)
Goto (eloop)
*LIST
InpClose
InpOpen(zipinfo.txt)
linefeed(1)
DO
InpRead
Get (%ARESP%,1,7)
NotIf (%ARESP%)=() then if (%ARESP%)=( Length) then goto (exlp)
EofLoop
*QUIT
InpClose
SelFArea (/:lastdown/)
Return
*READ
Say(&CR&&3&Please enter the name of the file to read&12&: &14&( )&15&*)
Back(13)
MenuAsk%CRON%%LEN12%(*)
if (%RESP%)=(<CR>) then goto (eloop)
Say(&CR&&11&Retriving &7&%RESP%&11&, Please Wait!&7&)
Exec(md zvtemp>nul,) ;create temporary dir
Zap(yes,Yes)
Exec(del zvtemp <yes >nul,)
Exec(pkunzip %FILPATH%%var%e %RESP% zvtemp\ >nul,)
View (zvtemp\%RESP%)
Exec(del zvtemp <yes >nul,)
Enter
Goto (eloop)
*DOWNLOAD
Say(&3&&CR&Please enter the name of the file to download&12&: &14&( )&15&*)
Back(13)
MenuAsk%CRON%%LEN12%(*)
if (%RESP%)=(<CR>) then goto (eloop)
Say(&CR&&11&Retriving &7&%RESP%&11&, Please Wait!&7&)
Exec(md zvtemp >nul,) ;create temporary dir
Zap(yes,Yes)
Exec(del zvtemp <yes,)
Exec(pkunzip %FILPATH%%var%e %RESP% zvtemp\ >nul,)
SetEqual(d=%RESP%)
Seek(zvtemp\%RESP%)
IfNotTrue (goto (eloop))
*PICKP
Display (Display\DN-PROTS)
MenuAsk %MIN1% (&3&Which transfer protocol would you like to use?&11&(or Q to Quit)&12&: &15&*)
Find(%RESP%,\) ;make sure they didnt stick a backslash in there
NotIf (%ARESP%)=(0) Then Goto (eloop)
BigIf(q:eloop)
SetEqual(b=%RESP%)
Seek(protocol\%var%b-VD.BT) ;check to see If protocol exists..
IfNotTrue(Goto (pickp))
Len(%var%b)
NotIf (%ARESP%)=(1) then goto (nobat)
Say(&CR&&3& Would you like to download this file? &9&[ ]&14&*)
Back(4)
YesNoAsk(*)
If (%RESP%)=(No) Then Goto (eloop)
Say(&CR&&11&We're sending the file you requested. Please get ready to receive it now.)
If (%LOCAL%)=(TRUE) Then Goto (eloop)
FixFile(protocol\%var%b-vd.bt,protocol\%var%b-vd.bat)
InitClock
Exec(protocol\%var%b-vd.BAT│)
Kill(protocol\%var%b-vd.bat)
If (%LOCAL%)=(FALSE) Then toglocal
NotIf (%ARESP%)=(0) Then Goto (nsc)
XferTime
SetEqual(e=%ARESP%)
Size(zvtemp\%var%d)
MultVar(%XMIN%*60=o)
DivVar(%ARESP%/%var%o=g) ;calculate CPS rate
CnvtK(%ARESP%)
AddVar(%ARESP%+/:KDOWN/=o)
SetEqual(/KDOWN=%var%o)
Say(%BEEP%*)
Log(--,%var%d Downloaded from Zip:%var%e.)
Log(--,Rate: %var%g CPS)
AppendTo(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
SetEqual(a=/:DOWNLOADS/)
inc(a)
SetEqual(/DOWNLOADS=%var%a)
If (%LOCAL%)=(TRUE) Then toglocal
Display (Display\SUCCESS)
Exec(del zvtemp <yes)
Enter
Goto (eloop)
*NOBAT
Say(&CR&&15&No batch protocols allowed for transfering this file.&CR&)
Goto (pickp)
*nsc
toglocal
goto (eloop)
*pause
setequal(p=1)
pauseprompt
if (%ARESP%)=(STOP) then goto (elp)
ret
UEDITCTL¡*StUEdit
*edit
SetEqual (f=1)
SetEqual (e=0)
SetEqual (w=0)
SetEqual (z=1)
SetEqual (m=0)
*moreedit
ClearScr
LoadUser(%var%z)
SetEqual (x=0)
*EvenMoreEdit
AnsiGoto (1,1) ;Puts the cursor in the top left hand corner of the screen.
If (&w)=(1) then goto (putinfo) ;if %var%w is 1 then skip rewrite
Say ($0$&15&Name : Birthdate: )
Say (Street : Times On: )
Say (From : Computer Using: )
Say (Phone : Carrier Drops: )
Say (Sec : Work Phone: )
Say (Passwd : Subscriber: )
Say (TimeLeft: Sub Date Exp: )
Say (Memo : )
Say (Downlds : Avail For Chat: )
Say (Uploads : )
Say (KDled : )
Say (KUled : )
*PutInfo
AnsiGoto (11,1)
Say (&14&\:NAME\*)
AnsiGoto (11,2)
Say (\:STREET\*)
AnsiGoto (11,3)
Say (\:FROM\*)
AnsiGoto (11,4)
Say (\:PHONE\*)
AnsiGoto (11,5)
Say (\:SEC\*)
AnsiGoto (11,6)
Say (\:PASS\*)
AnsiGoto (11,7)
Say (\:LEFT\*)
AnsiGoto (11,8)
Say (\:MEMO\*)
AnsiGoto (11,9)
Say (\:DOWNLOADS\*)
AnsiGoto (11,10)
Say (\:UPLOADS\*)
AnsiGoto (11,11)
Say (\:KDOWN\*)
AnsiGoto (11,12)
Say (\:KUP\*)
AnsiGoto (51,1)
Say (\:BIRTH\)
AnsiGoto (51,2)
Say (\:TIMESON\)
AnsiGoto (51,3)
Say (\:COMP\)
AnsiGoto (51,4);
Say (\:DROPPED\)
AnsiGoto (51,5);
Say (\:WORK\)
AnsiGoto (51,6);
Say (\:SUB\)
AnsiGoto (51,7);
Say (\:SUBDATE\)
AnsiGoto (51,9);
Say (\:DEFAVAIL\);
AnsiGoto (1,14)
If (&x)=(1) then goto (Check)
If (&e)=(1) then goto (Secondary)
If (&m)=(1) then goto (Secondary)
*AndMore
Say (&4&╔═══════════════════════════════════════════════════════════════════════════╗)
Say (║&7& KEYS: Edit this User &4& ║)
Say (║&7& 2 = Move Down Next User &4& ║)
Say (║&7& 8 = Move Up Previous User &4& ║)
Say (║&7& (ENTER) Selects Last User &4& ║)
Say (║&7& Search for User &4& ║)
Say (║&7& Quit to Sysop Menu &4& ║)
Say (╚═══════════════════════════════════════════════════════════════════════════╝)
Goto (Check) ;90 chars is cutoff for ctl file lines...
*Secondary
Say (&4&╔═══════════════════════════════════════════════════════════════════════════╗)
Say (║ ║)
Say (║ ║)
Say (║ ║)
Say (║ ║)
Say (║ ║)
Say (║ ║)
Say (╚═══════════════════════════════════════════════════════════════════════════╝)
If (&m)=(1) then loadmem(control\uedit3.ctl,goto(Another))
If (&e)=(1) then loadmem(control\uedit2.ctl,goto(Edit))
*Check
If (&f)=(1) then goto (place1)
If (&f)=(2) then goto (place2)
If (&f)=(3) then goto (place3)
If (&f)=(4) then goto (place4)
If (&f)=(5) then goto (place5)
If (&f)=(6) then goto (place6)
*more
MenuKey%CRON%
if (%resp%)=(<CR>) then goto (chkifs)
bigif (2:movehighlightfd,8:movehighlightbk,f:first,q:exedit)
Goto(BadSel)
*Chkifs
NotIf (&f)=(2) then goto (moreifs)
goto (cont)
*moreifs
If (&f)=(6) then goto (exedit)
NotIf (&f)=(3) then goto (lastifs)
Goto (cont)
*lastifs
NotIf (&f)=(4) then Loadmem(control\uedit2.ctl,goto(selection))
*Cont
If (&f)=(4) then goto (Last)
If (&f)=(3) then goto (prev)
SaveUser (%var%z) ;Saves the record number of %var%z.
inc(z)
Numbusers();
SetEqual (d=%ARESP%)
inc(d)
CmpVal(%var%d,%var%z);
iftrue (setequal(Z=%var%d))
SetEqual (x=1)
Goto (Clearinfo)
*Prev
SaveUser (%var%z)
SetEqual (z=%var%z)
NotIf (&z)=(0) then AddVar (&z+-1=z)
If (&z)=(0) then SetEqual (z=1)
SetEqual (x=1)
Goto (Clearinfo)
*Last
SaveUser (%var%z)
Numbusers
SetEqual (z=%ARESP%)
SetEqual (x=0)
Goto (ClearInfo)
*First
SetEqual (z=1)
Goto (ClearInfo)
*Temp
ClearScr
return
*EditUser
Say (&7&Enter letter of item to change (Q to Quit Changing): *)
MenuKey
Say (&15& %RESP%)
BigIf(N:ChgName,S:ChgSt,F:ChgFrom,H:ChgPhone,C:ChgSec,P:ChgPass,T:ChgTL)
BigIf(M:ChgMemo,D:ChgDls,U:ChgUls,K:ChgDlK,L:ChgUlK,Q:Quit)
Goto(BadSel)
*BadSel
AnsiGoto (30,15)
Say ( *)
AnsiGoto (30,16)
Say ( *)
AnsiGoto (30,17)
Say ( *)
AnsiGoto (30,18)
Say ( *)
AnsiGoto (30,19)
Say ( *)
AnsiGoto (30,20)
Say ( *)
AnsiGoto (30,17)
Say (&12&Invalid Selection!*)
SecPause(2)
AnsiGoto (1,14)
Goto (AndMore)
*Quit
SetEqual (f=1)
SetEqual (e=0)
SetEqual (z=1)
SetEqual (m=0)
SetEqual (e=0)
Goto (EvenMoreEdit)
*Place1
AnsiGoto (30,15)
Say ($7$&0&Edit this User$0$*)
Goto (more)
*Place2
AnsiGoto (30,16)
Say ($7$&0&Next User$0$*)
Goto (more)
*Place3
AnsiGoto (30,17)
Say ($7$&0&Previous User$0$*)
Goto (more)
*Place4
AnsiGoto (30,18)
Say ($7$&0&Last User$0$*)
Goto (more)
*Place5
AnsiGoto (30,19);
Say ($7$&0&Search for User$0$*)
Goto (more)
*Place6
AnsiGoto (30,20)
Say ($7$&0&Quit to Sysop Menu$0$*)
Goto (more)
*NormPlace1
AnsiGoto (30,15)
Say ($0$&7&Edit this User)
SetEqual (f=2)
Goto (check)
*NormPlace2
AnsiGoto (30,16)
Say ($0$&7&Next User)
SetEqual (f=3)
Goto (check)
*NormPlace3
AnsiGoto (30,17)
Say ($0$&7&Previous User)
SetEqual (f=4)
Goto (check)
*NormPlace4
AnsiGoto (30,18)
Say ($0$&7&Last User)
SetEqual (f=5)
Goto (check)
*NormPlace5
AnsiGoto (30,19)
Say ($0$&7&Search for User)
SetEqual (f=6)
Goto (check)
*NormPlace6
AnsiGoto (30,20)
Say ($0$&7&Quit to Sysop Menu)
SetEqual (f=1)
Goto (Check)
*BkPlace1
AnsiGoto (30,15)
Say ($0$&7&Edit this User)
SetEqual (f=6)
Goto (check)
*BkPlace2
AnsiGoto (30,16)
Say ($0$&7&Next User)
SetEqual (f=1)
Goto (check)
*BkPlace3
AnsiGoto (30,17)
Say ($0$&7&Previous User)
SetEqual (f=2)
Goto (check)
*BkPlace4
AnsiGoto (30,18)
Say ($0$&7&Last User)
SetEqual (f=3)
Goto (check)
*BkPlace5
AnsiGoto (30,19)
Say ($0$&7&Search for User)
SetEqual (f=4)
Goto (check)
*BkPlace6
AnsiGoto (30,20)
Say ($0$&7&Quit to Sysop Menu)
SetEqual (f=5)
Goto (Check)
*MoveHighlightFd
setequal(/resp=%var%f)
bigif(1:normplace1,2:normplace2,3:normplace3,4:normplace4,5:normplace5,6:normplace6)
Goto (Edit)
*MoveHighlightBk
setequal(/resp=%var%f)
bigif(1:Bkplace1,2:Bkplace2,3:Bkplace3,4:Bkplace4,5:Bkplace5,6:Bkplace6)
Goto (Edit) ;bknormplace -> bkplace because other is > 90 chars...
*ClearInfo
AnsiGoto (11,1)
Say ( *)
AnsiGoto (11,2)
Say ( *)
AnsiGoto (11,3)
Say ( *)
AnsiGoto (11,4)
Say ( *)
AnsiGoto (11,5)
Say ( *)
AnsiGoto (11,6)
Say ( *)
AnsiGoto (11,7)
Say ( *)
AnsiGoto (11,8)
Say ( *)
AnsiGoto (11,9)
Say ( *)
AnsiGoto (11,10)
Say ( *)
AnsiGoto (11,11)
Say ( *)
AnsiGoto (11,12)
Say ( *)
AnsiGoto (51,1)
Say ( *)
AnsiGoto (51,2)
Say ( *)
AnsiGoto (51,3)
Say ( *)
AnsiGoto (51,4)
Say ( *)
AnsiGoto (51,5)
Say ( *)
AnsiGoto (51,6)
Say ( *)
AnsiGoto (51,7)
Say ( *)
AnsiGoto (51,9)
Say ( *)
LoadUser (%var%z)
SetEqual (x=0)
Goto (PutInfo)
*exedit
clearscr
return
READCTL`setequal(n=1)
setequal(x=1)
*read
setequal(r=0)
setequal(w=1)
setactivity(Reading Mail)
*rmail
notif (&n)=(1) then goto (endmr) ;if they came back...
setequal(n=0)
*brmail
linefeed(1)
himsg(/:LASTMSG/)
setequal(f=%ARESP%)
lowmsg(/:lastmsg/)
setequal(n=%ARESP%)
display (display\READ)
setequal(y=%ARESP%)
setequal(z=0)
numbmenuask%CRON%(&3&Which read mail number or option would you like?&12&: &15&*)
bignicesay(r:Reverse,q:quit,m:Since last read,s:Search,y:your mail,h:help)
bigif(r:rev,m:since,s:search,y:Your,h:help,<CR>:qt,q:qt)
number(%RESP%)
if (%RESP%)=(0) then goto (inv2)
iftrue (goto (nread))
goto (inv2)
*qt
return
*help
display(display\help\read,/:SEC/)
goto (brmail)
*nread
cmpval(%var%f,%RESP%)
iftrue (goto (inv2))
cmpval(%var%n,%RESP%)
ifnottrue(setequal(/resp=%var%n))
setequal(w=1)
setequal(y=%RESP%)
goto (repeat)
*since
msghigh(/:LASTMSG/)
setequal(y=%ARESP%)
cmpval(%var%f,%var%y)
iftrue (goto (inv2))
cmpval(%var%n,%VAR%Y)
ifnottrue(setequal(y=%var%n))
setequal(w=1)
setequal(s=0)
goto (repeat)
*repeat
inittxt
setequal(s=0)
getmail(%var%y,/:LASTMSG/,%var%w)
if (%MsgNumber%)=(0) then goto (0next)
setequal(z=10)
notif (%ARESP%)=(Yes) then goto (nope)
*banyway
clearscr
setequal(x=0)
setequal(s=0)
setequal(g=%RESP%)
nicedate(%MSGSNTD%)
say(&11&Message Number &3&%MsgNumber%&11& of &3&%var%f&11& was sent on&3& %ARESP%&11& at &3&*)
nicetime(%MSGSNTT%)
nicesay(%ARESP%&14&&CR& Sent by: &3&%MSGFROM%&CR&&14& Addressed to: &3&%MSGTO% )
say(&14& Regarding: &3&%MSGDESC% )
nicesay(&14& Status: &3&%MSGPVT%, %MSGRCVD%, Read %MSGRDTIMES% times, %REPLIES%)
spause(8)
if (%MSGATTACH%)=(Y) then if (%MSGPVT%)=(PRIVATE) then setequal(s=10)
if (%MSGATTACH%)=(Y) then say (&12&* &14&File Attached: &3&%MSGATTNAME%)
if (&s)=(10) then spause(9)
say(&8&────────────────────────────────────────────────────────────────────────&CR&&7&)
showtxt
*reading
if (&s)=(0) then display (display\READING)
if (&s)=(10) then display (display\READINGA)
numbmenuask %CRON%(&3&Which reading &11&option &3&or &11&message number&3&?&12&: &15&*)
bignicesay(e:edit,q:quit,r:reply,s:Show again,n:next,f:forward thread,p:previous message,k:kill,o:Forward,h:help)
if (&s)=(10) then bignicesay(d:Download Attach)
bigif (e:edit,o:forw,q:qdisp,s:repeat,r:reply,p:previous,f:follow,k:kill,n:next,h:help2)
bigif (d:downatt)
if (%RESP%)=(<CR>) then goto (next)
number(%RESP%)
iftrue (goto (nread))
setequal(s=5)
goto (inv2)
*help2
display(display\help\readn,/:SEC/)
goto (reading)
*downatt
zap(varr.%NODE%,%var%R)
linefeed(1)
loadsub(control\DOWNATT.CTL)
goto (repeat)
*forw
namequal(a=%MSGTO%)
namequal(b=%NAME%)
if (&a)=(&b) then goto (okf)
namequal(a=%MSGFROM%)
if (&a)=(&b) then goto (okf)
setequal(s=5)
goto (inv2)
*okf
loadsub(control\macros\forw.ctl)
goto (repeat)
*your
cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
say(&CR&&11&Searching...|)
clearmem
seekto(/:LASTMSG/,%NAME%,%RESP%)
if (%ARESP%)=(ERROR) then goto (endmr)
log(--,Scanned for (Y)our mail)
eline(25)
zap(seeking.%NODE%,1)
appendto(seeking.%NODE%,%NAME%)
if (%ARESP%)=(ERROR) then goto (endmr)
setequal(r=20)
setequal(u=0)
goto (snext)
*search
loadsub(control\macros\msearch.ctl)
if (%RESP%)=(Q) then goto (endmr)
notif (%ARESP%)=(ERROR) then goto (snext)
goto (endmr)
*rev
if (&y)=(0) then goto (inv2)
setequal(y=%var%f)
setequal(w=-1)
if (&y)=(0) then goto (inv2)
goto (repeat)
*snext
inc(u)
setequal(y=^:U^)
if (^:U^)=(MOREMAIL) then goto (fmore)
if (^:U^)=() then goto (endmr)
goto (repeat)
*fmore
addvar(&u+-1=u)
inpline(seeking.%NODE%,1)
setequal(p=%ARESP%)
inpline(seeking.%NODE%,2)
if (&p)=(1) then seekto(/:lastmsg/,%ARESP%,^:u^)
if (&p)=(2) then seekfrom(/:lastmsg/,%ARESP%,^:u^)
if (&p)=(3) then seekdesc(/:lastmsg/,%ARESP%,^:u^)
if (&p)=(4) then seektext(/:lastmsg/,%ARESP%,^:u^)
setequal(u=0)
goto (repeat)
*lnext
inc(u)
setequal(y=^:U^)
if (^:U^)=() then goto (endmr)
goto (repeat)
*qdisp
linefeed(1)
if (&r)=(10) then goto (endmr)
Return
*0next
if (&r)=(10) then goto (lnext)
if (&r)=(20) then goto (snext)
if (&y)=(0) then goto (inv2)
if (&y)=(-1) then goto (inv2)
addvar(%var%y+%var%w=y)
if (&y)=(0) then goto (inv2)
cmpval(%var%f,%var%y)
iftrue (goto (inv2))
goto (repeat)
*smore
notif (&x)=(1) then say(&10&Searching for more messages...|)
setequal(x=1)
setequal(s=10)
*next
if (&r)=(10) then goto (lnext)
if (&s)=(0) then goto (smore)
if (&r)=(20) then goto (snext)
if (&y)=(0) then goto (inv2)
if (&y)=(-1) then goto (inv2)
notif (%MRESP%)=() then goto (sknext)
addvar(%var%y+%var%w=y)
if (&y)=(0) then goto (inv2)
cmpval(%var%f,%var%y)
iftrue (goto (inv2))
goto (repeat)
*sknext
setequal(y=%MRESP%)
if (&y)=(0) then goto (inv2)
cmpval(%var%f,%var%y)
iftrue (goto (inv2))
goto (repeat)
*kill
enufsec(100)
iftrue(goto (stkill))
setequal(a=%NAME%)
upcase(a)
setequal(i=%MSGFROM%)
upcase(i)
setequal(j=%MSGTO%)
upcase(j)
notif (&i)=(&a) then notif (&j)=(&a) then goto (repeat)
*stkill
msgkill (/:LASTMSG/,%var%y)
say(&12&&CR&Message #%var%y has been deleted!&CR&)
goto (next)
*follow
if (%REPLIES%)=(NO REPLIES) then goto (nomore)
setequal(s=5)
setequal(q=%MSGPREV%)
if (%MSGPREV%)=(0) then setequal(q=%var%y)
nextforward(%var%q,%var%y,/:LASTMSG/)
if (%ARESP%)=(0) then goto (nomore)
setequal(y=%ARESP%)
goto (repeat)
*nomore
say(&CR&&12&There are no more replies to this message.&CR&)
goto (reading)
*previous
setequal(s=5)
if (%MSGPREV%)=(0) then goto (inv2)
setequal(y=%MSGPREV%)
goto (repeat)
*edit
loadsub(control\macros\edit.ctl)
goto (repeat)
*reply
loadsub(control\macros\reply.ctl)
goto (repeat)
*inv2
if (&s)=(10) then goto (abb)
say(&CR&&12&Invalid selection! Please try again...)
secpause(1)
flushout
if (&s)=(5) then goto (reading)
*abb
if (&z)=(0) then goto (brmail)
goto (endmr)
*nope
if (%ARESP%)=(ERROR) then goto (next)
if (%ARESP%)=(DELETED) then goto (next)
enufsec(100)
iftrue (goto (banyway))
goto (next)
*endmr
say(&11&&CR& ══ &14&No more mail found for you to read, %FNAME%&11& ══&CR&)
enter
Return
DOWNATTCTL└setactivity(Downloading Files)
*pickprot
display (display\dnPROTS1)
MenuAsk (&3&Which transfer protocol would you like to use?&12&: &15&*)
if (%RESP%)=(Q) then goto (aborted)
len(%RESP%)
notif (%ARESP%)=(1) then goto (Pprob) ;no batch protocols allowed...
seek(protocol\%RESP%-Ad.BT)
iftrue (goto (Pok))
*pprob
loadsub(control\macros\badsel.ctl)
goto (pickprot)
*Pok
setequal(r=%RESP%)
setequal(x=%MSGATTNAME%)
size(%ATTPAT%%var%x)
ttime(%ARESP%)
cmpval(%TTIM%,/:LEFT/)
if (%ARESP%)=(No) then goto (notenuftime)
say(&11&)
say(We're ready to send the file. Please start receiving now.)
fixfile(protocol\%var%r-ad.bt,protocol\%var%r-ad.bat)
exec(protocol\%var%r-ad.BAT│)
kill(protocol\%var%r-ad.bat)
*success
notif (%ARESP%)=(0) then goto (aborted)
log(--,Attach downloaded (%var%x))
inpline(varr.%NODE%,1) ;restore var :r
setequal(r=%ARESP%)
display(display\attsucc1)
Return
*notenuftime
display(display\NODLTIME)
inpline(varr.%NODE%,1)
setequal(r=%ARESP%)
Return
*aborted
log(--,Attach download aborted (%var%x))
setequal(x=)
flushout
inpline(varr.%NODE%,1)
setequal(r=%ARESP%)
display(display\attabt1)
Return
UEDIT3CTLα*StUEdit3
*ClearInfoBox
AnsiGoto (2,15);
Say ( *)
AnsiGoto (30,15);
Say ( *)
AnsiGoto (2,16);
Say ( *)
AnsiGoto (30,16);
Say ( *)
AnsiGoto (2,17);
Say ( *)
AnsiGoto (30,17);
Say ( *)
AnsiGoto (2,18);
Say ( *)
AnsiGoto (30,18);
Say ( *)
AnsiGoto (30,19);
Say ( *)
AnsiGoto (30,20);
Say ( *)
AnsiGoto (20,17)
MenuAsk (&15&Enter Name to Search For: &2&*)
SetEqual (v=%RESP%)
AnsiGoto (20,17)
Say (&12& Searching.... *)
AnsiGoto (39,17)
SetEqual (y=%var%z)
;Stores the number of the user record you are currently viewing in
;%var%y so that the editor can go back to that user when you are done
;searching.
*FindIt
SeekUser (%var%v)
ifnottrue(goto (notfound))
SetEqual (z=%NDNUMB%)
Loadmem(control\uedit.ctl,goto(clearinfo))
*NotFound
AnsiGoto (20,17)
Say (&12&%var%v could not be found in the userfile.*)
SecPause (2) ;Pauses for 2 seconds
AnsiGoto (20,17)
Say (&12& *)
SetEqual (z=%var%y)
;Sets the current user record number to %var%y, what it was before the user
;started searching.
SetEqual (m=0)
Loadmem (control\uedit.ctl,goto(clearinfo))
;Loads into memory the control file CONTROL\UEDIT.CTL and goes to the label *clearinfo.
*Found
SetEqual (m=1) ;DO ask if you want to continue searching.
SetEqual (z=%var%z)
Loadmem (control\uedit.ctl,goto(clearinfo))
*Another
AnsiGoto (20,17)
YesNoAsk(&15&Continue Search? *)
If (%RESP%)=(Yes) then goto (FindIt)
SetEqual (m=0)
Loadmem (control\uedit.ctl,goto(clearinfo));Do NOT ask if you want to continue searching.
ENTERATTCTLσSay(&14&Calculating free storage space...*)
Zap(varr.%NODE%,%var%r)
ClearMem
FreeSpace(%CDRIVE%:)
setequal(l=%aresp%)
CmpVal(%ARESP%,%MINSPACE%)
IfTrue (Goto (notenufs))
eline(38)
*pickprot
Display (display\upPROTS1)
MenuAsk (&3&Which transfer protocol would you like to use?&12&: &15&*)
If (%RESP%)=(Q) Then Return
Len(%RESP%)
NotIf (%ARESP%)=(1) Then Goto (Pprob)
Seek(protocol\%RESP%-AU.BT)
IfTrue (Goto (Pok))
*pprob
loadsub(control\macros\badsel.ctl)
Goto (pickprot)
*Pok
addcomma(%var%l)
Say(&CR&&11&%ARESP% &15&bytes free.)
SetEqual(r=%RESP%)
cMenuAsk%cron% (&CR&&3&Please enter the &11&name &3&of the file to attach&12&:&15& *)
If (%RESP%)=(<CR>) Then Return
SetEqual(x=%RESP%)
Seek(%ATTPAT%%var%x)
IfTrue (Goto (alreadyhere))
Say(&CR&&11&We're ready to receive the file. Please start sending now.)
If (%BAUD%)=(LOCAL) Then Goto (locul)
FixFile(protocol\%var%r-au.bt,protocol\%var%r-au.bat)
Exec(protocol\%var%r-au.BAT│)
Kill(protocol\%var%r-au.bat)
Goto (success)
*locul
MenuAsk (&3&Please enter the &10&path&3& for this file&12&: &15&*)
fCopy(%RESP%\%var%x,%ATTPAT%%var%x)
Goto (success)
*success
NotIf (%ARESP%)=(0) Then Goto (aborted)
Log(--,Attach uploaded (%var%x))
Display(display\attsucc)
return
*notenufs
display(display\nospce)
Return
*aborted
SetEqual(x=)
FlushOut
Log(--,Attach upload aborted (%var%x))
Display(display\attabt)
Return
*alreadyhere
Display (display\HERENOW)
Goto (pok)
HSLINKCTLflushout
exec(adir hstemp%NODE%\*.* >hslst.%NODE%)
inpclose
inpopen(hslst.%NODE%)
setequal(t=0)
linefeed(1)
setequal(a=/:UPLOADS/)
clearmem
setequal(c=0)
*stcalc
inpread
setequal(d=%ARESP%)
iseek(%var%d)
iftrue(goto (nfile))
if (&D)=() then goto (Nfile)
fcopy(hstemp%NODE%\%var%d,files\uploads\%var%d)
size(files\uploads\%var%d)
addvar(%var%t+%ARESP%=t)
cnvtk(%ARESP%)
addvar(%ARESP%+/:KUP/=o)
setequal(/KUP=%var%o)
multvar(%var%c*3=y)
say(&7&&CR&%var%d&CR&)
say(&14&Please enter a description for your file. &10&The description can take up 3 lines.&CR&&CR&&15& (----2----3----4----5----6----7---8----))
resetwrap
clearmem
wrapask %MIN1%%LEN40%(&3&1&12&: &15&*)
setequal(^1=%RESP%)
wrapask %LEN40%%CRON%(&3&2&12&: &15&*)
if (%RESP%)=(<CR>) then goto (nomore)
setequal(^2=%RESP%)
ask %LEN39%(&3&3&12&: &15&*)
setequal(^3=%RESP%)
*nomore
file(files\uploads\,%var%d,3)
log(--,%var%d Uploaded (HSLINK).)
appendto(logs\UPLOAD.%NODE%,%var%d uploaded at %TIME% on %DATE% by %NAME%.)
inc(c)
*nfile
kill(hstemp%NODE%\%var%d)
fendif(donecalc)
goto (stcalc)
*donecalc
inpclose
inc(c)
say(%BEEP%)
multvar(%XMIN%*60=o)
divvar(%var%t/%var%o=g)
setequal(/UPLOADS=%var%a)
return
NEWUSERCTLsay(&CR&&10&You will have 2 lines for your full address. The first line for your street&CR&and the second line for your City and State.)
setactivity(New-user Logon...)
log(==,New User (%var%D) Registering...)
setequal(>NAME=%var%D)
setequal(>LAST=%DATE%)
setequal(>LASTCHK=%DATE%)
setequal(t=0)
*street
ask %MIN1%(&CR&&3&Please enter your &11&street&3& address&12&: &15&*)
setequal(>STREET=%RESP%)
*city
ask %MIN1%%LEN40%(&CR&&3&Please enter the &11&City, State&3& that you're calling from&12&: &15&*)
setequal(/FROM=%RESP%)
setequal(>FROM=%RESP%)
if (/from)=(>street) then goto (fake)
display(display\password)
update
*PASS
say (&3&Enter the password you would like&12&: &15&*)
cgetpass%MIN2%(.)
menuequal(a=%name%)
if (%resp%)=(&a) then goto (bp)
menuequal(a=%fname%)
if (&a)=(%resp%) then goto (bp)
menuequal(a=%lname%)
if (&a)=(%resp%) then goto (bp)
setequal(>PASS=%RESP%)
setequal(k=%RESP%)
say(&CR&&3&Please enter the password again for verification&12&: &15&*)
cgetpass%MIN2%(.)
notif (%RESP%) = (&k) then goto (badpass)
say(&CR&&3&Please enter your &11&home &3&phone number in the format shown.&15&)
picture(###-###-####)
repeating(%resp%)
iftrue(goto (fake))
setequal(>PHONE=%RESP%)
setequal(/PHONE=%Resp%)
ask (&CR&&3&If you have a &11&work &3&phone number, please enter it now&12&: &15&*)
setequal(>WORK=%RESP%)
say(&CR&&3&Please enter your &11&birthdate &3&in the format (MM/DD/YY) shown.&15&)
update
picture(##-##-##)
repeating(%resp%)
iftrue(goto (fake))
dateok(%resp%)
ifnottrue(goto (fake))
setequal(>BIRTH=%RESP%)
display (display\defprots)
setequal(/birth=%resp%)
menuask(&3&Which protocol would you like &11&(or N for None)?%hRed%: &15&*)
setequal(/protocol=%RESP%)
display(display\comps)
ask %MIN1%(&3&What type of computer do you have?&12&: &15&*)
setequal(>COMP=%RESP%)
setequal(>WAIT=N)
display(display\length)
menuask %MIN1%(&CR&&3&Please enter the length of your screen &11&(24 Recommended)&12&: &15&*)
setequal(>FIRST=%DATE%)
setequal(>SCREENLEN=%RESP%)
setequal(>LEFT=%NEWTIME%)
setequal(>SEC=%NEWSEC%)
seekfile(phones.dat,/:phone/)
iftrue(loadmem (control\dphone.ctl))
say(&CR&&11&Please wait while your records are created...*)
findsp ;find space for user...
setequal(a=%aresp%)
saveuser(%var%a)
appendto(userfile.ndx,%var%D│\:PASS\│\:FROM\│%var%a│0)
say( |)
eline(55)
appendto(phones.dat,\:phone\)
seekuser(%var%D)
loadmem(control\open.ctl,goto (connect))
*BADPASS
say(&CR&&12&The passwords did not match. Please try again...&CR&)
goto (pass)
*fake
appendto(badnames.bbs,%name%)
log(--,User attempted log on with false info)
quitbbs
*inv
inc(t)
if (&t)=(2) then goto (fake)
goto(city)
*bp
say (&CR&&12&Please enter a more unique, hard to guess password.&CR&)
goto (pass)
VIEWBCTL▒say(&CR&&3&Would you like to view the &11&bulletins menu&3&? &9&[ ]&14&*)
back(4)
yesnoask(*)
if (%RESP%)=(No) then loadmem(control\main.mnu)
loadmem(control\bullet.mnu)
BIRTHCTL?Display (display\b-day) ;show birthday screen
Enter
Return
OPENCTLçjump(InitSetup) ;Init variables, Del temp files, etc
DetectAnsi() ;checking for ansi graphics...
IfTrue(Setequal(/graphics=ANSI) )
IfTrue(Say(&14& Ansi Detected) )
IfNotTrue(Say ( No Ansi Detected) )
Say (&CR&&3&Would you like ANSI/Color graphics? &9&[ ]&14&*)
Back(4)
YesNoAsk (*)
SetEqual (/Graphics=ASCII)
If (%RESP%)=(Yes) then SetEqual (/Graphics=ANSI)
Display (display\WELCOME) ;Display welcome screen
setequal(t=0)
*CONT
inc(t)
if (&t)=(5) then loadmem(control\no.ctl)
MenuAsk%MIN1% (&CR&&3&Please enter your first name here&12&: &15&*)
SetEqual (a=%RESP%)
Find (%var%a, ) ;if space then it's a full name
NotIf (%ARESP%)=(0) then Goto (Check)
MenuAsk (&3& Please enter your last name here&12&: &15&*)
SetEqual (b=%RESP%)
*CHECK
NameSplit (%var%a,a,b)
NameComb (%var%a,%var%b,d)
Namequal (/name=%var%d)
nameok
ifnottrue(goto (cont))
SetEqual (d=%NAME%)