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
Text File  |  1992-09-29  |  69KB  |  2,841 lines

  1. BATCHCTL¿Kill(Free.%NODE%,batch.%node%)
  2.  
  3.         *startbatch
  4. SetEqual(m=0)   ;clear some variables we'll be using...
  5. SetEqual(w=0)
  6. setequal(d=)
  7.  
  8.         *fname
  9. Say(&10&Pressing (&11&ENTER&10&) will allow you to start the download.)
  10. Say(&3&Please enter name of the file to download&12&: &14&(&F&12)&15&*)
  11. Back(13)
  12. MenuAsk%NOCR%%CRON%%LEN12%(*)
  13. if (%RESP%)=(<CR>) then Say ()
  14. If (%RESP%)=(<CR>) Then Goto (entpressed)
  15. len(%Resp%)
  16. Back(%ARESP%)
  17. AddDef(.%DEFEXT%)
  18. say (%Resp%)
  19. if (%Resp%)=(&d) then goto (ah)
  20. Say(&CR&&11&Please wait!... We're searching for the file...*)
  21. SeekFall(%RESP%)
  22. If (%ARESP%)=(INVALID) Then Goto (invfn)   ;If invalid filename...
  23. If (%ARESP%)=(No) Then Goto (nothere)     ;If it doesn't exist..
  24. If (%ARESP%)=(NOT ENOUGH) Then Goto (notenuf)  ;If not enuf security
  25. If (%RATIO%)=(NOT OK) Then Goto (badratio)   ;If ratio is bad...
  26. selFarea(%ARESP%)               ;select the area it's in...
  27. Size(%FILPATH%%RESP%)
  28. setequal(j=%aresp%)
  29. Say(Found!&CR&&CR&&14& ───────  &12&Statistics for %RESP% &14& ───────&15&)
  30. Say(Free Download: &11&%FREE% &15&*)
  31. If (%FREE%)=(No) Then Say( *)
  32. Say(&F&8&Size: &11&%ARESP% &15&) ;ARESP is from up there where we checked fileSize
  33. fDate(%FILPATH%%RESP%)  ;get date stamp from file
  34. Say(Dated: &11&%ARESP% &15&&F&9&Transfer Time: *)
  35. tTime(%var%J)        ;calculate time to d/l (var J is file size)
  36. Say(&11&%ARESP%&CR&)
  37. setequal(g=%ttim%)
  38. if (%FREE%)=(Yes) then setequal(g=0)
  39. AddVar(&m+&g=m)  ;add to total # of minutes it'll take to d/l
  40. SetEqual(d=%RESP%)
  41.  
  42. AppendTo(free.%NODE%,%FREE%)    ;append to our free temporary file...
  43. IfTrue( AddVar(&m+-%TTIM%=m)) ;don't count If freefile...
  44. AppendTo(batch.%NODE%,%FILPATH%%var%d)   ;append to list of files in batch
  45. inc(w)
  46. Goto (fname)    ;go Back and see If they want to d/l another file...
  47.         
  48.         *initxfer
  49. CmpVal(%var%m,/:LEFT/)  ;see If they have enough time
  50. IfNotTrue( Goto (notenuftime))
  51. Say(&3&     Would you like to download these files? &9&[   ]&14&*)
  52. Back(4)
  53. YesNoAsk(*)
  54. If (%RESP%)=(No) Then Goto (ex)
  55. Say(&3&Would you like us to log you off afterwards? &9&[   ]&14&*)
  56. Back(4)
  57. YesNoAsk(*)
  58. SetEqual(m=%RESP%)
  59. Say(&CR&&11&We're sending the files you requested. Please get ready to receive them now.)
  60. FixFile(protocol\%var%b-d.bt,protocol\%var%b-d.bat) ;filter percent codes
  61. InitClock  ;init transfer time clock...
  62. Exec(protocol\%var%b-d.BAT│)     ;run the protocol
  63. Kill(protocol\%var%b-d.bat)      ;get rid of temporary prot batch file
  64.         
  65.         *success
  66. TogLocal    ;go into local mode..just in case they hang up.
  67. NotIf (%ARESP%)=(0) Then Goto (aborted)  ;If errorlevel Goto aborted
  68. XferTime        ;calc time it took for d/l
  69. SetEqual(e=%ARESP%)
  70. InpOpen(batch.%NODE%)   ;start reading our batch temp file
  71. If (%ARESP%)=(ERROR) Then Goto (dsucc)   ;If we cant read it...
  72. SetEqual(t=0)
  73. linefeed(1)
  74. SetEqual(a=/:DOWNLOADS/)    ;set a to current # of d/l's
  75. Kill(tagged.%NODE%)             ;get rid of tag file
  76. SetEqual(c=0)
  77.         
  78.         *stcalc
  79. inc(c)
  80. InpRead
  81. SetEqual(d=%ARESP%)
  82. Size(%var%d)
  83. AddVar(&t+%ARESP%=t)
  84. log(--,%var%d Downloaded (batch).)
  85. AppendTo(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
  86. InpLine(free.%NODE%,%var%c)
  87. NotIf(%ARESP%)=(Yes) Then inc(a)
  88. Iftrue (Goto (fre))
  89. fEndIf(donecalc)
  90. Goto (stcalc)
  91.  
  92. *fre
  93. Size(%var%d)
  94. tTime(%ARESP%)
  95. AddVar(/:LEFT/+%TTIM%=a)
  96. SetEqual(/left=%var%a)
  97. fEndIf(donecalc)
  98. Goto (stcalc)
  99.  
  100.         *donecalc
  101. InpClose
  102. Say(%BEEP%)
  103. MultVar(%XMIN%*60=o)     ;calculate transfer rate (cps)
  104. DivVar(&t/%var%o=g)
  105. CnvtK(%var%t)
  106. AddVar(%ARESP%+/:KDOWN/=o)
  107. SetEqual(/KDOWN=%var%o)
  108. SetEqual(/DOWNLOADS=%var%a)
  109. Log(--,Rate: %var%g CPS)   ;Log our calculated cps rate...
  110.         
  111.         *dsucc
  112. TogLocal  ;go Back to remote, non-local, mode
  113. Display (Display\SUCCESSB)   ;show success screen
  114. if (%VAR%B)=(HS) then loadmem(control\hslink.ctl)
  115. If (&m)=(Yes) Then Goto (autooff)
  116.         
  117.         *ex
  118. Kill(free.%NODE%)
  119. SelFarea(/:LASTDOWN/)   ;set d/l area Back to their default d/l area
  120. linefeed(1)
  121. return ;go Back to files menu
  122.         
  123.         *aborted
  124. TogLocal
  125. Log(--,Batch Download aborted.)
  126.         
  127.         *lcl
  128. Display (Display\ABORTED)
  129. Goto (ex)
  130.         
  131.         *badratio
  132. Display(Display\BADRATIO)
  133. SelFarea(/:LASTDOWN/)
  134. linefeed(1)
  135. return
  136.         
  137.         *autooff
  138. loadmem(control\autoOff.ctl)
  139.         
  140.         *free
  141. Log(--,Freefile downloaded, time refunded.)
  142. AddVar(%XMIN%+%LEFT%=t)
  143. SetEqual(/LEFT=t)
  144. If (&m)=(Yes) Then Goto (autooff)
  145. Goto (ex)
  146.         
  147.         *Notenuf
  148. Display (Display\fbadsec)
  149. Goto (fname)
  150.         
  151.         *nothere
  152. Display(Display\notfnd)
  153. Goto (fname)
  154.         
  155.         *invfn
  156. Display(Display\INVALID)
  157. FlushOut
  158. SelFarea(/:LASTDOWN/)
  159. Enter
  160. Goto (fname)
  161.         
  162.         *entpressed
  163. linefeed(1)
  164. If (&w)=(0) Then return
  165. Goto (initxfer)
  166.         
  167.         *notenuftime
  168. Display(Display\NODLTIME)
  169. Return
  170.  
  171. *ah
  172. Say(&CR&&12&That file is already in the download batch!&CR&)
  173. goto (fname)
  174. ZIPVIEWCTL *EXLP
  175.  Say(&CR&&7& Length  Method   Size  Ratio   Date    Time   CRC-32  Attr  Name&11&)
  176.  InpRead
  177.  Say(──────────────────────────────────────────────────────────────────&15&)
  178.  
  179. setequal(l=0)
  180. setequal(p=2)
  181. resetpause
  182.  
  183. DO
  184.  fEndIf(eloop)
  185.  InpRead
  186.  SetEqual(h=%ARESP%)
  187.  Get (%ARESP%,1,3)
  188.  If (%ARESP%)=( --) then goto (elp)
  189.  inc(l)
  190.  Say(%var%h)
  191.  inc(p)
  192.  if (&p)=(/screenlen) then jump (pause)
  193. LOOP
  194.  
  195. *ELP
  196.  InpRead
  197.  Say(&11&──────────────────────────────────────────────────────────────────)
  198.  get (%aresp%,1,50)
  199.  Say(&12&%ARESP%)
  200.  InpClose
  201.  say (&CR&&14&  %var%l File(s) in archive)
  202.  
  203. *ELOOP
  204.  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& *)
  205.  BigIf (d:download,r:read,q:quit,l:list)
  206.  Goto (eloop)
  207.  
  208. *LIST
  209.  InpClose
  210.  InpOpen(zipinfo.txt)
  211.  linefeed(1)
  212.  
  213. DO
  214.  InpRead
  215.  Get (%ARESP%,1,7)
  216.  NotIf (%ARESP%)=() then if (%ARESP%)=( Length) then goto (exlp)
  217. EofLoop
  218.  
  219. *QUIT
  220.  InpClose
  221.  SelFArea (/:lastdown/)
  222.  Return
  223.  
  224. *READ
  225.  Say(&CR&&3&Please enter the name of the file to read&12&: &14&(            )&15&*)
  226.  Back(13)
  227.  MenuAsk%CRON%%LEN12%(*)
  228.  if (%RESP%)=(<CR>) then goto (eloop)
  229.  Say(&CR&&11&Retriving &7&%RESP%&11&, Please Wait!&7&)
  230.  Exec(md zvtemp>nul,) ;create temporary dir
  231.  Zap(yes,Yes)
  232.  Exec(del zvtemp <yes >nul,)
  233.  Exec(pkunzip %FILPATH%%var%e %RESP% zvtemp\ >nul,)
  234.  View (zvtemp\%RESP%)
  235.  Exec(del zvtemp <yes >nul,)
  236.  Enter
  237.  Goto (eloop)
  238.  
  239. *DOWNLOAD
  240.  Say(&3&&CR&Please enter the name of the file to download&12&: &14&(            )&15&*)
  241.  Back(13)
  242.  MenuAsk%CRON%%LEN12%(*)
  243.  if (%RESP%)=(<CR>) then goto (eloop)
  244.  Say(&CR&&11&Retriving &7&%RESP%&11&, Please Wait!&7&)
  245.  Exec(md zvtemp >nul,) ;create temporary dir
  246.  Zap(yes,Yes)
  247.  Exec(del zvtemp <yes,)
  248.  Exec(pkunzip %FILPATH%%var%e %RESP% zvtemp\ >nul,)
  249.  SetEqual(d=%RESP%)
  250.  Seek(zvtemp\%RESP%)
  251.  IfNotTrue (goto (eloop))
  252.  
  253. *PICKP
  254.  Display (Display\DN-PROTS)
  255.  MenuAsk %MIN1% (&3&Which transfer protocol would you like to use?&11&(or Q to Quit)&12&: &15&*)
  256.  Find(%RESP%,\)      ;make sure they didnt stick a backslash in there
  257.  NotIf (%ARESP%)=(0) Then Goto (eloop)
  258.  BigIf(q:eloop)
  259.  SetEqual(b=%RESP%)
  260.  Seek(protocol\%var%b-VD.BT)    ;check to see If protocol exists..
  261.  IfNotTrue(Goto (pickp))
  262.  Len(%var%b)
  263.  NotIf (%ARESP%)=(1) then goto (nobat)
  264.  Say(&CR&&3&       Would you like to download this file? &9&[   ]&14&*)
  265.  Back(4)
  266.  YesNoAsk(*)
  267.  If (%RESP%)=(No) Then Goto (eloop)
  268.  Say(&CR&&11&We're sending the file you requested. Please get ready to receive it now.)
  269.  If (%LOCAL%)=(TRUE) Then Goto (eloop)
  270.  FixFile(protocol\%var%b-vd.bt,protocol\%var%b-vd.bat)
  271.  InitClock
  272.  Exec(protocol\%var%b-vd.BAT│)
  273.  Kill(protocol\%var%b-vd.bat)
  274.  If (%LOCAL%)=(FALSE) Then toglocal
  275.  NotIf (%ARESP%)=(0) Then Goto (nsc)
  276.  XferTime
  277.  SetEqual(e=%ARESP%)
  278.  Size(zvtemp\%var%d)
  279.  MultVar(%XMIN%*60=o)
  280.  DivVar(%ARESP%/%var%o=g)         ;calculate CPS rate
  281.  CnvtK(%ARESP%)
  282.  AddVar(%ARESP%+/:KDOWN/=o)
  283.  SetEqual(/KDOWN=%var%o)
  284.  Say(%BEEP%*)
  285.  Log(--,%var%d Downloaded from Zip:%var%e.)
  286.  Log(--,Rate: %var%g CPS)
  287.  AppendTo(logs\DOWNLOAD.%NODE%,%var%d downloaded by %NAME% at %TIME% on %DATE%.)
  288.  SetEqual(a=/:DOWNLOADS/)
  289.  inc(a)
  290.  SetEqual(/DOWNLOADS=%var%a)
  291.  If (%LOCAL%)=(TRUE) Then toglocal
  292.  Display (Display\SUCCESS)
  293.  Exec(del zvtemp <yes)
  294.  Enter
  295.  Goto (eloop)
  296.  
  297. *NOBAT
  298.  Say(&CR&&15&No batch protocols allowed for transfering this file.&CR&)
  299.  Goto (pickp)
  300.  
  301. *nsc
  302. toglocal
  303. goto (eloop)
  304.  
  305. *pause
  306. setequal(p=1)
  307. pauseprompt
  308. if (%ARESP%)=(STOP) then goto (elp)
  309. ret
  310. UEDITCTL¡*StUEdit
  311. *edit
  312.  SetEqual (f=1)
  313.  SetEqual (e=0)
  314.  SetEqual (w=0)
  315.  SetEqual (z=1)
  316.  SetEqual (m=0)
  317. *moreedit
  318.  ClearScr
  319.  LoadUser(%var%z)
  320.  SetEqual (x=0)
  321. *EvenMoreEdit 
  322.  AnsiGoto (1,1) ;Puts the cursor in the top left hand corner of the screen. 
  323.  If (&w)=(1) then goto (putinfo) ;if %var%w is 1 then skip rewrite
  324.  Say ($0$&15&Name    :                              Birthdate: )
  325.  Say (Street  :                               Times On: )
  326.  Say (From    :                         Computer Using: )
  327.  Say (Phone   :                          Carrier Drops: )
  328.  Say (Sec     :                             Work Phone: )
  329.  Say (Passwd  :                             Subscriber: )
  330.  Say (TimeLeft:                           Sub Date Exp: )
  331.  Say (Memo    : )
  332.  Say (Downlds :                         Avail For Chat: )
  333.  Say (Uploads : )
  334.  Say (KDled   : )
  335.  Say (KUled   : )
  336. *PutInfo
  337.  AnsiGoto (11,1)
  338.  Say (&14&\:NAME\*)
  339.  AnsiGoto (11,2)
  340.  Say (\:STREET\*)
  341.  AnsiGoto (11,3)
  342.  Say (\:FROM\*)
  343.  AnsiGoto (11,4)
  344.  Say (\:PHONE\*)
  345.  AnsiGoto (11,5)
  346.  Say (\:SEC\*)
  347.  AnsiGoto (11,6)
  348.  Say (\:PASS\*)
  349.  AnsiGoto (11,7)
  350.  Say (\:LEFT\*)
  351.  AnsiGoto (11,8)
  352.  Say (\:MEMO\*)
  353.  AnsiGoto (11,9)
  354.  Say (\:DOWNLOADS\*)
  355.  AnsiGoto (11,10)
  356.  Say (\:UPLOADS\*)
  357.  AnsiGoto (11,11)
  358.  Say (\:KDOWN\*)
  359.  AnsiGoto (11,12)
  360.  Say (\:KUP\*)
  361.  AnsiGoto (51,1)
  362.  Say (\:BIRTH\)
  363.  AnsiGoto (51,2)
  364.  Say (\:TIMESON\)
  365.  AnsiGoto (51,3)
  366.  Say (\:COMP\)
  367.  AnsiGoto (51,4);
  368.  Say (\:DROPPED\)
  369.  AnsiGoto (51,5);
  370.  Say (\:WORK\)
  371.  AnsiGoto (51,6);
  372.  Say (\:SUB\)
  373.  AnsiGoto (51,7);
  374.  Say (\:SUBDATE\)
  375.  AnsiGoto (51,9);
  376.  Say (\:DEFAVAIL\);
  377.  AnsiGoto (1,14)
  378.  If (&x)=(1) then goto (Check)
  379.  If (&e)=(1) then goto (Secondary)
  380.  If (&m)=(1) then goto (Secondary)
  381.  
  382. *AndMore
  383. Say (&4&╔═══════════════════════════════════════════════════════════════════════════╗)
  384. Say (║&7& KEYS:                      Edit this User                                &4& ║)
  385. Say (║&7& 2 = Move Down              Next User                                     &4& ║)
  386. Say (║&7& 8 = Move Up                Previous User                                 &4& ║)
  387. Say (║&7& (ENTER) Selects            Last User                                     &4& ║)
  388. Say (║&7&                            Search for User                               &4& ║)
  389. Say (║&7&                            Quit to Sysop Menu                            &4& ║)
  390. Say (╚═══════════════════════════════════════════════════════════════════════════╝)
  391. Goto (Check) ;90 chars is cutoff for ctl file lines...
  392.  
  393. *Secondary
  394.  Say (&4&╔═══════════════════════════════════════════════════════════════════════════╗)
  395.  Say (║                                                                           ║)
  396.  Say (║                                                                           ║)
  397.  Say (║                                                                           ║)
  398.  Say (║                                                                           ║)
  399.  Say (║                                                                           ║)
  400.  Say (║                                                                           ║)
  401.  Say (╚═══════════════════════════════════════════════════════════════════════════╝)
  402.  If (&m)=(1) then loadmem(control\uedit3.ctl,goto(Another))
  403.  If (&e)=(1) then loadmem(control\uedit2.ctl,goto(Edit))
  404.  
  405. *Check
  406.  If (&f)=(1) then goto (place1)
  407.  If (&f)=(2) then goto (place2)
  408.  If (&f)=(3) then goto (place3)
  409.  If (&f)=(4) then goto (place4)
  410.  If (&f)=(5) then goto (place5)
  411.  If (&f)=(6) then goto (place6)
  412. *more
  413.  MenuKey%CRON%
  414.  if (%resp%)=(<CR>) then goto (chkifs)
  415.  bigif (2:movehighlightfd,8:movehighlightbk,f:first,q:exedit)
  416.  Goto(BadSel)
  417.  
  418. *Chkifs
  419.  NotIf (&f)=(2) then goto (moreifs)
  420.  goto (cont)
  421. *moreifs
  422.  If (&f)=(6) then goto (exedit)
  423.  NotIf (&f)=(3) then goto (lastifs)
  424.  Goto (cont)
  425.  
  426. *lastifs
  427.  NotIf (&f)=(4) then Loadmem(control\uedit2.ctl,goto(selection))
  428. *Cont 
  429.  If (&f)=(4) then goto (Last)
  430.  If (&f)=(3) then goto (prev)
  431.  SaveUser (%var%z) ;Saves the record number of %var%z.
  432.  inc(z)
  433.  Numbusers();
  434.  SetEqual (d=%ARESP%)
  435.  inc(d)
  436.  CmpVal(%var%d,%var%z);
  437.  iftrue (setequal(Z=%var%d))
  438.  SetEqual (x=1)
  439.  Goto (Clearinfo)
  440.  
  441. *Prev
  442.  SaveUser (%var%z)
  443.  SetEqual (z=%var%z)
  444.  NotIf (&z)=(0) then AddVar (&z+-1=z)
  445.  If (&z)=(0) then SetEqual (z=1)
  446.  SetEqual (x=1)
  447.  Goto (Clearinfo)
  448.  
  449. *Last
  450.  SaveUser (%var%z)
  451.  Numbusers
  452.  SetEqual (z=%ARESP%)
  453.  SetEqual (x=0)
  454.  Goto (ClearInfo)
  455.  
  456. *First
  457.  SetEqual (z=1)
  458.  Goto (ClearInfo)
  459.  
  460. *Temp
  461.  ClearScr
  462.  return
  463.  
  464. *EditUser
  465.  Say (&7&Enter letter of item to change (Q to Quit Changing): *)
  466.  MenuKey
  467.  Say (&15& %RESP%)
  468. BigIf(N:ChgName,S:ChgSt,F:ChgFrom,H:ChgPhone,C:ChgSec,P:ChgPass,T:ChgTL)
  469. BigIf(M:ChgMemo,D:ChgDls,U:ChgUls,K:ChgDlK,L:ChgUlK,Q:Quit)
  470.  Goto(BadSel)
  471.  
  472. *BadSel
  473.   AnsiGoto (30,15)
  474.   Say (              *)
  475.   AnsiGoto (30,16)
  476.   Say (         *)
  477.   AnsiGoto (30,17)
  478.   Say (             *)
  479.   AnsiGoto (30,18)
  480.   Say (         *)
  481.   AnsiGoto (30,19)
  482.   Say (               *)
  483.   AnsiGoto (30,20)
  484.   Say (                  *)
  485.   AnsiGoto (30,17)
  486.   Say (&12&Invalid Selection!*)
  487.   SecPause(2)
  488.   AnsiGoto (1,14)
  489.   Goto (AndMore)
  490.  
  491. *Quit
  492.  SetEqual (f=1)
  493.  SetEqual (e=0)
  494.  SetEqual (z=1)
  495.  SetEqual (m=0)
  496.  SetEqual (e=0)
  497.  Goto (EvenMoreEdit)
  498.  
  499.  
  500. *Place1
  501.  AnsiGoto (30,15)
  502.  Say ($7$&0&Edit this User$0$*)
  503.  Goto (more)
  504.  
  505. *Place2
  506.  AnsiGoto (30,16)
  507.  Say ($7$&0&Next User$0$*)
  508.  Goto (more)
  509.  
  510. *Place3
  511.  AnsiGoto (30,17)
  512.  Say ($7$&0&Previous User$0$*)
  513.  Goto (more)
  514.  
  515. *Place4
  516.  AnsiGoto (30,18)
  517.  Say ($7$&0&Last User$0$*)
  518.  Goto (more)
  519.  
  520. *Place5
  521.  AnsiGoto (30,19);
  522.  Say ($7$&0&Search for User$0$*)
  523.  Goto (more)
  524.  
  525. *Place6
  526.  AnsiGoto (30,20)
  527.  Say ($7$&0&Quit to Sysop Menu$0$*)
  528.  Goto (more)
  529.  
  530. *NormPlace1
  531.  AnsiGoto (30,15)
  532.  Say ($0$&7&Edit this User)
  533.  SetEqual (f=2)
  534.  Goto (check)
  535.  
  536. *NormPlace2
  537.  AnsiGoto (30,16)
  538.  Say ($0$&7&Next User)
  539.  SetEqual (f=3)
  540.  Goto (check)
  541.  
  542. *NormPlace3
  543.  AnsiGoto (30,17)
  544.  Say ($0$&7&Previous User)
  545.  SetEqual (f=4)
  546.  Goto (check)
  547.  
  548. *NormPlace4
  549.  AnsiGoto (30,18)
  550.  Say ($0$&7&Last User) 
  551.  SetEqual (f=5)
  552.  Goto (check)
  553.  
  554. *NormPlace5
  555.  AnsiGoto (30,19)
  556.  Say ($0$&7&Search for User) 
  557.  SetEqual (f=6)
  558.  Goto (check)
  559.  
  560. *NormPlace6
  561.  AnsiGoto (30,20)
  562.  Say ($0$&7&Quit to Sysop Menu)
  563.  SetEqual (f=1)
  564.  Goto (Check)
  565.  
  566. *BkPlace1
  567.  AnsiGoto (30,15)
  568.  Say ($0$&7&Edit this User)
  569.  SetEqual (f=6)
  570.  Goto (check)
  571.  
  572. *BkPlace2
  573.  AnsiGoto (30,16)
  574.  Say ($0$&7&Next User)
  575.  SetEqual (f=1)
  576.  Goto (check)
  577.  
  578. *BkPlace3
  579.  AnsiGoto (30,17)
  580.  Say ($0$&7&Previous User)
  581.  SetEqual (f=2)
  582.  Goto (check)
  583.  
  584. *BkPlace4
  585.  AnsiGoto (30,18)
  586.  Say ($0$&7&Last User) 
  587.  SetEqual (f=3)
  588.  Goto (check)
  589.  
  590. *BkPlace5
  591.  AnsiGoto (30,19)
  592.  Say ($0$&7&Search for User) 
  593.  SetEqual (f=4)
  594.  Goto (check)
  595.  
  596. *BkPlace6
  597.  AnsiGoto (30,20)
  598.  Say ($0$&7&Quit to Sysop Menu)
  599.  SetEqual (f=5)
  600.  Goto (Check)
  601.  
  602. *MoveHighlightFd
  603.  setequal(/resp=%var%f)
  604.  bigif(1:normplace1,2:normplace2,3:normplace3,4:normplace4,5:normplace5,6:normplace6)
  605.  Goto (Edit)
  606.  
  607. *MoveHighlightBk
  608.  setequal(/resp=%var%f)
  609.  bigif(1:Bkplace1,2:Bkplace2,3:Bkplace3,4:Bkplace4,5:Bkplace5,6:Bkplace6)
  610.  Goto (Edit) ;bknormplace -> bkplace because other is > 90 chars...
  611.  
  612. *ClearInfo
  613.  AnsiGoto (11,1)
  614.  Say (                             *)
  615.  AnsiGoto (11,2)
  616.  Say (                             *)
  617.  AnsiGoto (11,3)
  618.  Say (                        *)
  619.  AnsiGoto (11,4)
  620.  Say (               *)
  621.  AnsiGoto (11,5)
  622.  Say (    *)
  623.  AnsiGoto (11,6)
  624.  Say (                    *)
  625.  AnsiGoto (11,7)
  626.  Say (     *)
  627.  AnsiGoto (11,8)
  628.  Say (                              *)
  629.  AnsiGoto (11,9)
  630.  Say (     *)
  631.  AnsiGoto (11,10)
  632.  Say (     *)
  633.  AnsiGoto (11,11)
  634.  Say (     *)
  635.  AnsiGoto (11,12)
  636.  Say (     *)
  637.  AnsiGoto (51,1)
  638.  Say (        *)
  639.  AnsiGoto (51,2)
  640.  Say (     *)
  641.  AnsiGoto (51,3)
  642.  Say (                    *)
  643.  AnsiGoto (51,4)
  644.  Say (     *)
  645.  AnsiGoto (51,5)
  646.  Say (               *)
  647.  AnsiGoto (51,6)
  648.  Say (  *)
  649.  AnsiGoto (51,7)
  650.  Say (        *)
  651.  AnsiGoto (51,9)
  652.  Say (  *)
  653.  LoadUser (%var%z)
  654.  SetEqual (x=0)
  655.  Goto (PutInfo)
  656.  
  657. *exedit
  658. clearscr
  659. return
  660. READCTL`setequal(n=1)
  661. setequal(x=1)
  662. *read
  663. setequal(r=0)
  664. setequal(w=1)
  665. setactivity(Reading Mail)
  666. *rmail
  667. notif (&n)=(1) then goto (endmr) ;if they came back...
  668. setequal(n=0)
  669. *brmail
  670. linefeed(1)
  671. himsg(/:LASTMSG/)
  672. setequal(f=%ARESP%)
  673. lowmsg(/:lastmsg/)
  674. setequal(n=%ARESP%)
  675. display (display\READ)
  676. setequal(y=%ARESP%)
  677. setequal(z=0)
  678. numbmenuask%CRON%(&3&Which read mail number or option would you like?&12&: &15&*)
  679. bignicesay(r:Reverse,q:quit,m:Since last read,s:Search,y:your mail,h:help)
  680. bigif(r:rev,m:since,s:search,y:Your,h:help,<CR>:qt,q:qt)
  681. number(%RESP%)
  682. if (%RESP%)=(0) then goto (inv2)
  683. iftrue (goto (nread))
  684. goto (inv2)
  685. *qt
  686. return
  687.  
  688. *help
  689. display(display\help\read,/:SEC/)
  690. goto (brmail)
  691.  
  692. *nread
  693. cmpval(%var%f,%RESP%)
  694. iftrue (goto (inv2))
  695. cmpval(%var%n,%RESP%)
  696. ifnottrue(setequal(/resp=%var%n))
  697. setequal(w=1)
  698. setequal(y=%RESP%)
  699. goto (repeat)
  700.  
  701. *since
  702. msghigh(/:LASTMSG/)
  703. setequal(y=%ARESP%)
  704. cmpval(%var%f,%var%y)
  705. iftrue (goto (inv2))
  706. cmpval(%var%n,%VAR%Y)
  707. ifnottrue(setequal(y=%var%n))
  708. setequal(w=1)
  709. setequal(s=0)
  710. goto (repeat)
  711.  
  712. *repeat
  713. inittxt
  714. setequal(s=0)
  715. getmail(%var%y,/:LASTMSG/,%var%w)
  716. if (%MsgNumber%)=(0) then goto (0next)
  717. setequal(z=10)
  718. notif (%ARESP%)=(Yes) then goto (nope)
  719. *banyway
  720. clearscr
  721. setequal(x=0)
  722. setequal(s=0)
  723. setequal(g=%RESP%)
  724. nicedate(%MSGSNTD%)
  725. say(&11&Message Number &3&%MsgNumber%&11& of &3&%var%f&11& was sent on&3& %ARESP%&11& at &3&*)
  726. nicetime(%MSGSNTT%)
  727. nicesay(%ARESP%&14&&CR&        Sent by: &3&%MSGFROM%&CR&&14&   Addressed to: &3&%MSGTO% )
  728. say(&14&      Regarding: &3&%MSGDESC% )
  729. nicesay(&14&         Status: &3&%MSGPVT%, %MSGRCVD%, Read %MSGRDTIMES% times, %REPLIES%)
  730. spause(8)
  731. if (%MSGATTACH%)=(Y) then if (%MSGPVT%)=(PRIVATE) then setequal(s=10)
  732. if (%MSGATTACH%)=(Y) then say (&12&* &14&File Attached: &3&%MSGATTNAME%)
  733. if (&s)=(10) then spause(9)
  734. say(&8&────────────────────────────────────────────────────────────────────────&CR&&7&)
  735. showtxt
  736. *reading
  737. if (&s)=(0) then display (display\READING)
  738. if (&s)=(10) then display (display\READINGA)
  739. numbmenuask %CRON%(&3&Which reading &11&option &3&or &11&message number&3&?&12&: &15&*)
  740. bignicesay(e:edit,q:quit,r:reply,s:Show again,n:next,f:forward thread,p:previous message,k:kill,o:Forward,h:help)
  741. if (&s)=(10) then bignicesay(d:Download Attach)
  742. bigif (e:edit,o:forw,q:qdisp,s:repeat,r:reply,p:previous,f:follow,k:kill,n:next,h:help2)
  743. bigif (d:downatt)
  744. if (%RESP%)=(<CR>) then goto (next)
  745. number(%RESP%)
  746. iftrue (goto (nread))
  747. setequal(s=5)
  748. goto (inv2)
  749.  
  750. *help2
  751. display(display\help\readn,/:SEC/)
  752. goto (reading)
  753.  
  754. *downatt
  755. zap(varr.%NODE%,%var%R)
  756. linefeed(1)
  757. loadsub(control\DOWNATT.CTL)
  758. goto (repeat)
  759.  
  760. *forw
  761. namequal(a=%MSGTO%)
  762. namequal(b=%NAME%)
  763. if (&a)=(&b) then goto (okf)
  764. namequal(a=%MSGFROM%)
  765. if (&a)=(&b) then goto (okf)
  766. setequal(s=5)
  767. goto (inv2)
  768. *okf
  769. loadsub(control\macros\forw.ctl)
  770. goto (repeat)
  771.  
  772. *your
  773. cmenuask(&CR&&3&Starting at which message number?&11&(%var%n-%var%f)&12&: &15&*)
  774. say(&CR&&11&Searching...|)
  775. clearmem
  776. seekto(/:LASTMSG/,%NAME%,%RESP%)
  777. if (%ARESP%)=(ERROR) then goto (endmr)
  778. log(--,Scanned for (Y)our mail)
  779. eline(25)
  780. zap(seeking.%NODE%,1)
  781. appendto(seeking.%NODE%,%NAME%)
  782. if (%ARESP%)=(ERROR) then goto (endmr)
  783. setequal(r=20)
  784. setequal(u=0)
  785. goto (snext)
  786.  
  787. *search
  788. loadsub(control\macros\msearch.ctl)
  789. if (%RESP%)=(Q) then goto (endmr)
  790. notif (%ARESP%)=(ERROR) then goto (snext)
  791. goto (endmr)
  792.  
  793. *rev
  794. if (&y)=(0) then goto (inv2)
  795. setequal(y=%var%f)
  796. setequal(w=-1)
  797. if (&y)=(0) then goto (inv2)
  798. goto (repeat)
  799.  
  800. *snext
  801. inc(u)
  802. setequal(y=^:U^)
  803. if (^:U^)=(MOREMAIL) then goto (fmore)
  804. if (^:U^)=() then goto (endmr)
  805. goto (repeat)
  806.  
  807. *fmore
  808. addvar(&u+-1=u)
  809. inpline(seeking.%NODE%,1)
  810. setequal(p=%ARESP%)
  811. inpline(seeking.%NODE%,2)
  812. if (&p)=(1) then seekto(/:lastmsg/,%ARESP%,^:u^)
  813. if (&p)=(2) then seekfrom(/:lastmsg/,%ARESP%,^:u^)
  814. if (&p)=(3) then seekdesc(/:lastmsg/,%ARESP%,^:u^)
  815. if (&p)=(4) then seektext(/:lastmsg/,%ARESP%,^:u^)
  816. setequal(u=0)
  817. goto (repeat)
  818.  
  819. *lnext
  820. inc(u)
  821. setequal(y=^:U^)
  822. if (^:U^)=() then goto (endmr)
  823. goto (repeat)
  824.  
  825. *qdisp
  826. linefeed(1)
  827. if (&r)=(10) then goto (endmr)
  828. Return
  829.  
  830. *0next
  831. if (&r)=(10) then goto (lnext)
  832. if (&r)=(20) then goto (snext)
  833. if (&y)=(0) then goto (inv2)
  834. if (&y)=(-1) then goto (inv2)
  835. addvar(%var%y+%var%w=y)
  836. if (&y)=(0) then goto (inv2)
  837. cmpval(%var%f,%var%y)
  838. iftrue (goto (inv2))
  839. goto (repeat)
  840.  
  841. *smore
  842. notif (&x)=(1) then say(&10&Searching for more messages...|)
  843. setequal(x=1)
  844. setequal(s=10)
  845.  
  846. *next
  847. if (&r)=(10) then goto (lnext)
  848. if (&s)=(0) then goto (smore)
  849. if (&r)=(20) then goto (snext)
  850. if (&y)=(0) then goto (inv2)
  851. if (&y)=(-1) then goto (inv2)
  852. notif (%MRESP%)=() then goto (sknext)
  853. addvar(%var%y+%var%w=y)
  854. if (&y)=(0) then goto (inv2)
  855. cmpval(%var%f,%var%y)
  856. iftrue (goto (inv2))
  857. goto (repeat)
  858. *sknext
  859. setequal(y=%MRESP%)
  860. if (&y)=(0) then goto (inv2)
  861. cmpval(%var%f,%var%y)
  862. iftrue (goto (inv2))
  863. goto (repeat)
  864.  
  865. *kill
  866. enufsec(100)
  867. iftrue(goto (stkill))
  868. setequal(a=%NAME%)
  869. upcase(a)
  870. setequal(i=%MSGFROM%)
  871. upcase(i)
  872. setequal(j=%MSGTO%)
  873. upcase(j)
  874. notif (&i)=(&a) then notif (&j)=(&a) then goto (repeat)
  875. *stkill
  876. msgkill (/:LASTMSG/,%var%y)
  877. say(&12&&CR&Message #%var%y has been deleted!&CR&)
  878. goto (next)
  879.  
  880. *follow
  881. if (%REPLIES%)=(NO REPLIES) then goto (nomore)
  882. setequal(s=5)
  883. setequal(q=%MSGPREV%)
  884. if (%MSGPREV%)=(0) then setequal(q=%var%y)
  885. nextforward(%var%q,%var%y,/:LASTMSG/)
  886. if (%ARESP%)=(0) then goto (nomore)
  887. setequal(y=%ARESP%)
  888. goto (repeat)
  889. *nomore
  890. say(&CR&&12&There are no more replies to this message.&CR&)
  891. goto (reading)
  892.  
  893. *previous
  894. setequal(s=5)
  895. if (%MSGPREV%)=(0) then goto (inv2)
  896. setequal(y=%MSGPREV%)
  897. goto (repeat)
  898.  
  899. *edit
  900. loadsub(control\macros\edit.ctl)
  901. goto (repeat)
  902.  
  903. *reply
  904. loadsub(control\macros\reply.ctl)
  905. goto (repeat)
  906.  
  907. *inv2
  908. if (&s)=(10) then goto (abb)
  909. say(&CR&&12&Invalid selection! Please try again...)
  910. secpause(1)
  911. flushout
  912. if (&s)=(5) then goto (reading)
  913. *abb
  914. if (&z)=(0) then goto (brmail)
  915. goto (endmr)
  916.  
  917. *nope
  918. if (%ARESP%)=(ERROR) then goto (next)
  919. if (%ARESP%)=(DELETED) then goto (next)
  920. enufsec(100)
  921. iftrue (goto (banyway))
  922. goto (next)
  923.  
  924. *endmr
  925. say(&11&&CR& ══ &14&No more mail found for you to read, %FNAME%&11& ══&CR&)
  926. enter
  927. Return
  928. DOWNATTCTL└setactivity(Downloading Files)
  929.  
  930.         *pickprot
  931. display (display\dnPROTS1)
  932. MenuAsk (&3&Which transfer protocol would you like to use?&12&: &15&*)
  933. if (%RESP%)=(Q) then goto (aborted)
  934. len(%RESP%)
  935. notif (%ARESP%)=(1) then goto (Pprob) ;no batch protocols allowed...
  936. seek(protocol\%RESP%-Ad.BT)
  937. iftrue (goto (Pok))
  938.  
  939.         *pprob
  940. loadsub(control\macros\badsel.ctl)
  941. goto (pickprot)
  942.  
  943.         *Pok
  944. setequal(r=%RESP%)
  945. setequal(x=%MSGATTNAME%)
  946. size(%ATTPAT%%var%x)
  947. ttime(%ARESP%)
  948. cmpval(%TTIM%,/:LEFT/)
  949. if (%ARESP%)=(No) then goto (notenuftime)
  950. say(&11&)
  951. say(We're ready to send the file.  Please start receiving now.)
  952. fixfile(protocol\%var%r-ad.bt,protocol\%var%r-ad.bat)
  953. exec(protocol\%var%r-ad.BAT│)
  954. kill(protocol\%var%r-ad.bat)
  955.  
  956.         *success
  957. notif (%ARESP%)=(0) then goto (aborted)
  958. log(--,Attach downloaded (%var%x))
  959. inpline(varr.%NODE%,1)  ;restore var :r
  960. setequal(r=%ARESP%)
  961. display(display\attsucc1)
  962. Return
  963.  
  964.         *notenuftime
  965. display(display\NODLTIME)
  966. inpline(varr.%NODE%,1)
  967. setequal(r=%ARESP%)
  968. Return
  969.  
  970.         *aborted
  971. log(--,Attach download aborted (%var%x))
  972. setequal(x=)
  973. flushout
  974. inpline(varr.%NODE%,1)
  975. setequal(r=%ARESP%)
  976. display(display\attabt1)
  977. Return
  978. UEDIT3CTLα*StUEdit3
  979.  
  980. *ClearInfoBox
  981.  AnsiGoto (2,15);
  982.  Say (      *)
  983.  AnsiGoto (30,15);
  984.  Say (              *)
  985.  AnsiGoto (2,16);
  986.  Say (              *)
  987.  AnsiGoto (30,16);
  988.  Say (         *)
  989.  AnsiGoto (2,17);
  990.  Say (            *)
  991.  AnsiGoto (30,17);
  992.  Say (             *)
  993.  AnsiGoto (2,18);
  994.  Say (                *)
  995.  AnsiGoto (30,18);
  996.  Say (         *)
  997.  AnsiGoto (30,19);
  998.  Say (               *)
  999.  AnsiGoto (30,20);
  1000.  Say (                  *)
  1001.  
  1002. AnsiGoto (20,17)
  1003. MenuAsk (&15&Enter Name to Search For: &2&*)
  1004. SetEqual (v=%RESP%)
  1005. AnsiGoto (20,17)
  1006. Say (&12&      Searching....                         *)
  1007. AnsiGoto (39,17)
  1008. SetEqual (y=%var%z)
  1009. ;Stores the number of the user record you are currently viewing in
  1010. ;%var%y so that the editor can go back to that user when you are done
  1011. ;searching.
  1012.  
  1013. *FindIt
  1014. SeekUser (%var%v)
  1015. ifnottrue(goto (notfound))
  1016. SetEqual (z=%NDNUMB%)
  1017. Loadmem(control\uedit.ctl,goto(clearinfo))
  1018.  
  1019. *NotFound
  1020.  AnsiGoto (20,17)
  1021.  Say (&12&%var%v could not be found in the userfile.*)
  1022.  SecPause (2) ;Pauses for 2 seconds
  1023.  AnsiGoto (20,17)
  1024.  Say (&12&                                                   *)
  1025.  SetEqual (z=%var%y)
  1026. ;Sets the current user record number to %var%y, what it was before the user
  1027. ;started searching.
  1028.  SetEqual (m=0)
  1029.  Loadmem (control\uedit.ctl,goto(clearinfo))
  1030. ;Loads into memory the control file CONTROL\UEDIT.CTL and goes to the label *clearinfo.
  1031.  
  1032. *Found
  1033.  SetEqual (m=1) ;DO ask if you want to continue searching.
  1034.  SetEqual (z=%var%z)
  1035.  Loadmem (control\uedit.ctl,goto(clearinfo))
  1036.  
  1037. *Another
  1038.  AnsiGoto (20,17)
  1039.  YesNoAsk(&15&Continue Search? *)
  1040.  If (%RESP%)=(Yes) then goto (FindIt)
  1041.  SetEqual (m=0)
  1042. Loadmem (control\uedit.ctl,goto(clearinfo));Do NOT ask if you want to continue searching.
  1043. ENTERATTCTLσSay(&14&Calculating free storage space...*)
  1044. Zap(varr.%NODE%,%var%r)
  1045. ClearMem
  1046. FreeSpace(%CDRIVE%:)
  1047. setequal(l=%aresp%)
  1048. CmpVal(%ARESP%,%MINSPACE%)
  1049. IfTrue (Goto (notenufs))
  1050. eline(38)
  1051.  
  1052.   *pickprot
  1053. Display (display\upPROTS1)
  1054. MenuAsk (&3&Which transfer protocol would you like to use?&12&: &15&*)
  1055. If (%RESP%)=(Q) Then Return
  1056. Len(%RESP%)
  1057. NotIf (%ARESP%)=(1) Then Goto (Pprob)
  1058. Seek(protocol\%RESP%-AU.BT)
  1059. IfTrue (Goto (Pok))
  1060.  
  1061.   *pprob
  1062. loadsub(control\macros\badsel.ctl)
  1063. Goto (pickprot)
  1064.  
  1065.    *Pok
  1066. addcomma(%var%l)
  1067. Say(&CR&&11&%ARESP% &15&bytes free.)
  1068. SetEqual(r=%RESP%)
  1069. cMenuAsk%cron% (&CR&&3&Please enter the &11&name &3&of the file to attach&12&:&15& *)
  1070. If (%RESP%)=(<CR>) Then Return
  1071. SetEqual(x=%RESP%)
  1072. Seek(%ATTPAT%%var%x)
  1073. IfTrue (Goto (alreadyhere))
  1074. Say(&CR&&11&We're ready to receive the file.  Please start sending now.)
  1075. If (%BAUD%)=(LOCAL) Then Goto (locul)
  1076. FixFile(protocol\%var%r-au.bt,protocol\%var%r-au.bat)
  1077. Exec(protocol\%var%r-au.BAT│)
  1078. Kill(protocol\%var%r-au.bat)
  1079. Goto (success)
  1080.  
  1081.   *locul
  1082. MenuAsk (&3&Please enter the &10&path&3& for this file&12&: &15&*)
  1083. fCopy(%RESP%\%var%x,%ATTPAT%%var%x)
  1084. Goto (success)
  1085.  
  1086.   *success
  1087. NotIf (%ARESP%)=(0) Then Goto (aborted)
  1088. Log(--,Attach uploaded (%var%x))
  1089. Display(display\attsucc)
  1090. return
  1091.  
  1092.   *notenufs
  1093. display(display\nospce)
  1094. Return
  1095.         
  1096.   *aborted
  1097. SetEqual(x=)
  1098. FlushOut
  1099. Log(--,Attach upload aborted (%var%x))
  1100. Display(display\attabt)
  1101. Return
  1102.         
  1103.   *alreadyhere
  1104. Display (display\HERENOW)
  1105. Goto (pok)
  1106. HSLINKCTLflushout
  1107. exec(adir hstemp%NODE%\*.* >hslst.%NODE%)
  1108. inpclose
  1109. inpopen(hslst.%NODE%)
  1110.  
  1111.   setequal(t=0)
  1112.   linefeed(1)
  1113.   setequal(a=/:UPLOADS/)
  1114.   clearmem
  1115.   setequal(c=0)
  1116.  
  1117. *stcalc
  1118.   inpread
  1119.   setequal(d=%ARESP%)
  1120.   iseek(%var%d)
  1121.   iftrue(goto (nfile))
  1122.   if (&D)=() then goto (Nfile)
  1123.   fcopy(hstemp%NODE%\%var%d,files\uploads\%var%d)
  1124.   size(files\uploads\%var%d)
  1125.   addvar(%var%t+%ARESP%=t)
  1126.   cnvtk(%ARESP%)
  1127.   addvar(%ARESP%+/:KUP/=o)
  1128.   setequal(/KUP=%var%o)
  1129.   multvar(%var%c*3=y)
  1130.   say(&7&&CR&%var%d&CR&)
  1131.   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----))
  1132.   resetwrap
  1133.   clearmem
  1134.   wrapask %MIN1%%LEN40%(&3&1&12&: &15&*)
  1135.   setequal(^1=%RESP%)
  1136.   wrapask %LEN40%%CRON%(&3&2&12&: &15&*)
  1137.   if (%RESP%)=(<CR>) then goto (nomore)
  1138.   setequal(^2=%RESP%)
  1139.   ask %LEN39%(&3&3&12&: &15&*)
  1140.   setequal(^3=%RESP%)
  1141.   *nomore
  1142.   file(files\uploads\,%var%d,3)
  1143.   log(--,%var%d Uploaded (HSLINK).)
  1144.   appendto(logs\UPLOAD.%NODE%,%var%d uploaded at %TIME% on %DATE% by %NAME%.)
  1145.   inc(c)
  1146.   *nfile
  1147.   kill(hstemp%NODE%\%var%d)
  1148.   fendif(donecalc)
  1149.   goto (stcalc)
  1150.  
  1151. *donecalc
  1152.   inpclose
  1153.   inc(c)
  1154.   say(%BEEP%)
  1155.   multvar(%XMIN%*60=o)
  1156.   divvar(%var%t/%var%o=g)
  1157.   setequal(/UPLOADS=%var%a)
  1158. return
  1159. NEWUSERCTL say(&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.)
  1160. setactivity(New-user Logon...)
  1161. log(==,New User (%var%D) Registering...)
  1162. setequal(>NAME=%var%D)
  1163. setequal(>LAST=%DATE%)
  1164. setequal(>LASTCHK=%DATE%)
  1165. setequal(t=0)
  1166.  
  1167.         *street
  1168. ask %MIN1%(&CR&&3&Please enter your &11&street&3& address&12&: &15&*)
  1169. setequal(>STREET=%RESP%)
  1170.  
  1171.         *city
  1172. ask %MIN1%%LEN40%(&CR&&3&Please enter the &11&City, State&3& that you're calling from&12&: &15&*)
  1173. setequal(/FROM=%RESP%)
  1174. setequal(>FROM=%RESP%)
  1175. if (/from)=(>street) then goto (fake)
  1176.  
  1177. display(display\password)
  1178. update
  1179.  
  1180.         *PASS
  1181. say (&3&Enter the password you would like&12&: &15&*)
  1182. cgetpass%MIN2%(.)
  1183. menuequal(a=%name%)
  1184. if (%resp%)=(&a) then goto (bp)
  1185. menuequal(a=%fname%)
  1186. if (&a)=(%resp%) then goto (bp)
  1187. menuequal(a=%lname%)
  1188. if (&a)=(%resp%) then goto (bp)
  1189. setequal(>PASS=%RESP%)
  1190. setequal(k=%RESP%)
  1191. say(&CR&&3&Please enter the password again for verification&12&: &15&*)
  1192. cgetpass%MIN2%(.)
  1193. notif (%RESP%) = (&k) then goto (badpass)
  1194.  
  1195. say(&CR&&3&Please enter your &11&home &3&phone number in the format shown.&15&)
  1196. picture(###-###-####)
  1197. repeating(%resp%)
  1198. iftrue(goto (fake))
  1199. setequal(>PHONE=%RESP%)
  1200. setequal(/PHONE=%Resp%)
  1201. ask (&CR&&3&If you have a &11&work &3&phone number, please enter it now&12&: &15&*)
  1202. setequal(>WORK=%RESP%)
  1203. say(&CR&&3&Please enter your &11&birthdate &3&in the format (MM/DD/YY) shown.&15&)
  1204. update
  1205. picture(##-##-##)
  1206. repeating(%resp%)
  1207. iftrue(goto (fake))
  1208. dateok(%resp%)
  1209. ifnottrue(goto (fake))
  1210. setequal(>BIRTH=%RESP%)
  1211.  
  1212. display (display\defprots)
  1213. setequal(/birth=%resp%)
  1214. menuask(&3&Which protocol would you like &11&(or N for None)?%hRed%: &15&*)
  1215. setequal(/protocol=%RESP%)
  1216.  
  1217. display(display\comps)
  1218. ask %MIN1%(&3&What type of computer do you have?&12&: &15&*)
  1219. setequal(>COMP=%RESP%)
  1220. setequal(>WAIT=N)
  1221. display(display\length)
  1222. menuask %MIN1%(&CR&&3&Please enter the length of your screen &11&(24 Recommended)&12&: &15&*)
  1223. setequal(>FIRST=%DATE%)
  1224. setequal(>SCREENLEN=%RESP%)
  1225. setequal(>LEFT=%NEWTIME%)
  1226. setequal(>SEC=%NEWSEC%)
  1227. seekfile(phones.dat,/:phone/)
  1228. iftrue(loadmem (control\dphone.ctl))
  1229. say(&CR&&11&Please wait while your records are created...*)
  1230. findsp ;find space for user...
  1231. setequal(a=%aresp%)
  1232. saveuser(%var%a)
  1233. appendto(userfile.ndx,%var%D│\:PASS\│\:FROM\│%var%a│0)
  1234. say( |)
  1235. eline(55)
  1236. appendto(phones.dat,\:phone\)
  1237. seekuser(%var%D)
  1238. loadmem(control\open.ctl,goto (connect))
  1239.  
  1240.         *BADPASS
  1241. say(&CR&&12&The passwords did not match.  Please try again...&CR&)
  1242. goto (pass)
  1243.  
  1244. *fake
  1245. appendto(badnames.bbs,%name%)
  1246. log(--,User attempted log on with false info)
  1247. quitbbs
  1248.  
  1249. *inv
  1250. inc(t)
  1251. if (&t)=(2) then goto (fake)
  1252. goto(city)
  1253.  
  1254. *bp
  1255. say (&CR&&12&Please enter a more unique, hard to guess password.&CR&)
  1256. goto (pass)
  1257. VIEWBCTL▒say(&CR&&3&Would you like to view the &11&bulletins menu&3&? &9&[   ]&14&*)
  1258. back(4)
  1259. yesnoask(*)
  1260. if (%RESP%)=(No) then loadmem(control\main.mnu)
  1261. loadmem(control\bullet.mnu)
  1262. BIRTHCTL?Display (display\b-day)  ;show birthday screen
  1263. Enter
  1264. Return
  1265. OPENCTLçjump(InitSetup)                            ;Init variables, Del temp files, etc
  1266.  
  1267.  DetectAnsi()                               ;checking for ansi graphics...
  1268.  IfTrue(Setequal(/graphics=ANSI) )
  1269.  IfTrue(Say(&14& Ansi Detected) )
  1270.  IfNotTrue(Say ( No Ansi Detected) )
  1271.  Say (&CR&&3&Would you like ANSI/Color graphics? &9&[   ]&14&*)
  1272.  Back(4)
  1273.  YesNoAsk (*)
  1274.  SetEqual (/Graphics=ASCII)
  1275.  If (%RESP%)=(Yes) then SetEqual (/Graphics=ANSI)
  1276.  Display (display\WELCOME)                  ;Display welcome screen
  1277.  
  1278. setequal(t=0)
  1279.  
  1280. *CONT
  1281. inc(t)
  1282. if (&t)=(5) then loadmem(control\no.ctl)
  1283.  
  1284.  MenuAsk%MIN1% (&CR&&3&Please enter your first name here&12&: &15&*)
  1285.  SetEqual (a=%RESP%)
  1286.  Find (%var%a, )                             ;if space then it's a full name
  1287.  NotIf (%ARESP%)=(0) then Goto (Check)
  1288.  MenuAsk (&3& Please enter your last name here&12&: &15&*)
  1289.  SetEqual (b=%RESP%)
  1290.  
  1291. *CHECK
  1292.  NameSplit (%var%a,a,b)
  1293.  NameComb (%var%a,%var%b,d)
  1294.  Namequal (/name=%var%d)
  1295.  nameok
  1296.  ifnottrue(goto (cont))
  1297.  SetEqual (d=%NAME%)
  1298.   
  1299. *STSEEK
  1300.  SeekUser (%NAME%)
  1301.  IfNotTrue( Goto (NotFound) )
  1302.  If (%NDLOCK%) = (1) then Loadmem(control\lockout.ctl)
  1303.  Say (&CR&&3&Are you the "%NDNAME%" from "%NDFROM%"? &9&[   ]&14&*)
  1304.  Back(4)
  1305.  YesNoAsk()
  1306.  If (%RESP%)=(No) then Goto (dupname)
  1307.  MenuEqual (e=%NDPASS%)
  1308.  Say (&CR&Dots will echo instead of actual letters of your password.)
  1309.  SetEqual (f=0)
  1310.  
  1311. *PASSWORD
  1312.   DO
  1313.  Say (&3&What is your password?&11& (&F&20)&15&*)
  1314.  Back(21)
  1315.  cGetPass%MIN1%%LEN20% (.)                  ;get password, echo periods.
  1316.  If (%RESP%) = (&e) then Goto (Ok)
  1317.  inc(f)
  1318.  Log (--,(%NAME%) Password (%RESP%) incorrect...)
  1319.  If (&f) = (3) then Goto (lasttry)
  1320.  If (&f) = (4) then Goto (badpass)
  1321.  Say(&CR&&12&%beep%Password incorrect. Try again please...&CR&)
  1322.   LOOP
  1323.  
  1324. *LASTTRY
  1325.  Say (&CR&&12&This is your last try! Next time you will be logged off!&CR&)
  1326.  LOOP
  1327.  
  1328. *NOTFOUND
  1329.  badseek(%NAME%)
  1330.  iftrue (loadmem(control\badname.ctl))
  1331.  Say (&CR&%BEEP%We couldn't find "%NAME%" in our user file.)
  1332.  Say (&CR&&3&Did you spell your name correctly? &9&[   ]&14&*)
  1333.  Back(4)
  1334.  flushout
  1335.  YesNoAsk ()
  1336.  If (%RESP%)=(No) then Goto (TryAgain)
  1337.  Display (display\NONMEMB)
  1338.  Say (&CR&&3&Would you like to become a member of %BBS%? &9&[   ]&14&*)
  1339.  Back(4)
  1340.  YesNoAsk ()
  1341.  If (%RESP%)=(No) then loadmem (control\refused.ctl)
  1342.  LoadMem (control\newuser.ctl)
  1343.  
  1344. *TRYAGAIN
  1345.  Say (&CR&&12&Try again ...)
  1346.  Log (--,Attempted logon as %NAME%)
  1347.  Goto (Cont)
  1348.  
  1349. *DUPNAME
  1350.  Display (display\DUPE)
  1351.  Goto (Cont)
  1352.  
  1353. *BADPASS
  1354.  LoadMem(control\badpass.ctl)
  1355.   
  1356. *OK
  1357.  SetActivity (Logging On...)
  1358.  Goto (Connect)                             ;password's OK so let them in...
  1359.  
  1360. *CONNECT
  1361.  UserLogin(%NDNUMB%,User %NDNUMB%: %NDNAME% Logged On (%BAUD%))
  1362.  If (%ARESP%)=(ALREADY ON) then Goto (alreadyon)
  1363.  If (/SEC)=(%SYSSEC%) then Goto (syssec)
  1364.  
  1365. *CONCLR
  1366.  ClearScr
  1367.  selarea(/:lastmsg/)
  1368.  listfile(areas\farea/:lastmsg/)
  1369.  Log(->,Call #%CALLERS%, %GRAPHICS%, %NDFROM%, Last: /:LAST/, Sec: /:SEC/)
  1370.  If (/SUB)=(Y) then Goto (subscriber)
  1371.  
  1372. *SECSHOW
  1373.  InpClose
  1374.  Display (display\sec/:SEC/)
  1375.  fDate(display\newsltr.asc)
  1376.  CmpDate(/:LAST/,%ARESP%)
  1377.  IfNotTrue( display (display\newnews))
  1378.  Say(&3&Would you like to view our newsletter? &9&[   ]&14&*)
  1379.  Back(4)
  1380.  YesNoAsk()
  1381.  If (%RESP%) = (No) then Goto (mailchk)
  1382.  Log(--,Viewed Newsletter)
  1383.  Display(display\NEWSLTR)
  1384.  linefeed(1)
  1385.  Enter
  1386.  
  1387. *MAILCHK
  1388.  cmpval(/:lastdown/,%maxfarea%)
  1389.  ifnottrue(setequal(/lastdown=1))
  1390.  selfarea(/:lastdown/)
  1391.  ClearScr
  1392.  NiceDate(/:LAST/)
  1393.  Say(&11&Here's some information about your status here at %BBS%:&CR&&7&)
  1394.  Say(You last called on %ARESP%.&CR&Your security level is currently %SEC%.&CR&You've been on %BBS% /:TIMESON/ times.&CR&You are currently using %GRAPHICS% screen graphics.)
  1395.  If (/LASTCHK)=(00-00-00) then goto (nochk)
  1396.  NiceDate(/:LASTCHK/)
  1397.  Say(You last checked for new files on %ARESP%.)
  1398.  
  1399. *BAKN
  1400.  NiceDate(/:FIRST/)
  1401.  Say(Your first call to %BBS% was on %ARESP%.&CR&You are given %LIMIT% minutes each day.&CR&&CR&&11&Here's some interesting information about %BBS%:)
  1402.  NiceDate(%SINCE%)
  1403.  Say(&CR&%White%%BBS% has been up since %ARESP%.&CR&This BBS has received %CALLERS% callers.&CR&This BBS is currently running Powerboard Ver. %VER%.&CR&)
  1404.  CmpDate(/:LAST/,%FILUP%)
  1405.  IfNotTrue(Say(New files have been added to the file area!))
  1406.  CmpDate(/:LAST/,%MSGUP%)
  1407.  IfNotTrue( Say(There are new messages in the message section!))
  1408.  linefeed(1)
  1409.  Enter
  1410.  If (/WAIT)=(N) then LoadMem(control\BULLETS.CTL)
  1411.  ClearScr
  1412.  SetNotFoundMS( )
  1413.  LoadMem(control\mscan.ctl)
  1414.  
  1415. *SUBSCRIBER
  1416.  DateOK(/:SUBDATE/)
  1417.  IfNotTrue (goto (secshow))
  1418.  CmpDate(%DATE%,/:SUBDATE/)
  1419.  IfNotTrue(goto (sok))
  1420.  Display (display\SEXP/:SEC/)
  1421.  InpOpen (sub.bbs)
  1422.  
  1423. *STRSUB
  1424.  fEndIF(secshow)
  1425.  InpRead
  1426.  SetEqual(b=%ARESP%)
  1427.  SetEqual(a=%var%b)
  1428.  Len(%var%a)
  1429.  If (%ARESP%)=(0) then Goto (strsub)
  1430.  Get(%var%a,1,1)
  1431.  If (%ARESP%)=(;) then Goto (strsub)
  1432.  Find(%var%b,,)
  1433.  If (%ARESP%)=(0) then Goto (strsub)
  1434.  SetEqual(a=%var%b)
  1435.  SetEqual(c=%ARESP%)
  1436.  AddVar(&c+-1=c)
  1437.  Get(%var%a,1,%var%c)
  1438.  NotIF (%ARESP%)=(/SEC) then Goto (strsub)
  1439.  AddVar(&c+2=c)
  1440.  Get(%var%b,%var%c,10)
  1441.  SetEqual (/SEC=%ARESP%)
  1442.  SetEqual (/SUB=N)
  1443.  Log(--,User's subscription expired.)
  1444.  Goto (secshow)
  1445.  
  1446. *SOK
  1447.  Display(display\SUB/:SEC/)
  1448.  Enter
  1449.  Goto (secshow)
  1450.  
  1451. *ALREADYON
  1452.  Display(display\ALREADY)
  1453.  Log(<<,User already on other node!)
  1454.  QuitBBS
  1455.  
  1456. *CHKEOF2
  1457.  inc(h)
  1458.  Goto (chkeof)
  1459.  
  1460. *SYSOP
  1461.  DefPause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  1462.  DefPif (s:stop,n:nonstop)
  1463.  Kill (cnodes.%NODE%,inodes.%NODE%,tagged.%NODE%,tagged2.%NODE%)
  1464.  SetActivity (SYSOP Logon)
  1465.  Setequal(/Graphics=ANSI)
  1466.  UserLogin(1,SYSTEM OPERATOR Logged On Locally)
  1467.  Log (->,Call %%CALLERS%, %GRAPHICS%, Last: /:LAST/)
  1468.  Goto (secshow)
  1469.  
  1470. *SYSSEC
  1471.  If (%SYSP%)=() then Goto (conclr)
  1472.  Say(&3&Sysop Password?&12&: &15&*)
  1473.  MenuEqual(a=%SYSP%)
  1474.  cGetPass(*)
  1475.  If (%RESP%)=(&a) then goto (conclr)
  1476.  Log(!!,Incorrect Sysop Pass (%RESP%)
  1477.  Say(&12&Incorrect Attempt!)
  1478.  QuitBBS
  1479.  
  1480. *NOCHK
  1481.  Say(You haven't checked for new files in our file area yet!)
  1482.  Goto (bakn)
  1483.  
  1484. *INITSETUP
  1485.  Defpause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  1486.  DefPif (s:stop,n:nonstop)
  1487.  if (%ON%)=(FROM DOOR) then loadmem(control\doorback.ctl)
  1488.  SetEqual (/sec=%NEWSEC%)
  1489.  SetEqual (/SCREENLEN=23)
  1490.  SetActivity (Logging in...)
  1491.  linefeed(1)
  1492.  %Clogin% Kill (cnodes.%NODE%,inodes.%NODE%,tagged.%NODE%,tagged2.%NODE%,psys.%node%)
  1493. ret
  1494. UEDIT2CTLï*StUEdit2
  1495.  
  1496. *Selection
  1497.  Numbusers
  1498.  SetEqual (j=%ARESP%)
  1499.  If (&f)=(1) then goto (Edit) ;%var%f is the user's selection from the main menu.
  1500.  If (&f)=(5) then loadmem(control\uedit3.ctl,goto(stUedit3))
  1501.  If (&f)=(6) then goto (quit)
  1502.  LoadMem(control\uedit.ctl,goto(badsel))
  1503.  
  1504. *ClearInfo
  1505.  AnsiGoto (11,1)
  1506.  Say (                             *)
  1507.  AnsiGoto (11,2)
  1508.  Say (                             *)
  1509.  AnsiGoto (11,3)
  1510.  Say (                        )
  1511.  AnsiGoto (11,4)
  1512.  Say (               *)
  1513.  AnsiGoto (11,5)
  1514.  Say (    *)
  1515.  AnsiGoto (11,6)
  1516.  Say (                    *)
  1517.  AnsiGoto (11,7)
  1518.  Say (     *)
  1519.  AnsiGoto (11,8)
  1520.  Say (                              *)
  1521.  AnsiGoto (11,9)
  1522.  Say (     *)
  1523.  AnsiGoto (11,10)
  1524.  Say (     *)
  1525.  AnsiGoto (11,11)
  1526.  Say (     *)
  1527.  AnsiGoto (11,12)
  1528.  Say (     *)
  1529.  AnsiGoto (51,1)
  1530.  Say (        *)
  1531.  AnsiGoto (51,2)
  1532.  Say (     *)
  1533.  AnsiGoto (51,3)
  1534.  Say (                    *)
  1535.  AnsiGoto (51,4)
  1536.  Say (     *)
  1537.  AnsiGoto (51,5)
  1538.  Say (               *)
  1539.  AnsiGoto (51,6)
  1540.  Say (  *)
  1541.  AnsiGoto (51,7)
  1542.  Say (        *)
  1543.  AnsiGoto (51,9)
  1544.  Say (  *)
  1545.  LoadUser (%var%z)
  1546.  SetEqual (x=0)
  1547.  LoadMem (Control\uedit.ctl,goto(putinfo))
  1548.  
  1549. *Edit
  1550.  If (&w)=(1) then goto (GetInput)
  1551.  AnsiGoto (2,15);
  1552.  Say (      *)
  1553.  AnsiGoto (30,15);
  1554.  Say (              *)
  1555.  AnsiGoto (2,16);
  1556.  Say (              *)
  1557.  AnsiGoto (30,16);
  1558.  Say (         *)
  1559.  AnsiGoto (2,17);
  1560.  Say (            *)
  1561.  AnsiGoto (30,17);
  1562.  Say (             *)
  1563.  AnsiGoto (2,18);
  1564.  Say (                *)
  1565.  AnsiGoto (30,18);
  1566.  Say (         *)
  1567.  AnsiGoto (30,19);
  1568.  Say (               *)
  1569.  AnsiGoto (30,20);
  1570.  Say (                  *)
  1571.  AnsiGoto (1,1);
  1572.  Say (&15&N&7&ame)
  1573.  Say (&15&S&7&treet)
  1574.  Say (&15&F&7&rom)
  1575.  Say (&7&P&15&h&7&one)
  1576.  Say (&7&Se&15&c)
  1577.  Say (&15&P&7&asswd)
  1578.  Say (&15&T&7&imeLeft)
  1579.  Say (&15&M&7&emo)
  1580.  Say (&15&D&7&ownlds)
  1581.  Say (&15&U&7&ploads)
  1582.  Say (&15&K&7&Dled)
  1583.  Say (&7&KU&15&l&7&ed*)
  1584.  AnsiGoto (40,1);
  1585.  Say (&15&B&7&irthdate*)
  1586.  AnsiGoto (41,2);
  1587.  Say (&7&Times &15&O&7&n*)
  1588.  AnsiGoto (35,3);
  1589.  Say (&7&Compute&15&r&7& Using*)
  1590.  AnsiGoto (36,4);
  1591.  Say (&7&C&15&a&7&rrier Drops*)
  1592.  AnsiGoto (39,5);
  1593.  Say (&15&W&7&ork Phone*)
  1594.  AnsiGoto (39,6);
  1595.  Say (&7&Subscr&15&i&7&ber*)
  1596.  AnsiGoto (37,7);
  1597.  Say (&7&Sub Date E&15&x&7&p*)
  1598.  AnsiGoto (35,9);
  1599.  Say (&7&A&15&v&7&ail For Chat*)
  1600. *GetInput
  1601.  AnsiGoto (20,17)
  1602.  Say ($0$&12&Select Category to Modify (Q to Quit): &15&*)
  1603.  Menukey
  1604.  BigNiceSay (N:Name,S:Street,F:From,H:Phone,C:Sec,P:Passwd,T:TimeLeft)
  1605.  BigNiceSay (M:Memo,D:Downlds,U:Uploads,K:KDled,L:KUled,B:Birthdate,O:Times On)
  1606.  BigNiceSay (R:Comp Using,A:Carrier Drops,W:Work Phone,I:Subscriber,X:SubDate Exp,Q:Quit)
  1607.  AnsiGoto (20,17)
  1608.  Say (                                                  *)
  1609.  BigIf (N:ChgName,S:ChgSt,F:ChgFrom,H:ChgPhone,C:ChgSec,P:ChgPass,T:ChgTL,M:ChgMemo,D:ChgDls,U:ChgUls,K:ChgDlk,L:ChgUlk,B:ChgBday)
  1610.  BigIf (Q:NoMore)
  1611.  BigLoad (O:control\uedit4.ctl,R:control\uedit4.ctl,A:control\uedit4.ctl,W:control\uedit4.ctl,I:control\uedit4.ctl,X:control\uedit4.ctl,Q:control\uedit4.ctl,v:control\uedit4.ctl)
  1612.  LoadMem (Control\uedit.ctl,goto(badsel))
  1613.  
  1614. *NoMore
  1615.  SaveUser (%var%z)
  1616.  SetEqual (e=0) ;Set it so that the user is flagged as NOT editing a user record. 
  1617.  SetEqual (w=0)
  1618.  Loadmem (control\uedit.ctl,goto(moreedit))
  1619.  
  1620. *ChgName
  1621.  AnsiGoto (24,17)
  1622.  Say (&15&Enter New Name :                   &2&*)
  1623.  AnsiGoto (41,17)
  1624.  Ask (*)
  1625.  SetEqual (>NAME=%RESP%)
  1626.  SetEqual (e=1)
  1627.  SetEqual (w=1)
  1628.  SaveUser (%var%z)
  1629.  Goto (ClearInfo)
  1630.  
  1631. *ChgSt
  1632.  AnsiGoto (20,17)
  1633.  Say (&15&Enter New Street:                  &2&*)
  1634.  AnsiGoto (38,17)
  1635.  Ask (*)
  1636.  SetEqual (>STREET=%RESP%)
  1637.  SetEqual (e=1) ;Set it so that the user IS flagged as editing a user.
  1638.  SetEqual (w=1)
  1639.  SaveUser (%var%z)
  1640.  Goto (ClearInfo)
  1641.  
  1642. *ChgFrom
  1643.  AnsiGoto (19,17)
  1644.  Say (&15&Enter New User From :              &2&*)
  1645.  AnsiGoto (41,17)
  1646.  Ask (*)
  1647.  SetEqual (>FROM=%RESP%)
  1648.  SetEqual (e=1)
  1649.  SetEqual (w=1)
  1650.  SaveUser (%var%z)
  1651.  Goto (ClearInfo)
  1652.  
  1653. *ChgPhone
  1654.  AnsiGoto (25,16)
  1655.  Say (&15&Enter New Phone Number :           &2&)
  1656.  AnsiGoto (29,17);
  1657.  Picture(###-###-####)
  1658.  setequal(>PHONE=%RESP%)
  1659.  SetEqual (e=1) 
  1660.  SetEqual (w=1)
  1661.  SaveUser (%var%z)
  1662.  Goto (ClearInfo)
  1663.  
  1664. *ChgSec
  1665.  AnsiGoto (24,17)
  1666.  Ask (&15&Enter New Security: &2&*)
  1667.  Number (%RESP%)
  1668.  IfNotTrue(goto (badsec))
  1669.  SetEqual (>SEC=%RESP%)
  1670.  SetEqual (e=1)
  1671.  SetEqual (w=1)
  1672.  SaveUser (%var%z)
  1673.  Goto (ClearInfo)
  1674.  
  1675. *badsec
  1676.  AnsiGoto (20,17)
  1677.  Say (                                                  *)
  1678.  AnsiGoto (25,17)
  1679.  Say (&4&Bad Security-- Not a Number.*)
  1680.  SecPause (2)
  1681.  AnsiGoto (20,17)
  1682.  Say (                                                  *)
  1683.  Goto (ChgSec)
  1684.  
  1685. *ChgComp
  1686.  AnsiGoto (20,17)
  1687.  Ask (&15&Enter New Computer Using: &2&*)
  1688.  SetEqual (>COMP=%RESP%)
  1689.  SetEqual (e=1)
  1690.  SetEqual (w=1)
  1691.  SaveUser (%var%z)
  1692.  Goto (ClearInfo)
  1693.  
  1694. *ChgTL
  1695.  AnsiGoto (24,17)
  1696.  Ask (&15&Enter New Time Left: &2&*)
  1697.  Number (%RESP%)
  1698.  IfNotTrue (goto (badtl))
  1699.  SetEqual (>LEFT=%RESP%)
  1700.  SetEqual (e=1)
  1701.  SetEqual (w=1)
  1702.  SaveUser (%var%z)
  1703.  Goto (ClearInfo)
  1704.  
  1705. *badtl
  1706.  AnsiGoto (20,17)
  1707.  Say (                                                  *)
  1708.  AnsiGoto (20,17)
  1709.  Say (&4&Bad Time Left Value-- Not a Number.*)
  1710.  SecPause (2)
  1711.  AnsiGoto (20,17)
  1712.  Say (                                                  *)
  1713.  Goto (ChgTL)
  1714.  
  1715. *ChgPass
  1716.  AnsiGoto (24,17)
  1717.  Ask (&15&Enter New Password: &2&*)
  1718.  SetEqual (>PASS=%RESP%)
  1719.  SetEqual (e=1)
  1720.  SetEqual (w=1)
  1721.  SaveUser (%var%z)
  1722.  Goto (ClearInfo)
  1723.  
  1724. *ChgMemo
  1725.  AnsiGoto (20,17);
  1726.  Ask (&15&Enter New Memo: &2&*)
  1727.  SetEqual (>MEMO=%RESP%)
  1728.  SetEqual (e=1)
  1729.  SetEqual (w=1)
  1730.  SaveUser (%var%z)
  1731.  Goto (ClearInfo)
  1732.  
  1733. *ChgDls
  1734.  AnsiGoto (20,17)
  1735.  Ask (&15&Enter New Number of Downloads: &2&*)
  1736.  Number (%RESP%)
  1737.  IfNotTrue (goto (baddls))
  1738.  SetEqual (>DOWNLOADS=%RESP%)
  1739.  SetEqual (e=1)
  1740.  SetEqual (w=1)
  1741.  SaveUser (%var%z)
  1742.  Goto (ClearInfo)
  1743.  
  1744. *baddls
  1745.  AnsiGoto (20,17)
  1746.  Say (                                                  *)
  1747.  AnsiGoto (20,17);
  1748.  Say (&4&Bad Number of Downloads-- Not a Number.*)
  1749.  SecPause (2)
  1750.  AnsiGoto (20,17)
  1751.  Say (                                                  *)
  1752.  Goto (ChgDls)
  1753.  
  1754. *ChgUls
  1755.  AnsiGoto (20,17)
  1756.  Ask (&15&Enter New Number of Uploads: &2&*)
  1757.  Number (%RESP%)
  1758.  IfNotTrue (goto (baduls))
  1759.  SetEqual (>UPLOADS=%RESP%)
  1760.  SetEqual (e=1)
  1761.  SetEqual (w=1)
  1762.  SaveUser (%var%z)
  1763.  Goto (ClearInfo)
  1764.  
  1765. *baduls
  1766.  AnsiGoto (20,17)
  1767.  Say (                                                  *)
  1768.  AnsiGoto (20,17)
  1769.  Say (&4&Bad Number of Uploads-- Not a Number.*)
  1770.  SecPause (2)
  1771.  AnsiGoto (20,17)
  1772.  Say (                                                  *)
  1773.  Goto (ChgUls)
  1774.  
  1775. *ChgDlK
  1776.  AnsiGoto (21,17)
  1777.  Ask (&15&Enter New Download K: &2&*)
  1778.  Number (%RESP%)
  1779.  IfNotTrue (goto (baddlk))
  1780.  SetEqual (>KDOWN=%RESP%)
  1781.  SetEqual (e=1)
  1782.  SetEqual (w=1)
  1783.  SaveUser (%var%z)
  1784.  Goto (ClearInfo)
  1785.  
  1786. *baddlk
  1787.  AnsiGoto (20,17)
  1788.  Say (                                                  *)
  1789.  AnsiGoto (20,17)
  1790.  Say (&4&Bad Download K Value-- Not a Number.*)
  1791.  SecPause (2)
  1792.  AnsiGoto (20,17)
  1793.  Say (                                                  *)
  1794.  Goto (ChgDlk)
  1795.  
  1796. *ChgUlK
  1797.  AnsiGoto (21,17)
  1798.  Ask (&15&Enter New Upload K: &2&*)
  1799.  Number (%RESP%)
  1800.  IfNotTrue (goto (badulk))
  1801.  SetEqual (>KUP=%RESP%)
  1802.  SetEqual (e=1)
  1803.  SetEqual (w=1)
  1804.  SaveUser (%var%z)
  1805.  Goto (ClearInfo)
  1806.  
  1807. *ChgBday
  1808.  AnsiGoto (21,16)
  1809.  Say (&15&Enter New Birthday: &2&*)
  1810.  AnsiGoto (25,17)
  1811.  Picture (##-##-##)
  1812.  SetEqual (>BIRTH=%RESP%)
  1813.  SetEqual (e=1)
  1814.  SetEqual (w=1)
  1815.  SaveUser (%var%z)
  1816.  Goto (ClearInfo)
  1817.  
  1818. *badulk
  1819.  AnsiGoto (20,17)
  1820.  Say (                                                  *)
  1821.  AnsiGoto (20,17)
  1822.  Say (&4&Bad Upload K Value-- Not a Number.*)
  1823.  SecPause (2)
  1824.  AnsiGoto (20,17)
  1825.  Say (                                                  *)
  1826.  Goto (ChgUlk)
  1827. MAINMNU^*Disp
  1828. SetActivity (Main Menu)
  1829. if(/EXPERT)=(Y) then linefeed(1)
  1830. if(/EXPERT)=(Y) then Goto (Prompt)
  1831. *sdisp
  1832. Display (display\main,/:SEC/)
  1833.  
  1834. *Prompt
  1835. Say(&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, *)
  1836. MenuAsk %MIN1%(&15&%FNAME%.&CR&&3&Please enter a selection from the &11&menu&12&: &15&*)
  1837. BigIf (G:BYE,H:HELP,?:SDISP,X:EXP,P:PAGE,Y:STATS,N:NEWS,C:CMNT,B:BMN,Q:QMN,F:FMN,M:MMN,D:DMN,L:LIST,@:SMN,WHO:WHO,CHAT:CHAT,FIND:FND,BANK:BNK,VER:SL0)
  1838. Goto (bsel)
  1839.  
  1840. *bSel
  1841. LoadSub(control\macros\badsel.ctl) ;invalid selection
  1842. Goto (disp)
  1843.  
  1844. *BYE
  1845. EnufSec(10)
  1846. IfNotTrue(Goto(BSel))
  1847. LoadSub(CONTROL\MACROS\BYE.CTL)
  1848. Goto(Disp)
  1849.  
  1850. *HELP
  1851. EnufSec(10)
  1852. IfNotTrue(Goto(BSel))
  1853. Display(display\help\main,/:SEC/)
  1854. Log (--,Viewed Main Menu Help)
  1855. Goto (Disp)
  1856.  
  1857. *EXP
  1858. EnufSec(10)
  1859. IfNotTrue(Goto(BSel))
  1860. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  1861. Goto(Disp)
  1862.  
  1863. *PAGE
  1864. EnufSec(10)
  1865. IfNotTrue(Goto(BSel))
  1866. LoadSub(CONTROL\MACROS\PAGE.CTL)
  1867. Goto(Disp)
  1868.  
  1869. *STATS
  1870. EnufSec(10)
  1871. IfNotTrue(Goto(BSel))
  1872. LoadSub(CONTROL\MACROS\STATS.CTL)
  1873. Goto(Disp)
  1874.  
  1875. *NEWS
  1876. EnufSec(10)
  1877. IfNotTrue(Goto(BSel))
  1878. LoadSub(CONTROL\MACROS\NEWS.CTL)
  1879. Goto(Disp)
  1880.  
  1881. *CMNT
  1882. EnufSec(10)
  1883. IfNotTrue(Goto(BSel))
  1884. LoadSub(CONTROL\MACROS\COMMENT.CTL)
  1885. Goto(Disp)
  1886.  
  1887. *BMN
  1888. EnufSec(10)
  1889. IfNotTrue(Goto(BSel))
  1890. LoadMem(CONTROL\BULLET.MNU)
  1891.  
  1892. *QMN
  1893. EnufSec(10)
  1894. IfNotTrue(Goto(BSel))
  1895. LoadMem(CONTROL\QUES.MNU)
  1896.  
  1897. *FMN
  1898. EnufSec(10)
  1899. IfNotTrue(Goto(BSel))
  1900. LoadMem(CONTROL\FILES.MNU)
  1901.  
  1902. *MMN
  1903. EnufSec(10)
  1904. IfNotTrue(Goto(BSel))
  1905. LoadMem(CONTROL\MESS.MNU)
  1906.  
  1907. *DMN
  1908. EnufSec(20)
  1909. IfNotTrue(Goto(BSel))
  1910. LoadMem(CONTROL\DOORS.MNU)
  1911.  
  1912. *LIST
  1913. EnufSec(10)
  1914. IfNotTrue(Goto(BSel))
  1915. LoadSub(CONTROL\MACROS\LIST.CTL)
  1916. Goto(Disp)
  1917.  
  1918. *SMN
  1919. EnufSec(100)
  1920. IfNotTrue(Goto(BSel))
  1921. LoadMem(CONTROL\SYSOP.MNU)
  1922.  
  1923. *WHO
  1924. EnufSec(10)
  1925. IfNotTrue(Goto(BSel))
  1926. LoadSub(CONTROL\MACROS\MWHO.CTL)
  1927. Goto(Disp)
  1928.  
  1929. *CHAT
  1930. EnufSec(10)
  1931. IfNotTrue(Goto(BSel))
  1932. LoadSub(CONTROL\MACROS\MCHAT.CTL)
  1933. Goto(Disp)
  1934.  
  1935. *MACM
  1936. LoadMem(CONTROL\MACSIG.MNU)
  1937.  
  1938. *FND
  1939. LoadSub(CONTROL\MACROS\FIND.CTL)
  1940. Goto(Disp)
  1941.  
  1942. *BNK
  1943. LoadSub(CONTROL\MACROS\BANK.CTL)
  1944. Goto(Disp)
  1945.  
  1946. *SL0
  1947. LoadSub(CONTROL\MACROS\VER.CTL)
  1948. Goto(Disp)
  1949. NOCTL{log(<<,Excessive logon attempts!)
  1950. say(&12&&CR&Excessive unsuccessful logon attempts!)
  1951. secpause(1)
  1952. linefeed(1)
  1953. quitbbs
  1954. BULLETSCTL₧If (%NEWSEC%)=(/SEC) Then Welcome(display\NEWUSER) ;if newuser security
  1955. Get(/:BIRTH/,1,6)  ;get 1st 6 chars of user's birthday
  1956. SetEqual(a=%ARESP%)
  1957. Get(%DATE%,1,6) ;get first 6 chars of date
  1958. If (&a) = (%ARESP%) Then LoadSub(control\birth.ctl) ;if bday show scr
  1959.         
  1960.         *BLT2
  1961. Display (Display\%NDNUMB%)   ;show personal message screens...
  1962. Welcome(Display\WELCOME)  ;show any existing welcome screens
  1963. NotIf (/LAST)=(%DATE%) Then Welcome (Display\OneAday)  ;if first call today...
  1964. seek(areas\news/:lastmsg/.asc)
  1965. iftrue(loadsub(control\macros\cnfnews.ctl))
  1966. If (/EXPERT)=(Y) Then Display (Display\EXPERT)   ;if in EXPERT mode show screen
  1967. Seek(logon.bat)
  1968. IfTrue (Exec(logon.bat))  ;run LOGON.BAT batch file.
  1969. if (%Event%)=(TRUE) then display(display\event)
  1970. LoadSub(Control\Macros\Newbull.ctl) ;show new bulletins
  1971. IfNotTrue( LoadMem(control\Main.mnu))
  1972. LoadMem(Control\ViewB.ctl) ;ask "view bulletins menu?"
  1973. MSCANCTLúSay(&CR&%hWhite%Please wait while we scan the message area for new mail addressed to you...%Yellow%&CR&)
  1974. Clearmem
  1975. EraseVar   ;erasevar erases all variables...
  1976. Say(Scanning...%White%)
  1977.  
  1978. Zap(lconf.%NODE%,/:lastmsg/)
  1979. ClearMem ; clearmem will clear the array
  1980.  
  1981. SetEqual(h=0)
  1982.  
  1983. *stscan
  1984. inc(h)
  1985. SelArea(%var%h)
  1986.  
  1987. EnufSec(%AREASEC%)
  1988. ifnottrue(Goto (chkeof))
  1989.  
  1990. eLine(60)
  1991. Say(Checking area %var%h: %AREANAME%|)
  1992. Scan(%var%h,%NAME%,%NDNUMB%)
  1993. IfTrue (goto (yesmail))
  1994.  
  1995. *chkeof
  1996. If (&h)=(%MAXAREA%) Then goto (firstmn)
  1997. Goto (stscan)
  1998.  
  1999. *FIRSTMN
  2000. InpLine(lconf.%NODE%,1)
  2001. SetEqual (/lastmsg=%ARESP%)
  2002. SelArea(/:LASTMSG/)
  2003.  
  2004. Say(%Yellow%&CR&&CR&Message scan complete!)
  2005. SetEqual (/WAIT=N)
  2006. Kill(lconf.%NODE%)
  2007.  
  2008. LoadMem(control\bullets.ctl)
  2009.  
  2010. *yesmail
  2011. SetEqual (/lastmsg=%var%h)
  2012. Say(&CR&&15&Mail has been found for you in the&9& %AREANAME% %hWhite%conference!%hWhite%)
  2013. SetEqual(u=2)
  2014. notif (^2)=() then goto (ym1)
  2015. say(&10&Message number &11&^:1^)
  2016. goto (bymail)
  2017. *ym1
  2018. say(&10&Message numbers:&11&&CR&^:1^*)
  2019. *ymail
  2020. if (^%var%u)=() then Goto (bym2)
  2021. Say(, ^:u^*)
  2022. inc(u)
  2023. Goto (ymail)
  2024. *bym2
  2025. linefeed(1)
  2026. *bymail
  2027. Zap(hi.%NODE%,%var%h)
  2028. Say(&CR&%Cyan%Would you like to read these messages? &9&[   ]%hWhite%*)
  2029. back(4)
  2030. YesNoAsk(*)
  2031. If (%RESP%)=(Yes) Then Goto (Rmail)
  2032. *back
  2033. InpLine(hi.%NODE%,1)
  2034. SetEqual(h=%ARESP%)
  2035. ClearScr
  2036. InitTxt
  2037. ClearMem
  2038. Say(%Yellow%&CR&Scanning...%White%)
  2039. ClearMem
  2040. SetActivity(Logging on...)
  2041. Goto (chkeof)
  2042. *Rmail
  2043. Say(&CR&%hCyan%Please wait while we retrieve your mail...*)
  2044. SetEqual(r=10)
  2045. SetEqual(y=^:1^)
  2046. himsg(/:LASTMSG/)
  2047. SetEqual(f=%ARESP%)
  2048. lowmsg(/:lastmsg/)
  2049. SetEqual(n=%ARESP%)
  2050. SetEqual(u=1)
  2051. Loadsub(control\READ.CTL,Goto (repeat))
  2052. goto (back)
  2053. LOCKOUTCTLûLog (--,Locked out user (%var%d) attempted)  ;log info to callers log
  2054. Log (--,to log onto the BBS.)
  2055. Display(display\LOCKOUT)
  2056. secpause(3)
  2057. QuitBBS
  2058. BADNAMECTLMDisplay(display\BADNAME)
  2059. Log (--,Alias (%var%d) attempted logon.)
  2060. QuitBBS
  2061. UEDIT4CTLΘ    *StUedit4
  2062.  
  2063.  BigIf (O:ChgTOn,R:ChgComp,A:ChgDrops,W:ChgWrk,I:ChgSub,X:ChgSDate,V:ChgAvail)
  2064. *ChgTOn
  2065.  AnsiGoto (21,17)
  2066.  ;Goes to the location 21,17 on the screen. (21 characters over, 17 down)
  2067.  ask (&15&Enter New Times On: &2&*)
  2068. ;Gets input from the user. The * tells it NOT to go to the next line. 
  2069.  Number (%RESP%)
  2070. ;Checks to see if %RESP%, the user's response, is a number. 
  2071.  IfNotTrue (goto (BadTOn))
  2072. ;If %RESP% isn't a number, then go to the label *BadTOn 
  2073.  SetEqual (>TIMESON=%RESP%)
  2074. ;Set the number of times in the currently loaded but unused record file to
  2075. ;the value contained in %RESP% (a user-entered value). (For a complete list
  2076. ;of all percent codes [like >TIMESON] refer to the Powerboard docs.
  2077.  Goto (DoIt)
  2078. ;Goes to the label *DoIt, which is just a place where some variable values
  2079. ;are changed, and where it saves the currently loaded record file to disk.
  2080.  
  2081. *BadTOn
  2082.  AnsiGoto (21,17)
  2083.  Say (&4&Bad Times On Value, Not a Number.*)
  2084.  SecPause (2) ;Pauses for 2 seconds.
  2085.  AnsiGoto (21,17)
  2086.  Say (                                 )
  2087. ;Used to clear the space where it said "Bad Times On..."
  2088.  Goto (ChgTOn)
  2089.  
  2090. *ChgComp
  2091.  AnsiGoto (21,17)
  2092.  ask (&15&Enter New Computer Using: &2&*)
  2093.  SetEqual (>COMP=%RESP%)
  2094.  Goto (DoIt)
  2095.  
  2096. *ChgDrops
  2097.  AnsiGoto (21,17)
  2098.  Say (&15&Enter New Carrier Dropped Times:                        &2&*)
  2099.  AnsiGoto (54,17)
  2100.  Ask (*)
  2101.  Number (%RESP%)
  2102.  IfNotTrue (goto (BadDrops))
  2103.  SetEqual (>DROPPED=%RESP%)
  2104.  Goto (DoIt)
  2105.  
  2106. *BadDrops
  2107.  AnsiGoto (21,17)
  2108.  Say (&4&Bad Carrier Dropped Amount, Not a Number.*)
  2109.  SecPause (2)
  2110.  AnsiGoto (21,17)
  2111.  Say (                                         )
  2112.  Goto (ChgDrops)
  2113.  
  2114. *ChgWrk
  2115.  AnsiGoto (21,16)
  2116.  Say (&12&Enter New Work Phone Number: &2&)
  2117.  AnsiGoto (27,17)
  2118.  Picture (###-###-####)
  2119.  SetEqual (>WORK=%RESP%)
  2120.  Goto (DoIt)
  2121.  
  2122. *ChgSub
  2123.  AnsiGoto (25,17)
  2124.  yesnoask (&12&Subscriber? &2&*)
  2125.  SetEqual (>SUB=%RESP%)
  2126.  Goto (DoIt)
  2127.  
  2128. *ChgSDate
  2129.  AnsiGoto (21,16)
  2130.  Say (&12&Enter New Subscription Expiration Date: &2&*)
  2131.  AnsiGoto (25,17)
  2132.  Picture (##-##-##)
  2133.  SetEqual (>SUBDATE=%RESP%)
  2134.  Goto (DoIt)
  2135.  
  2136. *ChgAvail
  2137.  AnsiGoto (21,17)
  2138.  YesNoAsk (&12&Default User Available For Chat: &2&*)
  2139.  SetEqual (>DEFAVAIL=%RESP%)
  2140.  Goto (DoIt)
  2141.  
  2142. *DoIt
  2143.  SetEqual (e=1)
  2144. ;Set it that the user is flagged as editing a user record.
  2145.  SetEqual (w=1)
  2146. ;Set it that the user is flagged as editing a user record. 
  2147. ;Again, %var%e and %var%w are similar. I don't know the difference, really.
  2148.  SaveUser (%var%z)
  2149.  Loadmem (control\uedit2.ctl,goto(clearinfo))
  2150. REFUSEDCTLºDisplay(display\REFUSED)    ;they don't want to become a member!!!!! ask why...
  2151. Say (%hCyan%(                                                            )%White%*)
  2152. Back (61) ;go back 61 spaces...
  2153. Ask%MIN1%%LEN60% (*)
  2154. Say (&CR&%Yellow%Thank you very much for your cooperation.&CR&)
  2155. Log (--,User (%var%d) declined membership because:)
  2156. Log (--,%RESP%)                         ;log to the callers log
  2157. QuitBBS  ;Hang up
  2158. GENTYP⌠*Disp
  2159. SetActivity (Unnamed Menu)
  2160. if(/EXPERT)=(Y) then linefeed(1)
  2161. if(/EXPERT)=(Y) then Goto (Prompt)
  2162. *sdisp
  2163. Display (display\main,/:SEC/)
  2164.  
  2165. *Prompt
  2166. Say(&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, *)
  2167. MenuAsk %MIN1%(&15&%FNAME%.&CR&&3&Please enter a selection from the &11&menu&12&: &15&*)
  2168. BigIf (G:BYE,H:HELP,?:SDISP,X:EXP)
  2169. Goto (bsel)
  2170.  
  2171. *bSel
  2172. LoadSub(control\macros\badsel.ctl) ;invalid selection
  2173. Goto (disp)
  2174.  
  2175. *BYE
  2176. EnufSec(10)
  2177. IfNotTrue(Goto(BSel))
  2178. LoadSub(CONTROL\MACROS\BYE.CTL)
  2179. Goto(Disp)
  2180.  
  2181. *HELP
  2182. EnufSec(10)
  2183. IfNotTrue(Goto(BSel))
  2184. Display(display\help\main,/:SEC/)
  2185. Log (--,Viewed Main Menu Help)
  2186. Goto (Disp)
  2187.  
  2188. *EXP
  2189. EnufSec(10)
  2190. IfNotTrue(Goto(BSel))
  2191. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  2192. Goto(Disp)
  2193. QUESTYPq*disp
  2194. setactivity(Quest. Menu)
  2195. if (/Expert)=(Y) then linefeed(1)
  2196. if (/EXPERT)=(Y) then goto (prompt)
  2197. *sdisp
  2198. display (display\ques,/:SEC/)
  2199.  
  2200. *prompt
  2201. say(&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, &15&%FNAME%.)
  2202. menuask %MIN1%(&3&Please enter a selection from the &11&menu&12&: &15&*)
  2203.  
  2204. BigIf (g:goodbye,q:main,h:help,?:sdisp,x:exp)
  2205.  
  2206. number(%RESP%)
  2207. if (%ARESP%)=(No) then goto (bsel)
  2208. say(&7&)
  2209. seek(ques\QUEST%RESP%.que)
  2210. if (%ARESP%)=(No) then goto (bsel)
  2211.  
  2212. loadsub(ques\QUEST%RESP%.que)
  2213. goto (disp)
  2214.  
  2215. *main
  2216. loadmem(control\MAIN.MNU)
  2217.  
  2218. *exp
  2219. loadsub(control\macros\expert.ctl)
  2220. goto (disp)
  2221.  
  2222. *help
  2223. log(--,Viewing Quest. Menu Help)
  2224. display (display\help\ques,/:SEC/)
  2225. goto (disp)
  2226.  
  2227. *goodbye
  2228. enufsec(10)
  2229. IfNotTrue (goto (bsel))
  2230. loadsub(control\macros\bye.ctl)
  2231. goto (disp)
  2232.  
  2233. *bsel
  2234. loadsub(control\macros\badsel.ctl)
  2235. goto (disp)
  2236. MESSMNUG*disp
  2237. SetActivity (Message Menu)
  2238. if (/EXPERT)=(Y) then goto (prompt)
  2239.  
  2240. *sdisp
  2241. Display (Display\MESS,/:SEC/)
  2242.  
  2243. *prompt
  2244. if (/Expert)=(Y) then linefeed(1)
  2245. say(&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, &15&%FNAME%.&CR&&7&You are currently in the &9&%AREANAME%&7& message area.)
  2246. menuask %MIN1%(&3&Please enter a selection from the &11&menu&12&: &15&*)
  2247. BigIf (G:GOODBYE,H:HELP,?:SDISP,X:EXP,J:CHANGE,S:SEARCH,SEL:SELECT,M:READER,COPY:COPY,SC:SCAN,Q:MAINMN,R:READMN,E:ENTERMN,F:FILESMN,A:SL0)
  2248. goto (bsel)
  2249.  
  2250. *bsel
  2251. loadsub(control\macros\badsel.ctl)
  2252. goto (disp)
  2253.  
  2254.  
  2255.  
  2256. *GOODBYE
  2257. EnufSec(10)
  2258. IfNotTrue(Goto(BSel))
  2259. LoadSub(CONTROL\MACROS\BYE.CTL)
  2260. Goto(Disp)
  2261.  
  2262. *HELP
  2263. EnufSec(10)
  2264. IfNotTrue(Goto(BSel))
  2265. Display(display\help\MESS,/:SEC/)
  2266. Log (--,Viewed Message Menu Help)
  2267. Goto (Disp)
  2268.  
  2269. *EXP
  2270. EnufSec(10)
  2271. IfNotTrue(Goto(BSel))
  2272. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  2273. Goto(Disp)
  2274.  
  2275. *CHANGE
  2276. EnufSec(10)
  2277. IfNotTrue(Goto(BSel))
  2278. LoadSub(CONTROL\MACROS\CHG.CTL)
  2279. Goto(Disp)
  2280.  
  2281. *SEARCH
  2282. EnufSec(10)
  2283. IfNotTrue(Goto(BSel))
  2284. LoadSub(CONTROL\MACROS\SEARCHM.CTL)
  2285. Goto(Disp)
  2286.  
  2287. *SELECT
  2288. EnufSec(10)
  2289. IfNotTrue(Goto(BSel))
  2290. LoadSub(CONTROL\MACROS\SELECT.CTL)
  2291. Goto(Disp)
  2292.  
  2293. *READER
  2294. EnufSec(20)
  2295. IfNotTrue(Goto(BSel))
  2296. LoadSub(CONTROL\MACROS\MREADER.CTL)
  2297. Goto(Disp)
  2298.  
  2299. *COPY
  2300. EnufSec(100)
  2301. IfNotTrue(Goto(BSel))
  2302. LoadSub(CONTROL\MACROS\MCOPY.CTL)
  2303. Goto(Disp)
  2304.  
  2305. *SCAN
  2306. EnufSec(10)
  2307. IfNotTrue(Goto(BSel))
  2308. LoadSub(CONTROL\MACROS\SCANM.CTL)
  2309. Goto(Disp)
  2310.  
  2311. *MAINMN
  2312. EnufSec(10)
  2313. IfNotTrue(Goto(BSel))
  2314. LoadMem(CONTROL\MAIN.MNU)
  2315.  
  2316. *READMN
  2317. EnufSec(10)
  2318. IfNotTrue(Goto(BSel))
  2319. LoadSub(CONTROL\READ.CTL)
  2320. Goto(Disp)
  2321.  
  2322. *ENTERMN
  2323. EnufSec(10)
  2324. IfNotTrue(Goto(BSel))
  2325. LoadSub(CONTROL\MACROS\ENTER.CTL)
  2326. Goto(Disp)
  2327.  
  2328. *FILESMN
  2329. EnufSec(10)
  2330. IfNotTrue(Goto(BSel))
  2331. LoadMem(CONTROL\FILES.MNU)
  2332.  
  2333. *SL0
  2334. LoadSub(CONTROL\MACROS\ABAND.CTL)
  2335. Goto(Disp)
  2336. BADPASSCTL)Log (--,User (%var%d) entered an invalid)
  2337. Log (--,password 4 times.)
  2338. if (%BPComment%)=(No) then QuitBBS ;BPComment is set via PBConfig
  2339. SetEqual (q=10)
  2340. Display (display\badpass)
  2341. SetEqual (b=Password Failure)
  2342. LoadSub(control\macros\comment.ctl,goto (stc))
  2343. Display(display\BADPASS2)
  2344. QuitBBS
  2345. QUESMNUq*disp
  2346. setactivity(Quest. Menu)
  2347. if (/Expert)=(Y) then linefeed(1)
  2348. if (/EXPERT)=(Y) then goto (prompt)
  2349. *sdisp
  2350. display (display\ques,/:SEC/)
  2351.  
  2352. *prompt
  2353. say(&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, &15&%FNAME%.)
  2354. menuask %MIN1%(&3&Please enter a selection from the &11&menu&12&: &15&*)
  2355.  
  2356. BigIf (g:goodbye,q:main,h:help,?:sdisp,x:exp)
  2357.  
  2358. number(%RESP%)
  2359. if (%ARESP%)=(No) then goto (bsel)
  2360. say(&7&)
  2361. seek(ques\QUEST%RESP%.que)
  2362. if (%ARESP%)=(No) then goto (bsel)
  2363.  
  2364. loadsub(ques\QUEST%RESP%.que)
  2365. goto (disp)
  2366.  
  2367. *main
  2368. loadmem(control\MAIN.MNU)
  2369.  
  2370. *exp
  2371. loadsub(control\macros\expert.ctl)
  2372. goto (disp)
  2373.  
  2374. *help
  2375. log(--,Viewing Quest. Menu Help)
  2376. display (display\help\ques,/:SEC/)
  2377. goto (disp)
  2378.  
  2379. *goodbye
  2380. enufsec(10)
  2381. IfNotTrue (goto (bsel))
  2382. loadsub(control\macros\bye.ctl)
  2383. goto (disp)
  2384.  
  2385. *bsel
  2386. loadsub(control\macros\badsel.ctl)
  2387. goto (disp)
  2388. DPHONECTLôlog(!!,User attempted logon with active)
  2389. log(!!,user's phone number (/:phone/))
  2390. appendto(badnames.bbs,%NAME%)
  2391. display(display\dphone)
  2392. quitbbs
  2393. DOORSTYP█*disp
  2394. SetActivity (Doors Menu)
  2395. if (/Expert)=(Y) then linefeed(1)
  2396. if (/EXPERT)=(Y) then goto (prompt)
  2397.  
  2398. *sdisp
  2399. Display (display\doors,/:SEC/)
  2400.  
  2401. *prompt
  2402. Say(&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, &15&%FNAME%.)
  2403. MenuAsk %MIN1% (&3&Please enter a selection from the &11&menu&12&: &15&*)
  2404. BigIf (G:GOODBYE,Q:MAIN,H:HELP,?:SDISP,X:EXP)
  2405. number(%RESP%)
  2406. ifNotTrue( goto (bsel))
  2407. seek(door%RESP%.Bat)
  2408. ifnottrue(goto (bsel))
  2409. Display(Display\door%RESP%)
  2410. Log(--,Executing Door #%RESP%)
  2411. FixFile (door.bt,door.bat)
  2412. Say(&14&&CR&Please wait, Opening Door #%resp% . . .*)
  2413. Exit (80,door|)
  2414.  
  2415. *bsel
  2416. loadsub(control\macros\badsel.ctl)
  2417. goto (disp)
  2418.  
  2419. *GOODBYE
  2420. EnufSec(10)
  2421. IfNotTrue(Goto(BSel))
  2422. LoadSub(CONTROL\MACROS\BYE.CTL)
  2423. Goto(Disp)
  2424.  
  2425. *MAIN
  2426. LoadMem(CONTROL\MAIN.MNU)
  2427.  
  2428. *HELP
  2429. EnufSec(10)
  2430. IfNotTrue(Goto(BSel))
  2431. Display(display\help\door,/:SEC/)
  2432. Log (--,Viewed Doors Menu Help)
  2433. Goto (Disp)
  2434.  
  2435. *EXP
  2436. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  2437. Goto(Disp)
  2438. DOORSMNU█*disp
  2439. SetActivity (Doors Menu)
  2440. if (/Expert)=(Y) then linefeed(1)
  2441. if (/EXPERT)=(Y) then goto (prompt)
  2442.  
  2443. *sdisp
  2444. Display (display\doors,/:SEC/)
  2445.  
  2446. *prompt
  2447. Say(&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, &15&%FNAME%.)
  2448. MenuAsk %MIN1% (&3&Please enter a selection from the &11&menu&12&: &15&*)
  2449. BigIf (G:GOODBYE,Q:MAIN,H:HELP,?:SDISP,X:EXP)
  2450. number(%RESP%)
  2451. ifNotTrue( goto (bsel))
  2452. seek(door%RESP%.Bat)
  2453. ifnottrue(goto (bsel))
  2454. Display(Display\door%RESP%)
  2455. Log(--,Executing Door #%RESP%)
  2456. FixFile (door.bt,door.bat)
  2457. Say(&14&&CR&Please wait, Opening Door #%resp% . . .*)
  2458. Exit (80,door|)
  2459.  
  2460. *bsel
  2461. loadsub(control\macros\badsel.ctl)
  2462. goto (disp)
  2463.  
  2464. *GOODBYE
  2465. EnufSec(10)
  2466. IfNotTrue(Goto(BSel))
  2467. LoadSub(CONTROL\MACROS\BYE.CTL)
  2468. Goto(Disp)
  2469.  
  2470. *MAIN
  2471. LoadMem(CONTROL\MAIN.MNU)
  2472.  
  2473. *HELP
  2474. EnufSec(10)
  2475. IfNotTrue(Goto(BSel))
  2476. Display(display\help\door,/:SEC/)
  2477. Log (--,Viewed Doors Menu Help)
  2478. Goto (Disp)
  2479.  
  2480. *EXP
  2481. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  2482. Goto(Disp)
  2483. BULLETTYP?SetActivity(Bulletins Menu)
  2484.  
  2485.   *Disp
  2486. if (/EXPERT)=(Y) then linefeed(1)
  2487. If (/EXPERT)=(Y) Then Goto(prompt)
  2488.   *Sdisp
  2489. Display(Display\blt,/:SEC/)
  2490.  
  2491.   *Prompt
  2492. DefPause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  2493. DefPif(s:stop,n:nonstop,g:goodbye)   ;define our pause prompt...
  2494. Say(&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, &15&%FNAME%.)
  2495. MenuAsk%MIN1%(&3&Please enter a selection from the &11&menu&12&: &15&*)
  2496.  BigIf (q:loadmain,g:goodbye,x:expert,h:help,?:sdisp,n:new)
  2497. Number(%RESP%) ;is it a number?!
  2498. IfNotTrue ( Goto (bsel))
  2499. Log(--,Bulletin %RESP% Read.)
  2500. Display (Display\Bull%RESP%)
  2501. goto (disp)
  2502.  
  2503.   *Loadmain
  2504. LoadMem(control\main.mnu)
  2505.         
  2506.   *Expert
  2507. loadsub(control\macros\expert.ctl)
  2508. goto (disp)
  2509.  
  2510.   *help
  2511. Log(--,Viewing Bulletins Menu Help)
  2512. Display (Display\help\BULL,/:SEC/)
  2513. Goto (disp)
  2514.  
  2515.   *new
  2516. LoadSub(control\macros\newbull.ctl)
  2517. enter
  2518. goto (disp)
  2519.  
  2520.   *goodbye
  2521. LoadSub(control\macros\bye.ctl)
  2522. Goto (disp)
  2523.  
  2524.   *bsel
  2525. LoadSub(control\macros\badsel.ctl)
  2526. Goto (disp)
  2527. BULLETMNU?SetActivity(Bulletins Menu)
  2528.  
  2529.   *Disp
  2530. if (/EXPERT)=(Y) then linefeed(1)
  2531. If (/EXPERT)=(Y) Then Goto(prompt)
  2532.   *Sdisp
  2533. Display(Display\blt,/:SEC/)
  2534.  
  2535.   *Prompt
  2536. DefPause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  2537. DefPif(s:stop,n:nonstop,g:goodbye)   ;define our pause prompt...
  2538. Say(&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, &15&%FNAME%.)
  2539. MenuAsk%MIN1%(&3&Please enter a selection from the &11&menu&12&: &15&*)
  2540.  BigIf (q:loadmain,g:goodbye,x:expert,h:help,?:sdisp,n:new)
  2541. Number(%RESP%) ;is it a number?!
  2542. IfNotTrue ( Goto (bsel))
  2543. Log(--,Bulletin %RESP% Read.)
  2544. Display (Display\Bull%RESP%)
  2545. goto (disp)
  2546.  
  2547.   *Loadmain
  2548. LoadMem(control\main.mnu)
  2549.         
  2550.   *Expert
  2551. loadsub(control\macros\expert.ctl)
  2552. goto (disp)
  2553.  
  2554.   *help
  2555. Log(--,Viewing Bulletins Menu Help)
  2556. Display (Display\help\BULL,/:SEC/)
  2557. Goto (disp)
  2558.  
  2559.   *new
  2560. LoadSub(control\macros\newbull.ctl)
  2561. enter
  2562. goto (disp)
  2563.  
  2564.   *goodbye
  2565. LoadSub(control\macros\bye.ctl)
  2566. Goto (disp)
  2567.  
  2568.   *bsel
  2569. LoadSub(control\macros\badsel.ctl)
  2570. Goto (disp)
  2571. DOORBACKCTLinpline(pbdoor.%Node%,6)
  2572.   DoorBack(%ARESP%,Back from Door program)  ;get their name from PBDOOR.node
  2573.  
  2574. selarea(/:lastmsg/)
  2575. ListFile (areas\farea/:LASTMSG/)
  2576. selfarea(/:lastdown/)
  2577. Kill (pbdoor.%NODE%)
  2578. Display (display\back)
  2579. LoadMem (control\doors.MNU)
  2580. SELFILEACTL,*start
  2581. menuask%cron%(&CR&&3&Please enter the area number to search &11&(L=List, ENTER=All)&12&: &15&*)
  2582. if (%resp%)=(<CR>) then return
  2583. if (%resp%)=(L) then goto (lista)
  2584. number(%resp%)
  2585. ifnottrue (return)
  2586. cmpvalo(%maxfarea%,%resp%)
  2587. iftrue(return)
  2588. selfarea(%resp%)
  2589. cmpval(%sec%,%filsec%)
  2590. iftrue(return)
  2591. setequal(g=%resp%)
  2592. setequal(f=%resp%)
  2593. return
  2594.  
  2595. *lista
  2596. NotIf (/SEC)=(100) then display(%FAREA%)
  2597. If (/SEC)=(100) then goto (sysv)
  2598. goto (start)
  2599.  
  2600. *sysv
  2601. seek(%FAREA%.100)
  2602. iftrue(view(%FAREA%.100))
  2603. ifnottrue(display(%FAREA%))
  2604. goto (start)
  2605. SYSOPMNUÇ*disp
  2606. SetActivity (Sysop Menu)
  2607. if (/EXPERT)=(Y) then goto (prompt)
  2608. *sdisp
  2609. Display (display\SYSOP,/:SEC/)
  2610.  
  2611. *prompt
  2612. say(&CR&&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, &15&%FNAME%.&3&)
  2613. menuask %MIN1%(Please enter a selection from the &11&menu&12&: &15&*)
  2614. BigIf (G:GOODBYE,H:HELP,?:SDISP,X:EXP,V:VIEWLOG,S:SHELL,K:KILL,D:DOWN,O:VNO,Q:QT,F:FIL,M:MS,E:ED)
  2615. goto (badsel)
  2616.  
  2617. *badsel
  2618. loadsub(control\macros\badsel.ctl)
  2619. goto (disp)
  2620.  
  2621.  
  2622. *GOODBYE
  2623. LoadSub(CONTROL\MACROS\BYE.CTL)
  2624. Goto(Disp)
  2625.  
  2626. *HELP
  2627. Display(display\help\SYSOP,/:SEC/)
  2628. Log (--,Viewed Sysop Menu Help)
  2629. Goto (Disp)
  2630.  
  2631. *EXP
  2632. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  2633. Goto(Disp)
  2634.  
  2635. *VIEWLOG
  2636. LoadSub(CONTROL\MACROS\VIEWLOGS.CTL)
  2637. Goto(Disp)
  2638.  
  2639. *SHELL
  2640. EnufSec(100)
  2641. IfNotTrue(Goto(BSel))
  2642. LoadSub(CONTROL\MACROS\SHELL.CTL)
  2643. Goto(Disp)
  2644.  
  2645. *KILL
  2646. LoadSub(CONTROL\MACROS\KILLNODE.CTL)
  2647. Goto(Disp)
  2648.  
  2649. *DOWN
  2650. LoadSub(CONTROL\MACROS\NODEDOWN.CTL)
  2651. Goto(Disp)
  2652.  
  2653. *VNO
  2654. LoadSub(CONTROL\MACROS\VIEWNODE.CTL)
  2655. Goto(Disp)
  2656.  
  2657. *QT
  2658. LoadMem(CONTROL\MAIN.MNU)
  2659.  
  2660. *FIL
  2661. LoadMem(CONTROL\FILES.MNU)
  2662.  
  2663. *MS
  2664. LoadMem(CONTROL\MESS.MNU)
  2665.  
  2666. *ED
  2667. LoadSub(CONTROL\UEDIT.CTL)
  2668. Goto(Disp)
  2669. FILESMNU         *disp
  2670. setactivity(Files Menu)
  2671. if (/expert)=(Y) then linefeed(1)
  2672. if (/EXPERT)=(Y) then goto (prompt)
  2673.  
  2674. *sdisp
  2675. display (display\file,/:SEC/)
  2676.  
  2677.         *prompt
  2678. say(&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, &15&%FNAME%.)
  2679. say(&9&%AREANAME%&7& Conference, &9&%FILNAME%&7& File Area.)
  2680. menuask %MIN1%(Please enter a selection from the &11&menu&12&: &15&*)
  2681.  BigIf (g:goodbye,h:help,?:sdisp,x:exp,q:main,c:change,l:list,r:read,v:zview,n:new,d:down,u:up,m:move,j:join)
  2682.  bigif (del:deltagged,tag:tagfiles,list:ltagged,s:search,w:wild,a:aband)
  2683. goto (badsel)
  2684.  
  2685. *aband
  2686. enufsec(10)
  2687. ifnottrue(goto (badsel))
  2688. loadsub(control\macros\aband.ctl)
  2689. goto (disp)
  2690.  
  2691.         *join
  2692. enufsec(10)  ;check security
  2693. IfNotTrue (goto (badsel))
  2694. loadsub(control\macros\chg.ctl)
  2695. goto (disp)
  2696.  
  2697.         *move
  2698. enufsec(90)
  2699. ifnottrue (goto (badsel))
  2700. loadsub(control\macros\move.ctl)
  2701. goto (disp)
  2702.  
  2703.         *down
  2704. enufsec(10)
  2705. ifnottrue (goto (badsel))
  2706. loadsub(control\macros\DOWN.CTL)
  2707. selfarea(/:LASTDOWN/)
  2708. goto (disp)
  2709.         
  2710.         *up
  2711. enufsec(20)
  2712. ifnottrue (goto (badsel))
  2713. loadsub(control\macros\up.ctl)
  2714. goto (disp)
  2715.  
  2716.         *new
  2717. enufsec(10)
  2718. ifnottrue (goto (badsel))
  2719. loadsub(control\macros\NEW.CTL)
  2720. goto (disp)
  2721.  
  2722.         *ltagged
  2723. enufsec(10)
  2724. ifnottrue (goto (badsel))
  2725. loadsub(control\macros\ltagged.ctl)
  2726. goto (disp)
  2727.  
  2728.         *deltagged
  2729. enufsec(10)
  2730. ifnottrue (goto (badsel))
  2731. loadsub(control\macros\deltag.ctl)
  2732. goto (disp)
  2733.  
  2734.         *tagfiles
  2735. enufsec(10)
  2736. IfNotTrue (goto (badsel))
  2737. loadsub(control\macros\tfiles.ctl)
  2738. goto (disp)
  2739.  
  2740.         *Zview
  2741. enufsec(10)
  2742. ifnottrue (goto (badsel))
  2743. loadsub(control\macros\zview.ctl)
  2744. goto (disp)
  2745.  
  2746.         *main
  2747. enufsec(10)
  2748. ifnottrue (goto (badsel))
  2749. defpause($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  2750. defPif(s:stop,n:nonstop)
  2751. loadmem(control\main.MNU)
  2752.         
  2753.         *read
  2754. enufsec(10)
  2755. ifnottrue (goto (badsel))
  2756. loadsub(control\macros\fread.ctl)
  2757. goto (disp)
  2758.  
  2759.         *list
  2760. enufsec(10)
  2761. ifnottrue (goto (badsel))
  2762. loadsub(control\macros\flist.ctl)
  2763. goto (disp)
  2764.  
  2765.         *wild
  2766. loadsub(control\macros\Wsearch.ctl)
  2767. goto (disp)
  2768.  
  2769.         *search
  2770. enufsec(10)
  2771. ifnottrue (goto (badsel))
  2772. loadsub(control\macros\SEARCH.CTL)
  2773. goto (disp)
  2774.  
  2775.         *change
  2776. enufsec(10)
  2777. ifnottrue (goto(badsel))
  2778. loadsub(control\macros\change.ctl)
  2779. goto (disp)
  2780.  
  2781.         *exp
  2782. enufsec(10)
  2783. ifnottrue (goto (badsel))
  2784. loadsub(control\macros\expert.ctl)
  2785. goto (disp)
  2786.  
  2787.         *help
  2788. enufsec(10)
  2789. ifnottrue (goto (badsel))
  2790. log(--,Viewing Files Menu Help)
  2791. display (display\help\file,/:SEC/)
  2792. goto (disp)
  2793.  
  2794.         *goodbye
  2795. enufsec(10)
  2796. ifnottrue (goto (badsel))
  2797. loadsub(control\macros\bye.ctl)
  2798. goto (disp)
  2799.  
  2800.         *badsel
  2801. loadsub(control\macros\badsel.ctl)
  2802. goto (disp)
  2803. AUTOOFFCTL╦Seek(tagged.%NODE%)
  2804. IfTrue(say(&10&%beep%%beep%You have files tagged for download!))
  2805. say(&CR&&11&You have requested an auto-logoff.  This call will be terminated in 30 seconds.)
  2806. say(&14&Hit (CTRL-K) to abort or (H) to hang up now.*)
  2807. SetEqual(n=0)
  2808.  
  2809. *begin
  2810. do
  2811. jump(rkeytst)
  2812. secpause(1)
  2813. localkey(1)
  2814. ifnottrue(goto (psa))
  2815. If (%ARESP%)=(H) Then Goto (off)
  2816. if (%ARESP%)=(h) then goto (off)
  2817. If (%ARESP%)=( ) Then Goto (ex)
  2818. *psa
  2819. jump(rkeytst)
  2820. inc(n)
  2821. say(.*)
  2822. If (&n)=(30) Then Goto (off)
  2823. loop
  2824.  
  2825. *off
  2826. log(<<,Downloaded file, Auto-logoff)
  2827. Display(Display\goodbye)
  2828. quitbbs
  2829.         
  2830. *ex
  2831. selfarea(/:lastdown/)
  2832. say()
  2833. return
  2834.  
  2835. *rkeytst
  2836. ifkey(H)
  2837. iftrue(goto (off))
  2838. ifkey( )
  2839. iftrue(goto (ex))
  2840. ret
  2841.