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

  1.  
  2.                              MACROFIL.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.   {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. {:time_out}
  162.   {MACL MACROBBS.MAC,time_out}
  163.  
  164. {:cls}
  165.   {CLEA}
  166.   {COMP on,} {IFCO CLS3}
  167.   {COMP mnu,A} {IFCO CLS1}
  168.   {SEND ^[[2J}
  169.   {GOTO CLS2}
  170. {:CLS1} {SEND ^L}
  171. {:CLS2} {DISP 1,1,4F,│                                                                              }
  172.   {DISP 1,3,4E,%login_name #%userno}
  173.   {DISP 1,40,47,AL=%al}
  174.   {DISP 1,49,47,%mspeed}
  175.   {DISP 1,57,47,%_ela mins}
  176.   {DISP 1,70,4F,%an9%%chat}
  177.   {DISP 2,1,4F,│                                                                              }
  178.   {DISP 2,3,47,%rname  -  %from}
  179.   {DISP 3,1,4F,└──────────────────────────────────────────────────────────────────────────────}
  180.   {DISP 4,1,07,}
  181. {:CLS3} {RETURN}
  182.  
  183. {:press_any_key}
  184.   {COMP mnu,a} {IFCO PAK1}
  185.   {SEND %an3%%an9^[[24;1h^[[24;1f[Press Any Key]%an0}
  186.   {GOTO PAK2}
  187. {:PAK1} {SEND ^J^M^J[Press Any Key]}
  188. {:PAK2} {SETG 300,time_out}
  189.   {GETS-H temp,1,PAK}
  190. {:PAK} {SEND ^M               ^M}
  191.   {SETV temp}
  192.   {RETURN}
  193.  
  194. {:dsp_file}
  195.   {IFEX %dump_file,,DF5}
  196.   {SETV count,0}
  197.   {ROPE %dump_file,DF3}
  198.   {PUSH}
  199. {:DF1} {READ dline} {SEND ^M%dline^J^M}
  200.   {INCR count} {COMP count,22} {IFCO DF4,DF1}
  201. {:DF3} {SETV dline} {SETV ch} {SETV count}
  202.   {POPS}
  203.   {SETG 300,time_out}
  204.   {RETURN}
  205.  
  206. {:DF4} {SETV count,0}
  207.   {SEND More? (Y,n) : }
  208.   {SETG 300,DF1}
  209. {:DF6} {GETS-H ch,1,DF7}
  210.   {COMP ch,y} {IFCO DF7}
  211.   {COMP ch,n} {IFCO DF7}
  212.   {SEND ^H} {GOTO DF6}
  213. {:DF7} {SEND ^M                  ^M}
  214.   {COMP ch,n} {IFCO DF2,DF1}
  215. {:DF5} {SEND ^J^M^G%an1%Error: %an7%File not found: %dump_file}
  216.   {COMP expert,ON} {IFCO DF9}
  217.   {CALL press_any_key}
  218. {:DF9} {RETURN}
  219.  
  220. {:ascii_ul}
  221.   {COMP mnu,A} {IFCO AU1}
  222.   {SEND ^[[2J} {GOTO AU2}
  223. {:AU1} {SEND ^L}
  224. {:AU2}
  225.   {IFEX %dump_file,,AU3}
  226.   {PARM ,,,,%uicd}
  227.   {ASCI-S0 %dump_file,}
  228.   {PARM ,,,,%nicd}
  229. {:AU3} {RETURN}
  230.  
  231. {:expert_tog}
  232.   {COMP expert,ON}
  233.   {IFCO ET1}
  234.   {SETV expert,ON}
  235.   {GOTO ET2}
  236. {:ET1} {SETV expert,OFF}
  237. {:ET2} {RETURN}
  238.  
  239. {:cd}
  240.   {IFCA cd1}
  241.   {COMP on,1} {IFCO time_out}
  242. {:cd1} {COMP on,1} {IFCO ,cd2}
  243.   {COMP _ela,%tlc} {IFCO-GE time_out}
  244. {:cd2} {RETURN}
  245.  
  246. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  247. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  248. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  249. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  250. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  251.  
  252. {:start}
  253.   {PUSH}
  254. {:FX1}
  255.   {SETE time_out}
  256.   {CALL cd}
  257.   {SETV mac,FIL}
  258.   {ROPE %filedir%F%fa.BAS} {READ bname} {READ bal} {RCLO}
  259.   {SETE-P0 esc_menu}
  260.   {COMP expert,ON} {IFCO FX3}
  261. {:FX10} {CALL cls}
  262.   {SEND ^J^M^J^J%an2}
  263.   {SEND ^J^M             ┌───────────────────────────────────────────────────┐}
  264.   {SEND ^J^M             │ %an0▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ %an7%File Base %an0▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ %an2│}
  265.   {SEND ^J^M             └───────────────────────────────────────────────────┘}
  266.   {SEND ^J^M               [%an0%<%an2] Reverse       [%an0%A%an2] Area List       [%an0%>%an2] Forward^J^M}
  267.  
  268.   {SEND ^J^M        %an2[%an0%L%an2] List this area's files   [%an0%P%an2] Protocol Menu    %an4[%an0%M%an4] Message Base}
  269.   {SEND ^J^M        %an2[%an0%U%an2] UPLOAD (give) a file     [%an0%C%an2] Chat             %an1[%an0%H%an1] Hall of Fame}
  270.   {SEND ^J^M        %an2[%an0%D%an2] DOWNLOAD (take) a file   [%an0%X%an2] Xpert Toggle     %an0[%an0%Q%an0] MAIN MENU^J^M}
  271.  
  272. {:FX3}
  273.   {SEND ^J^M^J%an2%File Base}
  274.   {SEND ^J^M%an2[%an0%%bname%%an2]  %an0%%_tim^J^M}
  275.   {SETV ch,%tlc} {DECR ch,%_ela}
  276.   {SEND %an0%Mins Left: %an0%%ch %an2 Proto: %an0%%protocol^J^M}
  277. {:FX2} {SEND ^M} {COMP expert,ON} {IFCO ,FX11}
  278.   {SEND %an2(%an0?%an2=menu) }
  279. {:FX11} {SEND %an7%FB Command:  ^H}
  280.   {SETG 300,time_out}
  281. {:FX5} {IFCA FX9}
  282.   {COMP mspeed,local} {IFCO ,time_out}
  283. {:FX9} {CALL cd}
  284.   {GETS-H ch,1,FX9}
  285. {:FX6}
  286.   {COMP ch,*} {IFCO time_out}
  287.   {COMP ch,?} {IFCO FX10}
  288.   {COMP ch,q} {IFCO main}
  289.   {COMP ch,m} {IFCO msg_base}
  290.   {COMP ch,h} {IFCO hall}
  291.   {COMP ch,<} {IFCO fast_bak}
  292.   {COMP ch,>} {IFCO fast_for}
  293.   {COMP ch,a} {IFCO area_chg}
  294.   {COMP ch,c} {IFCO chat}
  295.   {COMP ch,x} {IFCO expert_tog}
  296.   {COMP ch,l} {IFCO list_files}
  297.   {COMP ch,p} {IFCO get_protocol}
  298.   {SETV dline,ud} {INST dline,%ch} {IFCO ,FX2} {COMP al,0} {IFCO FX7}
  299.   {COMP ch,u} {IFCO ufiles}
  300.   {COMP ch,d} {IFCO dfiles}
  301. {:FX7} {SEND ^J^M%an1%Sorry, your access level does not allow.^J^M} {GOTO FX2}
  302.  
  303. {:main}
  304.   {SETV files} {SETV dfiles} {SETV desc}
  305.   {MACL MACROBBS.MAC,main_menu}
  306.  
  307. {:msg_base}
  308.   {IFEX MACROMSG.MAC,,FX2}
  309.   {IFEX %msgsdir%A%a.BAS,MB2}
  310.   {IFEX %msgsdir%A*.BAS,,FX2}
  311.   {SETV a,0}
  312. {:MB1} {INCR a}
  313.   {COMP a,%mhigh} {IFCO-G FX2}
  314.   {IFEX %msgsdir%A%a.BAS,,MB1}
  315. {:MB2}
  316.   {ROPE %msgsdir%A%a.BAS,MB1} {READ ch} {READ ch} {RCLO}
  317.   {COMP ch,%al} {IFCO-G MB1}
  318.   {SETV files} {SETV dfiles} {SETV desc}
  319.   {MACL MACROMSG.MAC,start}
  320.  
  321. {:hall}
  322.   {IFEX MACROREG.MAC,,FX2}
  323.   {SETV files} {SETV dfiles} {SETV desc}
  324.   {MACL MACROREG.MAC,start}
  325.  
  326. {:fast_for}
  327.   {COMP fa,%fhigh} {IFCO ,FF0}
  328.   {SETV ch,0} {GOTO FF1}
  329. {:FF0}
  330.   {SETV ch,%fa}
  331. {:FF1}
  332.   {INCR ch}
  333.   {COMP ch,%fhigh} {IFCO-G FX2}
  334.   {IFEX %filedir%F%ch.BAS,,FF1}
  335.   {ROPE %filedir%F%ch.BAS,FF1} {READ dline} {READ temp} {RCLO}
  336.   {COMP al,%temp} {IFCO-L FF1}
  337.   {SETV fa,%ch}
  338.   {ROPE %filedir%F%fa.BAS} {READ bname} {READ bal} {RCLO}
  339. {:FF2} {GOTO FX3}
  340.  
  341. {:fast_bak}
  342.   {COMP fa,1} {IFCO ,FB0}
  343.   {SETV ch,%fhigh} {INCR ch} {GOTO FB1}
  344. {:FB0}
  345.   {SETV ch,%fa}
  346. {:FB1}
  347.   {DECR ch}
  348.   {COMP ch,1} {IFCO-L FX2}
  349.   {IFEX %filedir%F%ch.BAS,,FB1}
  350.   {ROPE %filedir%F%ch.BAS,FB1} {READ dline} {READ temp} {RCLO}
  351.   {COMP al,%temp} {IFCO-L FB1}
  352.   {SETV fa,%ch}
  353.   {ROPE %filedir%F%fa.BAS} {READ bname} {READ bal} {RCLO}
  354. {:FB2} {GOTO FX3}
  355.  
  356. {:area_chg}
  357.   {IFEX %datadir%FAREAS%mnu.MNU,,AC11}
  358.   {SETV dump_file,%datadir%FAREAS%mnu.MNU}
  359.   {CALL ascii_ul}
  360.   {GOTO AC6}
  361. {:AC11}
  362.  {CALL cls}
  363.   {SETV df} {SETV count,0} {SETV mcount,0}
  364.   {SEND ^J^M%an7%File Area(s):^J^M^J}
  365. {:AC1}
  366.   {INCR count}
  367.   {COMP count,%fhigh} {IFCO-G AC2}
  368.   {IFEX %filedir%F%count.BAS,,AC1}
  369.   {ROPE %filedir%F%count.BAS,AC1} {READ bname} {READ bal} {RCLO}
  370.   {COMP al,%bal} {IFCO-L AC1}
  371.   {COMP df,2} {IFCO AC5}
  372.   {SETV ch,35} {LENG %bname} {DECR ch,%_len} {SUBS dline,1,%ch,                                   }
  373.   {SEND %an7%%count> %an2%%bname%%dline}
  374.   {SETV df,2}
  375.   {GOTO AC1}
  376. {:AC5}
  377.   {SEND %an7%%count> %an2%%bname^J^M}
  378.   {SETV df,1}
  379.   {INCR mcount}
  380.   {COMP mcount,20} {IFCO ,AC1}
  381.   {CALL screen_full}
  382.   {COMP ch,y} {IFCO AC1,AC3}
  383. {:AC2} {COMP df,2} {IFCO AC6}
  384.   {SEND ^J^M} {GOTO AC3}
  385. {:AC6} {SEND ^J^M^J}
  386. {:AC3} {SEND ^M%an7%Which will it be?%an0   ^H^H}
  387.   {SETG 120,time_out}
  388.   {GETS ch,2,AC4}
  389.   {COMP ch,1} {IFCO-L AC3}
  390.   {COMP ch,%fhigh} {IFCO-G AC3}
  391.   {IFEX %filedir%F%ch.BAS,,AC3}
  392.   {ROPE %filedir%F%ch.BAS,AC3} {READ bname} {READ bal} {RCLO}
  393.   {COMP al,%bal} {IFCO-L AC3}
  394.   {SETV fa,%ch}
  395. {:AC4} {RETURN}
  396.  
  397. {:dfiles}
  398.   {CALL cls}
  399.   {SEND ^J^M%an2%Enter the name of the file you wish to download.  (ENTER=abort)^J^M}
  400. {:DX4} {SEND %an7%Filename:%an0 }
  401.   {GETS files,12,DX1}
  402.   {SETV transdir,%filedir%F%fa}
  403.   {SETV filepath,%transdir\%files}
  404.   {IFEX %filepath,,DX3}
  405.   {COMP protocol,} {IFCO ,DX0}
  406.   {CALL get_protocol}
  407. {:DX0} {SETV tran,S}
  408.   {SETV proto,S%protocol}
  409.   {CALL transfer}
  410. {:DX10}
  411.   {COMP %_err,0} {IFCO DX2}
  412.   {WOPE-A %datadir%LOG-1.LOG} {WRIT ▒░▒░▒  ERRONEOUS DOWNLOAD at %_tim of %filepath  ▒░▒░▒} {WCLO}
  413.   {SEND ^J^M%an1%Erroneous download.^J^M}
  414.   {COMP expert,ON} {IFCO DX1}
  415.   {CALL press_any_key}
  416. {:DX1}
  417.   {SETV files} {SETV filepath} {SETV tran} {SETV transdir} {SETV proto}
  418.   {POPS-C}
  419.   {GOTO start}
  420. {:DX2} {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : successful download of %filepath} {WCLO}
  421.   {SEND ^J^M%an7%Successful download.^J^M}
  422.   {GOTO DX1}
  423. {:DX3} {SEND ^J^M%an1%Invalid filename.  Please try again.^J^M}
  424.   {GOTO DX4}
  425. {:DX10} {COMP expert,ON} {IFCO DX1}
  426.   {CALL press_any_key}
  427.   {GOTO DX1}
  428.  
  429. {:ufiles}
  430.   {CALL cls}
  431. {COMP mspeed,local} {IFCO UF15}
  432.   {SEND ^J^M^J%an7%Upload a file to %an3%%bname%%an7?  %an0(y,%an7%N%an0) : }
  433. {:UF9} {GETS-H ch,1,UF1}
  434.   {COMP ch,n} {IFCO UF1}
  435.   {COMP ch,y} {IFCO UF15}
  436.   {SEND ^H} {GOTO UF9}
  437. {:UF15}
  438.   {SEND ^J^M^J%an4%Enter the name of the file you wish to upload.  (ENTER=abort)^J^M}
  439. {:UF8} {SEND %an7%Filename:%an0 }
  440. {COMP mspeed,local} {IFCO UF16}
  441.   {GETS files,12,UF1}
  442.   {INST files,*} {IFCO UF7}
  443.   {INST files,?} {IFCO UF7}
  444.   {INST files,,} {IFCO UF7}
  445.   {GOTO UF17}
  446. {:UF16} {GETS files,12,UF1}
  447. {:UF17}
  448.   {SETV transdir,%filedir%F%fa}
  449.   {SETV filepath,%transdir\%files}
  450. {COMP mspeed,local} {IFCO ,UF5}
  451.   {IFEX %filepath,,UF7}
  452.   {SEND ^J^M}
  453.   {EXEC-N MBBSDIR %filepath}
  454.   {ROPE TEMP.000,UF14}
  455.   {WOPE-A %transdir.LST}
  456. {:UF10} {READ dline}
  457.   {COMP %dline,} {IFCO UF10}
  458.   {SUBS ch,1,1,%dline} {COMP ch, } {IFCO UF10} {COMP ch,.} {IFCO UF10}
  459.   {INST %dline,<DIR>} {IFCO UF10}
  460.   {SUBS dline,1,23,%dline}
  461.   {SEND ^J^M%an3%%dline  }
  462.   {SEND %an1%Upload this file?  %an0(Yes,%an7%N%an0%o,Quit) : }
  463. {:UF11} {GETS-H ch,1,UF10}
  464.   {COMP ch,n} {IFCO UF10}
  465.   {COMP ch,q} {IFCO UF13}
  466.   {COMP ch,y} {IFCO UF12}
  467.   {SEND ^H} {GOTO UF11}
  468. {:UF12} {SEND ^J^M%an7%File description:%an0 }
  469.   {GETS desc,53,UF10}
  470.   {WRIT   %dline %desc}
  471.   {GOTO UF10}
  472. {:UF13} {RCLO}
  473. {:UF14} {WCLO}
  474.   {EXEC-N DEL TEMP.000}
  475.   {GOTO UF1}
  476. {:UF5}
  477.   {IFEX %filepath,UF4}
  478.   {COMP protocol,} {IFCO ,UF0}
  479.   {CALL get_protocol}
  480. {:UF0} {SETV tran,R}
  481.   {SETV proto,R%protocol}
  482.   {SETV tl,%tlc}
  483.   {CALL transfer}
  484. {:UF18}
  485.   {SETV ch,%_ela} {DECR ch,%tl} {INCR tlc,%ch} {SETV tl}
  486.   {COMP %_err,0} {IFCO ,UF3}
  487.   {WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : successful upload of %filepath} {WCLO}
  488. {:UF6} {EXEC-N MBBSDIR %filepath}
  489.   {ROPE TEMP.000,UF14}
  490. {:UF20} {READ dline}
  491.   {COMP %dline,} {IFCO UF20}
  492.   {SUBS ch,1,1,%dline} {COMP ch, } {IFCO UF20} {COMP ch,.} {IFCO UF20}
  493.   {INST %dline,<DIR>} {IFCO UF20}
  494.   {RCLO}
  495.   {SUBS dline,1,23,%dline}
  496.   {SEND ^J^M%an7%File description:%an0 }
  497. {:UF2} {GETS desc,53,UF2}
  498.   {WOPE-A %transdir.LST} {WRIT - %dline %desc} {WCLO}
  499. {:UF1} {SETV files} {SETV desc} {SETV filepath}
  500.   {SETV tran} {SETV transdir} {SETV proto} {SETV tl}
  501.   {POPS-C}
  502.   {GOTO start}
  503. {:UF3} {WOPE-A %datadir%LOG-1.LOG} {WRIT ▒░▒░▒  ERRONEOUS UPLOAD at %_tim of %filepath  ▒░▒░▒} {WCLO}
  504.   {EXEC-N DEL TEMP.000}
  505.   {GOTO UF1}
  506. {:UF4} {SEND ^J^M%an1%File already exists.^J^M} {GOTO UF8}
  507. {:UF7} {SEND ^J^M%an1%Invalid filename.  Please try again.^J^M} {GOTO UF8}
  508.  
  509. 0{:list_files}
  510.   {CALL cls}
  511.   {SETV dump_file,%filedir%F%fa.LST}
  512.   {CALL dsp_file}
  513.   {COMP expert,ON} {IFCO LF}
  514.   {CALL Press_Any_Key}
  515. {:LF} {RETURN}
  516.  
  517. {:get_protocol}
  518.   {PUSH}
  519.   {SEND ^J^M}
  520. {:GP2} {COMP expert,ON} {IFCO GP4}
  521. {:GP5} {CALL CLS}
  522.   {SEND ^J^M%an1}
  523.   {SEND ^J^M             ┌───────────────────────────────────────────────────┐}
  524.   {SEND ^J^M             │ %an0▒▒▒▒▒▒▒▒▒▒▒▒ %an7%File Transfer Protocols %an0▒▒▒▒▒▒▒▒▒▒▒▒ %an1│}
  525.   {SEND ^J^M             └───────────────────────────────────────────────────┘^J^M}
  526.   {IFEX MBBSPROT.LST,,GP7}
  527.   {ROPE MBBSPROT.LST,GP7}
  528. {:GP8} {READ ch} {LENG %ch} {COMP _len,1} {IFCO ,GP8}
  529.   {IFEX MBXPRO-%ch.MAC,,GP8}
  530.   {READ dline}
  531.   {SEND ^J^M                            %an1[%an0%%ch%%an1] %dline}
  532.   {GOTO GP8}
  533. {:GP7}
  534.   {SEND ^J^M                            %an1[%an0%G%an1] Ymodem-G}
  535.   {SEND ^J^M                            %an1[%an0%Y%an1] Ymodem}
  536.   {SEND ^J^M                            %an1[%an0%K%an1] Xmodem-1k}
  537.   {SEND ^J^M                            %an1[%an0%X%an1] Xmodem-CRC^J^M}
  538. {:GP4} {SEND ^J^M}
  539. {:GP1} {SEND ^M%an1%Protocol:%an0  ^H}
  540.   {SETG 300,time_out}
  541. {:GP3} {GETS-H ch,1,GP3}
  542.   {COMP ch,*} {IFCO time_out}
  543.   {COMP ch,?} {IFCO GP1}
  544.   {COMP ch,,} {IFCO GP1}
  545.   {IFEX MBXPRO-%ch.MAC,GP6}
  546.   {SETV dline,xkyg} {INST dline,%ch} {IFCO ,GP1}
  547. {:GP6}
  548.   {SETV protocol,%ch}
  549.   {POPS}
  550.   {RETURN}
  551.  
  552. {:transfer}
  553.   {IFEX MBXPRO-%protocol.MAC,,TF1}
  554.   {ROPE MBXPRO-%protocol.MAC,TF1}
  555.   {READ dline} {READ pname} {READ path} {RCLO}
  556.   {IFEX %path,,TF0}
  557.   {MACL MBXPRO-%protocol.MAC,start}
  558. {:pdoor}
  559.   {COMP tran,s} {IFCO DX10,UF18}
  560.  
  561. {:TF0}
  562.   {SEND ^J^M%an1"%path" not found.}
  563. {:TF1}
  564.   {COMP proto,sy} {IFCO s_y}
  565.   {COMP proto,sg} {IFCO s_y}
  566.   {COMP proto,sk} {IFCO s_x}
  567.   {COMP proto,sx} {IFCO s_x}
  568.  
  569.   {COMP proto,ry} {IFCO r_y}
  570.   {COMP proto,rg} {IFCO r_yg}
  571.   {COMP proto,rk} {IFCO r_x}
  572.   {COMP proto,rx} {IFCO r_x}
  573.  
  574.   {SEND ^J^M^J%an1%Invalid protocol.^J^M}
  575.   {COMP expert,ON} {IFCO DL1}
  576.   {CALL press_any_key}
  577. {:DL1} {SETV proto}
  578.   {POPS}
  579.   {RETURN}
  580.  
  581. {:s_y}
  582.   {SEND ^J^MStart your YMODEM download now.}
  583.   {SYMO-K %filepath}
  584. {:RPM}
  585.   {COMP %_err,0}
  586.   {RETURN}
  587.  
  588. {:s_x}
  589.   {SEND ^J^MStart your XMODEM-CRC  download now.}
  590.   {SXMO-K %filepath}
  591.   {GOTO RPM}
  592.  
  593.  
  594. {:r_y}
  595.   {SEND ^J^MStart your YMODEM upload now.}
  596.   {RYMO %filepath}
  597.   {GOTO RPM}
  598.  
  599. {:r_yg}
  600.   {SEND ^J^MStart your YMODEM-G upload now.}
  601.   {RYMO-G %filepath}
  602.   {GOTO RPM}
  603.  
  604. {:r_x}
  605.   {SEND ^J^MStart your XMODEM-CRC upload now.}
  606.   {RXMO %filepath}
  607.   {GOTO RPM}
  608.  
  609.