home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / BBS / PB12A_1.ZIP / SYSC.LZH / SC
Text File  |  1992-09-29  |  23KB  |  870 lines

  1. SYS5CTLP      *Disp
  2. setactivity(Main Menu)
  3. if(/EXPERT)=(Y) then Say()
  4. if(/EXPERT)=(Y) then Goto (Prompt)
  5.   *sdisp
  6. Display (display\main,/:SEC/)
  7.  
  8.   *Prompt
  9. Say(%Yellow%│$7$&0&Main Menu$0$%Yellow%│&7& You have &15&%LEFT% &7&minutes remaining, *)
  10. MenuAsk %MIN1%(&15&%FNAME%.&CR&&3&Please enter a selection from the &11&menu&12&: &15&*)
  11. BigIf(g:bye,h:help,?:sdisp,x:exp,p:page,y:stats,n:news,c:Cmnt,b:bMn,q:qMn)
  12. bigif(f:fMn,m:mMn,d:dMn,l:list,@:sMn,who:Who,chat:Chat,mac:macm,find:fnd,bank:bnk)
  13. Goto (bsel)
  14.  
  15. *fnd
  16. loadsub(control\macros\find.ctl)
  17. goto (disp)
  18.  
  19. *bnk
  20. loadsub(control\macros\bank.ctl)
  21. goto (disp)
  22.  
  23. *macm
  24. setequal(/lastmsg=4)
  25. selarea(4)
  26. listfile(areas\farea4)
  27. selfarea(1)
  28. loadmem(control\macsig.mnu)
  29.  
  30.   *sMn
  31. enufsec(100)
  32. ifnottrue( Goto (bSel))
  33. log(--,Entered Sysop Menu)
  34. loadmem(control\SYSOP.MNU)
  35.   *dMn
  36. enufsec(20)
  37. ifnottrue(goto (bSel))
  38. loadmem(control\doors.mnu)
  39.   *mMn
  40. enufsec(10)
  41. ifnottrue(goto (bSel))
  42. loadmem(control\mess.mnu)                 ;Menus
  43.   *fMn
  44. enufsec(10)
  45. ifnottrue(goto (bSel))
  46. loadmem(control\files.mnu)
  47.   *bMn
  48. enufsec(10)
  49. ifnottrue(goto (bSel))
  50. loadmem(control\bullet.mnu)
  51.   *qMn
  52. enufsec(10)
  53. ifnottrue(goto (bSel))
  54. loadmem(control\QUES.MNU)
  55.         
  56.   *chat
  57. enufsec(10)
  58. ifnottrue(goto (bSel))
  59. loadsub(control\macros\mchat.ctl)
  60. Goto (disp)                       ;Multinode functions
  61.   *who
  62. enufsec(10)
  63. ifnottrue(goto (bSel))
  64. loadsub(control\macros\mwho.ctl)
  65. Goto (disp)
  66.         
  67.   *list
  68. enufsec(10)
  69. ifnottrue(goto (bSel))
  70. loadsub(control\macros\list.ctl)
  71. Goto (disp)
  72.   *news
  73. enufsec(10)
  74. ifnottrue(goto (bSel))
  75. loadsub(control\macros\news.ctl)
  76. Goto (disp)
  77.   *stats
  78. enufsec(10)
  79. ifnottrue(goto (bSel))
  80. loadsub(control\macros\stats.ctl)   ;Other menu selections
  81. Goto (disp)
  82.   *page
  83. enufsec(10)
  84. ifnottrue(goto (bSel))
  85. loadsub(control\macros\page.ctl)
  86. Goto (disp)
  87.   *Cmnt
  88. enufsec(10)
  89. ifnottrue(goto (bSel))
  90. display(display\COMMENT)
  91. loadsub(control\macros\comment.ctl)        
  92. Goto (disp)
  93.   *exp
  94. enufsec(10)
  95. ifnottrue(goto (bSel))
  96. loadsub(control\macros\expert.ctl)
  97. Goto (disp)
  98.   *help
  99. enufsec(10)
  100. ifnottrue(goto (bSel))
  101. log(--,Viewing Main Menu Help)
  102. display (display\help\main,/:SEC/)
  103. Goto (disp)
  104.   *bye
  105. enufsec(10)
  106. ifnottrue(goto (bSel))
  107. loadsub(control\macros\bye.ctl)
  108. Goto (disp)
  109.  
  110.   *bSel
  111. LoadSub(control\macros\badsel.ctl) ;invalid selection
  112. Goto (disp)
  113. SYS1CTL/say()
  114. Seek(Tagged.%NODE%)
  115. IfTrue (Say(&CR&&10&You have files tagged for download!%BEEP%%BEEP%))
  116. flushout
  117. Say(&CR&&3&Are you sure you want to &11&disconnect&3&? &9&[   ]&14&*)
  118. Back(4)
  119. YesNoAsk(*)
  120. If (%RESP%)=(No) Then Return
  121. Display (display\goodbye)
  122. Log(<<,User logged off normally.)
  123. QuitBBS
  124. SYS3CTLj*disp
  125. SetActivity (Sysop Menu)
  126. if (/EXPERT)=(Y) then goto (prompt)
  127. *sdisp
  128. Display (display\SYSOP,/:SEC/)
  129.  
  130. *prompt
  131. say(&CR&&14&│$7$&0&%CACT%$0$&14&│&7& You have &15&%LEFT% &7&minutes remaining, &15&%FNAME%.&3&)
  132. menuask %MIN1%(Please enter a selection from the &11&menu&12&: &15&*)
  133. 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)
  134. goto (badsel)
  135.  
  136. *badsel
  137. loadsub(control\macros\badsel.ctl)
  138. goto (disp)
  139.  
  140. *GOODBYE
  141. LoadSub(CONTROL\MACROS\BYE.CTL)
  142. Goto(Disp)
  143. *HELP
  144. Display(display\help\SYSOP,/:SEC/)
  145. Log (--,Viewed Sysop Menu Help)
  146. Goto (Disp)
  147.  
  148. *EXP
  149. LoadSub(CONTROL\MACROS\EXPERT.CTL)
  150. Goto(Disp)
  151. *VIEWLOG
  152. LoadSub(CONTROL\MACROS\VIEWLOGS.CTL)
  153. Goto(Disp)
  154. *SHELL
  155. EnufSec(100)
  156. IfNotTrue(Goto(BSel))
  157. LoadSub(CONTROL\MACROS\SHELL.CTL)
  158. Goto(Disp)
  159. *KILL
  160. LoadSub(CONTROL\MACROS\KILLNODE.CTL)
  161. Goto(Disp)
  162. *DOWN
  163. LoadSub(CONTROL\MACROS\NODEDOWN.CTL)
  164. Goto(Disp)
  165. *VNO
  166. LoadSub(CONTROL\MACROS\VIEWNODE.CTL)
  167. Goto(Disp)
  168. *QT
  169. LoadMem(CONTROL\MAIN.MNU)
  170. *FIL
  171. LoadMem(CONTROL\FILES.MNU)
  172. *MS
  173. LoadMem(CONTROL\MESS.MNU)
  174. *ED
  175. LoadSub(CONTROL\UEDIT.CTL)
  176. Goto(Disp)
  177. SYS7CTL¬ *stats
  178. Clearscr
  179. If (/graphics)=(ANSI) Then Goto (ansist)
  180. Say(   Statistics Here at %BBS%)
  181. Goto (ContStats)
  182. *ansist
  183. Say($7$                                                                               $0$*)
  184. AnsiGoto(3,1)
  185. Say($7$&0&   Statistics Here at %BBS%$0$&7&)
  186. *ContStats
  187. Say(&CR&&7&Date of Last Call: &14&/:LAST/            &11&│&7& Your Security Level Is: *)
  188. Say(&14&%SEC%&CR&&7&First call to BBS: &14&/:FIRST/            &11&│&7& Times on this *)
  189. Say(BBS: &14&/:TIMESON/&CR&&7&Last New Files Check: &14&/:LASTCHK/         &11&│&7& *)
  190. Say(Carrier Drops: &14&/:DROPPED/&CR&&7&Current BBS Time: &14&%DATE% %TIME%       &11&│*)
  191. Say(&7& Time Allotted Per Day: &14&%LIMIT%&CR&&CR&)
  192. If (/graphics)=(ANSI) Then Goto (ansist2)
  193. Say(   Information you can change yourself:)
  194. Goto (ContStats2)
  195. *ansist2
  196. Say($7$                                                                               $0$*)
  197. AnsiGoto(1,9)
  198. Say($7$&0&   Information you can change yourself:$0$&10&)
  199. *ContStats2
  200. Say(&CR&1. &11&Street Address: &7&*)
  201. SetEqual(a=/:STREET/)
  202. SetLen(a=19)
  203. Say(%var%a  &10&2. &11&City and State: &7&*)
  204. Say(/:FROM/)
  205. Say(&10&3. &11&Password: &7&*)
  206. SetEqual(a=/:PASS/)
  207. SetLen(a=25)
  208. Say(%var%a  &10&4.   &11&Phone number: &7&*)
  209. Say(/:PHONE/)
  210. Say(&10&5. &11&Graphics Mode: &7&*)
  211. SetEqual(a=%GRAPHICS%)
  212. SetLen(a=20)
  213. Say(%var%a  &10&6.     &11&Work Phone: &7&/:WORK/)
  214. Say(&10&7. &11&Default Protocol: &7&*)
  215. SetEqual(a=/:PROTOCOL/)
  216. SetLen(a=17)
  217. Say(%var%a  &10&8.  &11&Screen Length: &7&/:SCREENLEN/)
  218. Say(&CR&&CR&&3&Would you like to change anything? &9&[   ]&14&*)
  219. Back(4)
  220. YesNoAsk(*)
  221. If (%RESP%)=(No) Then return
  222. Say(&10&&CR&Selections are listed above (1-8).)
  223. MenuAsk (&3&Which selection would you like to change?%hRed%: &15&*)
  224. Say(&3&)
  225. BigIf (1:street,2:city,3:pass,4:phone,5:graph,6:work,7:prot,8:scrlen)
  226. Return
  227.         *prot
  228. Display (Display\defprots)
  229. MenuAsk (&3&Which protocol would you like (or N for None)?%hRed%: &15&*)
  230. SetEqual(/protocol=%RESP%)
  231. Log(--,Changed Default Protocol to %RESP%)
  232. Goto (stats)
  233.         *scrlen
  234. MenuAsk (&3&Please enter the new length for your screen&12&: &15&*)
  235. SetEqual(/screenlen=%RESP%)
  236. Log(--,Changed Screen Length to %RESP%)
  237. Goto (stats)
  238.         *street
  239. Ask(What is your &11&street&3& address?%hRed%: &15&*)
  240. SetEqual(/STREET=%RESP%)
  241. Log(--,Changed Street Address)
  242. Goto (stats)
  243.         *city
  244. Ask(What is your &11&City and State &3&address?%hRed%: &15&*)
  245. SetEqual(/FROM=%RESP%)
  246. Log(--,Changed From (City,St))
  247. Goto (stats)
  248.         *pass
  249. Say(What would you like your new password to be?%hRed%: &15&*)
  250. getpass(.)
  251. SetEqual(/PASS=%RESP%)
  252. Log(--,Changed Password)
  253. Goto (stats)
  254.         *phone
  255. Say(What is your new &11&home &3&phone number?%hRed%: &15&)
  256. Picture(###-###-####)
  257. SetEqual(/PHONE=%RESP%)
  258. Log(--,Changed Phone # to %RESP%)
  259. Goto (stats)
  260.         *graph
  261. Say(Do you want to use &11&ANSI color&3& graphics? &9&[   ]&14&*)
  262. Back(4)
  263. YesNoAsk(*)
  264. SetEqual(/graphics=ANSI)
  265. If (%RESP%)=(No) Then SetEqual(/graphics=ASCII)
  266. Log(--,Changed Graphics Mode)
  267. Goto (stats)
  268.         *work
  269. Say(What is your new &11&work &3&phone number?%hRed%: &15&)
  270. Picture(###-###-####)
  271. SetEqual(/WORK=%RESP%)
  272. Log(--,Changed Work Phone to %RESP%)
  273. Goto (stats)
  274. SYS6CTLQif (%MULTI%)=(TRUE) then goto (start)
  275. say(&CR&&11&Sorry, %FNAME%, this system is not running the Multinode version of the)
  276. say(Powerboard BBS Package.&CR&&CR&&3&If you feel this would be a good addition to the BBS, please contact)
  277. say(your Sysop, %SYSOP%.&CR&)
  278. enter
  279. return
  280.  
  281. *start
  282. SetActivity(Multinode Chat)
  283. SetWho1(&7&)
  284. SetWho2(&11&)
  285. SetWho3(&3&)
  286. SetWho4(&10&)
  287. SetWho5(&15&)
  288. display(display\chatconf)
  289. menuask(&3&Please select a chat conference&12&: &15&*%CRON%)
  290. if (%RESP%)=(<CR>) then return
  291. number(%RESP%)
  292. ifnottrue(goto (badsel))
  293. setequal(a=%RESP%)
  294. setequal(c=%NAME%)
  295. setlen(c=20)
  296. setequal(d=%FROM%)
  297. setlen(d=21)
  298. display(display\chatopt)
  299. menuask(&3&Nodes you would like to chat with, seperated by spaces &11&(A=All)&12&: &15&*%MIN1%%CRON%)
  300. if (%RESP%)=(<CR>) then return
  301. if (%RESP%)=(A) then goto (all)
  302. setequal(b=%RESP%)
  303. find(%RESP%,%NODE%)
  304. if (%ARESP%)=(0) then combine(%NODE% +%var%b=b)
  305.  
  306. display(display\stchat)
  307. mChat(%debug%%var%a %var%b)
  308. Return
  309.  
  310. *all
  311. display(display\stchat)
  312. mchat(%var%a -1)
  313. return
  314.  
  315. *badsel
  316. loadsub(control\macros\badsel.ctl)
  317. return
  318. SYS4CTLssetequal(a=/:CHATREQ/)
  319. inc(a)
  320. setequal(/chatreq=%var%a)
  321. say(&14&&CR&Paging %SYSOP% for a chat, one moment please...*)
  322. checkhours
  323. if (%ARESP%)=(No) then goto (badhours)
  324. if (%CHAT%)=(No) then goto (notHere)
  325. seek(psys.%node%)
  326. iftrue(goto (psys))
  327. *beginPage
  328. appendto(psys.%node%,)
  329. setequal(n=OK)
  330. savescreen(scr1.%NODE%)
  331. inpopen (pagebell.dat)
  332. localwrite(1,1,7,0,┌──────────────────────────────────────────────────────────────────────────────┐)
  333. localwrite(1,2,7,0,│                                                                              │)
  334. localwrite(1,3,7,0,└──────────────────────────────────────────────────────────────────────────────┘)
  335. localwrite(2,2,14,1,        Paging SysOp ... Press (SPACE) to accept; (ESC) to toggle page        )
  336. if (%ARESP%)=(ERROR) then goto (nothere)
  337. setequal(h=0)
  338.  
  339. do
  340. if (&n)=(PROB) then goto (absound)
  341. inpread
  342. sound (%ARESP%)
  343.  
  344.         *absound
  345. localkey(1)
  346. if (%ARESP%)=( ) then goto (spacehit)
  347. if (%aresp%)=() then goto (tpg)
  348. eofloop
  349.  
  350.         *nothere
  351. restscreen(scr1.%NODE%)
  352. inpclose
  353. requested (Chat Requested)
  354. display (display\page)
  355. log(--,Chat with Sysop Requested)
  356. loadsub(control\macros\comment.ctl,goto (stc))
  357. return
  358.  
  359.         *spacehit
  360. restscreen(scr1.%NODE%)
  361. linefeed(1)
  362. kill(psys.%node%)
  363. inpclose
  364. norest ;dont restore the screen when chat ends!
  365. sysopchat
  366. return
  367.  
  368.         *badhours
  369. requested (Chat Requested)
  370. display (display\hours)
  371. log(--,Chat with Sysop Requested)
  372. loadsub(control\macros\comment.ctl,goto (stc))
  373. return
  374.  
  375. *tpg
  376. tpage ;toggle page
  377. goto (nothere)
  378.  
  379. *psys
  380. lines(psys.%node%)
  381. notif (%aresp%)=(3) then goto (beginpage)
  382. goto (nothere)
  383. SYS2CTL@Clearscr
  384.  
  385. jump(InitSetup)
  386.  
  387.  DetectAnsi()
  388.  IfTrue(Setequal(/graphics=ANSI) )
  389.  IfTrue(Say(&14& Ansi Detected) )
  390.  IfNotTrue(Say ( No Ansi Detected) )
  391.  Say (&CR&&3&Would you like ANSI/Color graphics? &9&[   ]&14&*)
  392.  Back(4)
  393.  YesNoAsk (*)
  394.  SetEqual (/Graphics=ASCII)
  395.  If (%RESP%)=(Yes) then SetEqual (/Graphics=ANSI)
  396.  Display (display\WELCOME)
  397.  
  398. setequal(t=0)
  399.  
  400. *CONT
  401. inc(t)
  402. if (&t)=(5) then loadmem(control\no.ctl)
  403.  
  404.  MenuAsk%MIN1% (&CR&&3&Please enter your first name here&12&: &15&*)
  405.  SetEqual (a=%RESP%)
  406.  Find (%VAR%a, )
  407.  NotIf (%ARESP%)=(0%debug%) then Goto (Check)
  408.  MenuAsk (&3& Please enter your last name here&12&: &15&*)
  409.  SetEqual (b=%RESP%)
  410.  
  411. *CHECK
  412.  NameSplit (%VAR%a,a,b)
  413.  NameComb (%VAR%a,%VAR%b,d)
  414.  Namequal (/name=%VAR%d)
  415.  nameok
  416.  ifnottrue(goto (cont))
  417.  SetEqual (d=%NAME%)
  418.   
  419. *STSEEK
  420.  SeekUser (%NAME%)
  421.  IfNotTrue( Goto (NotFound) )
  422.  If (%NDLOCK%) = (1) then Loadmem(control\lockout.ctl)
  423.  Say (&CR&&3&Are you the "%NDNAME%" from "%NDFROM%"? &9&[   ]&14&*)
  424.  Back(4)
  425.  YesNoAsk()
  426.  If (%RESP%)=(No) then Goto (dupname)
  427.  MenuEqual (e=%NDPASS%)
  428.  Say (&CR&Dots will echo instead of actual letters of your password.)
  429.  SetEqual (f=0)
  430.  
  431. *PASSWORD
  432.   DO
  433.  Say (&3&What is your password?&11& (&F&20)&15&*)
  434.  Back(21)
  435.  cGetPass%MIN1%%LEN20% (.)
  436.  If (%RESP%) = (&e) then Goto (Ok)
  437.  inc(f)
  438.  Log (--,(%NAME%) Password (%RESP%) incorrect...)
  439.  If (&f) = (3) then Goto (lasttry)
  440.  If (&f) = (4) then Goto (badpass)
  441.  Say(&CR&&12&%beep%Password incorrect. Try again please...&CR&)
  442.   LOOP
  443.  
  444. *LASTTRY
  445.  Say (&CR&&12&This is your last try! Next time you will be logged off!&CR&)
  446.  LOOP
  447.  
  448. *NOTFOUND
  449.  badseek(%NAME%)
  450.  iftrue (loadmem(control\badname.ctl))
  451.  Say (&CR&%BEEP%We couldn't find "%NAME%" in our user file.)
  452.  Say (&CR&&3&Did you spell your name correctly? &9&[   ]&14&*)
  453.  Back(4)
  454.  flushout
  455.  YesNoAsk ()
  456.  If (%RESP%)=(No) then Goto (TryAgain)
  457.  Display (display\NONMEMB)
  458.  Say (&CR&&3&Would you like to become a member of %BBS%? &9&[   ]&14&*)
  459.  Back(4)
  460.  YesNoAsk ()
  461.  If (%RESP%)=(No) then loadmem (control\refused.ctl)
  462.  LoadMem (control\newuser.ctl)
  463.  
  464. *TRYAGAIN
  465.  Say (&CR&&12&Try again ...)
  466.  Log (--,Attempted logon as %NAME%)
  467.  Goto (Cont)
  468.  
  469. *DUPNAME
  470.  Display (display\DUPE)
  471.  Goto (Cont)
  472.  
  473. *BADPASS
  474.  LoadMem(control\badpass.ctl)
  475.   
  476. *OK
  477.  SetActivity (Logging On...)
  478.  Goto (Connect)
  479.  
  480. *CONNECT
  481.  UserLogin(%NDNUMB%,User %NDNUMB%: %NDNAME% Logged On (%BAUD%))
  482.  If (%ARESP%)=(ALREADY ON) then Goto (alreadyon)
  483.  If (/SEC)=(%SYSSEC%) then Goto (syssec)
  484.  
  485. *CONCLR
  486.  ClearScr
  487.  selarea(/:lastmsg/)
  488.  listfile(areas\farea/:lastmsg/)
  489.  Log(->,Call #%CALLERS%, %GRAPHICS%, %NDFROM%, Last: /:LAST/, Sec: /:SEC/)
  490.  If (/SUB)=(Y) then Goto (subscriber)
  491.  
  492. *SECSHOW
  493.  InpClose
  494.  Display (display\sec/:SEC/)
  495.  fDate(display\newsltr.asc)
  496.  CmpDate(/:LAST/,%ARESP%)
  497.  IfNotTrue( display (display\newnews))
  498.  Say(&3&Would you like to view our newsletter? &9&[   ]&14&*)
  499.  Back(4)
  500.  YesNoAsk()
  501.  If (%RESP%) = (No) then Goto (mailchk)
  502.  Log(--,Viewed Newsletter)
  503.  Display(display\NEWSLTR)
  504.  linefeed(1)
  505.  Enter
  506.  
  507. *MAILCHK
  508.  cmpval(/:lastdown/,%maxfarea%)
  509.  ifnottrue(setequal(/lastdown=1))
  510.  selfarea(/:lastdown/)
  511.  ClearScr
  512.  NiceDate(/:LAST/)
  513.  Say(&11&Here's some information about your status here at %BBS%:&CR&&7&)
  514.  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.)
  515.  If (/LASTCHK)=(00-00-00) then goto (nochk)
  516.  NiceDate(/:LASTCHK/)
  517.  Say(You last checked for new files on %ARESP%.)
  518.  
  519. *BAKN
  520.  NiceDate(/:FIRST/)
  521.  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%:)
  522.  NiceDate(%SINCE%)
  523.  Say(&CR&%White%%BBS% has been up since %ARESP%.)
  524.  addcomma(%CALLERS%)
  525.  say(This BBS has received %ARESP% callers.&CR&This BBS is currently running Powerboard Ver. %VER%.&CR&)
  526.  CmpDate(/:LAST/,%FILUP%)
  527.  IfNotTrue(Say(New files have been added to the file area!))
  528.  CmpDate(/:LAST/,%MSGUP%)
  529.  IfNotTrue( Say(There are new messages in the message section!))
  530.  linefeed(1)
  531.  Enter
  532.  If (/WAIT)=(N) then LoadMem(control\BULLETS.ctl)
  533.  ClearScr
  534.  SetNotFoundMS( )
  535.  LoadMem(control\mscan.ctl)
  536.  
  537. *SUBSCRIBER
  538.  DateOK(/:SUBDATE/)
  539.  IfNotTrue (goto (secshow))
  540.  CmpDate(%DATE%,/:SUBDATE/)
  541.  IfNotTrue(goto (sok))
  542.  Display (display\SEXP/:SEC/)
  543.  InpOpen (sub.bbs)
  544.  
  545. *STRSUB
  546.  fEndIF(secshow)
  547.  InpRead
  548.  SetEqual(b=%ARESP%)
  549.  SetEqual(a=%VAR%b)
  550.  Len(%VAR%a)
  551.  If (%ARESP%)=(0) then Goto (strsub)
  552.  Get(%VAR%a,1,1)
  553.  If (%ARESP%)=(;) then Goto (strsub)
  554.  Find(%VAR%b,,)
  555.  If (%ARESP%)=(0) then Goto (strsub)
  556.  SetEqual(a=%VAR%b)
  557.  SetEqual(c=%ARESP%)
  558.  AddVar(&c+-1=c)
  559.  Get(%VAR%a,1,%VAR%c)
  560.  NotIF (%ARESP%)=(/SEC) then Goto (strsub)
  561.  AddVar(&c+2=c)
  562.  Get(%VAR%b,%VAR%c,10)
  563.  SetEqual (/SEC=%ARESP%)
  564.  SetEqual (/SUB=N)
  565.  Log(--,User's subscription expired.)
  566.  Goto (secshow)
  567.  
  568. *SOK
  569.  Display(display\SUB/:SEC/)
  570.  Enter
  571.  Goto (secshow)
  572.  
  573. *ALREADYON
  574.  Display(display\ALREADY)
  575.  Log(<<,User already on other node!)
  576.  QuitBBS
  577.  
  578. *SYSOP
  579.  DefPause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  580.  DefPif (s:stop,n:nonstop)
  581.  Kill (cnodes.%NODE%,inodes.%NODE%,tagged.%NODE%,tagged2.%NODE%)
  582.  SetActivity (SYSOP Logon)
  583.  Setequal(/Graphics=ANSI)
  584.  UserLogin(1,SYSTEM OPERATOR Logged On Locally)
  585.  Log (->,Call %CALLERS%, %GRAPHICS%, Last: /:LAST/)
  586.  Goto (secshow)
  587.  
  588. *SYSSEC
  589.  If (%SYSP%)=() then Goto (conclr)
  590.  Say(&3&Sysop Password?&12&: &15&*)
  591.  MenuEqual(a=%SYSP%)
  592.  cGetPass(*)
  593.  If (%RESP%)=(&a) then goto (conclr)
  594.  Log(!!,Incorrect Sysop Pass (%RESP%))
  595.  Say(&12&Incorrect Attempt!)
  596.  QuitBBS
  597.  
  598. *NOCHK
  599.  Say(You haven't checked for new files in our file area yet!)
  600.  Goto (bakn)
  601.  
  602. *INITSETUP
  603.  Defpause ($7$&0&[Send more text?]$0$&3& (&11&S&3&)top, (&11&N&3&)onstop or (&11&C&3&)ontinue?&12&: &7&)
  604.  DefPif (s:stop,n:nonstop)
  605.  if (%ON%)=(FROM DOOR) then loadmem(control\doorback.ctl)
  606.  SetEqual (/sec=%NEWSEC%)
  607.  SetEqual (/SCREENLEN=23)
  608.  SetActivity (Logging in...)
  609.  linefeed(1)
  610.  %Clogin% Kill (cnodes.%NODE%,inodes.%NODE%,tagged.%NODE%,tagged2.%NODE%,psys.%node%)
  611. ret
  612. SYS9CTL≤say()
  613. *UserFind
  614. *Main
  615.  Say (&CR&&15&Enter Name of User: &12&*)
  616.  MenuAsk%MIN1%(*)
  617. *Searching
  618.  SeekUser(%RESP%)
  619.  ifnottrue(goto (notfound))
  620.  Loaduser (%NDNUMB%)
  621.  enufsec (100)
  622.  iftrue (Say (&7&Street            : &3&\:STREET\))
  623.  Say (&7&From              : &3&\:FROM\)
  624.  iftrue(Say (&7&Birthday          : &3&\:BIRTH\))
  625.  iftrue(Say (&7&Phone Number      : &3&\:PHONE\))
  626.  Say (&7&Last Date On      : &3&\:LAST\)
  627.  Say (&7&Last Time On      : &3&\:LASTT\&CR&)
  628.  yesnoask (&12&Search For Another User (Y/N)? &15&*)
  629.  If (%RESP%)=(Yes) then goto (main)
  630. return
  631.  
  632. *NotFound
  633.  Say (&4&User Not Found in User File!)
  634.  Enter
  635.  return
  636.  
  637. *NotEnufSec
  638.  Say (&12&Sorry, but your security is not high enough to access this command.&CR&)
  639.  Enter
  640.  return
  641. SYS8CTL₧*TimeBank
  642. ClearScr
  643. If (%GRAPHICS%)=(ASCII) then goto (NoGraphics)
  644. Say (&4&╔══════════════════════════════════════════════════════════════════════╗)
  645. Say (║                                                                      ║)
  646. Say (║                                                                      ║)
  647. Say (╚══════════════════════════════════════════════════════════════════════╝*)
  648. AnsiGoto (1,19)
  649. Say (&7&╔══════════════════════════════════════════════════════════════════════╗)
  650. Say (║                                                                      ║)
  651. Say (╚══════════════════════════════════════════════════════════════════════╝*)
  652. AnsiGoto (24,2)
  653. Say (&12&%BBS% Time Bank*)
  654. AnsiGoto (20,20)
  655. Say (&7&Searching for your account....*)
  656. SeekUser(/:NAME/)
  657. SetEqual(n=%NDNUMB%)
  658. Seek(bank\%var%n.DAT)
  659. ifnottrue(goto (norecord))
  660. Say (Found!)
  661. *MORE
  662. inpline(bank\%var%n.dat,1)
  663. SetEqual (t=%ARESP%)
  664. Seek (bank\maxlimit.dat)
  665. ifnottrue(goto (NoLim))
  666. InpLine (bank\maxlimit.dat,1)
  667. SetEqual (m=%ARESP%)
  668. *bak
  669. cmpval (%var%t,%var%m)
  670. ifnottrue (SetEqual (t=%var%m))
  671. AnsiGoto (25,6)
  672. Say (&15&   Account Info*)
  673. AnsiGoto (25,7)
  674. Say (&15&   ────────────*)
  675. AnsiGoto (28,8)
  676. Say (&7&Account #&12&%var%n*)
  677. AnsiGoto (25,9)
  678. Say (&7&Bank Limit: &12&%var%m&7& minutes.*)
  679. AnsiGoto (20,10)
  680. Say (&7&Current Balance: &12&%var%t&7& minutes.*)
  681. AnsiGoto (18,14)
  682. Say(&15& Time Currently Left: &14&/:LEFT/ &15&minutes.*)
  683. *MORE2
  684. AnsiGoto (10,20)
  685. Say (&15&(&4&W&15&)ithdraw Time, (&4&D&15&)eposit Time, (&4&Q&15&)uit Bank: *)
  686. MenuKey
  687. Say (&12&*)
  688. BigNiceSay (Q:Quit,W:Withdraw,D:Deposit)
  689. BigIf (W:Withdraw,D:Deposit,q:quit)
  690. goto (more2)
  691. *NoLimit
  692.  SetEqual (m=99999)
  693.  Say (&14&The maximum number of minutes allowed to be stored is %var%m.)
  694.  Say (&7&Minutes Currently Stored in Bank: &15&%var%t)
  695.  Say(&14&Time Currently Left: &15&/:LEFT/)
  696.  goto (more2)
  697. *Deposit
  698.  AnsiGoto (10,20)
  699.  Say (                                                             *)
  700.  AnsiGoto (18,20)
  701.  ask (&7&Deposit How Many Minutes? *)
  702.  Number (%RESP%)
  703.  If (%RESP%)=(0) then goto (finale)
  704.  IfNotTrue (goto (Deposit))
  705.  SetEqual (v=/:LEFT/)
  706.  inc(v)
  707.  CmpVal (%RESP%,%var%v)
  708.  IfNotTrue(goto (toolarge1))
  709.  Addvar (%var%t+%RESP%=e)
  710.  AddVar (%var%m+1=g)
  711.  CmpVal (%var%e,%var%g)
  712.  IfNotTrue(goto (OverMax))
  713.  AddVar (%var%t+%RESP%=T)
  714.  Zap (bank\%var%n.dat,%var%t)
  715.  SetEqual (y=%RESP%)
  716.  Addvar(/:LEFT/+-%var%y=x)
  717.  SetEqual(/LEFT=%var%x)
  718.  Goto (Finale)
  719. *Withdraw
  720.  AnsiGoto (10,20)
  721.  Say (                                                             *)
  722.  AnsiGoto (18,20)
  723.  Ask (&7&Withdraw How Many Minutes? *)
  724.  Number (%RESP%)
  725.  IfNotTrue(goto (withdraw))
  726.  inc(t)
  727.  CmpVal (%RESP%,%var%t)
  728.  IfNotTrue(goto (toolarge))
  729.  addvar(&t+-1=t)
  730.  AddVar (%var%T+-%RESP%=T)
  731.  Zap (bank\%var%n.dat,%var%t)
  732.  SetEqual (y=%RESP%)
  733.  AddVar(/:LEFT/+%var%y=x)
  734.  SetEqual(/LEFT=%var%x)
  735.  Goto (Finale)
  736. *Finale
  737.  AnsiGoto (20,10)
  738.  Say (&7&Current Balance: &12&%var%t&7& minutes.*)
  739.  AnsiGoto (18,14)
  740.  Say(&15& Time Currently Left: &14&/:LEFT/ &15&minutes.)
  741.  Goto (more2)
  742. *TooLarge1
  743.  AnsiGoto (14,20)
  744.  Say(&4&    Hey! &7&You don't have &15&%RESP% &7&minutes left!)
  745.  SecPause (2)
  746.  Goto (Deposit)
  747. *TooLarge
  748.  AnsiGoto (11,20)
  749.  Say(&4&Hey! &7&You don't have &15&%RESP% &7&minutes stored in the bank!)
  750.  SecPause (2)
  751.  Goto (Withdraw)
  752. *OverMax
  753.  AnsiGoto (14,20)
  754.  Say (&4&Sorry! &7&You are only allowed to store &15&%var%m &7&minutes.)
  755.  SecPause (2)
  756.  Goto (Deposit)
  757. *NoRecord
  758.  Zap (bank\%var%n.dat,0)
  759.  Say (&15&Not Found-- Created!*)
  760.  AnsiGoto (50,20);
  761.  Say (                    *)
  762.  goto (more);
  763. *Quit
  764.  AnsiGoto (10,20)
  765.  Say (&14&    Thank you for using the %BBS% time bank!)
  766.  return
  767. *NoGraphics
  768. ClearScr
  769. Say (                            %BBS% Time Bank)
  770. Say (                              (NON-GRAPHICS MODE))
  771. Say (&CR&Searching for your account....*)
  772. SeekUser(/:NAME/)
  773. ifnottrue(goto (nonuser))
  774. SetEqual(n=%NDNUMB%)
  775. Seek(bank\%var%n.DAT)
  776. ifnottrue(goto (NoRecord2))
  777. *MORE222
  778. Say (Found!)
  779. InpLine (bank\%var%n.DAT,1)
  780. SetEqual (t=%ARESP%)
  781. Seek (bank\maxlimit.dat)
  782. ifnottrue(goto (NoLimit2))
  783. InpLine (bank\maxlimit.dat,1)
  784. SetEqual (m=%ARESP%)
  785. cmpval (%var%t,%var%m)
  786. ifnottrue(SetEqual (t=%var%m))
  787. Say (&CR&The maximum number of minutes allowed to be stored is %var%m.)
  788. Say (Minutes Currently Stored in Bank: %var%t)
  789. Say(Time Currently Left: /:LEFT/)
  790. *MORE22
  791. Say (&CR&(W)ithdraw Time, (D)eposit Time, (Q)uit Bank: *)
  792. MenuKey
  793. BigNiceSay (Q:Quit,W:Withdraw,D:Deposit)
  794. BigIf (W:Withdraw2,D:Deposit2,q:quit2)
  795. goto (more22)
  796. *NoLimit2
  797.  SetEqual (m=99999)
  798.  Say (The maximum number of minutes allowed to be stored is %var%m.)
  799.  Say (Minutes Currently Stored in Bank: %var%t)
  800.  Say(Time Currently Left: /:LEFT/)
  801.  goto (more22)
  802.  
  803. *Deposit2
  804.  Ask (Deposit How Many Minutes? *)
  805.  Number (%RESP%)
  806.  If (%RESP%)=(0) then goto (finale2)
  807.  If (%ARESP%)=(No) then goto (Deposit2)
  808.  SetEqual (v=/:LEFT/)
  809.  inc(v)
  810.  CmpVal (%RESP%,%var%v)
  811.  ifnottrue(goto (toolarge12))
  812.  Addvar (%var%t+%RESP%=e)
  813.  AddVar (%var%m+1=g)
  814.  CmpVal (%var%e,%var%g)
  815.  ifnottrue(goto (OverMax2))
  816.  AddVar (%var%t+%RESP%=T)
  817.  Zap (bank\%var%n.dat,%var%T)
  818.  SetEqual (y=%RESP%)
  819.  Addvar(/:LEFT/+-%var%y=x)
  820.  SetEqual(/LEFT=%var%x)
  821.  Goto (Finale2)
  822. *Withdraw2
  823.  Ask (Withdraw How Many Minutes? *)
  824.  Number (%RESP%)
  825.  IfNotTrue(goto (withdraw2))
  826.  inc(t)
  827.  CmpVal (%RESP%,%var%t)
  828.  IfNotTrue(goto (toolarge2))
  829.  addvar(&t+-1=t)
  830.  AddVar (%var%T+-%RESP%=T)
  831.  Zap (bank\%var%n.dat,%var%t)
  832.  SetEqual (y=%RESP%)
  833.  AddVar(/:LEFT/+%var%y=x)
  834.  SetEqual(/LEFT=%var%x)
  835.  Goto (Finale2)
  836.  
  837. *Finale2
  838.  Say(&CR&Minutes Currently Stored in Bank: %var%t)
  839.  Say(Time Currently Left: /:LEFT/)
  840.  Goto (more22)
  841.  
  842. *TooLarge12
  843.  Say(Hey! You don't have %RESP% minutes left!)
  844.  Goto (Deposit2)
  845.  
  846. *TooLarge2
  847.  Say(Hey! You don't have %RESP% minutes stored in the bank!)
  848.  Goto (Withdraw2)
  849.  
  850. *OverMax2
  851.  Say (Sorry! You are only allowed to store %var%m minutes.)
  852.  Goto (Deposit2)
  853.  
  854. *NoRecord2
  855.  Zap (bank\%var%n.dat,0)
  856.  goto (more222)
  857.  
  858. *Quit2
  859.  Say (Thank you for using the %BBS% Time Bank!)
  860.  return
  861.  
  862. *nonuser
  863. say(You are not a registered user on this BBS and therefore you cannot hold)
  864. say(an account here.  If you would like an account, please notify the Sysop)
  865. return
  866.  
  867. *nolim
  868. setequal(m=32767)
  869. goto (bak)
  870.