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

  1.  
  2.                              MACROMSG.MAC 2.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 ESM3}
  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. {:ESM3} {COMP open,y} {IFCO 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.   {SETG 300,time_out}
  63.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Started chat} {WCLO}
  64.   {COMP cb,y} {IFCO ,CT14}
  65.   {CAPT y,%datadir%CHAT.LOG}
  66. {:CT14} {SEND ^J^M^J%an3%You've just entered . . . %an7%The Twilight Zone.  %an3%Reality vanishes.^J^M}
  67.   {SEND %an2(Type "%an0%bye!%an2" on a blank line to exit when desired.)^J^M}
  68.   {SETV cf,1} {SETV co1,%an0} {SETV co2,%an3}
  69.   {SETE-P0 esc_menu}
  70.   {PUSH}
  71. {:CT2} {COMP cf,1} {IFCO CT3}
  72.   {SEND %co2} {SETV cf,1} {GOTO CT4}
  73. {:CT3} {SEND %co1} {SETV cf,2}
  74. {:CT4} {SETV cline}
  75. {:CT5} {SEND ^J}
  76. {:CT13} {SEND ^M%cline}
  77.   {GETS-AH cline,78,CT2}
  78.  
  79.   {COMP cline,/c} ......... {IFCO switch_c}
  80.   {COMP cline,bye!} ....... {IFCO CT1}
  81.   {COMP cline,bye!!} ...... {IFCO time_out}
  82.   {COMP cline,/scroll} .... {IFCO view_scroll}
  83.   {COMP cline,NO CARRIER} . {IFCO time_out}
  84.  
  85.   {LENG %cline}
  86.   {COMP %_len,78} {IFCO-L CT4}
  87.   {SETV ccount,79}
  88. {:CT11} {DECR ccount}
  89.   {COMP ccount,60} {IFCO-LE CT4}
  90.   {SUBS ch,%ccount,1,%cline}
  91.   {COMP ch, } {IFCO ,CT11}
  92.   {COMP ccount,78} {IFCO CT4}
  93.   {INCR ccount}
  94.   {SUBS cline,%ccount,100,%cline}
  95. {:CT12} {COMP ccount,%_len} {IFCO-G CT5}
  96.   {SEND ^H ^H}
  97.   {INCR ccount}
  98.   {GOTO CT12}
  99. {:CT1} {CAPT n}
  100.   {SETV ch,%_ela} {DECR ch,%tl} {INCR tlc,%ch} {SETV tl}
  101.   {SEND ^J^M^J%an3%You've just left . . . %an7%The Twilight Zone.  %an3%Reality restored.^J^M^J}
  102.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Ended chat} {WCLO}
  103.   {SETV cf} {SETV co1} {SETV co2} {SETV chat} {SETV cline}
  104.   {POPS}
  105. {:CT9} {SETV ccount}
  106.   {SETE-P0 esc_menu}
  107.   {CALL press_any_key}
  108.   {RETURN}
  109.  
  110. {:switch_c}
  111. {:SW1} {SEND ^M%an0(0 %an1%1 %an2%2 %an3%3 %an4%4 %an5%5 %an6%6 %an7%7%an0)  ^H}
  112.   {GETS-H ch,1,SW1}
  113.   {COMP ch,0} {IFCO-L SW1}
  114.   {COMP ch,7} {IFCO-G SW1}
  115.   {SEND ^M                    ^M}
  116.   {COMP cf,1} {IFCO ,SW3}
  117.   {SETV-S co2,an%ch} {SEND %co2} {GOTO SW4}
  118. {:SW3} {SETV-S co1,an%ch} {SEND %co1}
  119. {:SW4} {SETV cline}
  120.   {GOTO CT13}
  121.  
  122. {:view_scroll}
  123.   {SCROLL}
  124.   {GOTO CT4}
  125.  
  126. {:update_clist}
  127.   {ROPE %datadir%CALLERS.LST,UC1}
  128.   {WOPE %datadir%TEMP.000}
  129. {:UC2} {READ ch} {READ cline} {READ dline}
  130.   {COMP ch,%userno} {IFCO UC3}
  131.   {WRIT %ch} {WRIT %cline} {WRIT %dline} {GOTO UC2}
  132. {:UC3} {COMP s,1} {IFCO UC5}
  133. {:UC4} {WRIT %ch}
  134.   {WRIT %login_name}
  135.   {WRIT %password}
  136. {:UC5} {READ dline} {WRIT %dline} {GOTO UC5}
  137. {:UC1} {WCLO}
  138.   {EXEC-N COPY %datadir%TEMP.000 %datadir%CALLERS.LST}
  139.   {EXEC-N DEL %datadir%TEMP.000}
  140.   {RETURN}
  141.  
  142. {:write_user}
  143.   {WOPE %userdir%%userno.USR}
  144.   {WRIT %login_name}
  145.   {WRIT %password}
  146.   {WRIT %al}
  147.   {WRIT %protocol}
  148.   {WRIT %expert}
  149.   {WRIT %a}
  150.   {WRIT %fa}
  151.   {WRIT %_dwt %_dat}
  152.   {WRIT %rname}
  153.   {WRIT %from}
  154.   {WRIT %pcpd}
  155.   {WRIT %clr2}
  156.   {WRIT %arcer}
  157.   {WRIT %arc}
  158.   {WCLO}
  159.   {RETURN}
  160.  
  161. {:read_data}
  162.   {ROPE %datadir%CALLER.DAT,RD1}
  163.   {READ %callno}
  164.   {READ %tdcalls}
  165.   {READ pub}
  166.   {READ pvt}
  167.   {READ ttu}
  168.   {READ tf}
  169.   {READ ldate}
  170.   {READ stime}
  171.   {READ ftime}
  172.   {READ l_caller}
  173.   {READ luserno}
  174.   {READ uhigh}
  175.   {READ mhigh}
  176.   {READ fhigh}
  177.   {RCLO}
  178. {:RD1} {RETURN}
  179.  
  180. {:write_data}
  181.   {WOPE %datadir%CALLER.DAT}
  182.   {WRIT %callno}
  183.   {WRIT %tdcalls}
  184.   {WRIT %pub}
  185.   {WRIT %pvt}
  186.   {WRIT %ttu}
  187.   {WRIT %tf}
  188.   {WRIT %ldate}
  189.   {WRIT %stime}
  190.   {WRIT %ftime}
  191.   {WRIT %login_name}
  192.   {WRIT %userno}
  193.   {WRIT %uhigh}
  194.   {WRIT %mhigh}
  195.   {WRIT %fhigh}
  196.   {WCLO}
  197.   {RETURN}
  198.  
  199. {:create_tags}
  200.   {SETV count,0}
  201.   {WOPE %msgsdir%TAGS\%userno.TAG}
  202. {:WT1}
  203.   {INCR count} {COMP count,%mhigh} {IFCO-G WT2}
  204.   {WRIT -} {GOTO WT1}
  205. {:WT2}
  206.   {WCLO}
  207.   {RETURN}
  208.  
  209. {:time_out}
  210.   {MACL MACROBBS.MAC,time_out}
  211.  
  212. {:cls}
  213.   {CLEA}
  214.   {COMP on,} {IFCO CLS3}
  215.   {COMP mnu,A} {IFCO CLS1}
  216.   {SEND ^[[2J}
  217.   {GOTO CLS2}
  218. {:CLS1} {SEND ^L}
  219. {:CLS2} {DISP 1,1,4F,│                                                                              }
  220.   {DISP 1,3,4E,%login_name #%userno}
  221.   {DISP 1,40,47,AL=%al}
  222.   {DISP 1,49,47,%mspeed}
  223.   {DISP 1,57,47,%_ela mins}
  224.   {DISP 1,70,4F,%an9%%chat}
  225.   {DISP 2,1,4F,│                                                                              }
  226.   {DISP 2,3,47,%rname  -  %from}
  227.   {DISP 3,1,4F,└──────────────────────────────────────────────────────────────────────────────}
  228.   {DISP 4,1,07,}
  229. {:CLS3} {RETURN}
  230.  
  231. {:press_any_key}
  232.   {COMP mnu,a} {IFCO PAK1}
  233.   {SEND %an3%%an9^[[24;1h^[[24;1f[Press Any Key]%an0}
  234.   {GOTO PAK2}
  235. {:PAK1} {SEND ^J^M^J[Press Any Key]}
  236. {:PAK2} {SETG 300,time_out}
  237.   {GETS-H temp,1,PAK}
  238. {:PAK} {SEND ^M               ^M}
  239.   {SETV temp}
  240.   {RETURN}
  241.  
  242. {:dsp_file}
  243.   {IFEX %dump_file,,DF5}
  244. * {SETV count,0} {SETV open,y}
  245.   {INCR count,2}
  246.   {SETE time_out}
  247.   {ROPE %dump_file,DF3}
  248.   {SETV tnod} {SETV fnod}
  249.   {READ dline} {SEND %an7%To:    %an3%%dline^J^M} {INCR count}
  250.   {READ dline} {SEND %an7%From:  %an1%%dline^J^M} {INCR count}
  251.   {READ dline} {SEND %an7%Subj:  %an4%%dline^J^M} {INCR count}
  252.   {READ dline} {SEND %an7%Date:  %an0%%dline^J^M} {INCR count}
  253.   {COMP fido,y} {IFCO ,DF12}
  254.   {READ tnod} {READ fnod}
  255. {:DF12} {READ dline}
  256.   {COMP dline,0} {IFCO DF11}
  257.   {COMP dline,} {IFCO ,DF10}
  258.   {SEND %an0%%dline^J^M} {INCR count}
  259. {:DF11} {SETV trace}
  260.   {GOTO DF}
  261. {:DF10} {SEND %an5%Trace msg#:  %an0%%dline^J^M} {INCR count}
  262.   {SETV trace,%dline}
  263. {:DF} {PUSH}
  264.   {SETE-P0 esc_menu}
  265. {:DF1} {READ dline}
  266.   {COMP dline,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀} {IFCO ,LQ1}
  267.   {SETV dline,%an4▀▀▀▀▀▀ %an7%Quote %an4▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀%an7}
  268.   {GOTO DF8}
  269. {:LQ1} {COMP dline,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄} {IFCO ,DF8}
  270.   {SETV dline,%an4▄▄▄▄▄▄ %an7%UnQuote %an4▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄%an0}
  271. {:DF8} {SEND ^M%dline%%an0^J^M}
  272.   {INCR count}
  273.   {COMP count,22} {IFCO DF4}
  274.   {GOTO DF1}
  275. {:DF2} {RCLO}
  276. {:DF3} {SETV dline} {SETV ch} {SETV count}
  277. * {SETV open}
  278.   {SETG 300,time_out}
  279.   {POPS}
  280.   {RETURN}
  281.  
  282. {:DF4} {SETV count,0}
  283.   {SEND %an4%More? %an7(Y,n) %an0: }
  284.   {SETG 300,DF9}
  285. {:DF6} {GETS-H ch,1,DF7}
  286.   {COMP ch,y} {IFCO DF7}
  287.   {COMP ch,n} {IFCO DF7}
  288.   {SEND ^H} {GOTO DF6}
  289. {:DF7} {SEND ^M                  ^M}
  290.   {COMP ch,n} {IFCO DF2}
  291. {:DF9} {COMP clr2,n} {IFCO DF1}
  292.   {CALL CLS}
  293.   {SEND ^J^M}
  294.   {GOTO DF1}
  295. {:DF5} {SEND ^J^M^G%an1%Error: %an7%File not found: %dump_file}
  296.   {CALL press_any_key}
  297.   {RETURN}
  298.  
  299. {:screen_full}
  300.   {SEND %an4%More? %an7(Y,n) %an0: }
  301.   {SETG 300,SF3}
  302. {:SF1} {GETS-H ch,1,SF2}
  303.   {COMP ch,y} {IFCO SF4}
  304.   {COMP ch,n} {IFCO SF4}
  305.   {SEND ^H} {GOTO SF1}
  306. {:SF2} {SETV ch,y} {GOTO SF4}
  307. {:SF3} {SETV ch,n}
  308. {:SF4} {SEND ^M                  ^M}
  309.   {SETG 300,time_out}
  310.   {RETURN}
  311.  
  312. {:ascii_ul}
  313.   {COMP mnu,A} {IFCO AU1}
  314.   {SEND ^[[2J} {GOTO AU2}
  315. {:AU1} {SEND ^L}
  316. {:AU2}
  317.   {IFEX %dump_file,,AU3}
  318.   {PARM ,,,,%uicd}
  319.   {ASCI-S0 %dump_file,}
  320.   {PARM ,,,,%nicd}
  321. {:AU3} {RETURN}
  322.  
  323. {:expert_tog}
  324.   {COMP expert,ON}
  325.   {IFCO ET1}
  326.   {SETV expert,ON}
  327.   {GOTO ET2}
  328. {:ET1} {SETV expert,OFF}
  329. {:ET2} {RETURN}
  330.  
  331. {:ansi}
  332.   {SETV mnu,n}
  333.   {SETV an0,^[[0;2;37m} - gray
  334.   {SETV an1,^[[0;1;31m} - red
  335.   {SETV an2,^[[0;2;32m} - green
  336.   {SETV an3,^[[0;1;33m} - yellow
  337.   {SETV an4,^[[0;1;34m} - blue
  338.   {SETV an5,^[[0;1;35m} - magenta
  339.   {SETV an6,^[[0;1;36m} - cyan
  340.   {SETV an7,^[[0;1;37m} - white
  341.   {SETV an9,^[[5m}     - blink
  342.   {SETV an12,^[[44m}   - blue background
  343.   {SETV an13,^[[41m}   - red background
  344.   {RETURN}
  345.  
  346. {:cd}
  347.   {IFCA cd1}
  348.   {COMP on,1} {IFCO time_out}
  349. *-{:cd1} {COMP on,1} {IFCO ,cd2}
  350.   {COMP _ela,%tlc} {IFCO-GE time_out}
  351. {:cd2} {RETURN}
  352.  
  353. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  354. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  355. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  356. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  357. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  358.  
  359. {:start}
  360.   {PUSH}
  361.   {SETE time_out}
  362.   {CALL cd}
  363.   {COMP n,1} {IFCO ,MB1}
  364.   {SETV ch,0}
  365. {:CLR} {INCR ch} {COMP ch,%mhigh} {IFCO-G MB1} {SETV ta%ch} {GOTO CLR}
  366. {:MB1}
  367.   {SETV n} {SETV ta} {SETV em} {SETV ul}
  368.   {SETV files} {SETV desc} {SETV filepath}
  369.   {SETV tran} {SETV transdir} {SETV proto} {SETV tl}
  370.   {CALL read_baseinfo}
  371.   {SETE-P0 esc_menu}
  372.   {COMP expert,ON} {IFCO MB4}
  373. {:MB8} {CALL cls}
  374.   {SEND ^J^M^J^J%an4%}
  375.   {SEND ^J^M             ┌───────────────────────────────────────────────────┐}
  376.   {SEND ^J^M             │ %an0░░░░░░░░░░░░░░░░░░%an7 Message Base %an0░░░░░░░░░░░░░░░░░%an4 │}
  377.   {SEND ^J^M             └───────────────────────────────────────────────────┘}
  378.   {SEND ^J^M               [%an0%<%an4] Reverse       [%an0%A%an4] Area List       [%an0%>%an4] Forward^J^M}
  379.  
  380.   {SEND ^J^M          %an4[%an0%U%an4] Upload a message     [%an0%T%an4] Tag areas        %an4[%an0%O%an4] Message Packer}
  381.   {SEND ^J^M          %an4[%an0%P%an4] Post a message       [%an0%R%an4] ReviewScan       %an2[%an0%F%an2] File Base}
  382.   {SEND ^J^M          %an4[%an0%N%an4] NewScan ALL areas    [%an0%C%an4] Chat             %an1[%an0%H%an1] Hall of Fame}
  383.   {SEND ^J^M          %an4[%an0%S%an4] NewScan THIS area    [%an0%X%an4] Xpert Toggle     %an0[%an0%Q%an0] MAIN MENU^J^M}
  384.  
  385.   {SEND ^J^M                      %an0 Enter a command or message number.}
  386.  
  387. {:MB4} {SEND ^J^M^J%an4%Message Base^J^M}
  388.   {SEND %an4[%an0%%bname%%an4]  %an0%%_tim^J^M}
  389.   {DECR msgno}
  390.   {COMP msgno,%himsgno} {IFCO-LE MB10}
  391.   {SETV msgno,0}
  392. {:MB10} {SEND %an4%Msg(s): %an0%%lomsgno-%himsgno  %an4%Last read: %an0%%msgno^J^M}
  393.   {INCR msgno}
  394.   {SETV ch,%tlc} {DECR ch,%_ela}
  395.   {SEND %an0%Mins Left: %ch^J^M}
  396. {:MB5} {CALL cd}
  397. {:MB7} {SEND ^M} {COMP expert,ON} {IFCO ,MB9}
  398.   {SEND %an4(%an0%?%an4=menu) }
  399. {:MB9} {SEND %an7%MB Command:         ^H^H^H^H^H^H^H^H}
  400.   {GETS-H ch,1,MB5}
  401. {:MB14}
  402.   {SETV dline,up} {INST dline,%ch} {IFCO ,MB3} {COMP al,0} {IFCO MB6}
  403. {:MB3}
  404.   {COMP ch,*} {IFCO time_out}
  405.   {COMP ch,?} {IFCO MB8}
  406.   {COMP ch,q} {IFCO main}
  407.   {COMP ch,o} {IFCO msg_pack}
  408.   {COMP ch,f} {IFCO file_base}
  409.   {COMP ch,h} {IFCO hall}
  410.   {COMP ch,a} {IFCO area_change}
  411.   {COMP ch,c} {IFCO chat}
  412.   {COMP ch,p} {IFCO editor}
  413.   {COMP ch,u} {IFCO msg_ul}
  414.   {COMP ch,r} {IFCO review}
  415.   {COMP ch,x} {IFCO expert_tog}
  416.   {COMP ch,<} {IFCO fast_bak}
  417.   {COMP ch,>} {IFCO fast_for}
  418.   {COMP ch,n} {IFCO new_all}
  419.   {COMP ch,s} {IFCO new_this}
  420.   {COMP ch,t} {IFCO tag_area}
  421.   {SETV dline,123456789} {INST dline,%ch} {IFCO ,MB5}
  422.   {COMP himsgno,0} {IFCO MB5}
  423.  
  424.   {GETS-A ch,8,MB5}
  425.   {COMP ch,1} {IFCO MB13}
  426.   {COMP ch,1} {IFCO-L MB14}
  427.   {COMP ch,%lomsgno} {IFCO-GE MB11}
  428. {:MB13} {SETV ch,%lomsgno} {GOTO MB12}
  429. {:MB11} {COMP ch,%himsgno} {IFCO-LE MB12}
  430.   {SETV ch,%himsgno}
  431. {:MB12} {IFEX %msgsdir%A%a\%ch.MSG,read}
  432.   {SEND ^J^M%an7%Message #%ch not found.} {PAUS 1}
  433.   {INCR ch} {GOTO MB11}
  434.  
  435. {:MB6} {SEND ^J^M%an1%Sorry, your access level does not allow.^J^M}
  436.   {GOTO MB5}
  437.  
  438. {:main}
  439.   {MACL MACROBBS.MAC,main_menu}
  440.  
  441. {:file_base}
  442.   {IFEX MACROFIL.MAC,,MB5}
  443.   {IFEX %filedir%F%fa.BAS,FX2}
  444.   {IFEX %filedir%F*.BAS,,MB5}
  445.   {SETV fa,0}
  446. {:FX1} {INCR fa}
  447.   {COMP fa,%fhigh} {IFCO-G MB5}
  448.   {IFEX %filedir%F%fa.BAS,,FX1}
  449. {:FX2}
  450.   {ROPE %filedir%F%fa.BAS,FX1} {READ ch} {READ ch} {RCLO}
  451.   {COMP ch,%al} {IFCO-G FX1}
  452.   {MACL MACROFIL.MAC,start}
  453.  
  454. {:hall}
  455.   {IFEX MACROREG.MAC,,MB5}
  456.   {MACL MACROREG.MAC,start}
  457.  
  458. {:msg_pack}
  459.   {IFEX MACROPAK.MAC,,MB5}
  460.   {MACL MACROPAK.MAC,start}
  461.  
  462. {:fast_for}
  463.   {COMP a,%mhigh} {IFCO ,FF0}
  464.   {SETV ch,0} {GOTO FF1}
  465. {:FF0}
  466.   {SETV ch,%a}
  467. {:FF1}
  468.   {INCR ch}
  469.   {COMP ch,%mhigh} {IFCO-G MB5}
  470.   {IFEX %msgsdir%A%ch.BAS,,FF1}
  471.   {ROPE %msgsdir%A%ch.BAS,FF1} {READ dline} {READ temp} {RCLO}
  472.   {COMP al,%temp} {IFCO-L FF1}
  473.   {SETV a,%ch}
  474.   {CALL read_baseinfo}
  475. {:FF2} {GOTO MB4}
  476.  
  477. {:fast_bak}
  478.   {COMP a,1} {IFCO ,FB0}
  479.   {SETV ch,%mhigh} {INCR ch} {GOTO FB1}
  480. {:FB0}
  481.   {SETV ch,%a}
  482. {:FB1}
  483.   {DECR ch}
  484.   {COMP ch,1} {IFCO-L MB5}
  485.   {IFEX %msgsdir%A%ch.BAS,,FB1}
  486.   {ROPE %msgsdir%A%ch.BAS,FB1} {READ dline} {READ temp} {RCLO}
  487.   {COMP al,%temp} {IFCO-L FB1}
  488.   {SETV a,%ch}
  489.   {CALL read_baseinfo}
  490. {:FB2} {GOTO MB4}
  491.  
  492. {:area_change}
  493.   {IFEX %datadir%MAREAS%mnu.MNU,,AC11}
  494.   {SETV dump_file,%datadir%MAREAS%mnu.MNU}
  495.   {CALL ascii_ul}
  496.   {GOTO AC6}
  497. {:AC11}
  498.   {CALL cls}
  499.   {SETV df} {SETV count,0} {SETV mcount,0}
  500.   {SEND ^J^M%an7%Message Area(s):^J^M^J}
  501. {:AC1}
  502.   {SETV temp}
  503.   {INCR count}
  504.   {COMP count,%mhigh} {IFCO-G AC2}
  505.   {IFEX %msgsdir%A%count.BAS,,AC1}
  506.   {ROPE %msgsdir%A%count.BAS,AC9} {READ bname} {READ bal}
  507.   {READ temp} {READ temp} {READ temp} {READ temp} {RCLO}
  508.   {COMP al,%bal} {IFCO-L AC1}
  509.   {COMP df,2} {IFCO AC5}
  510.   {SETV ch,35} {LENG %bname} {DECR ch,%_len} {SUBS dline,1,%ch,                                   }
  511.   {COMP temp,y} {IFCO AC10}
  512.   {SEND %an7%%count> %an4%%bname%%dline}
  513.   {SETV df,2} {GOTO AC1}
  514. {:AC10} {SEND %an7%%count> %an5%%bname%%dline}
  515.   {SETV df,2} {GOTO AC1}
  516. {:AC5}
  517.   {COMP temp,y} {IFCO AC7}
  518.   {SEND %an7%%count> %an4%%bname^J^M}
  519.   {GOTO AC8}
  520. {:AC7} {SEND %an7%%count> %an5%%bname^J^M}
  521. {:AC8} {SETV df,1}
  522.   {INCR mcount}
  523.   {COMP mcount,20} {IFCO ,AC1}
  524.   {CALL screen_full}
  525.   {COMP ch,y} {IFCO AC1,AC3}
  526. {:AC2} {COMP df,2} {IFCO AC6}
  527.   {SEND ^J^M} {GOTO AC3}
  528. {:AC6} {SEND ^J^M^J}
  529. {:AC3} {SEND ^M%an7%Which will it be?%an0   ^H^H}
  530.   {CALL cd}
  531.   {GETS ch,2,AC4}
  532.   {COMP ch,1} {IFCO-L AC3}
  533.   {COMP ch,%mhigh} {IFCO-G AC3}
  534.   {IFEX %msgsdir%A%ch.BAS,,AC3}
  535.   {ROPE %msgsdir%A%ch.BAS,AC3} {READ bname} {READ bal} {RCLO}
  536.   {COMP al,%bal} {IFCO-L AC3}
  537.   {SETV a,%ch}
  538.   {CALL read_baseinfo}
  539. {:AC4} {RETURN}
  540.  
  541. {:msg_ul}
  542.   {SETV files,TEMP.000}
  543.   {SETV filepath,%datadir%%files}
  544.   {SETV ul,1}
  545.   {GOTO editor}
  546. {:MUL1}
  547.   {EXEC-N DEL %filepath}
  548.   {SEND ^J^M^J%an0%Begin your%an7 XMODEM%an0 upload now.}
  549.   {RXMO %filepath}
  550.   {COMP %_err,0} {IFCO MUL2}
  551.   {WOPE-A %datadir%LOG-1.LOG} {WRIT ▒░▒░▒  ERRONEOUS MESSAGE UPLOAD at %_tim of %filepath  ▒░▒░▒} {WCLO}
  552.   {SEND ^J^M^J%an1%ERRONEOUS upload.^J^M}
  553.   {GOTO E10}
  554. {:MUL2}
  555.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : successful message upload of %filepath} {WCLO}
  556.   {SEND ^J^M%an7%Message successfully uploaded.^J^M}
  557.   {GOTO S0}
  558.  
  559. {:tag_area}
  560.   {IFEX %msgsdir%TAGS\%userno.TAG,,TA105}
  561. {:TA0}
  562.   {ROPE %msgsdir%TAGS\%userno.TAG,TA2}
  563.   {SETV count,0}
  564. {:TA1} {INCR count} {READ ta%count} {GOTO TA1}
  565. {:TA105} {CALL create_tags} {GOTO TA0}
  566. {:TA2}
  567.   {SEND ^J^M^J%an7%Tag/Untag which area? %an0(area #, L=List, ENTER=Quit): }
  568.   {GETS ch,2,TA6}
  569.   {COMP ch,l} {IFCO TA5}
  570.   {COMP ch,1} {IFCO-GE TA9}
  571. {:TA3}
  572.   {SEND ^J^M%an1%That area doesn't exist!}
  573.   {GOTO TA2}
  574. {:TA9}
  575.   {IFEX %msgsdir%A%ch.BAS,,TA3}
  576.   {ROPE %msgsdir%A%ch.BAS,TA3} {READ bname} {READ bal} {RCLO}
  577.   {COMP al,%bal} {IFCO-GE ,TA3}
  578.   {COMP ta%ch,-} {IFCO ,TA4}
  579.   {SEND ^J^M^J%an7%%bname %an0- %an1%Untagged.}
  580.   {SETV ta%ch, }
  581.   {GOTO TA2}
  582. {:TA4}
  583.   {SEND ^J^M^J%an7%%bname %an0- %an2%Tagged.}
  584.   {SETV ta%ch,-}
  585.   {GOTO TA2}
  586. {:TA5}
  587.   {CALL cls}
  588.   {SETV count,0} {SETV mcount,0}
  589.   {SEND ^J^M%an7  Message Area(s):^J^M}
  590. {:TA7}
  591.   {SETV temp}
  592.   {INCR count}
  593.   {COMP count,%mhigh} {IFCO-G TA2}
  594.   {IFEX %msgsdir%A%count.BAS,,TA7}
  595.   {ROPE %msgsdir%A%count.BAS,TA11} {READ bname} {READ bal}
  596.   {READ temp} {READ temp} {READ temp} {READ temp} {RCLO}
  597. {:TA11}
  598.   {COMP al,%bal} {IFCO-L TA7}
  599.   {SETV-S ch,ta%count}
  600.   {COMP ch,} {IFCO ,TA14}
  601.   {SETV ch, }
  602. {:TA14} {COMP temp,y} {IFCO TA8}
  603.   {SEND ^J^M%an3%%ch %an7%%count> %an4%%bname} {GOTO TA10}
  604. {:TA8} {SEND ^J^M%an3%%ch %an7%%count> %an5%%bname}
  605. {:TA10}
  606.   {INCR mcount} {COMP mcount,20} {IFCO ,TA7}
  607.   {CALL screen_full}
  608.   {COMP ch,y} {IFCO TA7,TA2}
  609. {:TA6}
  610.   {SETV count,0}
  611.   {WOPE %msgsdir%TAGS\%userno.TAG}
  612. {:TA12}
  613.   {INCR count} {COMP count,%mhigh} {IFCO-G TA13}
  614.   {SETV-S ch,ta%count} {SETV ta%count} {WRIT %ch} {GOTO TA12}
  615. {:TA13}
  616.   {WCLO}
  617.   {RETURN}
  618.  
  619.   {RETURN}
  620.  
  621. {:review}
  622.   {COMP himsgno,0} {IFCO MB5}
  623.   {SEND ^J^M^J}
  624. {:RE1} {SEND %an4%Begin reviewing at which message? %an0(%lomsgno-%himsgno) :%an7         ^H^H^H^H^H^H^H^H}
  625.   {GETS ch,8,MB1}
  626.   {COMP ch,1} {IFCO-L RE1}
  627.   {COMP ch,%lomsgno} {IFCO-GE RE13}
  628.   {SETV ch,%lomsgno} {GOTO RE14}
  629. {:RE13} {COMP ch,%himsgno} {IFCO-LE RE14}
  630.   {SETV ch,%himsgno}
  631. {:RE14} {IFEX %msgsdir%A%a\%ch.MSG,RE15}
  632.   {SEND ^J^M%an7%Message #%ch not found.} {PAUS 1}
  633.   {INCR ch} {GOTO RE13}
  634. {:RE15} {DECR ch}
  635. {:RE4} {INCR ch} {COMP ch,%himsgno} {IFCO-G RE3}
  636. {:RE2} {IFEX %msgsdir%A%a\%ch.MSG,,RE4}
  637. {:RE5} {CALL cls}
  638.   {SEND %an7%Msg#     To:                       From:                     Subject:}
  639.   {SEND ^J^M----------------------------------------------------------------------------^J^M-
  640.   {SETV temp,0}
  641. {:RE7} {INCR temp}
  642.   {ROPE %msgsdir%A%a\%ch.MSG,RE8}
  643.   {SETV mx,9} {SETV dline,%ch}
  644.   {LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx,         }
  645.   {SEND ^M%an0%%dline%%cline}
  646.   {SETV mx,26}
  647.   {READ dline} {SUBS dline,1,25,%dline}
  648.   {LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx,                         }
  649.   {SEND %an3%%dline%%cline}
  650.   {SETV mx,26}
  651.   {READ dline} {SUBS dline,1,25,%dline}
  652.   {LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx,                         }
  653.   {SEND %an1%%dline%%cline}
  654.   {SETV mx,18}
  655.   {READ dline} {SUBS dline,1,18,%dline}
  656.   {LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx,                         }
  657.   {SEND %an4%%dline%%cline^J^M}
  658.   {RCLO}
  659. {:RE8} {INCR ch} {COMP ch,%himsgno} {IFCO-G RE9}
  660.   {IFEX %msgsdir%A%a\%ch.MSG,,RE8}
  661.   {COMP temp,20} {IFCO RE11}
  662.   {GOTO RE7}
  663. {:RE11} {SETV aa,%ch}
  664.   {CALL screen_full}
  665.   {COMP ch,y} {IFCO RE12}
  666.   {COMP expert,ON} {IFCO MB4,MB8}
  667. {:RE12} {SETV ch,%aa}
  668.   {GOTO RE5}
  669. {:RE6} {IFEX %msgsdir%A%a\%ch.MSG,RE5}
  670. {:RE3} {SEND ^J^M%an1%That message does not exist.^J^M}
  671.   {GOTO RE1}
  672. {:RE9} {SEND ^J^M^J%an7%<End of messages in %an5%%bname%%an7>^J^M}
  673. {:RE10} {COMP expert,ON} {IFCO MB4}
  674.   {CALL press_any_key}
  675.   {GOTO MB8}
  676.  
  677. {:trace}
  678.   {POPS}
  679. {:TR0} {COMP trace,} {IFCO TR1}
  680.   {SEND race}
  681.   {INST trace,/} {IFCO ,TR1}
  682.   {SETV ch,%_pos} {DECR ch}
  683.   {SUBS temp,1,%ch,%trace}
  684.   {SETV ch,%_pos} {INCR ch}
  685.   {SUBS dline,%ch,8,%trace}
  686. {:TR3} {SETV dump_file,%msgsdir%A%temp\%dline.MSG}
  687.   {IFEX %dump_file,,TR1}
  688.   {CALL cls}
  689.   {SEND ^J^M%an7%TRACE:  %an0%Msg# %dline in area %temp^J^M^J}
  690.   {CALL dsp_file}
  691.   {SEND ^J^M^J%an0<%an7%SPACEBAR %an0= Trace this message, %an7%ENTER %an0= quit Trace> }
  692. {:TR4} {GETS-H ch,1,FW50}
  693.   {COMP ch, } {IFCO TR0}
  694.   {SEND ^H} {GOTO TR4}
  695. {:TR2} {SETV temp,%a} {SETV dline,%trace} {GOTO TR3}
  696. {:TR1} {SEND ^J^M^J%an1%Can't trace message.^J^M} {PAUS 1} {GOTO FW50}
  697.  
  698. {:new_all}
  699.   {SETV n,1} {SETV ta,%a} {SETV a,0}
  700.   {IFEX %msgsdir%TAGS\%userno.TAG,,NA2}
  701. {:NA0}
  702.   {ROPE %msgsdir%TAGS\%userno.TAG,NA3}
  703.   {SETV count,0}
  704. {:NA1} {INCR count} {READ ta%count} {GOTO NA1}
  705. {:NA2} {CALL create_tags} {GOTO NA0}
  706. {:NA3} {GOTO FW20}
  707.  
  708. {:new_this}
  709.   {COMP msgno,%himsgno} {IFCO-G ,FW2}
  710.   {SEND ^J^M^J%an7<End of messages in %an5%%bname%%an7>^J^M}
  711.   {POPS}
  712.   {GOTO MB5}
  713.  
  714. {:read}
  715.   {SETV msgno,%ch}
  716. {:FW2} {COMP msgno,%lomsgno} {IFCO-GE FW24}
  717.   {INCR msgno} {GOTO FW2}
  718. {:FW24} {COMP msgno,%himsgno} {IFCO-G FW11}
  719.   {IFEX %msgsdir%A%a\%msgno.MSG,FW21}
  720.   {INCR msgno} {GOTO FW2}
  721. {:FW21} {INCR reads}
  722. {:FW19} {CALL cls}
  723.   {SETV dump_file,%msgsdir%A%a\%msgno.MSG}
  724.   {SEND ^J^M%an0%Msg# %msgno of %himsgno in %an4%%bname^J^M^J}
  725.   {CALL dsp_file}
  726.   {SETE time_out}
  727.   {INCR msgno}
  728.  
  729. {:FW6}
  730.   {PUSH}
  731.   {DECR msgno}
  732.   {SEND ^J^M%an7[%msgno/%himsgno] %an4%%bname}
  733.   {INCR msgno}
  734.   {SETV ch,%tlc} {DECR ch,%_ela}
  735.   {SEND ^J^M%an0%Mins Left: %ch}
  736.   {SEND ^J^M%an3%Read Menu%an0:  %an7%R%an0%eply, %an7%P%an0%rev, %an7%A%an0%gain, %an7%N%an0%ext, %an7%T%an0%race, %an7%J%an0%ump}
  737.   {COMP al,%sal} {IFCO-L FW26}
  738.   {SEND , %an7%S%an0%ysop}
  739. {:FW26} {SEND  or %an7%Q%an0%uit?%an3 }
  740.   {SETE-P0 esc_menu}
  741.   {SETG 300,time_out}
  742. {:FW14} {CALL cd}
  743.   {GETS-H ch,1,FW60} {COMP ch,r} {IFCO ,FW17} {COMP al,0} {IFCO FW18}
  744. {:FW17}
  745.   {COMP ch,a} {IFCO FW1}
  746.   {COMP ch,n} {IFCO FW16}
  747.   {COMP ch,p} {IFCO FW4}
  748.   {COMP ch,r} {IFCO FW5}
  749.   {COMP ch,j} {IFCO FW22}
  750.   {COMP ch,s} {IFCO FW27}
  751.   {COMP ch,t} {IFCO trace}
  752.   {COMP ch,q} {IFCO FW8}
  753. {:FW} {SEND ^H} {GOTO FW14}
  754.  
  755. {:FW18}
  756.   {SEND ^J^M%an1%Sorry, your access level does not allow.}
  757.   {RETURN}
  758.  
  759. {:FW1}
  760.   {POPS}
  761.   {SEND gain}
  762. {:FW50}
  763.   {SETE time_out}
  764.   {DECR msgno}
  765.   {GOTO FW19}
  766. {:FW16}
  767.   {SEND ext}
  768. {:FW60}
  769.   {SETE time_out}
  770.   {POPS}
  771.   {GOTO FW2}
  772. {:FW4}
  773.   {SETE time_out}
  774.   {POPS}
  775.   {SEND revious}
  776.   {SETV temp,%lomsgno} {INCR temp}
  777. {:FW25} {COMP msgno,%temp} {IFCO ,FW10}
  778.   {SEND ^J^M%an7<Beginning of messages in %an5%%bname%%an7>^J^M} {GOTO FW6}
  779. {:FW10} {DECR msgno,2}
  780.   {IFEX %msgsdir%A%a\%msgno.MSG,FW21}
  781.   {INCR msgno} {GOTO FW25}
  782. {:FW22}
  783.   {SETE time_out}
  784.   {POPS}
  785.   {SEND ump^J^M^J}
  786. {:FW23} {SEND ^M%an4%Enter a message number to jump to. %an0(%lomsgno-%himsgno) : %an3        ^H^H^H^H^H^H^H^H}
  787.   {GETS ch,8,FW6}
  788.   {COMP ch,1} {IFCO-L FW23}
  789.   {COMP ch,%lomsgno} {IFCO-GE FW47}
  790.   {SETV ch,%lomsgno} {GOTO FW48}
  791. {:FW47} {COMP ch,%himsgno} {IFCO-LE FW48}
  792.   {SETV ch,%himsgno}
  793. {:FW48} {IFEX %msgsdir%A%a\%ch.MSG,FW49}
  794.   {SEND ^J^M%an7%Message #%ch not found.} {PAUS 1}
  795.   {INCR ch} {GOTO FW47}
  796. {:FW49} {SETV msgno,%ch}
  797.   {GOTO FW2}
  798. {:FW5}
  799.   {SETE time_out}
  800.   {POPS}
  801.   {SEND eply}
  802.   {DECR msgno}
  803.   {SETV r,1} {SETV trace,%a/%msgno}
  804.   {SETV quotemsg,%msgsdir%A%a\%msgno.MSG}
  805.   {ROPE %quotemsg,FW6}
  806.   {READ dline} {READ to} {READ subj} {RCLO}
  807.   {INCR msgno}
  808.   {CALL editor}
  809.   {GOTO FW6}
  810. {:FW8}
  811.   {SETE time_out}
  812.   {POPS}
  813.   {SEND uit^J^M}
  814.   {SETV a%a,%msgno}
  815. {:FW9} {SETV tnod} {SETV fnod} {SETV quotemsg} {SETV to} {SETV subj}
  816. {:FW3} {RETURN}
  817.  
  818. {:FW11} {COMP n,1} {IFCO ,FW15}
  819.   {SETE time_out}
  820.   {SEND ^J^M^J%an7<Finished scanning %an4%%bname%%an7>^J^M}
  821.   {SETV a%a,%msgno}
  822. {:FW20} {SETE time_out}
  823.   {INCR a}
  824.   {COMP a,%mhigh} {IFCO-G FW13}
  825.   {COMP ta%a,-} {IFCO ,FW20}
  826.   {IFEX %msgsdir%A%a.BAS,,FW20}
  827.   {ROPE %msgsdir%A%a.BAS,FW20} {READ bname} {READ bal} {RCLO}
  828.   {COMP al,%bal} {IFCO-L FW20}
  829.   {CALL read_baseinfo}
  830.   {CALL cls}
  831.   {SEND ^J^M^J%an0  New Scanning %an4%%bname} {PAUS 1}
  832.   {COMP msgno,%himsgno} {IFCO-G FW20,FW2}
  833. {:FW13}
  834.  {SETV a,%ta} {SETV ta}
  835.   {CALL cls}
  836.   {SEND ^J^M^J%an7<End of available messages>^J^M}
  837.   {COMP expert,ON} {IFCO FW9}
  838.   {CALL press_any_key}
  839.   {GOTO FW9}
  840. {:FW15}
  841.   {SETE time_out}
  842.   {SEND ^J^M^J%an7<End of messages in %an5%%bname%%an7>^J^M}
  843.   {SETV a%a,%msgno}
  844.   {COMP expert,ON} {IFCO FW9}
  845.   {CALL press_any_key}
  846.   {GOTO FW9}
  847.  
  848. {:FW27}
  849.   {POPS}
  850.   {SEND ysop^J^M}
  851.   {PUSH}
  852.   {SETE-P0 esc_menu}
  853. {:FW28} {SEND ^J^M%an1%Sysop Menu%an0:  %an7%D%an0%elete,%an7 E%an0%dit,%an7 M%an0%ove or%an7 Q%an0%uit? %an1}
  854. {:FW29} {CALL cd}
  855.   {GETS-H ch,1,FW30}
  856.   {COMP ch,d} {IFCO FW31}
  857.   {COMP ch,e} {IFCO FW45}
  858.   {COMP ch,m} {IFCO FW40}
  859.   {COMP ch,q} {IFCO FW30}
  860.   {SEND ^H} {GOTO FW29}
  861.  
  862. {:FW30}
  863.   {SETE time_out}
  864.   {POPS}
  865.   {SEND ^J^M} {GOTO FW6}
  866.  
  867. {:FW31}
  868.   {SETE time_out}
  869.   {POPS}
  870.   {SEND elete^J^M}
  871.   {SEND ^J^M%an7%DELETE %an1%this message? %an0(y,%an7%N%an0) :%an1 }
  872. {:FW32} {GETS ch,1,FW28}
  873.   {COMP ch,n} {IFCO FW28}
  874.   {COMP ch,y} {IFCO FW33}
  875.   {SEND ^H} {GOTO FW32}
  876. {:FW33} {SEND ^J^M}
  877.   {DECR msgno}
  878.   {EXEC-N DEL %msgsdir%A%a\%msgno.MSG}
  879.   {CALL renumber}
  880.   {INCR msgno}
  881.   {SEND %an7%Message deleted.} {PAUS 1}
  882.   {GOTO FW2}
  883.  
  884. {:FW40} {SEND ove^J^M^J}
  885.   {SETE time_out}
  886.   {POPS}
  887. {:FW41} {SEND ^M%an7%MOVE %an3%this message to which message area? %an0(1-%mhigh, ENTER=quit) :%an3   ^H^H}
  888.   {GETS ch,2,FW28}
  889.   {COMP ch,1} {IFCO-L FW41}
  890.   {COMP ch,%a} {IFCO FW41}
  891.   {COMP ch,%mhigh} {IFCO-G FW41}
  892.   {IFEX %msgsdir%A%ch.BAS,,FW41}
  893.   {ROPE %msgsdir%A%ch.BAS,FW41}
  894.   {READ dline} {READ temp} {RCLO}
  895.   {COMP temp,%al} {IFCO-G FW41}
  896.   {ROPE %msgsdir%A%ch.BAS,FW41}
  897.   {READ dline} {READ temp} {READ temp} {READ temp} {READ temp} {RCLO}
  898.   {INCR temp}
  899.   {SEND ^J^M^J%an7%Move this message to %an3%%dline%%an7? %an0(y,%an7%N%an0) : }
  900. {:FW42} {GETS aa,1,FW43}
  901.   {COMP aa,n} {IFCO FW43}
  902.   {COMP aa,y} {IFCO FW44}
  903.   {SEND ^H} {GOTO FW42}
  904. {:FW43} {SEND ^J^M^J} {GOTO FW41}
  905. {:FW44} {SEND ^J^M%an3%Moving message...}
  906.   {DECR msgno}
  907.   {EXEC-N COPY %msgsdir%A%a\%msgno.MSG %msgsdir%A%ch\%temp.MSG}
  908.   {EXEC-N DEL %msgsdir%A%a\%msgno.MSG}
  909.   {CALL renumber}
  910.   {SETV temp,%msgno} {SETV aa,%a} {SETV a,%ch}
  911.   {CALL read_baseinfo}
  912.   {INCR %himsgno}
  913.   {CALL update_baseinfo}
  914.   {CALL del_xs}
  915.   {SETV a,%aa} {SETV aa}
  916.   {CALL read_baseinfo}
  917.   {SETV msgno,%temp}
  918.   {INCR msgno}
  919.   {GOTO FW2}
  920.  
  921. {:renumber}
  922.   {COMP lomsgno,%himsgno} {IFCO ,FW34}
  923.   {SETV lomsgno,1} {SETV himsgno,0} {SETV msgno,0} {GOTO FW37}
  924. {:FW34} {COMP msgno,%himsgno} {IFCO ,FW35}
  925. {:FW36} {DECR himsgno} {DECR msgno}
  926.   {IFEX %msgsdir%A%a\%himsgno.MSG,FW37,FW36}
  927. {:FW35} {COMP msgno,%lomsgno} {IFCO ,FW38}
  928. {:FW39} {INCR lomsgno}
  929.   {IFEX %msgsdir%A%a\%lomsgno.MSG,,FW39}
  930. {:FW37} {CALL update_baseinfo}
  931. {:FW38} {RETURN}
  932.  
  933. {:FW45} {SEND dit^J^M}
  934.   {SETE time_out}
  935.   {POPS}
  936.   {DECR msgno}
  937.   COMP mspeed,LOCAL} {IFCO ,FW46}
  938.   {EDIT %msgsdir%A%a\%msgno.MSG}
  939.   {GOTO FW19}
  940. {:FW46}
  941.   {SETV em,1}
  942.   {SETV lineno,0}
  943.   {SETV dump_file,%msgsdir%A%a\%msgno.MSG}
  944.   {SEND %an0%Reading...}
  945.   {SETV lineno,0}
  946.   {ROPE %dump_file,FW53}
  947.   {READ to} {READ sender} {READ subj} {READ date}
  948.   {COMP fido,y} {IFCO ,FW51}
  949.   {READ tnod} {READ fnod}
  950. {:FW51} {READ trace} {COMP trace,} {IFCO FW52}
  951.   {READ dline}
  952. {:FW52}
  953.   {INCR lineno}
  954.   {COMP lineno,%max} {IFCO-G FW54}
  955.   {READ line%lineno} {GOTO FW52}
  956. {:FW53}
  957.   {DECR lineno}
  958.   {GOTO edit_system}
  959. {:FW54} {SEND ^J^M%an7%Message is too large to fit in allocated memory.}
  960.   {SEND ^J^M%an1%Aborting...} {SEND ^J^M}
  961.   {RCLO} {SETV ch,0}
  962. {:FW55} {INCR ch} {COMP ch,%max} {IFCO-G E11}
  963.   {SETV line%ch} {GOTO FW55}
  964.  
  965. {:editor}
  966.   {SETE time_out}
  967.   {CALL cd}
  968.   {CALL cls}
  969.   {INCR himsgno}
  970.   {SETV dump_file,%msgsdir%A%a\%himsgno.MSG} {SETV ch}
  971.  {COMP fido,y} {IFCO E104}
  972.   {SEND ^J^M%an4%Anonymous? %an0(y,%an7%N%an0) : }
  973. {:E102} {GETS-H ann,1,E103}
  974.   {COMP ann,n} {IFCO E103}
  975.   {COMP ann,y} {IFCO E103}
  976.   {SEND ^H} {GOTO E102}
  977. {:E103}
  978.   {CALL cls}
  979.   {COMP ann,y} {IFCO ,E105}
  980.   {SETV sender,[anonymous]} {GOTO E101}
  981. {:E104}
  982.  {SETV sender,%rname}
  983. {:E101}
  984.  {SEND ^J^M}
  985.  {SEND %an7%From: %an12                              ^M}
  986.  {SEND %an7%From: %an12%%sender}
  987.  {GOTO E106}
  988. {:E105}
  989.   {SEND ^J^M}
  990.   {SETV sender,%login_name}
  991.   {SEND %an7%From: %an12                              ^M}
  992.   {SEND %an7%From: %an12%%sender}
  993.   {GETS-A sender,30}
  994.   {COMP sender,} {IFCO E10}
  995. {:E106}
  996.   {COMP r,1} {IFCO E1}
  997.   {SETV trace,0}
  998.   {SETV to,Everyone}
  999. {:E1}
  1000.   {SEND ^J^M^J}
  1001.   {SEND %an7%To  : %an12                              ^M}
  1002.   {SEND %an7%To  : %an12%%to}
  1003.   {GETS-A to,30}
  1004.   {COMP to,} {IFCO E10}
  1005.   {COMP r,1} {IFCO ,E3}
  1006.   {SETV tnod,%fnod} {SETV fnod}
  1007. {:E3}
  1008.   {SEND ^J^M^J}
  1009.   {SEND %an7%Subj: %an13                              ^M}
  1010.   {SEND %an7%Subj: %an13%%subj}
  1011.   {GETS-A subj,30}
  1012.   {COMP subj,} {IFCO E10}
  1013.   {SEND %an0^J^M}
  1014. {COMP ul,1} {IFCO MUL1}
  1015.   {SETV lineno,0}
  1016.   {SEND ^J^M^J%an7%Maximum of %max lines.^J^M}
  1017.   {SEND %an1-------------%an0 /s - save %an1-------%an0 /e - editor %an1-------%an0 /abt - abort %an1--------------^J^M}
  1018.   {COMP r,1} {IFCO ,E4}
  1019.   {SEND %an1-------------------------------%an0 /q - quoter %an1-----------------------------------^J^M}
  1020. {:E4} {SETV dline}
  1021. {:E7} {SEND ^J^M%an3%%dline}
  1022.   {SETG 300,E10}
  1023.   {GETS-AH dline,78,E18}
  1024.   {COMP dline,/e} ..... {IFCO edit_system}
  1025.   {COMP dline,/q} ..... {IFCO quote}
  1026.   {COMP dline,/s} ..... {IFCO S0}
  1027.   {COMP dline,/abt} ... {IFCO E10}
  1028.   {LENG %dline} {COMP _len,78} {IFCO-L E18}
  1029.   {SETV ccount,79}
  1030. {:E15} {DECR ccount}
  1031.   {COMP ccount,60} {IFCO-LE E18}
  1032.   {SUBS ch,%ccount,1,%dline}
  1033.   {COMP ch, } {IFCO ,E15}
  1034.   {COMP ccount,78} {IFCO E18}
  1035.   {SETV ch,%ccount}
  1036. {:E16} {INCR ccount} {SEND ^H ^H}
  1037.   {COMP ccount,%_len} {IFCO ,E16}
  1038.   {SUBS cline,1,%ch,%dline}
  1039.   {INCR lineno} {SETV line%lineno,%cline}
  1040.   {SETV cline}
  1041.   {INCR ch}
  1042.   {SUBS dline,%ch,100,%dline}
  1043.   {COMP lineno,%max} {IFCO-L E7,E17}
  1044.  
  1045. {:E18} {INCR lineno} {SETV line%lineno,%dline}
  1046.   {COMP lineno,%max} {IFCO-L E4}
  1047. {:E17} {RCLO}
  1048.   {SEND ^J^M%an7%You have reached the line limit.^J^M}
  1049.   {GOTO edit_system}
  1050. {:E9}
  1051.   {COMP em,1} {IFCO E11}
  1052.   {SEND  #%himsgno...}
  1053.   {CALL read_data} {INCR pub} {SETV ftime,%_tim} {CALL write_data}
  1054.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Posted "%subj" on %bname%%an0} {WCLO}
  1055.   {CALL update_baseinfo}
  1056.   {CALL del_xs}
  1057.   {GOTO E11}
  1058. {:E10}
  1059.   {COMP em,1} {IFCO E7}
  1060.   {SEND ^J^M%an1%Message aborted.} {PAUS 1}
  1061.   {SEND ^J^M}
  1062.   {DECR himsgno}
  1063.  
  1064. {:E11} {SETV r} {SETV dline} {SETV open} {SETV subj} {SETV to}
  1065.   {SETV ann} {SETV tnod} {SETV qcount} {SETV sender} {SETV date}
  1066.   {SETV trace} {SETV lineno}
  1067.   {COMP em,1} {SETV em} {IFCO FW19}
  1068.   {RETURN}
  1069.  
  1070. {:del_xs}
  1071.   {COMP %maxmsg,0} {IFCO E21}
  1072.   {COMP himsgno,%maxmsg} {IFCO-LE E21}
  1073.   {SETV ch,%himsgno} {DECR ch,%maxmsg}
  1074. {:E19} {IFEX %msgsdir%A%a\%lomsgno.MSG,,E20}
  1075.   {EXEC-N DEL %msgsdir%A%a\%lomsgno.MSG}
  1076. {:E20} {INCR lomsgno}
  1077.   {COMP lomsgno,%ch} {IFCO-LE E19}
  1078.   {CALL update_baseinfo}
  1079. {:E21} {SEND %an0%Ok^J^M}
  1080.   {RETURN}
  1081.  
  1082. {:read_baseinfo}
  1083.   {SETV fido}
  1084.   {ROPE %msgsdir%A%a.BAS,RB1}
  1085.   {READ bname}
  1086.   {READ bal}
  1087.   {READ maxmsg}
  1088.   {READ lomsgno}
  1089.   {READ himsgno}
  1090.   {READ fido}
  1091.   {RCLO}
  1092. {:RB1}
  1093.   {SETV-S msgno,a%a}
  1094.   {COMP msgno,} {IFCO ,RB2}
  1095.   {SETV msgno,1}
  1096. {:RB2}
  1097.   {RETURN}
  1098.  
  1099. {:update_baseinfo}
  1100.   {WOPE %msgsdir%A%a.BAS}
  1101.   {WRIT %bname}
  1102.   {WRIT %bal}
  1103.   {WRIT %maxmsg}
  1104.   {WRIT %lomsgno}
  1105.   {WRIT %himsgno}
  1106.   {WRIT %fido}
  1107.   {WCLO}
  1108.   {RETURN}
  1109.  
  1110. {:edit_system}
  1111.   {SETE-P0 esc_menu}
  1112.   {SEND ^M          ^M}
  1113. {:ES0}
  1114.   {PUSH}
  1115.   {SEND ^J^M%an1%Editor: %an7%A%an0%bort,%an7%C%an0%ont,%an7%D%an0%elete,%an7%E%an0%dit,%an7%I%an0%nsert,%an7%L%an0%ist,%an7%R%an0%eplace,%an7%S%an0%ave: %an3}
  1116.   {SETG 300,time_out}
  1117. {:ES1} {GETS-H ch,1,ES1}
  1118.   {COMP ch,a} {IFCO abort}
  1119.   {COMP ch,c} {IFCO continue}
  1120.   {COMP ch,d} {IFCO delete}
  1121.   {COMP ch,e} {IFCO edit_line}
  1122.   {COMP ch,i} {IFCO insert}
  1123.   {COMP ch,l} {IFCO list}
  1124.   {COMP ch,r} {IFCO replace}
  1125.   {COMP ch,s} {IFCO save}
  1126. {:ES3} {SEND ^H} {GOTO ES1}
  1127.  
  1128. {:abort}
  1129.   {COMP em,1} {IFCO ES3}
  1130.   {SETE time_out}
  1131.   {POPS}
  1132.   {SEND bort^J^M}
  1133.   {SETV dline}
  1134.   {GOTO E10}
  1135.  
  1136. {:continue}
  1137.   {COMP lineno,%max} {IFCO ES3}
  1138.   {SETE time_out}
  1139.   {POPS}
  1140.   {SEND ontinue^J^M}
  1141.   {SEND ^M%an7%Ok.  Carry on...  :)%an3^J^M}
  1142.   {GOTO E4}
  1143.  
  1144. {:delete}
  1145.   {COMP lineno,0} {IFCO ES3}
  1146.   {SEND elete}
  1147.   {SEND ^J^M^J}
  1148. {:D5} {SEND ^M%an7%DELETE%an4  From Line #:%an0    ^H^H^H}
  1149.   {GETS ch1,3,R1}
  1150.   {COMP ch1,1} {IFCO-L D5}
  1151.   {COMP ch1,%lineno} {IFCO-G D5}
  1152.   {SEND ^J^M}
  1153. {:D6} {SEND ^M%an4          To Line #:%an0    ^H^H^H}
  1154.   {GETS ch2,3,R1}
  1155.   {COMP ch2,%ch1} {IFCO-L D6}
  1156.   {COMP ch2,%lineno} {IFCO-G D6}
  1157.   {CALL range_dsp}
  1158.   {SEND ^J^M^J%an7%Are you sure? %an0(%an7%Y%an0,n) :%an7 }
  1159. {:D3} {GETS-H ch,1,D4}
  1160.   {COMP ch,y} {IFCO D4}
  1161.   {COMP ch,n} {IFCO R1}
  1162.   {SEND ^H} {GOTO D3}
  1163. {:D4} {COMP ch2,%lineno} {IFCO D2}
  1164. {:D7} {INCR ch2} {SETV-S line%ch1,line%ch2} {INCR ch1}
  1165.   {COMP ch2,%lineno} {IFCO ,D7}
  1166. {:D2} {DECR ch1} {SETV lineno,%ch1}
  1167. {:D8} {SEND ^J^M%an0%Line(s) deleted.^J^M}
  1168. {:D1} {RETURN}
  1169.  
  1170. {:edit_line}
  1171.   {COMP lineno,0} {IFCO ES3}
  1172.   {SEND dit^J^M^J}
  1173. {:EL5} {SEND ^M%an4%Line # to EDIT:%an0    ^H^H^H}
  1174.   {GETS no,3,R1}
  1175.   {COMP no,1} {IFCO-L EL5}
  1176.   {COMP no,%lineno} {IFCO-G EL5}
  1177.   {SEND ^J^M}
  1178.   {SETV-S dline,line%no}
  1179. {:EL0}
  1180.   {SEND ^J^M%an5%Line %no reads:^J^M}
  1181.   {SEND %an7%%dline^J^M}
  1182.   {SEND ^J^M%an0%Type the string to replace, or press ENTER to abort.^J^M%an3}
  1183.   {GETS oldstr,60,EL1}
  1184.   {INST dline,%oldstr}
  1185.   {COMP %_pos,0} {IFCO-G EL2}
  1186.   {SEND ^J^M^J%an1%String not found.^J^M}
  1187.   {GOTO EL0}
  1188. {:EL2} {SETV spos,%_pos}
  1189.   {LENG %oldstr} {SETV olen,%_len}
  1190.   {SETV mx,0}
  1191.   {SETV ch,79} {LENG %dline} {DECR ch,%_len}
  1192.   {INCR mx,%ch} {INCR mx,%olen}
  1193.   {SEND ^J^M^J%an0%Type the replacement string, or press ENTER to cut.^J^M%an3}
  1194.   {GETS newstr,%mx,EL3}
  1195. {:EL3} {SEND ^J^M}
  1196.   {DECR spos}
  1197.   {SUBS lstr,1,%spos,%dline}
  1198.   {INCR spos,%olen} {INCR spos}
  1199.   {SUBS rstr,%spos,100,%dline}
  1200.   {SETV dline,%lstr%%newstr%%rstr%}
  1201.   {SETV line%no,%dline}
  1202.   {GOTO EL0}
  1203. {:EL1} {SETV olen} {SETV spos} {SETV lstr} {SETV rstr} {SETV newstr} {SETV mx}
  1204.   {RETURN}
  1205.  
  1206. {:insert}
  1207.   {COMP lineno,0} {IFCO ES3}
  1208.   {COMP lineno,%max} {IFCO ES3}
  1209.   {SEND nsert^J^M^J}
  1210. {:I4} {SEND ^M%an4%Line # to insert BEFORE:%an0    ^H^H^H}
  1211.   {GETS no,3,R1}
  1212.   {COMP no,1} {IFCO-L I4}
  1213.   {COMP no,%lineno} {IFCO-G I4}
  1214.   {SEND ^J^M^J%an5%INSERTING between these lines:}
  1215.   {COMP no,1} {IFCO ,I2}
  1216.   {SETV dline,*** BEGINNING OF MESSAGE ***}
  1217.   {GOTO I3}
  1218. {:I2} {DECR no} {SETV-S dline,line%no} {INCR no}
  1219. {:I3} {SEND ^J^M^J%an7%%dline^J^M}
  1220.   {SETV-S dline,line%no}
  1221.   {SEND ^J^M%an7%%dline^J^M}
  1222.   {SEND ^J^M%an0%Type the text for Line %no, or press ENTER to abort.^J^M%an3}
  1223.   {GETS dline,79,I1} {SEND ^J^M}
  1224.   {SETV ch1,%lineno} {INCR lineno} {SETV ch2,%lineno}
  1225. {:I5} {SETV-S line%ch2,line%ch1}
  1226.   {DECR ch2} {DECR ch1}
  1227.   {COMP ch2,%no} {IFCO ,I5}
  1228.   {SETV line%ch2,%dline}
  1229.   {SEND %an0%Line inserted.^J^M}
  1230. {:I1} {RETURN}
  1231.  
  1232. {:list}
  1233.   {COMP lineno,0} {IFCO ES3}
  1234.   {SEND ist^J^M}
  1235.   {SETV no,0} {SETV count,1}
  1236.   {SEND ^J^M}
  1237. {:L0} {SEND ^M%an7%Start listing at which line #?%an0 [1-%lineno, ENTER=1] :%an7    ^H^H^H}
  1238.   {GETS-H ch,3,L2}
  1239.   {COMP ch,1} {IFCO-L L0}
  1240.   {COMP ch,%lineno} {IFCO-G L0}
  1241.   {SETV count,%ch}
  1242. {:L2} {SEND ^J^M%an7%Include line numbers? %an0(y,%an7%N%an0) :%an7 }
  1243. {:L1} {GETS-H temp,1,L4}
  1244.   {COMP temp,y} {IFCO L4}
  1245.   {COMP temp,n} {IFCO L4}
  1246.   {SEND ^H} {GOTO L1}
  1247. {:L4}
  1248.   {SEND ^J^M^J%an3%Your message reads:^J^M^J%an0}
  1249. {:L6} {INCR no}
  1250.   {SETV-S dline,line%count}
  1251.   {COMP dline,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀} {IFCO ,L11}
  1252.   {SETV dline,%an4▀▀▀▀▀▀ %an7%Quote %an4▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀%an7}
  1253.   {GOTO L12}
  1254. {:L11} {COMP dline,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄} {IFCO ,L12}
  1255.   {SETV dline,%an4▄▄▄▄▄▄ %an7%UnQuote %an4▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄%an0}
  1256. {:L12} {SEND %dline%%an0}
  1257.   {COMP temp,y} {IFCO ,L7}
  1258.   {SEND ^M%an7%%count:%an0}
  1259. {:L7} {SEND ^J^M}
  1260.   {COMP count,%lineno} {IFCO L10}
  1261.   {INCR count}
  1262.   {COMP no,21} {IFCO ,L6}
  1263.   {CALL screen_full}
  1264.   {COMP ch,y} {SETV no,0} {IFCO L6}
  1265. {:L10} {SETV dline} {SETV count} {SETV no}
  1266.   {RETURN}
  1267.  
  1268. {:replace}
  1269.   {COMP lineno,0} {IFCO ES3}
  1270.   {SEND eplace^J^M^J}
  1271. {:R2} {SEND ^M%an4%Line # to REPLACE:%an0    ^H^H^H}
  1272.   {GETS no,3,R1}
  1273.   {COMP no,1} {IFCO-L R2}
  1274.   {COMP no,%lineno} {IFCO-G R2}
  1275.   {SETV-S dline,line%no)
  1276.   {SEND ^J^M^J%an5%Line %no reads:^J^M}
  1277.   {SEND %an7%%dline^J^M}
  1278.   {SEND ^J^M%an0%Type the new line, or press ENTER to abort.^J^M%an3}
  1279.   {GETS dline,79,I1}
  1280.   {SETV line%no,%dline}
  1281.   {SEND ^J^M%an0%Line replaced.}
  1282. {:R1} {SEND ^J^M}
  1283.   {RETURN}
  1284.  
  1285. {:save}
  1286.   {SETE time_out}
  1287.   {POPS}
  1288.   {SEND ave}
  1289. {:S0}
  1290.   {SEND ^J^M^J%an1%Saving}
  1291.   {COMP em,1} {IFCO S3}
  1292. {:S6}
  1293.   {COMP ann,y} {IFCO ,S10}
  1294.   {SETV date,[unknown]} {GOTO S3}
  1295. {:S10}
  1296.   {SETV date,%_dat %_tim}
  1297. {:S3}
  1298.   {WOPE %dump_file}
  1299.   {WRIT %to}
  1300.   {WRIT %sender}
  1301.   {WRIT %subj}
  1302.   {WRIT %date}
  1303.   {COMP fido,y} {IFCO ,S7}
  1304.   {WRIT %tnod}
  1305.   {WRIT %myno}
  1306.  {:S7} {WRIT %trace}
  1307.   {WRIT }
  1308.   {COMP ul,1} {IFCO ,S9}
  1309.     {WCLO}
  1310.     {EXEC TYPE %filepath >> %dump_file}
  1311.     {WOPE-A %dump_file}
  1312.     {GOTO S2}
  1313. {:S9}
  1314.   {SETV ch,0}
  1315. {:S1} {INCR ch}
  1316.   {COMP ch,%lineno} {IFCO-G S2}
  1317.   {SETV-S dline,line%ch} {SETV line%ch}
  1318.   {WRIT %dline}
  1319.   {GOTO S1}
  1320. {:S2}
  1321.   {COMP fido,y} {IFCO ,S8}
  1322.   {WRIT }
  1323.   {WRIT --- MacroBBS 2.0}
  1324.   {WRIT  * Origin: %bbs %tagline (%myno)}
  1325. {:S8} {WCLO}
  1326.   {SETV ann} {SETV tnod} {SETV qcount} {SETV sender} {SETV date}
  1327.   {GOTO E9}
  1328.  
  1329. {:range_dsp}
  1330.   {SETV ch,%ch1}
  1331.   {SEND ^J^M}
  1332. {:RDS}
  1333.   {SETV-S dline,line%ch}
  1334.   {SEND ^J^M%an7%%dline}
  1335.   {COMP ch,%ch2} {IFCO-GE RDS1}
  1336.   {INCR ch} {GOTO RDS}
  1337. {:RDS1} {RETURN}
  1338.  
  1339. {:quote}
  1340.   {COMP r,1} {IFCO ,E4}
  1341.  {:Q1}
  1342.   {SETV count,0}
  1343.   {ROPE %quotemsg,Q7}
  1344.   {READ dline} {READ dline} {READ dline} {READ dline}
  1345.   {COMP fido,y} {IFCO ,Q11}
  1346.   {READ dline} {READ dline}
  1347. {:Q11} {READ dline}
  1348.   {COMP dline,} {IFCO Q4}
  1349.   {READ dline}
  1350. {:Q4} {SEND ^M    ^M%an7%%an12                                                                              ^M}
  1351.   {SEND                              Quoting %to ...^J^M}
  1352.   {SEND %an7%%an12           SPACEBAR = Quote Line            N = Skip Line     Q = Quit        ^J^M}
  1353. {:Q2} {SEND ^M%an0%%an13                                                                               ^M}
  1354.   {READ dline}
  1355.   {COMP dline,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀} {IFCO ,Q10}
  1356.   {SETV dline,▀▀▀▀▀▀ Quote ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀}
  1357.   {GOTO Q5}
  1358. {:Q10} {COMP dline,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄} {IFCO ,Q5}
  1359.   {SETV dline,▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄}
  1360. {:Q5} {SEND %an0%%dline}
  1361.   {SETG ,.n}
  1362. {:Q6} {GETS-H ch,1,Q6}
  1363.   {COMP ch, } {IFCO Q3}
  1364.   {COMP ch,n} {IFCO Q2}
  1365.   {COMP ch,q} {IFCO ,Q6}
  1366.   {RCLO}
  1367. {:Q7}
  1368.   {SETG 300,time_out}
  1369.   {COMP count,0} {IFCO Q9}
  1370.   {INCR count} {INCR lineno}
  1371.   {SETV line%lineno,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄}
  1372.   {COMP lineno,%max} {IFCO E17}
  1373.   {INCR count} {INCR lineno}
  1374.   {SETV line%lineno,}
  1375.   {COMP lineno,%max} {IFCO E17}
  1376.   {SEND ^J^M%an7%Finished quoting.  Please continue your message ...^J^M}
  1377.   {GOTO E4}
  1378. {:Q3} {COMP count,0} {IFCO ,Q8}
  1379.   {INCR count} {INCR lineno}
  1380.   {SETV line%lineno,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀}
  1381.   {COMP lineno,%max} {IFCO E17}
  1382. {:Q8}
  1383.   {INCR count} {INCR lineno}
  1384.   {SETV line%lineno,%dline}
  1385.  {COMP lineno,%max} {IFCO E17}
  1386.   {GOTO Q2}
  1387. {:Q9} {SEND ^J^M%an7%No lines quoted.  Please continue your message ...^J^M}
  1388.   {GOTO E4}
  1389.  
  1390.