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

  1.  
  2.                                MACROREG.MAC 2.5 ALPHA
  3.                       by Jeff Oberlee   (C)opyright 1992,93
  4.  
  5. {:alr} {MACL MACROBBS.MAC,WF3}   {:alu} {MACL MACROBBS.MAC,bbs}
  6.  
  7. {:esc_menu}
  8.   {IFCA ,ESM} {SEND ^J^M%an7%%an9%Time comes to a grinding halt!  %an0}
  9. {:ESM} {SETE-P0 ESM2} {SETV ch}
  10.   {PARM ,,,,0}
  11.   {INPU ch, PRESS:  [ENTER] to CHAT, [U]seredit, [D]OS, [H]angup}
  12.   {COMP ch,h} {IFCO ESM4}
  13.   {COMP ch,d} {IFCO ESM5}
  14.   {COMP on,} {IFCO ESM}
  15.   {COMP ch,u} {IFCO ESM8}
  16.   {COMP ch,} {IFCO ,ESM}
  17. {:ESM1} {COMP cf,} {IFCO CT8,ESM}
  18. {:ESM2} {SETE-P0 esc_menu}
  19.   {IFCA ,ESM6} {SEND %an3%Then suddenly...} {PAUS 1}
  20. {:ESM6} {RETURN}
  21. {:ESM5} {SHEL} {GOTO ESM}
  22. {:ESM8} {COMP login_name,} {IFCO ESM}
  23.   {SETV lname,%login_name} {INPU lname,EDIT: Handle  (3-30 characters)}
  24.   {COMP lname,1} {IFCO-GE ESM8}
  25.   {LENG %lname} {COMP _len,3} {IFCO-L ESM8}
  26.   {LENG %lname} {COMP _len,30} {IFCO-G ESM8}
  27. {:ESM10} {SETV ch,%al} {INPU ch,EDIT: Access Level  (0-999)}
  28.   {COMP ch,999} {IFCO-G ESM10}
  29. {:ESM9} {SETV temp,%pcpd} {INPU temp,EDIT: Time limit per Day/Call (D/C)}
  30.   {COMP temp,c} {IFCO ESM11}
  31.   {COMP temp,d} {IFCO ,ESM9}
  32. {:ESM11}
  33.   {SETV al,%ch}
  34.   {SETV pcpd,%temp}
  35.   {SETV row,%_row} {SETV col,%_col} {DISP 2,2,0F,%an9 * Saving * }
  36.   {COMP lname,%login_name} {IFCO ESM7}
  37.   {SETV login_name,%lname}
  38.   {SETE time_out}
  39.   {CALL update_clist}
  40. {:ESM7} {CALL write_user}
  41.   {DISP 2,2,07,            }
  42.   {DISP %row,%col,,}
  43.   {SETV row} {SETV col} {SETV lname}
  44.   {GOTO ESM}
  45. {:ESM4} {SETV s,2} {GOTO time_out}
  46.  
  47. {:chat}
  48.   {SETV temp,0} {SETV ccount,0}
  49.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Chat request} {WCLO}
  50.   {SEND ^J^M^J%an4%Paging %sysop ...^J^M}
  51.   {SPOC n} {SEND %an3%Press %an0[ESC]%an3 then %an0[ENTER]%an3 to chat with%an7 %login_name %an3...^J^M} {SPOC y}
  52. {:CT7} {INCR ccount} {SETV-S ch,an%ccount}
  53.   {SEND %ch█}
  54.   {SEND ^G} {SEND ^G} {SEND ^G} {PAUS 2}
  55.   {COMP ccount,5} {IFCO-G ,CT7}
  56. {:CT6} {SETV chat,CHAT}
  57.   {SEND ^M%an0%Sorry, %sysop isn't around right now.^J^M}
  58.   {SEND %an0%However, the chat flag has been set.^J^M^J}
  59.   {GOTO CT9}
  60. {:CT8} {SETV tl,%_ela}
  61.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Started chat} {WCLO}
  62.   {COMP cb,y} {IFCO ,CT14}
  63.   {CAPT y,%datadir%CHAT.LOG}
  64. {:CT14} {SEND ^J^M^J%an3%You've just entered . . . %an7%The Twilight Zone.  %an3%Reality vanishes.^J^M}
  65.   {SEND %an2(Type "%an0%bye!%an2" on a blank line to exit when desired.)^J^M}
  66.   {SETV cf,1} {SETV co1,%an0} {SETV co2,%an3}
  67.   {SETE-P0 esc_menu}
  68.   {PUSH}
  69. {:CT2} {COMP cf,1} {IFCO CT3}
  70.   {SEND %co2} {SETV cf,1} {GOTO CT4}
  71. {:CT3} {SEND %co1} {SETV cf,2}
  72. {:CT4} {SETV cline}
  73. {:CT5} {SEND ^J}
  74. {:CT13} {SEND ^M%cline}
  75.   {GETS-AH cline,78,CT2}
  76.  
  77.   {COMP cline,/c} ......... {IFCO switch_c}
  78.   {COMP cline,bye!} ....... {IFCO CT1}
  79.   {COMP cline,bye!!} ...... {IFCO time_out}
  80.   {COMP cline,/scroll} .... {IFCO view_scroll}
  81.   {COMP cline,NO CARRIER} . {IFCO time_out}
  82.  
  83.   {LENG %cline}
  84.   {COMP %_len,78} {IFCO-L CT4}
  85.   {SETV ccount,79}
  86. {:CT11} {DECR ccount}
  87.   {COMP ccount,60} {IFCO-LE CT4}
  88.   {SUBS ch,%ccount,1,%cline}
  89.   {COMP ch, } {IFCO ,CT11}
  90.   {COMP ccount,78} {IFCO CT4}
  91.   {INCR ccount}
  92.   {SUBS cline,%ccount,100,%cline}
  93. {:CT12} {COMP ccount,%_len} {IFCO-G CT5}
  94.   {SEND ^H ^H}
  95.   {INCR ccount}
  96.   {GOTO CT12}
  97. {:CT1} {CAPT n}
  98.   {SETV ch,%_ela} {DECR ch,%tl} {INCR tlc,%ch} {SETV tl}
  99.   {SEND ^J^M^J%an3%You've just left . . . %an7%The Twilight Zone.  %an3%Reality restored.^J^M^J}
  100.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Ended chat} {WCLO}
  101.   {SETV cf} {SETV co1} {SETV co2} {SETV chat} {SETV cline}
  102.   {POPS}
  103. {:CT9} {SETV ccount}
  104.   {SETE-P0 esc_menu}
  105.   {CALL press_any_key}
  106.   {RETURN}
  107.  
  108. {:switch_c}
  109. {:SW1} {SEND ^M%an0(0 %an1%1 %an2%2 %an3%3 %an4%4 %an5%5 %an6%6 %an7%7%an0)  ^H}
  110.   {GETS-H ch,1,SW1}
  111.   {COMP ch,0} {IFCO-L SW1}
  112.   {COMP ch,7} {IFCO-G SW1}
  113.   {SEND ^M                    ^M}
  114.   {COMP cf,1} {IFCO ,SW3}
  115.   {SETV-S co2,an%ch} {SEND %co2} {GOTO SW4}
  116. {:SW3} {SETV-S co1,an%ch} {SEND %co1}
  117. {:SW4} {SETV cline}
  118.   {GOTO CT13}
  119.  
  120. {:view_scroll}
  121.   {SCROLL}
  122.   {GOTO CT4}
  123.  
  124. {:update_clist}
  125.   {ROPE %datadir%CALLERS.LST,UC1}
  126.   {WOPE %datadir%TEMP.000}
  127. {:UC2} {READ ch} {READ cline} {READ dline}
  128.   {COMP ch,%userno} {IFCO UC3}
  129.   {WRIT %ch} {WRIT %cline} {WRIT %dline} {GOTO UC2}
  130. {:UC3} {COMP s,1} {IFCO UC5}
  131. {:UC4} {WRIT %ch}
  132.   {WRIT %login_name}
  133.   {WRIT %password}
  134. {:UC5} {READ dline} {WRIT %dline} {GOTO UC5}
  135. {:UC1} {WCLO}
  136.   {EXEC-N COPY %datadir%TEMP.000 %datadir%CALLERS.LST}
  137.   {EXEC-N DEL %datadir%TEMP.000}
  138.   {RETURN}
  139.  
  140. {:write_user}
  141.   {WOPE %userdir%%userno.USR}
  142.   {WRIT %login_name}
  143.   {WRIT %password}
  144.   {WRIT %al}
  145.   {WRIT %protocol}
  146.   {WRIT %expert}
  147.   {WRIT %a}
  148.   {WRIT %fa}
  149.   {WRIT %_dwt %_dat}
  150.   {WRIT %rname}
  151.   {WRIT %from}
  152.   {WRIT %pcpd}
  153.   {WRIT %clr2}
  154.   {WRIT %arcer}
  155.   {WRIT %arc}
  156.   {WCLO}
  157.   {RETURN}
  158.  
  159. {:time_out}
  160.   {MACL MACROBBS.MAC,time_out}
  161.  
  162. {:cls}
  163.   {CLEA}
  164.   {COMP on,} {IFCO CLS3}
  165.   {COMP mnu,A} {IFCO CLS1}
  166.   {SEND ^[[2J}
  167.   {GOTO CLS2}
  168. {:CLS1} {SEND ^L}
  169. {:CLS2} {DISP 1,1,4F,│                                                                              }
  170.   {DISP 1,3,4E,%login_name #%userno}
  171.   {DISP 1,40,47,AL=%al}
  172.   {DISP 1,49,47,%mspeed}
  173.   {DISP 1,57,47,%_ela mins}
  174.   {DISP 1,70,4F,%an9%%chat}
  175.   {DISP 2,1,4F,│                                                                              }
  176.   {DISP 2,3,47,%rname  -  %from}
  177.   {DISP 3,1,4F,└──────────────────────────────────────────────────────────────────────────────}
  178.   {DISP 4,1,07,}
  179. {:CLS3} {RETURN}
  180.  
  181. {:press_any_key}
  182.   {COMP mnu,a} {IFCO PAK1}
  183.   {SEND %an3%%an9^[[24;1h^[[24;1f[Press Any Key]%an0}
  184.   {GOTO PAK2}
  185. {:PAK1} {SEND ^J^M^J[Press Any Key]}
  186. {:PAK2} {GETS-H temp,1,PAK}
  187. {:PAK} {SEND ^M               ^M}
  188.   {SETV temp}
  189.   {RETURN}
  190.  
  191. {:cd}
  192.   {IFCA cd1}
  193.   {COMP on,1} {IFCO time_out}
  194. *-{:cd1} {COMP on,1} {IFCO ,cd2}
  195.   {COMP _ela,%tlc} {IFCO-GE time_out}
  196. {:cd2} {RETURN}
  197.  
  198. {:expert_tog}
  199.   {COMP expert,ON}
  200.   {IFCO ET1}
  201.   {SETV expert,ON}
  202.   {GOTO ET2}
  203. {:ET1} {SETV expert,OFF}
  204. {:ET2} {RETURN}
  205.  
  206. {:dsp_file}
  207.   {IFEX %dump_file,,DF5}
  208.   {SETV count,0}
  209.   {ROPE %dump_file,DF3}
  210.   {PUSH}
  211. {:DF1} {READ dline} {SEND ^M%dline^J^M}
  212.   {INCR count} {COMP count,22} {IFCO DF4,DF1}
  213. {:DF3} {SETV dline} {SETV ch} {SETV count}
  214.   {SETG 300,time_out}
  215.   {POPS}
  216.   {RETURN}
  217.  
  218. {:DF4} {SETV count,0}
  219.   {SEND More? (Y,n) : }
  220.   {SETG 300,DF1}
  221. {:DF6} {GETS-H ch,1,DF7}
  222.   {COMP ch,y} {IFCO DF7}
  223.   {COMP ch,n} {IFCO DF7}
  224.   {SEND ^H} {GOTO DF6}
  225. {:DF7} {SEND ^M                  ^M}
  226.   {COMP ch,n} {IFCO DF2,DF1}
  227. {:DF5} {SEND ^J^M^G%an1%Error: %an7%File not found: %dump_file}
  228.   {COMP expert,ON} {IFCO DF9}
  229.   {CALL press_any_key}
  230. {:DF9}
  231.   {RETURN}
  232.  
  233. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  234. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  235. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  236. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  237. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  238.  
  239. {:start}
  240.   {SETE-P0 esc_menu}
  241.   {PUSH}
  242. {:ST} {COMP expert,ON} {IFCO ST4}
  243. {:ST1} {CALL cls}
  244.   {SEND ^J^M^J^J%an1}
  245.   {SEND ^J^M             ┌───────────────────────────────────────────────────┐}
  246.   {SEND ^J^M             │ %an0░░░░░░░░░░░%an7  H A L L   O F   F A M E  %an0░░░░░░░░░░░%an1 │}
  247.   {SEND ^J^M             └───────────────────────────────────────────────────┘^J^M^J}
  248.  
  249.   {SEND %an1        %an1[%an0%E%an1]%an1 Enter your info      [%an0%V%an1] View an entry    %an4[%an0%M%an4] Message Base^J^M}
  250.   {SEND %an1        %an1[%an0%D%an1]%an1 Display Your entry   [%an0%C%an1] Chat             %an2[%an0%F%an2] File Base^J^M}
  251.   {SEND %an1        %an1[%an0%U%an1]%an1 Update your entry    [%an0%X%an1] Xpert Toggle     %an0[%an0%Q%an0] MAIN MENU^J^M}
  252.  
  253. {:ST4} {SEND ^J^M^J%an1%Hall of Fame  %an0%%_tim^J^M}
  254.   {SETV ch,%tlc} {DECR ch,%_ela}
  255.   {SEND %an0%Mins Left: %ch^J^M}
  256. {:ST6} {SEND ^M} {COMP expert,ON} {IFCO ,ST5}
  257.   {SEND %an1(%an7?%an1%=menu) }
  258. {:ST5} {SEND %an7%HOF Command:%an3  ^H}
  259. {:ST3} {CALL cd}
  260.   {SETG 300,time_out}
  261.   {GETS-H ch,1,ST3}
  262.  
  263.   {SETV count} {SETV mcount} {SETV dline}
  264.   {SETV temp} {SETV to} {SETV lname}
  265.  
  266.   {COMP ch,*} {IFCO time_out}
  267.   {COMP ch,?} {IFCO ST1}
  268.   {COMP ch,q} {IFCO main}
  269.   {COMP ch,m} {IFCO msg_base}
  270.   {COMP ch,f} {IFCO file_base}
  271.   {COMP ch,e} {IFCO enter}
  272.   {COMP ch,d} {IFCO display}
  273.   {COMP ch,u} {IFCO modify}
  274.   {COMP ch,v} {IFCO view}
  275.   {COMP ch,c} {IFCO chat}
  276.   {COMP ch,x} {IFCO expert_tog,ST6}
  277.  
  278. {:main}
  279.   {MACL MACROBBS.MAC,main_menu}
  280.  
  281. {:msg_base}
  282.   {IFEX MACROMSG.MAC,,ST6}
  283.   {IFEX %msgsdir%A%a.BAS,MB2}
  284.   {IFEX %msgsdir%A*.BAS,,ST6}
  285.   {SETV a,0}
  286. {:MB1} {INCR a}
  287.   {COMP a,%mhigh} {IFCO-G ST6}
  288.   {IFEX %msgsdir%A%a.BAS,,MB1}
  289. {:MB2}
  290.   {ROPE %msgsdir%A%a.BAS,MB1} {READ ch} {READ ch} {RCLO}
  291.   {COMP ch,%al} {IFCO-G MB1}
  292.   {MACL MACROMSG.MAC,start}
  293.  
  294. {:file_base}
  295.   {IFEX MACROFIL.MAC,,ST6}
  296.   {IFEX %filedir%F%fa.BAS,FX2}
  297.   {IFEX %filedir%F*.BAS,,ST6}
  298.   {SETV fa,0}
  299. {:FX1} {INCR fa}
  300.   {COMP fa,%fhigh} {IFCO-G ST6}
  301.   {IFEX %filedir%F%fa.BAS,,FX1}
  302. {:FX2}
  303.   {ROPE %filedir%F%fa.BAS,FX1} {READ ch} {READ ch} {RCLO}
  304.   {COMP ch,%al} {IFCO-G FX1}
  305.   {MACL MACROFIL.MAC,start}
  306.  
  307. {:enter}
  308.   {IFEX %userdir%REGS\%userno.REG,E0}
  309.   {CALL cls}
  310.   {IFEX %datadir%REGISTRY.LST,EC}
  311.   {WOPE %datadir%REGISTRY.LST}
  312.   {WRIT } {WRIT ID#  Name ............................................................} {WRIT } {WCLO}
  313. {:EC}
  314.   {EXEC-N ECHO %userno. %login_name  FROM  %from >> %datadir%REGISTRY.LST}
  315.   {SEND %an3%Your Personal Public Profile...^J^M}
  316.   {SEND %an0%Press ENTER to skip any question.  Max # of chars appear in []'s.^J^M}
  317.   {ROPE %datadir%QUESTION.DAT,E3}
  318.   {WOPE %userdir%REGS\%userno.reg}
  319.   {SETV count,0}
  320. {:E1} {SEND ^J^M}
  321.   {READ ch} {READ dline} {INCR count}
  322.   {SEND %an7%%count.%an0 %dline [%ch]: %an7}
  323.   {GETS dline,%ch,E2}
  324. (:E2} {WRIT %dline}
  325.   {GOTO E1}
  326. {:E3} {SEND ^J^M^J%an1%Saving...}
  327.   {WCLO}
  328.   {SETV dline} {SETV ch} {SETV count}
  329.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Entered HOF personal profile} {WCLO}
  330.   {SEND %an0%OK} {PAUS 1}
  331.   {GOTO ST}
  332. {:E0} {SEND ^J^M^J%an1%Your entry already exists.  You can [%an0%U%an1]pdate it.^J^M^J}
  333.   {GOTO ST6}
  334.  
  335. {:display}
  336.   {SETV lname,Your} {SETV to,%userno}
  337.   {IFEX %userdir%REGS\%to.REG,,D0}
  338. {:V1} {CALL cls}
  339.   {SEND %an3%%lname Personal Public Profile...^J^M}
  340.   {SETV mcount,0}
  341. {:D1} {SEND ^J^M} {SETV count,0} {INCR mcount}
  342.   {ROPE %datadir%QUESTION.DAT,D5}
  343. {:D2} {INCR count} {READ dline} {READ dline}
  344.   {COMP count,%mcount} {IFCO ,D2}
  345. {:D6} {RCLO} {SEND %an0%%dline: } {SETV count,0}
  346.   {ROPE %userdir%REGS\%to.REG,D1}
  347. {:D3} {INCR count} {READ dline}
  348.   {COMP count,%mcount} {IFCO ,D3}
  349.   {RCLO} {SEND %an7%%dline}
  350.   {GOTO D1}
  351. {:D5} {COMP lname,Your} {IFCO ,view}
  352.   {COMP expert,ON} {IFCO ST4}
  353.   {CALL press_any_key}
  354.   {GOTO ST}
  355. {:D0} {SEND ^J^M^J%an1%Caller's entry not found.^J^M^J}
  356.   {GOTO ST6}
  357. {:D4} {SEND ^J^M^J%an1%Caller's entry not found.}
  358.   {GOTO view}
  359. {:D8} {RETURN}
  360.  
  361. {:modify}
  362.   {IFEX %userdir%REGS\%userno.REG,,D0}
  363.   {CALL cls}
  364.   {EXEC-N DEL %datadir%TEMP.000}
  365.   {SEND %an3%Your Personal Public Profile...^J^M}
  366.   {SEND %an0%Use BACKSPACE to edit/erase an entry.  Max # of chars appear in []'s.^J^M}
  367.   {SETV count,0} {SETV mcount,0}
  368. {:M1} {SEND ^J^M}
  369.   {INCR mcount}
  370.   {ROPE %datadir%QUESTION.DAT,M7}
  371. {:M2} {READ ch} {READ dline} {INCR count}
  372.   {COMP count,%mcount} {IFCO ,M2}
  373.   {RCLO} {SEND %an7%%mcount.%an0 %dline [%ch]: }
  374.   {SETV count,0}
  375.   {ROPE %userdir%REGS\%userno.REG,M0}
  376. {:M3} {INCR count} {READ dline}
  377.   {COMP count,%mcount} {IFCO ,M3}
  378.   {RCLO} {SETV count,0}
  379. {:M6} {SEND %an7%%dline}
  380. {:M5} {GETS-A dline,%ch}
  381.   {WOPE-A %datadir%TEMP.000} {WRIT %dline} {WCLO}
  382.   {GOTO M1}
  383. {:M0} {SETV dline,}
  384.   {GOTO M6}
  385. {:M7} {SEND ^J^M^J%an1%Saving...}
  386.   {EXEC-N COPY %datadir%TEMP.000 %userdir%REGS\%userno.REG}
  387.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Updated HOF personal profile} {WCLO}
  388.   {SETV dline} {SETV ch} {SETV count}
  389.   {SEND %an0%OK} {PAUS 1}
  390.   {GOTO ST}
  391.  
  392. {:view}
  393.   {SEND ^J^M^J%an3%Enter a handle or ID# %an0%(L=list,ENTER=quit) :%an3 }
  394.   {GETS to,30,ST}
  395.   {COMP to,l} {IFCO list}
  396.   {ROPE %datadir%CALLERS.LST,MNU2}
  397. {:MNU1} {READ ch} {READ lname} {READ dline}
  398.   {COMP to,%ch} {IFCO MNU5}
  399.   {COMP to,%lname} {IFCO ,MNU1}
  400.   {SETV to,%ch}
  401. {:MNU5} {RCLO}
  402.   {SETV lname,%lname%'s}
  403.   {IFEX %userdir%REGS\%to.REG,V1,D4}
  404. {:MNU2} {SEND ^J^M^J%an1%ID not found.}
  405.   {GOTO view}
  406.  
  407. {:list}
  408.   {SETV dump_file,%datadir%REGISTRY.LST}
  409.   {SEND ^J^M^J%an7}
  410.   {CALL dsp_file}
  411.   {GOTO view}
  412.  
  413.