home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / comm / mbbs25a4.zip / MACROSYS.MAC < prev    next >
Text File  |  1993-05-30  |  22KB  |  766 lines

  1.  
  2.                              MACROSYS.MAC 2.5 ALPHA
  3.                       by Jeff Oberlee   (C)opyright 1992,93
  4.  
  5.  
  6. {:alr} {MACL MACROBBS.MAC,WF3}  {:alu} {MACL MACROBBS.MAC,bbs}
  7.  
  8. {:esc_menu}
  9.   {IFCA ,ESM} {SEND ^J^M%an7%%an9%Time comes to a grinding halt!  %an0}
  10. {:ESM} {SETE-P0 ESM2} {SETV ch}
  11.   {PARM ,,,,0}
  12.   {INPU ch, PRESS:  [ENTER] to CHAT, [U]seredit, [D]OS, [H]angup}
  13.   {COMP ch,h} {IFCO ESM4}
  14.   {COMP ch,d} {IFCO ESM5}
  15.   {COMP on,} {IFCO ESM}
  16.   {COMP ch,u} {IFCO ESM8}
  17.   {COMP ch,} {IFCO ,ESM}
  18. {:ESM1} {COMP cf,} {IFCO CT8,ESM}
  19. {:ESM2} {SETE-P0 esc_menu}
  20.   {IFCA ,ESM6} {SEND %an3%Then suddenly...} {PAUS 1}
  21. {:ESM6} {RETURN}
  22. {:ESM5} {SHEL} {GOTO ESM}
  23. {:ESM8} {COMP login_name,} {IFCO ESM}
  24.   {SETV lname,%login_name} {INPU lname,EDIT: Handle  (3-30 characters)}
  25.   {COMP lname,1} {IFCO-GE ESM8}
  26.   {LENG %lname} {COMP _len,3} {IFCO-L ESM8}
  27.   {LENG %lname} {COMP _len,30} {IFCO-G ESM8}
  28. {:ESM10} {SETV ch,%al} {INPU ch,EDIT: Access Level  (0-999)}
  29.   {COMP ch,999} {IFCO-G ESM10}
  30. {:ESM9} {SETV temp,%pcpd} {INPU temp,EDIT: Time limit per Day/Call (D/C)}
  31.   {COMP temp,c} {IFCO ESM11}
  32.   {COMP temp,d} {IFCO ,ESM9}
  33. {:ESM11}
  34.   {SETV al,%ch}
  35.   {SETV pcpd,%temp}
  36.   {SETV row,%_row} {SETV col,%_col} {DISP 2,2,0F,%an9 * Saving * }
  37.   {COMP lname,%login_name} {IFCO ESM7}
  38.   {SETV login_name,%lname}
  39.   {SETE time_out}
  40.   {CALL update_clist}
  41. {:ESM7} {CALL write_user}
  42.   {DISP 2,2,07,            }
  43.   {DISP %row,%col,,}
  44.   {SETV row} {SETV col} {SETV lname}
  45.   {GOTO ESM}
  46. {:ESM4} {SETV s,2} {GOTO time_out}
  47.  
  48. {:chat}
  49.   {SETV temp,0} {SETV ccount,0}
  50.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Chat request} {WCLO}
  51.   {SEND ^J^M^J%an4%Paging %sysop ...^J^M}
  52.   {SPOC n} {SEND %an3%Press %an0[ESC]%an3 then %an0[ENTER]%an3 to chat with%an7 %login_name %an3...^J^M} {SPOC y}
  53. {:CT7} {INCR ccount} {SETV-S ch,an%ccount}
  54.   {SEND %ch█}
  55.   {SEND ^G} {SEND ^G} {SEND ^G} {PAUS 2}
  56.   {COMP ccount,5} {IFCO-G ,CT7}
  57. {:CT6} {SETV chat,CHAT}
  58.   {SEND ^M%an0%Sorry, %sysop isn't around right now.^J^M}
  59.   {SEND %an0%However, the chat flag has been set.^J^M^J}
  60.   {GOTO CT9}
  61. {:CT8} {SETV tl,%_ela}
  62.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Started chat} {WCLO}
  63.   {COMP cb,y} {IFCO ,CT14}
  64.   {CAPT y,%datadir%CHAT.LOG}
  65. {:CT14} {SEND ^J^M^J%an3%You've just entered . . . %an7%The Twilight Zone.  %an3%Reality vanishes.^J^M}
  66.   {SEND %an2(Type "%an0%bye!%an2" on a blank line to exit when desired.)^J^M}
  67.   {SETV cf,1} {SETV co1,%an0} {SETV co2,%an3}
  68.   {SETE-P0 esc_menu}
  69.   {PUSH}
  70. 0{:CT2} {COMP cf,1} {IFCO CT3}
  71.   {SEND %co2} {SETV cf,1} {GOTO CT4}
  72. {:CT3} {SEND %co1} {SETV cf,2}
  73. {:CT4} {SETV cline}
  74. {:CT5} {SEND ^J}
  75. {:CT13} {SEND ^M%cline}
  76.   {GETS-AH cline,78,CT2}
  77.  
  78.   {COMP cline,/c} ......... {IFCO switch_c}
  79.   {COMP cline,bye!} ....... {IFCO CT1}
  80.   {COMP cline,bye!!} ...... {IFCO time_out}
  81.   {COMP cline,/scroll} .... {IFCO view_scroll}
  82.   {COMP cline,NO CARRIER} . {IFCO time_out}
  83.  
  84.   {LENG %cline}
  85.   {COMP %_len,78} {IFCO-L CT4}
  86.   {SETV ccount,79}
  87. {:CT11} {DECR ccount}
  88.   {COMP ccount,60} {IFCO-LE CT4}
  89.   {SUBS ch,%ccount,1,%cline}
  90.   {COMP ch, } {IFCO ,CT11}
  91.   {COMP ccount,78} {IFCO CT4}
  92.   {INCR ccount}
  93.   {SUBS cline,%ccount,100,%cline}
  94. {:CT12} {COMP ccount,%_len} {IFCO-G CT5}
  95.   {SEND ^H ^H}
  96.   {INCR ccount}
  97.   {GOTO CT12}
  98. {:CT1} {CAPT n}
  99.   {SETV ch,%_ela} {DECR ch,%tl} {INCR tlc,%ch} {SETV tl}
  100.   {SEND ^J^M^J%an3%You've just left . . . %an7%The Twilight Zone.  %an3%Reality restored.^J^M^J}
  101.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Ended chat} {WCLO}
  102.   {SETV cf} {SETV co1} {SETV co2} {SETV chat} {SETV cline}
  103.   {POPS}
  104. {:CT9} {SETV ccount}
  105.   {SETE-P0 esc_menu}
  106.   {CALL press_any_key}
  107.   {RETURN}
  108.  
  109. {:switch_c}
  110. {:SW1} {SEND ^M%an0(0 %an1%1 %an2%2 %an3%3 %an4%4 %an5%5 %an6%6 %an7%7%an0)  ^H}
  111.   {GETS-H ch,1,SW1}
  112.   {COMP ch,0} {IFCO-L SW1}
  113.   {COMP ch,7} {IFCO-G SW1}
  114.   {SEND ^M                    ^M}
  115.   {COMP cf,1} {IFCO ,SW3}
  116.   {SETV-S co2,an%ch} {SEND %co2} {GOTO SW4}
  117. {:SW3} {SETV-S co1,an%ch} {SEND %co1}
  118. {:SW4} {SETV cline}
  119.   {GOTO CT13}
  120.  
  121. {:press_any_key}
  122.   {COMP mnu,a} {IFCO PAK1}
  123.   {SEND %an3%%an9^[[24;1h^[[24;1f[Press Any Key]%an0}
  124.   {GOTO PAK2}
  125. {:PAK1} {SEND ^J^M^J[Press Any Key]}
  126. {:PAK2} {SETG 300,time_out}
  127.   {GETS-H temp,1,PAK}
  128. {:PAK} {SEND ^M               ^M}
  129.   {SETV temp}
  130.   {RETURN}
  131.  
  132. {:view_scroll}
  133.   {SCROLL}
  134.   {GOTO CT4}
  135.  
  136. {:update_clist}
  137.   {ROPE %datadir%CALLERS.LST,UC1}
  138.   {WOPE %datadir%TEMP.000}
  139. {:UC2} {READ ch} {READ cline} {READ dline}
  140.   {COMP ch,%userno} {IFCO UC3}
  141.   {WRIT %ch} {WRIT %cline} {WRIT %dline} {GOTO UC2}
  142. {:UC3} {COMP s,1} {IFCO UC5}
  143. {:UC4} {WRIT %ch}
  144.   {WRIT %login_name}
  145.   {WRIT %password}
  146. {:UC5} {READ dline} {WRIT %dline} {GOTO UC5}
  147. {:UC1} {WCLO}
  148.   {EXEC-N COPY %datadir%TEMP.000 %datadir%CALLERS.LST}
  149.   {EXEC-N DEL %datadir%TEMP.000}
  150.   {RETURN}
  151.  
  152. {:write_user}
  153.   {WOPE %userdir%%userno.USR}
  154.   {WRIT %login_name}
  155.   {WRIT %password}
  156.   {WRIT %al}
  157.   {WRIT %protocol}
  158.   {WRIT %expert}
  159.   {WRIT %a}
  160.   {WRIT %fa}
  161.   {WRIT %_dwt %_dat}
  162.   {WRIT %rname}
  163.   {WRIT %from}
  164.   {WRIT %pcpd}
  165.   {WRIT %clr2}
  166.   {WRIT %arcer}
  167.   {WRIT %arc}
  168.   {WCLO}
  169.   {RETURN}
  170.  
  171. {:time_out}
  172.   {SETV userno,%temp2}
  173.   {CALL read_user}
  174.   {SETV temp1} {SETV temp2}
  175.   {MACL MACROBBS.MAC,time_out}
  176.  
  177. {:cls}
  178.   {CLEA}
  179.   {COMP on,} {IFCO CLS3}
  180.   {COMP mnu,A} {IFCO CLS1}
  181.   {SEND ^[[2J}
  182.   {GOTO CLS2}
  183. {:CLS1} {SEND ^L}
  184. {:CLS2} {DISP 1,1,4F,│                                                                              }
  185.   {DISP 1,3,4E,%login_name #%userno}
  186.   {DISP 1,40,47,AL=%al}
  187.   {DISP 1,49,47,%mspeed}
  188.   {DISP 1,57,47,%_ela mins}
  189.   {DISP 1,70,4F,%an9%%chat}
  190.   {DISP 2,1,4F,│                                                                              }
  191.   {DISP 2,3,47,%rname  -  %from}
  192.   {DISP 3,1,4F,└──────────────────────────────────────────────────────────────────────────────}
  193.   {DISP 4,1,07,}
  194. {:CLS3} {RETURN}
  195.  
  196. {:read_user}
  197.   {ROPE %userdir%%userno.USR,RU1}
  198.   {READ login_name}
  199.   {READ password}
  200.   {READ al}
  201.   {READ protocol}
  202.   {READ expert}
  203.   {READ a}
  204.   {READ fa}
  205.   {READ l_call}
  206.   {READ rname}
  207.   {READ from}
  208.   {READ pcpd}
  209.   {READ clr2}
  210.   {READ arcer}
  211.   {READ arc}
  212.   {RCLO}
  213. {:RU1} {RETURN}
  214.  
  215. {:read_data}
  216.   {ROPE %datadir%CALLER.DAT,RD1}
  217.   {READ %callno}
  218.   {READ %tdcalls}
  219.   {READ pub}
  220.   {READ pvt}
  221.   {READ ttu}
  222.   {READ tf}
  223.   {READ ldate}
  224.   {READ stime}
  225.   {READ ftime}
  226.   {READ l_caller}
  227.   {READ luserno}
  228.   {READ uhigh}
  229.   {READ mhigh}
  230.   {READ fhigh}
  231.   {RCLO}
  232. {:RD1} {RETURN}
  233.  
  234. {:write_data}
  235.   {WOPE %datadir%CALLER.DAT}
  236.   {WRIT %callno}
  237.   {WRIT %tdcalls}
  238.   {WRIT %pub}
  239.   {WRIT %pvt}
  240.   {WRIT %ttu}
  241.   {WRIT %tf}
  242.   {WRIT %ldate}
  243.   {WRIT %stime}
  244.   {WRIT %ftime}
  245.   {WRIT %login_name}
  246.   {WRIT %userno}
  247.   {WRIT %uhigh}
  248.   {WRIT %mhigh}
  249.   {WRIT %fhigh}
  250.   {WCLO}
  251.   {RETURN}
  252.  
  253. {:read_baseinfo}
  254.   {SETV fido}
  255.   {ROPE %msgsdir%A%a.BAS,RB1}
  256.   {READ bname}
  257.   {READ %bal}
  258.   {READ maxmsg}
  259.   {READ lomsgno}
  260.   {READ himsgno}
  261.   {READ fido}
  262.   {RCLO}
  263. {:RB1} {RETURN}
  264.  
  265. {:update_baseinfo}
  266.   {WOPE %msgsdir%A%a.BAS}
  267.   {WRIT %bname}
  268.   {WRIT %bal}
  269.   {WRIT %maxmsg}
  270.   {WRIT %lomsgno}
  271.   {WRIT %himsgno}
  272.   {WRIT %fido}
  273.   {WCLO}
  274.   {RETURN}
  275.  
  276. {:match_name_userno}
  277.   {IFEX %datadir%CALLERS.LST,,MNU2}
  278.   {ROPE %datadir%CALLERS.LST,MNU2}
  279. {:MNU1} {READ ch} {READ lname} {READ dline}
  280.   {COMP to,%ch} {IFCO MNU5}
  281.   {COMP to,%lname} {IFCO ,MNU1}
  282. {:MNU5} {SETV to,%lname}
  283.   {SETV tono,%ch}
  284.   {RCLO}
  285.   {SETV t,1}
  286.   {GOTO MNU4}
  287. {:MNU2} {SEND %an1%ID not found.} {PAUS 1}
  288. {:MNU4} {RETURN}
  289.  
  290. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  291. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  292. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  293. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  294. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  295.  
  296. {:menu}
  297.   {SETV temp1,%login_name} {SETV temp2,%userno}
  298.   {PUSH}
  299.   {SETE-P0 esc_menu}
  300.   {SETG 600,time_out}
  301. {:CLR1}
  302.   {CALL cls}
  303.   {SEND ^J^M^J%an7  Master SysMenu^J^M}
  304.   {SEND ^J^M%an7 1.%an4 File Areas}
  305.   {SEND ^J^M%an7 3.%an4 Message Areas}
  306.   {SEND ^J^M%an7 4.%an4 Caller Records^J^M^J}
  307. {:ME2}
  308.   {SEND ^M%an0  1-4, ENTER=quit:  ^H}
  309.   {GETS-H ch,1,ME1}
  310.   {COMP ch,1} {IFCO EFA}
  311.   {COMP ch,3} {IFCO EMA}
  312.   {COMP ch,4} {IFCO ECA,ME2}
  313. {:ME1} {POPS}
  314.   {SETV total} {SETV high} {SETV temp} {SETV na}
  315.   {SETV temp1} {SETV temp2}
  316.   {MACL MACROBBS.MAC,main_menu}
  317.  
  318. {:EMA}
  319.   {SEND %an0}
  320.   {SEND ^J^M^J%an7%%an9 Scanning...}
  321.   {SETV dline,Message Area(s)}
  322.   {CALL get_minfo}
  323. {:EM2} {SEND ^M%an0               ^M}
  324.   {SETV dline,Message Area(s)}
  325.   {CALL AE1}
  326.   {COMP ch,e} {IFCO EM6}
  327.   {COMP ch,r} {IFCO EM21}
  328.   {COMP ch,d} {IFCO EM3,EM4}
  329.  
  330. {:get_minfo}
  331.   {SETV high,0} {SETV total,0} {SETV na,0} {SETV temp,0}
  332. {:EM} {INCR temp} {COMP temp,%mhigh} {IFCO-G EM0}
  333.   {IFEX %msgsdir%A%temp.BAS,,EM}
  334.   {SETV high,%temp}
  335.   {INCR total} {GOTO EM}
  336. {:EM0} {INCR na} {IFEX %msgsdir%A%na.BAS,EM0}
  337.   {RETURN}
  338.  
  339. {:EM21} {CALL cls}
  340.   {SEND ^J^M%an3 Review Message Area(s)^J^M^J}
  341. {:EM22} {SEND ^M%an7 Begin at which area? %an0(1-%mhigh) :   ^H^H}
  342.   {GETS a,2,EM2}
  343.   {IFEX %msgsdir%A%a.BAS,,EM22}
  344. {:EM23}
  345.   {CALL read_baseinfo}
  346.   {CALL msgdspl}
  347.   {SEND ^J^M%an0 LOmsg #: %an7%%lomsgno}
  348.   {SEND ^J^M%an0 HImsg #: %an7%%himsgno}
  349.   {CALL spacebar}
  350.   {COMP ch, } {IFCO ,EM2}
  351. {:EM24} {INCR a}
  352.   {COMP a,%mhigh} {IFCO-G EM2}
  353.   {IFEX %msgsdir%A%a.BAS,EM23,EM24}
  354.  
  355. {:EM4} {CALL cls}
  356.   {SEND ^J^M%an3 Add a Message Area^J^M^J}
  357.   {SEND %an0 Name: %an7%%an12                              }
  358.   {SEND ^M%an0 Name: %an7%%an12}
  359.   {GETS bname,30,EM2} {SEND %an0^J^M}
  360. {:EM25} {SEND ^M%an0 FidoNet msg format? (y,n):  ^H}
  361.   {GETS-H fido,1,EM25}
  362.   {COMP fido,y} {IFCO EM20}
  363.   {COMP fido,n} {IFCO ,EM25}
  364. {:EM20} {SEND ^J^M}
  365. {:EM26} {SEND ^M%an0 Access Level:    ^H^H^H}
  366.   {GETS bal,3,EM26}
  367.   {SEND ^J^M}
  368. {:EM1} {SEND ^M%an0 MAX msg #:    ^H^H^H}
  369.   {GETS maxmsg,3,EM1}
  370.   {SEND ^J^M^J}
  371. {:EM10} {SEND ^M%an1 Ok to save? (%an0%Y%an1,n) :%an0  ^H}
  372.   {GETS-H ch,1,EM5}
  373.   {COMP ch,n} {IFCO EM4}
  374.   {COMP ch,y} {IFCO ,EM10}
  375. {:EM5} {SETV lomsgno,1} {SETV himsgno,0}
  376.   {SETV a,%na}
  377.   {SEND ^J^M%an1 Saving area #%a...}
  378.   {COMP a,%mhigh} {IFCO-LE EM19}
  379.   {CALL read_data} {SETV mhigh,%a} {CALL write_data}
  380.   {SETV count,0}
  381. {:EM13} {INCR count}
  382.   {COMP count,%uhigh} {IFCO-G EM19}
  383.   {IFEX %msgsdir%INDEX\%count.IDX,,EM13}
  384.   {WOPE-A %msgsdir%INDEX\%count.IDX} {WRIT 1} {WCLO}
  385.   {GOTO EM13}
  386. {:EM19} {CALL update_baseinfo}
  387.   {EXEC-N MD %msgsdir%A%a}
  388. {WOPE %msgsdir%INDEX\%userno.IDX}
  389. {SETV mic,0}
  390. {:WU1} {INCR mic}
  391. {COMP mic,%mhigh} {IFCO-G WU2}
  392. {SETV-S ch,a%mic} {COMP ch,} {IFCO WU3}
  393. {WRIT %ch} {GOTO WU1}
  394. {:WU3} {WRIT 1} {SETV a%mic,1} {GOTO WU1}
  395. {:WU2}
  396. {WCLO}
  397. {SETV mic}
  398.   {GOTO EMA}
  399.  
  400. {:EM6} {CALL cls}
  401.   {SEND ^J^M%an3 Edit a Message Area}
  402.   {SEND ^J^M^J%an7 Edit which? %an0(1-%mhigh) : }
  403.   {GETS a,2,EM2}
  404.   {COMP a,1} {IFCO-L EM6}
  405.   {COMP a,%mhigh} {IFCO-G EM6}
  406.   {IFEX %msgsdir%A%a.BAS,,EM6}
  407.   {CALL read_baseinfo}
  408.   {CALL msgdspl}
  409.   {SEND ^J^M^J%an3 Press ENTER to keep the same.^J^M^J}
  410. {:EM8}
  411.   {SEND %an0 Name: %an7%%an12                              }
  412.   {SEND ^M%an0 Name: %an7%%an12}
  413.   {GETS ch,30,EM15}
  414.   {SETV bname,%ch}
  415. {:EM15} {SEND %an0}
  416.   {SEND ^J^M%an0 Access Level: }
  417.   {GETS ch,3,EM9}
  418.   {SETV bal,%ch}
  419. {:EM9} {SEND %an0}
  420.   {SEND ^J^M%an0 MAX msg #: }
  421.   {GETS ch,3,EM12}
  422.   {SETV maxmsg,%ch}
  423. {:EM12} {SEND ^J^M%an1 Saving...}
  424.   {CALL update_baseinfo}
  425.   {GOTO EM6}
  426. {:EM11} {SEND %an0}
  427.   {GOTO ME1}
  428.  
  429. {:EM3} {CALL cls}
  430.   {SEND ^J^M%an7%%an9 DELETE%an3 a Message Area^J^M^J}
  431.   {SEND %an7 Delete which? %an0(1-%mhigh) : }
  432.   {GETS a,2,EM2}
  433.   {COMP a,1} {IFCO-L EM3}
  434.   {COMP a,%mhigh} {IFCO-G EM3}
  435.   {IFEX %msgsdir%A%a.BAS,,EM3}
  436.   {CALL read_baseinfo}
  437.   {CALL msgdspl}
  438.   {SEND ^J^M^J}
  439. {:EM14} {SEND ^M%an7 DELETE%an0 this area? %an0(y,%an7%N%an0) ;  ^H}
  440.   {GETS ch,1,EM2}
  441.   {COMP ch,n} {IFCO EM2}
  442.   {COMP ch,y} {IFCO ,EM14}
  443.   {SEND ^J^M^J%an7%%an9 DELETING}
  444.   {EXEC-N DEL %msgsdir%A%a.*}
  445.   {EXEC-N DEL %msgsdir%A%a\*.msg}
  446.   {EXEC-N RD %msgsdir%A%a}
  447.   {CALL get_minfo}
  448.   {COMP a,%high} {IFCO-L EM2}
  449.   {CALL read_data} {SETV mhigh,%high} {CALL write_data}
  450.   {GOTO EM2}
  451.  
  452. {:msgdspl}
  453.   {CALL cls}
  454.   {SETV temp,0}
  455.   {COMP himsgno,0} {IFCO MD1}
  456.   {SETV temp,%himsgno} {DECR temp,%lomsgno} {INCR temp}
  457. {:MD1} {SEND ^J^M%an7 Message Area #%a    %an3%%temp}
  458.   {COMP fido,y} {IFCO ,MD2}
  459.   {SEND %an3 Fido msg(s)^J^M} {GOTO MD3}
  460. {:MD2} {SEND %an3 MBBS msg(s)^J^M}
  461. {:MD3}
  462.   {SEND ^J^M%an0 Name ..: %an7%%bname}
  463.   {SEND ^J^M%an0 AL ....: %an7%%bal}
  464.   {SEND ^J^M%an0 MAXmsgs: %an7%%maxmsg}
  465.   {RETURN}
  466.  
  467. {:spacebar}
  468.   {SEND ^J^M^J}
  469. {:SB2} {SEND ^M%an0 SPACEBAR=next, ENTER=quit  ^H}
  470.   {GETS-H ch,1,SB1}
  471.   {COMP ch, } {IFCO ,SB2}
  472. {:SB1} {RETURN}
  473.  
  474. {:ECA}
  475.   {SETE time_out}
  476.   {SEND %an0}
  477.   {SEND ^J^M^J%an7%%an9 Scanning...}
  478.   {CALL get_cinfo)
  479.  {:EC1}
  480.   {SETV dline,Caller Records}
  481.   {CALL AE1}
  482.   {COMP ch,e} {IFCO EC5}
  483.   {COMP ch,r} {IFCO EC20}
  484.   {COMP ch,d} {IFCO EC13,EC2}
  485.  
  486. {:get_cinfo}
  487.   {SETV high,0} {SETV total,0} {SETV na,0} {SETV temp,0}
  488. {:EC} {INCR temp} {COMP temp,%uhigh} {IFCO-G EC0}
  489.   {IFEX %userdir%%temp.USR,,EC}
  490.   {SETV high,%temp}
  491.   {INCR total} {GOTO EC}
  492. {:EC0} {INCR na} {IFEX %userdir%%na.USR,EC0}
  493.   {RETURN}
  494.  
  495. {:EC20} {CALL cls}
  496.    {SEND ^J^M%an3 Review Caller Records^J^M^J}
  497. {:EC18} {SEND ^M%an7 Begin at which record? %an0(1-%uhigh) :   ^H^H}
  498.   {GETS userno,2,EC1}
  499.   {IFEX %userdir%%userno.USR,,EC18}
  500. {:EC19}
  501.   {SETV rname} {SETV from} {SETV l_call}
  502.   {CALL read_user}
  503.   {SEND ^J^M^J%an7 Record #%userno^J^M}
  504.   {SEND ^J^M%an0 Handle..: %an7%%login_name}
  505.   {SEND ^J^M%an0 ID # ...: %an7%%userno}
  506.   {SEND ^J^M%an0 AL .....: %an7%%al}    {SETV al}
  507.   {SEND ^J^M%an0 Password: %an7%%password} {SETV password}
  508.   {SEND ^J^M%an0 Name ...: %an7%%rname} {SETV rname}
  509.   {SEND ^J^M%an0 From ...: %an7%%from}  {SETV from}
  510.   {SEND ^J^M%an0 LastCall: %an7%%l_call} {SETV l_call}
  511.   {CALL spacebar}
  512.  {COMP ch, } {IFCO ,ECX}
  513. {:EC21} {INCR userno}
  514.   {COMP userno,%uhigh} {IFCO-G ECX}
  515.   {IFEX %userdir%%userno.USR,EC19,EC21}
  516. {:ECX} {SETV userno,%temp2} {CALL read_user}
  517.   {GOTO EC1}
  518.  
  519. {:EC2} {CALL cls}
  520.   {SETV tline}
  521.   {SEND ^J^M%an3 Add a Caller Record^J^M^J}
  522.   {SEND %an0 Name: %an7%%an12                              }
  523.   {SEND ^M%an0 Name: %an7%%an12}
  524.   {GETS tline,30,EC1}
  525.   {SEND ^J^M%an3 Checking...}
  526.   {LENG %tline} {COMP %_len,3} {IFCO-L EC2}
  527.   {COMP tline,new} {IFCO EC2}
  528.   {COMP tline,1} {IFCO-GE EC2}
  529.   {SETV to,%tline}
  530.   {CALL match_name_userno}
  531.   {COMP t,1} {SETV t} {IFCO EC2}
  532.   {SEND ^M%an0 Password:                }
  533.   {SEND ^M%an0 Password: }
  534. {:EC11} {GETS pass,15,EC11}
  535.   {SEND ^J^M%an0 Access Level: }
  536. {:EC16} {GETS temp,3,EC16}
  537.   {SEND ^J^M^J}
  538. {:EC3} {SEND ^M%an1 Ok to save? (%an0%Y%an1,n) :%an0  ^H}
  539.   {GETS-H ch,1,EC4}
  540.   {COMP ch,y} {IFCO EC4}
  541.   {COMP ch,n} {IFCO EC2,EC3}
  542. {:EC4} {SEND ^J^M%an1 Saving #%na...}
  543.   {SETV login_name,%tline} {SETV userno,%na} {SETV protocol,z} {SETV password,%pass} {SETV al,%temp}
  544.   {COMP userno,%uhigh} {IFCO-LE EC17}
  545.   {CALL read_data}
  546.   {SETV login_name,%temp1} {SETV userno,%temp2}
  547.   {SETV rname} {SETV from} {SETV l_call,%_dwt %_dat}
  548.   {SETV uhigh,%na}
  549.   {CALL write_data}
  550.   {SETV login_name,%tline} {SETV userno,%na}
  551.   {WOPE-A %datadir%TIMEUSED.LOG} {WRIT %tlc} {WCLO}
  552. {:EC17} {SETV tline}
  553.   {CALL write_user}
  554.   {WOPE-A %datadir%CALLERS.LST}
  555.   {WRIT %userno}
  556.   {WRIT %login_name}
  557.   {WRIT %password}
  558.   {WCLO}
  559.   {SETV userno,%temp2}
  560.   {CALL read_user}
  561.   {GOTO ECA}
  562.  
  563. {:EC5} {CALL cls}
  564.   {SEND ^J^M%an3 Edit a Caller Record^J^M}
  565.   {SEND ^J^M%an7 Enter a Handle or ID#.}
  566.   {SEND ^J^M ->%an3 }
  567.   {GETS temp,30,EC1}
  568.   {SETV to,%temp}
  569.   {CALL match_name_userno}
  570.   {COMP t,1} {SETV t} {IFCO ,EC5}
  571.   {SEND ^J^M^J%an0 Edit%an4 %to%%an0?}
  572. {:EC6} {SEND ^J^M%an1 (%an0%Y%an1,n) :  ^H}
  573.   {GETS-H ch,1,EC7}
  574.   {COMP ch,y} {IFCO EC7}
  575.   {COMP ch,n} {IFCO EC5,EC6}
  576. {:EC7} {CALL cls}
  577.   {SETV userno,%tono}
  578.   {CALL read_user}
  579.   {SEND ^J^M%an7 Account #%userno^J^M}
  580.   {SEND ^J^M%an0 Handle: %an7%%login_name}
  581.   {SEND ^J^M%an0 Pword : %an7%%password}
  582.   {SEND ^J^M%an0 AL    : %an7%%al^J^M}
  583.   {SEND ^J^M%an3 Press ENTER to keep the same.^J^M^J}
  584.   {SEND %an0 Handle: %an7%%an12                              }
  585.   {SEND ^M%an0 Handle: %an7%%an12}
  586.   {GETS temp,30,EC8}
  587.   {SEND ^J^M%an3 Checking...}
  588.   {LENG %temp} {COMP %_len,3} {IFCO-L EC5}
  589.   {COMP temp,new} {IFCO EC5}
  590.   {COMP temp,1} {IFCO-GE EC5}
  591.   {SETV to,%temp}
  592.   {CALL match_name_userno}
  593.   {COMP t,1} {SETV t} {IFCO EC5}
  594.   {SETV login_name,%temp} {SEND %an1 Wait...}
  595.   {CALL update_clist}
  596. {:EC8} {SEND %an0^J^M}
  597.   {SEND ^M%an0 Password:                 }
  598.   {SEND ^M%an0 Password: }
  599.   {GETS ch,15,EC9}
  600.   {SETV password,%ch} {SEND %an1 Wait...}
  601.   {CALL update_clist}
  602. {:EC9} {SEND ^J^M%an0 Access Level: }
  603.   {GETS ch,3,EC10}
  604.   {SETV al,%ch}
  605. {:EC10} {SEND ^J^M^J%an1 Saving...}
  606.   {CALL write_user}
  607.   {SETV userno,%temp2}
  608.   {CALL read_user}
  609.   {GOTO EC5}
  610.  
  611. {:EC13} {CALL cls}
  612.   {SEND ^J^M%an7%%an9 DELETE%an3 a Caller Record^J^M}
  613.   {SEND ^J^M%an7 Enter a Handle or ID#.}
  614.   {SEND ^J^M ->%an1 }
  615.   {GETS ch,30,EC1}
  616.   {SETV to,%ch}
  617.   {CALL match_name_userno}
  618.   {COMP t,1} {SETV t} {IFCO ,EC13}
  619.   {COMP tono,%temp2} {IFCO EC13}
  620.   {SEND ^J^M^J%an7 DELETE%an1 %to%%an7?}
  621. {:EC14} {SEND ^J^M%an1  (y/%an7%N%an1) :  ^H}
  622.   {GETS ch,1,EC13}
  623.   {COMP ch,n} {IFCO EC13}
  624.   {COMP ch,y} {IFCO ,EC14}
  625.   {SEND ^J^M^J%an7%%an9 DELETING}
  626.   {SETV userno,%tono}
  627.   {EXEC-N DEL %userdir%%userno.USR}
  628.   {EXEC-N DEL %userdir%INDEX\%userno.DAT}
  629.   {EXEC-N DEL %userdir%DATA\%userno.DAT}
  630.   {EXEC-N DEL %msgsdir%E%userno-*.*}
  631.   {EXEC-N DEL %userdir%REGS\%userno.REG}
  632.   {EXEC-N DEL %msgsdir%INDEX\%userno.IDX}
  633.   {EXEC-N DEL %msgsdir%TAGS\%userno.TAG}
  634.   {EXEC-N DEL %readdir%TAGS\%userno.OLR}
  635.   {SETV s,1} {CALL update_clist} {SETV s}
  636.   {CALL get_cinfo}
  637.   {COMP userno,%high} {IFCO-L EC111}
  638.   {CALL read_data} {SETV uhigh,%high} {SETV userno,%temp2} {CALL write_data)
  639. {:EC111} {SETV userno,%temp2}
  640.   {CALL read_user}
  641.   {GOTO EC1}
  642.  
  643. {:EFA}
  644.   {SEND %an0}
  645.   {SEND ^J^M^J%an7%%an9 Scanning...}
  646.   {CALL get_finfo}
  647. {:EF1} {SEND %an0}
  648.   {SETV dline,File Area(s)}
  649.   {CALL AE1}
  650.   {COMP ch,e} {IFCO EF5}
  651.   {COMP ch,r} {IFCO EF15}
  652.   {COMP ch,d} {IFCO EF13,EF2}
  653.  
  654. {:get_finfo}
  655.   {SETV high,0} {SETV total,0} {SETV na,0} {SETV temp,0}
  656. {:EF} {INCR temp} {COMP temp,%fhigh} {IFCO-G EF0}
  657.   {IFEX %filedir%F%temp.BAS,,EF}
  658.   {SETV high,%temp}
  659.   {INCR total} {GOTO EF}
  660. {:EF0} {INCR na} {IFEX %filedir%F%na.BAS,EF0}
  661.   {RETURN}
  662.  
  663. {:EF15} {CALL cls}
  664.   {SEND ^J^M%an3 Review File Area(s)^J^M^J}
  665. {:EF17} {SEND ^M%an7 Begin at which area? %an0(1-%fhigh) :   ^H^H}
  666.   {GETS a,2,EF1}
  667.   {IFEX %filedir%F%a.BAS,,EF17}
  668. {:EF18} {ROPE %filedir%F%a.BAS,EF5} {READ bname} {READ bal} {RCLO}
  669.   {CALL cls}
  670.   {SEND ^J^M%an3 File Area %a^J^M}
  671.   {SEND ^J^M%an0 Name: %an7%%bname}
  672.   {SEND ^J^M%an0 AL  : %an7%%bal}
  673.   {CALL spacebar}
  674.   {COMP ch, } {IFCO ,EF1}
  675. {:EF19} {INCR a}
  676.   {COMP a,%fhigh} {IFCO-G EF1}
  677.   {IFEX %filedir%F%a.BAS,EF18,EF19}
  678.  
  679. {:EF2} {CALL cls}
  680.   {SEND ^J^M%an3 Add a File Area^J^M^J}
  681.   {SEND %an0 Name: %an7%%an12                              }
  682.   {SEND ^M%an0 Name: %an7%%an12}
  683.   {GETS bname,30,EF1}
  684.   {SEND %an0} {SEND ^J^M%an0 Access Level? }
  685. {:EF11} {GETS bal,3,EF11}
  686.   {SEND ^J^M^J}
  687. {:EF3} {SEND ^M%an1 Ok to save? (%an0%Y%an1,n) :%an0  ^H}
  688.   {GETS-H ch,1,EF12}
  689.   {COMP ch,y} {IFCO EF12}
  690.   {COMP ch,n} {IFCO EF2,EF3}
  691. {:EF12} {SETV fa,%na}
  692.   {SEND ^J^M%an1 Saving area #%fa...}
  693.   {COMP fa,%fhigh} {IFCO-LE EF16}
  694.   {CALL read_data} {SETV fhigh,%fa} {CALL write_data}
  695. {:EF16} {WOPE %filedir%F%fa.BAS} {WRIT %bname} {WRIT %bal} {WCLO}
  696.   {WOPE %filedir%F%fa.LST}
  697.   {WRIT -  unvalidated}
  698.   {WRIT   Filename         Size   Description}
  699.   {WRIT ------------------------------------------------------------------------------}
  700.   {WCLO}
  701.   {EXEC-N MD %filedir%F%fa}
  702.   {GOTO EFA}
  703.  
  704. {:EF5} {CALL cls}
  705.   {SEND ^J^M%an3 Edit a File Area}
  706.   {SEND ^J^M^J%an7 Edit which? %an0(1-%fhigh) : }
  707.   {GETS fa,2,EF1}
  708.   {COMP fa,1} {IFCO-L EF5}
  709.   {COMP fa,%fhigh} {IFCO-G EF5}
  710.   {IFEX %filedir%F%fa.BAS,,EF5}
  711.   {ROPE %filedir%F%fa.BAS,EF5} {READ bname} {READ bal} {RCLO}
  712. {:EF7} {CALL cls}
  713.   {SEND ^J^M%an7 File Area #%fa^J^M}
  714.   {SEND ^J^M%an0 Name: %an7%%bname}
  715.   {SEND ^J^M%an0 AL  : %an7%%bal}
  716.   {SEND ^J^M^J%an3 Press ENTER to keep the same.^J^M^J}
  717.   {SEND %an0 Name: %an7%%an12                              }
  718.   {SEND ^M%an0 Name: %an7%%an12}
  719.   {GETS ch,30,EF9}
  720.   {SETV bname,%ch}
  721. {:EF9} {SEND ^J^M%an0 AL  : }
  722.   {GETS ch,3,EF10}
  723.   {SETV bal,%ch}
  724. {:EF10} {SEND ^J^M^J%an1 Saving...}
  725.   {WOPE %filedir%F%fa.BAS} {WRIT %bname} {WRIT %bal} {WCLO}
  726.   {GOTO EF5}
  727.  
  728. {:EF13} {CALL cls}
  729.   {SEND ^J^M%an7%%an9 DELETE%an3 a File Area}
  730.   {SEND ^J^M^J%an7 DELETE which? %an0(1-%fhigh) : }
  731.   {GETS fa,2,EF1}
  732.   {COMP fa,1} {IFCO-L EF13}
  733.   {COMP fa,%fhigh} {IFCO-G EF13}
  734.   {IFEX %filedir%F%fa.BAS,,EF13}
  735.   {ROPE %filedir%F%fa.BAS,EF13} {READ bname} {READ bal} {RCLO}
  736.   {CALL cls}
  737.   {SEND ^J^M%an7 File Area #%fa^J^M}
  738.   {SEND ^J^M%an0 Name: %an7%%bname}
  739.   {SEND ^J^M%an0 AL  : %an7%%bal^J^M^J}
  740. {:EF14} {SEND ^M%an7 DELETE?  %an0(y,%an7%N%an0) :  ^H}
  741.   {GETS ch,1,EF13}
  742.   {COMP ch,n} {IFCO EF13}
  743.   {COMP ch,y} {IFCO ,EF14}
  744.   {EXEC-N DEL %filedir%F%fa\*.*}
  745.   {SEND ^J^M^J%an7%%an9 DELETING}
  746.   {EXEC-N DEL %filedir%F%fa.*}
  747.   {EXEC-N RD %filedir%F%fa}
  748.   {CALL get_finfo}
  749.   {COMP fa,%high} {IFCO-L EF1}
  750.   {CALL read_data} {SETV fhigh,%high} {CALL write_data)
  751.   {GOTO EF1}
  752.  
  753. {:AE1}
  754.   {CALL cls}
  755.   {SEND ^J^M^J%an3 %dline:^J^M}
  756.   {SEND ^J^M%an0 High # . . . . . . .%an7 %high}
  757.   {SEND ^J^M%an0 In use . . . . . . .%an7 %total}
  758.   {SEND ^J^M%an0 Next available . . .%an7 %na^J^M^J}
  759.   {SEND %an0 Press ENTER for Master SysMenu^J^M^J}
  760. {:AE2} {SEND ^M%an0 (%an7%A%an0)dd, (%an7%D%an0)elete, (%an7%E%an0)dit or (%an7%R%an0)eview?  ^H}
  761.   {GETS-H ch,1,menu}
  762.   {SETV dline,ader}
  763.   {INST dline,%ch} {IFCO ,AE2}
  764.   {RETURN}
  765.  
  766.