home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1993 #2
/
Image.iso
/
comm
/
mbbs25a4.zip
/
MACROMSG.MAC
< prev
next >
Wrap
Text File
|
1993-05-30
|
40KB
|
1,390 lines
MACROMSG.MAC 2.2.5 ALPHA
by Jeff Oberlee (C)opyright 1992,93
{:alr} {MACL MACROBBS.MAC,WF3} {:alu} {MACL MACROBBS.MAC,bbs}
{:esc_menu}
{IFCA ,ESM} {SEND ^J^M%an7%%an9%Time comes to a grinding halt! %an0}
{:ESM} {SETE-P0 ESM2} {SETV ch}
{PARM ,,,,0}
{INPU ch, PRESS: [ENTER] to CHAT, [U]seredit, [D]OS, [H]angup}
{COMP ch,h} {IFCO ESM4}
{COMP ch,d} {IFCO ESM5}
{COMP on,} {IFCO ESM}
{COMP ch,u} {IFCO ESM3}
{COMP ch,} {IFCO ,ESM}
{:ESM1} {COMP cf,} {IFCO CT8,ESM}
{:ESM2} {SETE-P0 esc_menu}
{IFCA ,ESM6} {SEND %an3%Then suddenly...} {PAUS 1}
{:ESM6} {RETURN}
{:ESM5} {SHEL} {GOTO ESM}
{:ESM3} {COMP open,y} {IFCO ESM}
{:ESM8} {COMP login_name,} {IFCO ESM}
{SETV lname,%login_name} {INPU lname,EDIT: Handle (3-30 characters)}
{COMP lname,1} {IFCO-GE ESM8}
{LENG %lname} {COMP _len,3} {IFCO-L ESM8}
{LENG %lname} {COMP _len,30} {IFCO-G ESM8}
{:ESM10} {SETV ch,%al} {INPU ch,EDIT: Access Level (0-999)}
{COMP ch,999} {IFCO-G ESM10}
{:ESM9} {SETV temp,%pcpd} {INPU temp,EDIT: Time limit per Day/Call (D/C)}
{COMP temp,c} {IFCO ESM11}
{COMP temp,d} {IFCO ,ESM9}
{:ESM11}
{SETV al,%ch}
{SETV pcpd,%temp}
{SETV row,%_row} {SETV col,%_col} {DISP 2,2,0F,%an9 * Saving * }
{COMP lname,%login_name} {IFCO ESM7}
{SETV login_name,%lname}
{SETE time_out}
{CALL update_clist}
{:ESM7} {CALL write_user}
{DISP 2,2,07, }
{DISP %row,%col,,}
{SETV row} {SETV col} {SETV lname}
{GOTO ESM}
{:ESM4} {SETV s,2} {GOTO time_out}
{:chat}
{SETV temp,0} {SETV ccount,0}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Chat request} {WCLO}
{SEND ^J^M^J%an4%Paging %sysop ...^J^M}
{SPOC n} {SEND %an3%Press %an0[ESC]%an3 then %an0[ENTER]%an3 to chat with%an7 %login_name %an3...^J^M} {SPOC y}
{:CT7} {INCR ccount} {SETV-S ch,an%ccount}
{SEND %ch█}
{SEND ^G} {SEND ^G} {SEND ^G} {PAUS 2}
{COMP ccount,5} {IFCO-G ,CT7}
{:CT6} {SETV chat,CHAT}
{SEND ^M%an0%Sorry, %sysop isn't around right now.^J^M}
{SEND %an0%However, the chat flag has been set.^J^M^J}
{GOTO CT9}
{:CT8} {SETV tl,%_ela}
{SETG 300,time_out}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Started chat} {WCLO}
{COMP cb,y} {IFCO ,CT14}
{CAPT y,%datadir%CHAT.LOG}
{:CT14} {SEND ^J^M^J%an3%You've just entered . . . %an7%The Twilight Zone. %an3%Reality vanishes.^J^M}
{SEND %an2(Type "%an0%bye!%an2" on a blank line to exit when desired.)^J^M}
{SETV cf,1} {SETV co1,%an0} {SETV co2,%an3}
{SETE-P0 esc_menu}
{PUSH}
{:CT2} {COMP cf,1} {IFCO CT3}
{SEND %co2} {SETV cf,1} {GOTO CT4}
{:CT3} {SEND %co1} {SETV cf,2}
{:CT4} {SETV cline}
{:CT5} {SEND ^J}
{:CT13} {SEND ^M%cline}
{GETS-AH cline,78,CT2}
{COMP cline,/c} ......... {IFCO switch_c}
{COMP cline,bye!} ....... {IFCO CT1}
{COMP cline,bye!!} ...... {IFCO time_out}
{COMP cline,/scroll} .... {IFCO view_scroll}
{COMP cline,NO CARRIER} . {IFCO time_out}
{LENG %cline}
{COMP %_len,78} {IFCO-L CT4}
{SETV ccount,79}
{:CT11} {DECR ccount}
{COMP ccount,60} {IFCO-LE CT4}
{SUBS ch,%ccount,1,%cline}
{COMP ch, } {IFCO ,CT11}
{COMP ccount,78} {IFCO CT4}
{INCR ccount}
{SUBS cline,%ccount,100,%cline}
{:CT12} {COMP ccount,%_len} {IFCO-G CT5}
{SEND ^H ^H}
{INCR ccount}
{GOTO CT12}
{:CT1} {CAPT n}
{SETV ch,%_ela} {DECR ch,%tl} {INCR tlc,%ch} {SETV tl}
{SEND ^J^M^J%an3%You've just left . . . %an7%The Twilight Zone. %an3%Reality restored.^J^M^J}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Ended chat} {WCLO}
{SETV cf} {SETV co1} {SETV co2} {SETV chat} {SETV cline}
{POPS}
{:CT9} {SETV ccount}
{SETE-P0 esc_menu}
{CALL press_any_key}
{RETURN}
{:switch_c}
{:SW1} {SEND ^M%an0(0 %an1%1 %an2%2 %an3%3 %an4%4 %an5%5 %an6%6 %an7%7%an0) ^H}
{GETS-H ch,1,SW1}
{COMP ch,0} {IFCO-L SW1}
{COMP ch,7} {IFCO-G SW1}
{SEND ^M ^M}
{COMP cf,1} {IFCO ,SW3}
{SETV-S co2,an%ch} {SEND %co2} {GOTO SW4}
{:SW3} {SETV-S co1,an%ch} {SEND %co1}
{:SW4} {SETV cline}
{GOTO CT13}
{:view_scroll}
{SCROLL}
{GOTO CT4}
{:update_clist}
{ROPE %datadir%CALLERS.LST,UC1}
{WOPE %datadir%TEMP.000}
{:UC2} {READ ch} {READ cline} {READ dline}
{COMP ch,%userno} {IFCO UC3}
{WRIT %ch} {WRIT %cline} {WRIT %dline} {GOTO UC2}
{:UC3} {COMP s,1} {IFCO UC5}
{:UC4} {WRIT %ch}
{WRIT %login_name}
{WRIT %password}
{:UC5} {READ dline} {WRIT %dline} {GOTO UC5}
{:UC1} {WCLO}
{EXEC-N COPY %datadir%TEMP.000 %datadir%CALLERS.LST}
{EXEC-N DEL %datadir%TEMP.000}
{RETURN}
{:write_user}
{WOPE %userdir%%userno.USR}
{WRIT %login_name}
{WRIT %password}
{WRIT %al}
{WRIT %protocol}
{WRIT %expert}
{WRIT %a}
{WRIT %fa}
{WRIT %_dwt %_dat}
{WRIT %rname}
{WRIT %from}
{WRIT %pcpd}
{WRIT %clr2}
{WRIT %arcer}
{WRIT %arc}
{WCLO}
{RETURN}
{:read_data}
{ROPE %datadir%CALLER.DAT,RD1}
{READ %callno}
{READ %tdcalls}
{READ pub}
{READ pvt}
{READ ttu}
{READ tf}
{READ ldate}
{READ stime}
{READ ftime}
{READ l_caller}
{READ luserno}
{READ uhigh}
{READ mhigh}
{READ fhigh}
{RCLO}
{:RD1} {RETURN}
{:write_data}
{WOPE %datadir%CALLER.DAT}
{WRIT %callno}
{WRIT %tdcalls}
{WRIT %pub}
{WRIT %pvt}
{WRIT %ttu}
{WRIT %tf}
{WRIT %ldate}
{WRIT %stime}
{WRIT %ftime}
{WRIT %login_name}
{WRIT %userno}
{WRIT %uhigh}
{WRIT %mhigh}
{WRIT %fhigh}
{WCLO}
{RETURN}
{:create_tags}
{SETV count,0}
{WOPE %msgsdir%TAGS\%userno.TAG}
{:WT1}
{INCR count} {COMP count,%mhigh} {IFCO-G WT2}
{WRIT -} {GOTO WT1}
{:WT2}
{WCLO}
{RETURN}
{:time_out}
{MACL MACROBBS.MAC,time_out}
{:cls}
{CLEA}
{COMP on,} {IFCO CLS3}
{COMP mnu,A} {IFCO CLS1}
{SEND ^[[2J}
{GOTO CLS2}
{:CLS1} {SEND ^L}
{:CLS2} {DISP 1,1,4F,│ }
{DISP 1,3,4E,%login_name #%userno}
{DISP 1,40,47,AL=%al}
{DISP 1,49,47,%mspeed}
{DISP 1,57,47,%_ela mins}
{DISP 1,70,4F,%an9%%chat}
{DISP 2,1,4F,│ }
{DISP 2,3,47,%rname - %from}
{DISP 3,1,4F,└──────────────────────────────────────────────────────────────────────────────}
{DISP 4,1,07,}
{:CLS3} {RETURN}
{:press_any_key}
{COMP mnu,a} {IFCO PAK1}
{SEND %an3%%an9^[[24;1h^[[24;1f[Press Any Key]%an0}
{GOTO PAK2}
{:PAK1} {SEND ^J^M^J[Press Any Key]}
{:PAK2} {SETG 300,time_out}
{GETS-H temp,1,PAK}
{:PAK} {SEND ^M ^M}
{SETV temp}
{RETURN}
{:dsp_file}
{IFEX %dump_file,,DF5}
* {SETV count,0} {SETV open,y}
{INCR count,2}
{SETE time_out}
{ROPE %dump_file,DF3}
{SETV tnod} {SETV fnod}
{READ dline} {SEND %an7%To: %an3%%dline^J^M} {INCR count}
{READ dline} {SEND %an7%From: %an1%%dline^J^M} {INCR count}
{READ dline} {SEND %an7%Subj: %an4%%dline^J^M} {INCR count}
{READ dline} {SEND %an7%Date: %an0%%dline^J^M} {INCR count}
{COMP fido,y} {IFCO ,DF12}
{READ tnod} {READ fnod}
{:DF12} {READ dline}
{COMP dline,0} {IFCO DF11}
{COMP dline,} {IFCO ,DF10}
{SEND %an0%%dline^J^M} {INCR count}
{:DF11} {SETV trace}
{GOTO DF}
{:DF10} {SEND %an5%Trace msg#: %an0%%dline^J^M} {INCR count}
{SETV trace,%dline}
{:DF} {PUSH}
{SETE-P0 esc_menu}
{:DF1} {READ dline}
{COMP dline,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀} {IFCO ,LQ1}
{SETV dline,%an4▀▀▀▀▀▀ %an7%Quote %an4▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀%an7}
{GOTO DF8}
{:LQ1} {COMP dline,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄} {IFCO ,DF8}
{SETV dline,%an4▄▄▄▄▄▄ %an7%UnQuote %an4▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄%an0}
{:DF8} {SEND ^M%dline%%an0^J^M}
{INCR count}
{COMP count,22} {IFCO DF4}
{GOTO DF1}
{:DF2} {RCLO}
{:DF3} {SETV dline} {SETV ch} {SETV count}
* {SETV open}
{SETG 300,time_out}
{POPS}
{RETURN}
{:DF4} {SETV count,0}
{SEND %an4%More? %an7(Y,n) %an0: }
{SETG 300,DF9}
{:DF6} {GETS-H ch,1,DF7}
{COMP ch,y} {IFCO DF7}
{COMP ch,n} {IFCO DF7}
{SEND ^H} {GOTO DF6}
{:DF7} {SEND ^M ^M}
{COMP ch,n} {IFCO DF2}
{:DF9} {COMP clr2,n} {IFCO DF1}
{CALL CLS}
{SEND ^J^M}
{GOTO DF1}
{:DF5} {SEND ^J^M^G%an1%Error: %an7%File not found: %dump_file}
{CALL press_any_key}
{RETURN}
{:screen_full}
{SEND %an4%More? %an7(Y,n) %an0: }
{SETG 300,SF3}
{:SF1} {GETS-H ch,1,SF2}
{COMP ch,y} {IFCO SF4}
{COMP ch,n} {IFCO SF4}
{SEND ^H} {GOTO SF1}
{:SF2} {SETV ch,y} {GOTO SF4}
{:SF3} {SETV ch,n}
{:SF4} {SEND ^M ^M}
{SETG 300,time_out}
{RETURN}
{:ascii_ul}
{COMP mnu,A} {IFCO AU1}
{SEND ^[[2J} {GOTO AU2}
{:AU1} {SEND ^L}
{:AU2}
{IFEX %dump_file,,AU3}
{PARM ,,,,%uicd}
{ASCI-S0 %dump_file,}
{PARM ,,,,%nicd}
{:AU3} {RETURN}
{:expert_tog}
{COMP expert,ON}
{IFCO ET1}
{SETV expert,ON}
{GOTO ET2}
{:ET1} {SETV expert,OFF}
{:ET2} {RETURN}
{:ansi}
{SETV mnu,n}
{SETV an0,^[[0;2;37m} - gray
{SETV an1,^[[0;1;31m} - red
{SETV an2,^[[0;2;32m} - green
{SETV an3,^[[0;1;33m} - yellow
{SETV an4,^[[0;1;34m} - blue
{SETV an5,^[[0;1;35m} - magenta
{SETV an6,^[[0;1;36m} - cyan
{SETV an7,^[[0;1;37m} - white
{SETV an9,^[[5m} - blink
{SETV an12,^[[44m} - blue background
{SETV an13,^[[41m} - red background
{RETURN}
{:cd}
{IFCA cd1}
{COMP on,1} {IFCO time_out}
*-{:cd1} {COMP on,1} {IFCO ,cd2}
{COMP _ela,%tlc} {IFCO-GE time_out}
{:cd2} {RETURN}
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
{:start}
{PUSH}
{SETE time_out}
{CALL cd}
{COMP n,1} {IFCO ,MB1}
{SETV ch,0}
{:CLR} {INCR ch} {COMP ch,%mhigh} {IFCO-G MB1} {SETV ta%ch} {GOTO CLR}
{:MB1}
{SETV n} {SETV ta} {SETV em} {SETV ul}
{SETV files} {SETV desc} {SETV filepath}
{SETV tran} {SETV transdir} {SETV proto} {SETV tl}
{CALL read_baseinfo}
{SETE-P0 esc_menu}
{COMP expert,ON} {IFCO MB4}
{:MB8} {CALL cls}
{SEND ^J^M^J^J%an4%}
{SEND ^J^M ┌───────────────────────────────────────────────────┐}
{SEND ^J^M │ %an0░░░░░░░░░░░░░░░░░░%an7 Message Base %an0░░░░░░░░░░░░░░░░░%an4 │}
{SEND ^J^M └───────────────────────────────────────────────────┘}
{SEND ^J^M [%an0%<%an4] Reverse [%an0%A%an4] Area List [%an0%>%an4] Forward^J^M}
{SEND ^J^M %an4[%an0%U%an4] Upload a message [%an0%T%an4] Tag areas %an4[%an0%O%an4] Message Packer}
{SEND ^J^M %an4[%an0%P%an4] Post a message [%an0%R%an4] ReviewScan %an2[%an0%F%an2] File Base}
{SEND ^J^M %an4[%an0%N%an4] NewScan ALL areas [%an0%C%an4] Chat %an1[%an0%H%an1] Hall of Fame}
{SEND ^J^M %an4[%an0%S%an4] NewScan THIS area [%an0%X%an4] Xpert Toggle %an0[%an0%Q%an0] MAIN MENU^J^M}
{SEND ^J^M %an0 Enter a command or message number.}
{:MB4} {SEND ^J^M^J%an4%Message Base^J^M}
{SEND %an4[%an0%%bname%%an4] %an0%%_tim^J^M}
{DECR msgno}
{COMP msgno,%himsgno} {IFCO-LE MB10}
{SETV msgno,0}
{:MB10} {SEND %an4%Msg(s): %an0%%lomsgno-%himsgno %an4%Last read: %an0%%msgno^J^M}
{INCR msgno}
{SETV ch,%tlc} {DECR ch,%_ela}
{SEND %an0%Mins Left: %ch^J^M}
{:MB5} {CALL cd}
{:MB7} {SEND ^M} {COMP expert,ON} {IFCO ,MB9}
{SEND %an4(%an0%?%an4=menu) }
{:MB9} {SEND %an7%MB Command: ^H^H^H^H^H^H^H^H}
{GETS-H ch,1,MB5}
{:MB14}
{SETV dline,up} {INST dline,%ch} {IFCO ,MB3} {COMP al,0} {IFCO MB6}
{:MB3}
{COMP ch,*} {IFCO time_out}
{COMP ch,?} {IFCO MB8}
{COMP ch,q} {IFCO main}
{COMP ch,o} {IFCO msg_pack}
{COMP ch,f} {IFCO file_base}
{COMP ch,h} {IFCO hall}
{COMP ch,a} {IFCO area_change}
{COMP ch,c} {IFCO chat}
{COMP ch,p} {IFCO editor}
{COMP ch,u} {IFCO msg_ul}
{COMP ch,r} {IFCO review}
{COMP ch,x} {IFCO expert_tog}
{COMP ch,<} {IFCO fast_bak}
{COMP ch,>} {IFCO fast_for}
{COMP ch,n} {IFCO new_all}
{COMP ch,s} {IFCO new_this}
{COMP ch,t} {IFCO tag_area}
{SETV dline,123456789} {INST dline,%ch} {IFCO ,MB5}
{COMP himsgno,0} {IFCO MB5}
{GETS-A ch,8,MB5}
{COMP ch,1} {IFCO MB13}
{COMP ch,1} {IFCO-L MB14}
{COMP ch,%lomsgno} {IFCO-GE MB11}
{:MB13} {SETV ch,%lomsgno} {GOTO MB12}
{:MB11} {COMP ch,%himsgno} {IFCO-LE MB12}
{SETV ch,%himsgno}
{:MB12} {IFEX %msgsdir%A%a\%ch.MSG,read}
{SEND ^J^M%an7%Message #%ch not found.} {PAUS 1}
{INCR ch} {GOTO MB11}
{:MB6} {SEND ^J^M%an1%Sorry, your access level does not allow.^J^M}
{GOTO MB5}
{:main}
{MACL MACROBBS.MAC,main_menu}
{:file_base}
{IFEX MACROFIL.MAC,,MB5}
{IFEX %filedir%F%fa.BAS,FX2}
{IFEX %filedir%F*.BAS,,MB5}
{SETV fa,0}
{:FX1} {INCR fa}
{COMP fa,%fhigh} {IFCO-G MB5}
{IFEX %filedir%F%fa.BAS,,FX1}
{:FX2}
{ROPE %filedir%F%fa.BAS,FX1} {READ ch} {READ ch} {RCLO}
{COMP ch,%al} {IFCO-G FX1}
{MACL MACROFIL.MAC,start}
{:hall}
{IFEX MACROREG.MAC,,MB5}
{MACL MACROREG.MAC,start}
{:msg_pack}
{IFEX MACROPAK.MAC,,MB5}
{MACL MACROPAK.MAC,start}
{:fast_for}
{COMP a,%mhigh} {IFCO ,FF0}
{SETV ch,0} {GOTO FF1}
{:FF0}
{SETV ch,%a}
{:FF1}
{INCR ch}
{COMP ch,%mhigh} {IFCO-G MB5}
{IFEX %msgsdir%A%ch.BAS,,FF1}
{ROPE %msgsdir%A%ch.BAS,FF1} {READ dline} {READ temp} {RCLO}
{COMP al,%temp} {IFCO-L FF1}
{SETV a,%ch}
{CALL read_baseinfo}
{:FF2} {GOTO MB4}
{:fast_bak}
{COMP a,1} {IFCO ,FB0}
{SETV ch,%mhigh} {INCR ch} {GOTO FB1}
{:FB0}
{SETV ch,%a}
{:FB1}
{DECR ch}
{COMP ch,1} {IFCO-L MB5}
{IFEX %msgsdir%A%ch.BAS,,FB1}
{ROPE %msgsdir%A%ch.BAS,FB1} {READ dline} {READ temp} {RCLO}
{COMP al,%temp} {IFCO-L FB1}
{SETV a,%ch}
{CALL read_baseinfo}
{:FB2} {GOTO MB4}
{:area_change}
{IFEX %datadir%MAREAS%mnu.MNU,,AC11}
{SETV dump_file,%datadir%MAREAS%mnu.MNU}
{CALL ascii_ul}
{GOTO AC6}
{:AC11}
{CALL cls}
{SETV df} {SETV count,0} {SETV mcount,0}
{SEND ^J^M%an7%Message Area(s):^J^M^J}
{:AC1}
{SETV temp}
{INCR count}
{COMP count,%mhigh} {IFCO-G AC2}
{IFEX %msgsdir%A%count.BAS,,AC1}
{ROPE %msgsdir%A%count.BAS,AC9} {READ bname} {READ bal}
{READ temp} {READ temp} {READ temp} {READ temp} {RCLO}
{COMP al,%bal} {IFCO-L AC1}
{COMP df,2} {IFCO AC5}
{SETV ch,35} {LENG %bname} {DECR ch,%_len} {SUBS dline,1,%ch, }
{COMP temp,y} {IFCO AC10}
{SEND %an7%%count> %an4%%bname%%dline}
{SETV df,2} {GOTO AC1}
{:AC10} {SEND %an7%%count> %an5%%bname%%dline}
{SETV df,2} {GOTO AC1}
{:AC5}
{COMP temp,y} {IFCO AC7}
{SEND %an7%%count> %an4%%bname^J^M}
{GOTO AC8}
{:AC7} {SEND %an7%%count> %an5%%bname^J^M}
{:AC8} {SETV df,1}
{INCR mcount}
{COMP mcount,20} {IFCO ,AC1}
{CALL screen_full}
{COMP ch,y} {IFCO AC1,AC3}
{:AC2} {COMP df,2} {IFCO AC6}
{SEND ^J^M} {GOTO AC3}
{:AC6} {SEND ^J^M^J}
{:AC3} {SEND ^M%an7%Which will it be?%an0 ^H^H}
{CALL cd}
{GETS ch,2,AC4}
{COMP ch,1} {IFCO-L AC3}
{COMP ch,%mhigh} {IFCO-G AC3}
{IFEX %msgsdir%A%ch.BAS,,AC3}
{ROPE %msgsdir%A%ch.BAS,AC3} {READ bname} {READ bal} {RCLO}
{COMP al,%bal} {IFCO-L AC3}
{SETV a,%ch}
{CALL read_baseinfo}
{:AC4} {RETURN}
{:msg_ul}
{SETV files,TEMP.000}
{SETV filepath,%datadir%%files}
{SETV ul,1}
{GOTO editor}
{:MUL1}
{EXEC-N DEL %filepath}
{SEND ^J^M^J%an0%Begin your%an7 XMODEM%an0 upload now.}
{RXMO %filepath}
{COMP %_err,0} {IFCO MUL2}
{WOPE-A %datadir%LOG-1.LOG} {WRIT ▒░▒░▒ ERRONEOUS MESSAGE UPLOAD at %_tim of %filepath ▒░▒░▒} {WCLO}
{SEND ^J^M^J%an1%ERRONEOUS upload.^J^M}
{GOTO E10}
{:MUL2}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : successful message upload of %filepath} {WCLO}
{SEND ^J^M%an7%Message successfully uploaded.^J^M}
{GOTO S0}
{:tag_area}
{IFEX %msgsdir%TAGS\%userno.TAG,,TA105}
{:TA0}
{ROPE %msgsdir%TAGS\%userno.TAG,TA2}
{SETV count,0}
{:TA1} {INCR count} {READ ta%count} {GOTO TA1}
{:TA105} {CALL create_tags} {GOTO TA0}
{:TA2}
{SEND ^J^M^J%an7%Tag/Untag which area? %an0(area #, L=List, ENTER=Quit): }
{GETS ch,2,TA6}
{COMP ch,l} {IFCO TA5}
{COMP ch,1} {IFCO-GE TA9}
{:TA3}
{SEND ^J^M%an1%That area doesn't exist!}
{GOTO TA2}
{:TA9}
{IFEX %msgsdir%A%ch.BAS,,TA3}
{ROPE %msgsdir%A%ch.BAS,TA3} {READ bname} {READ bal} {RCLO}
{COMP al,%bal} {IFCO-GE ,TA3}
{COMP ta%ch,-} {IFCO ,TA4}
{SEND ^J^M^J%an7%%bname %an0- %an1%Untagged.}
{SETV ta%ch, }
{GOTO TA2}
{:TA4}
{SEND ^J^M^J%an7%%bname %an0- %an2%Tagged.}
{SETV ta%ch,-}
{GOTO TA2}
{:TA5}
{CALL cls}
{SETV count,0} {SETV mcount,0}
{SEND ^J^M%an7 Message Area(s):^J^M}
{:TA7}
{SETV temp}
{INCR count}
{COMP count,%mhigh} {IFCO-G TA2}
{IFEX %msgsdir%A%count.BAS,,TA7}
{ROPE %msgsdir%A%count.BAS,TA11} {READ bname} {READ bal}
{READ temp} {READ temp} {READ temp} {READ temp} {RCLO}
{:TA11}
{COMP al,%bal} {IFCO-L TA7}
{SETV-S ch,ta%count}
{COMP ch,} {IFCO ,TA14}
{SETV ch, }
{:TA14} {COMP temp,y} {IFCO TA8}
{SEND ^J^M%an3%%ch %an7%%count> %an4%%bname} {GOTO TA10}
{:TA8} {SEND ^J^M%an3%%ch %an7%%count> %an5%%bname}
{:TA10}
{INCR mcount} {COMP mcount,20} {IFCO ,TA7}
{CALL screen_full}
{COMP ch,y} {IFCO TA7,TA2}
{:TA6}
{SETV count,0}
{WOPE %msgsdir%TAGS\%userno.TAG}
{:TA12}
{INCR count} {COMP count,%mhigh} {IFCO-G TA13}
{SETV-S ch,ta%count} {SETV ta%count} {WRIT %ch} {GOTO TA12}
{:TA13}
{WCLO}
{RETURN}
{RETURN}
{:review}
{COMP himsgno,0} {IFCO MB5}
{SEND ^J^M^J}
{:RE1} {SEND %an4%Begin reviewing at which message? %an0(%lomsgno-%himsgno) :%an7 ^H^H^H^H^H^H^H^H}
{GETS ch,8,MB1}
{COMP ch,1} {IFCO-L RE1}
{COMP ch,%lomsgno} {IFCO-GE RE13}
{SETV ch,%lomsgno} {GOTO RE14}
{:RE13} {COMP ch,%himsgno} {IFCO-LE RE14}
{SETV ch,%himsgno}
{:RE14} {IFEX %msgsdir%A%a\%ch.MSG,RE15}
{SEND ^J^M%an7%Message #%ch not found.} {PAUS 1}
{INCR ch} {GOTO RE13}
{:RE15} {DECR ch}
{:RE4} {INCR ch} {COMP ch,%himsgno} {IFCO-G RE3}
{:RE2} {IFEX %msgsdir%A%a\%ch.MSG,,RE4}
{:RE5} {CALL cls}
{SEND %an7%Msg# To: From: Subject:}
{SEND ^J^M----------------------------------------------------------------------------^J^M-
{SETV temp,0}
{:RE7} {INCR temp}
{ROPE %msgsdir%A%a\%ch.MSG,RE8}
{SETV mx,9} {SETV dline,%ch}
{LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx, }
{SEND ^M%an0%%dline%%cline}
{SETV mx,26}
{READ dline} {SUBS dline,1,25,%dline}
{LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx, }
{SEND %an3%%dline%%cline}
{SETV mx,26}
{READ dline} {SUBS dline,1,25,%dline}
{LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx, }
{SEND %an1%%dline%%cline}
{SETV mx,18}
{READ dline} {SUBS dline,1,18,%dline}
{LENG %dline} {DECR mx,%_len} {SUBS cline,1,%mx, }
{SEND %an4%%dline%%cline^J^M}
{RCLO}
{:RE8} {INCR ch} {COMP ch,%himsgno} {IFCO-G RE9}
{IFEX %msgsdir%A%a\%ch.MSG,,RE8}
{COMP temp,20} {IFCO RE11}
{GOTO RE7}
{:RE11} {SETV aa,%ch}
{CALL screen_full}
{COMP ch,y} {IFCO RE12}
{COMP expert,ON} {IFCO MB4,MB8}
{:RE12} {SETV ch,%aa}
{GOTO RE5}
{:RE6} {IFEX %msgsdir%A%a\%ch.MSG,RE5}
{:RE3} {SEND ^J^M%an1%That message does not exist.^J^M}
{GOTO RE1}
{:RE9} {SEND ^J^M^J%an7%<End of messages in %an5%%bname%%an7>^J^M}
{:RE10} {COMP expert,ON} {IFCO MB4}
{CALL press_any_key}
{GOTO MB8}
{:trace}
{POPS}
{:TR0} {COMP trace,} {IFCO TR1}
{SEND race}
{INST trace,/} {IFCO ,TR1}
{SETV ch,%_pos} {DECR ch}
{SUBS temp,1,%ch,%trace}
{SETV ch,%_pos} {INCR ch}
{SUBS dline,%ch,8,%trace}
{:TR3} {SETV dump_file,%msgsdir%A%temp\%dline.MSG}
{IFEX %dump_file,,TR1}
{CALL cls}
{SEND ^J^M%an7%TRACE: %an0%Msg# %dline in area %temp^J^M^J}
{CALL dsp_file}
{SEND ^J^M^J%an0<%an7%SPACEBAR %an0= Trace this message, %an7%ENTER %an0= quit Trace> }
{:TR4} {GETS-H ch,1,FW50}
{COMP ch, } {IFCO TR0}
{SEND ^H} {GOTO TR4}
{:TR2} {SETV temp,%a} {SETV dline,%trace} {GOTO TR3}
{:TR1} {SEND ^J^M^J%an1%Can't trace message.^J^M} {PAUS 1} {GOTO FW50}
{:new_all}
{SETV n,1} {SETV ta,%a} {SETV a,0}
{IFEX %msgsdir%TAGS\%userno.TAG,,NA2}
{:NA0}
{ROPE %msgsdir%TAGS\%userno.TAG,NA3}
{SETV count,0}
{:NA1} {INCR count} {READ ta%count} {GOTO NA1}
{:NA2} {CALL create_tags} {GOTO NA0}
{:NA3} {GOTO FW20}
{:new_this}
{COMP msgno,%himsgno} {IFCO-G ,FW2}
{SEND ^J^M^J%an7<End of messages in %an5%%bname%%an7>^J^M}
{POPS}
{GOTO MB5}
{:read}
{SETV msgno,%ch}
{:FW2} {COMP msgno,%lomsgno} {IFCO-GE FW24}
{INCR msgno} {GOTO FW2}
{:FW24} {COMP msgno,%himsgno} {IFCO-G FW11}
{IFEX %msgsdir%A%a\%msgno.MSG,FW21}
{INCR msgno} {GOTO FW2}
{:FW21} {INCR reads}
{:FW19} {CALL cls}
{SETV dump_file,%msgsdir%A%a\%msgno.MSG}
{SEND ^J^M%an0%Msg# %msgno of %himsgno in %an4%%bname^J^M^J}
{CALL dsp_file}
{SETE time_out}
{INCR msgno}
{:FW6}
{PUSH}
{DECR msgno}
{SEND ^J^M%an7[%msgno/%himsgno] %an4%%bname}
{INCR msgno}
{SETV ch,%tlc} {DECR ch,%_ela}
{SEND ^J^M%an0%Mins Left: %ch}
{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}
{COMP al,%sal} {IFCO-L FW26}
{SEND , %an7%S%an0%ysop}
{:FW26} {SEND or %an7%Q%an0%uit?%an3 }
{SETE-P0 esc_menu}
{SETG 300,time_out}
{:FW14} {CALL cd}
{GETS-H ch,1,FW60} {COMP ch,r} {IFCO ,FW17} {COMP al,0} {IFCO FW18}
{:FW17}
{COMP ch,a} {IFCO FW1}
{COMP ch,n} {IFCO FW16}
{COMP ch,p} {IFCO FW4}
{COMP ch,r} {IFCO FW5}
{COMP ch,j} {IFCO FW22}
{COMP ch,s} {IFCO FW27}
{COMP ch,t} {IFCO trace}
{COMP ch,q} {IFCO FW8}
{:FW} {SEND ^H} {GOTO FW14}
{:FW18}
{SEND ^J^M%an1%Sorry, your access level does not allow.}
{RETURN}
{:FW1}
{POPS}
{SEND gain}
{:FW50}
{SETE time_out}
{DECR msgno}
{GOTO FW19}
{:FW16}
{SEND ext}
{:FW60}
{SETE time_out}
{POPS}
{GOTO FW2}
{:FW4}
{SETE time_out}
{POPS}
{SEND revious}
{SETV temp,%lomsgno} {INCR temp}
{:FW25} {COMP msgno,%temp} {IFCO ,FW10}
{SEND ^J^M%an7<Beginning of messages in %an5%%bname%%an7>^J^M} {GOTO FW6}
{:FW10} {DECR msgno,2}
{IFEX %msgsdir%A%a\%msgno.MSG,FW21}
{INCR msgno} {GOTO FW25}
{:FW22}
{SETE time_out}
{POPS}
{SEND ump^J^M^J}
{:FW23} {SEND ^M%an4%Enter a message number to jump to. %an0(%lomsgno-%himsgno) : %an3 ^H^H^H^H^H^H^H^H}
{GETS ch,8,FW6}
{COMP ch,1} {IFCO-L FW23}
{COMP ch,%lomsgno} {IFCO-GE FW47}
{SETV ch,%lomsgno} {GOTO FW48}
{:FW47} {COMP ch,%himsgno} {IFCO-LE FW48}
{SETV ch,%himsgno}
{:FW48} {IFEX %msgsdir%A%a\%ch.MSG,FW49}
{SEND ^J^M%an7%Message #%ch not found.} {PAUS 1}
{INCR ch} {GOTO FW47}
{:FW49} {SETV msgno,%ch}
{GOTO FW2}
{:FW5}
{SETE time_out}
{POPS}
{SEND eply}
{DECR msgno}
{SETV r,1} {SETV trace,%a/%msgno}
{SETV quotemsg,%msgsdir%A%a\%msgno.MSG}
{ROPE %quotemsg,FW6}
{READ dline} {READ to} {READ subj} {RCLO}
{INCR msgno}
{CALL editor}
{GOTO FW6}
{:FW8}
{SETE time_out}
{POPS}
{SEND uit^J^M}
{SETV a%a,%msgno}
{:FW9} {SETV tnod} {SETV fnod} {SETV quotemsg} {SETV to} {SETV subj}
{:FW3} {RETURN}
{:FW11} {COMP n,1} {IFCO ,FW15}
{SETE time_out}
{SEND ^J^M^J%an7<Finished scanning %an4%%bname%%an7>^J^M}
{SETV a%a,%msgno}
{:FW20} {SETE time_out}
{INCR a}
{COMP a,%mhigh} {IFCO-G FW13}
{COMP ta%a,-} {IFCO ,FW20}
{IFEX %msgsdir%A%a.BAS,,FW20}
{ROPE %msgsdir%A%a.BAS,FW20} {READ bname} {READ bal} {RCLO}
{COMP al,%bal} {IFCO-L FW20}
{CALL read_baseinfo}
{CALL cls}
{SEND ^J^M^J%an0 New Scanning %an4%%bname} {PAUS 1}
{COMP msgno,%himsgno} {IFCO-G FW20,FW2}
{:FW13}
{SETV a,%ta} {SETV ta}
{CALL cls}
{SEND ^J^M^J%an7<End of available messages>^J^M}
{COMP expert,ON} {IFCO FW9}
{CALL press_any_key}
{GOTO FW9}
{:FW15}
{SETE time_out}
{SEND ^J^M^J%an7<End of messages in %an5%%bname%%an7>^J^M}
{SETV a%a,%msgno}
{COMP expert,ON} {IFCO FW9}
{CALL press_any_key}
{GOTO FW9}
{:FW27}
{POPS}
{SEND ysop^J^M}
{PUSH}
{SETE-P0 esc_menu}
{: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}
{:FW29} {CALL cd}
{GETS-H ch,1,FW30}
{COMP ch,d} {IFCO FW31}
{COMP ch,e} {IFCO FW45}
{COMP ch,m} {IFCO FW40}
{COMP ch,q} {IFCO FW30}
{SEND ^H} {GOTO FW29}
{:FW30}
{SETE time_out}
{POPS}
{SEND ^J^M} {GOTO FW6}
{:FW31}
{SETE time_out}
{POPS}
{SEND elete^J^M}
{SEND ^J^M%an7%DELETE %an1%this message? %an0(y,%an7%N%an0) :%an1 }
{:FW32} {GETS ch,1,FW28}
{COMP ch,n} {IFCO FW28}
{COMP ch,y} {IFCO FW33}
{SEND ^H} {GOTO FW32}
{:FW33} {SEND ^J^M}
{DECR msgno}
{EXEC-N DEL %msgsdir%A%a\%msgno.MSG}
{CALL renumber}
{INCR msgno}
{SEND %an7%Message deleted.} {PAUS 1}
{GOTO FW2}
{:FW40} {SEND ove^J^M^J}
{SETE time_out}
{POPS}
{:FW41} {SEND ^M%an7%MOVE %an3%this message to which message area? %an0(1-%mhigh, ENTER=quit) :%an3 ^H^H}
{GETS ch,2,FW28}
{COMP ch,1} {IFCO-L FW41}
{COMP ch,%a} {IFCO FW41}
{COMP ch,%mhigh} {IFCO-G FW41}
{IFEX %msgsdir%A%ch.BAS,,FW41}
{ROPE %msgsdir%A%ch.BAS,FW41}
{READ dline} {READ temp} {RCLO}
{COMP temp,%al} {IFCO-G FW41}
{ROPE %msgsdir%A%ch.BAS,FW41}
{READ dline} {READ temp} {READ temp} {READ temp} {READ temp} {RCLO}
{INCR temp}
{SEND ^J^M^J%an7%Move this message to %an3%%dline%%an7? %an0(y,%an7%N%an0) : }
{:FW42} {GETS aa,1,FW43}
{COMP aa,n} {IFCO FW43}
{COMP aa,y} {IFCO FW44}
{SEND ^H} {GOTO FW42}
{:FW43} {SEND ^J^M^J} {GOTO FW41}
{:FW44} {SEND ^J^M%an3%Moving message...}
{DECR msgno}
{EXEC-N COPY %msgsdir%A%a\%msgno.MSG %msgsdir%A%ch\%temp.MSG}
{EXEC-N DEL %msgsdir%A%a\%msgno.MSG}
{CALL renumber}
{SETV temp,%msgno} {SETV aa,%a} {SETV a,%ch}
{CALL read_baseinfo}
{INCR %himsgno}
{CALL update_baseinfo}
{CALL del_xs}
{SETV a,%aa} {SETV aa}
{CALL read_baseinfo}
{SETV msgno,%temp}
{INCR msgno}
{GOTO FW2}
{:renumber}
{COMP lomsgno,%himsgno} {IFCO ,FW34}
{SETV lomsgno,1} {SETV himsgno,0} {SETV msgno,0} {GOTO FW37}
{:FW34} {COMP msgno,%himsgno} {IFCO ,FW35}
{:FW36} {DECR himsgno} {DECR msgno}
{IFEX %msgsdir%A%a\%himsgno.MSG,FW37,FW36}
{:FW35} {COMP msgno,%lomsgno} {IFCO ,FW38}
{:FW39} {INCR lomsgno}
{IFEX %msgsdir%A%a\%lomsgno.MSG,,FW39}
{:FW37} {CALL update_baseinfo}
{:FW38} {RETURN}
{:FW45} {SEND dit^J^M}
{SETE time_out}
{POPS}
{DECR msgno}
COMP mspeed,LOCAL} {IFCO ,FW46}
{EDIT %msgsdir%A%a\%msgno.MSG}
{GOTO FW19}
{:FW46}
{SETV em,1}
{SETV lineno,0}
{SETV dump_file,%msgsdir%A%a\%msgno.MSG}
{SEND %an0%Reading...}
{SETV lineno,0}
{ROPE %dump_file,FW53}
{READ to} {READ sender} {READ subj} {READ date}
{COMP fido,y} {IFCO ,FW51}
{READ tnod} {READ fnod}
{:FW51} {READ trace} {COMP trace,} {IFCO FW52}
{READ dline}
{:FW52}
{INCR lineno}
{COMP lineno,%max} {IFCO-G FW54}
{READ line%lineno} {GOTO FW52}
{:FW53}
{DECR lineno}
{GOTO edit_system}
{:FW54} {SEND ^J^M%an7%Message is too large to fit in allocated memory.}
{SEND ^J^M%an1%Aborting...} {SEND ^J^M}
{RCLO} {SETV ch,0}
{:FW55} {INCR ch} {COMP ch,%max} {IFCO-G E11}
{SETV line%ch} {GOTO FW55}
{:editor}
{SETE time_out}
{CALL cd}
{CALL cls}
{INCR himsgno}
{SETV dump_file,%msgsdir%A%a\%himsgno.MSG} {SETV ch}
{COMP fido,y} {IFCO E104}
{SEND ^J^M%an4%Anonymous? %an0(y,%an7%N%an0) : }
{:E102} {GETS-H ann,1,E103}
{COMP ann,n} {IFCO E103}
{COMP ann,y} {IFCO E103}
{SEND ^H} {GOTO E102}
{:E103}
{CALL cls}
{COMP ann,y} {IFCO ,E105}
{SETV sender,[anonymous]} {GOTO E101}
{:E104}
{SETV sender,%rname}
{:E101}
{SEND ^J^M}
{SEND %an7%From: %an12 ^M}
{SEND %an7%From: %an12%%sender}
{GOTO E106}
{:E105}
{SEND ^J^M}
{SETV sender,%login_name}
{SEND %an7%From: %an12 ^M}
{SEND %an7%From: %an12%%sender}
{GETS-A sender,30}
{COMP sender,} {IFCO E10}
{:E106}
{COMP r,1} {IFCO E1}
{SETV trace,0}
{SETV to,Everyone}
{:E1}
{SEND ^J^M^J}
{SEND %an7%To : %an12 ^M}
{SEND %an7%To : %an12%%to}
{GETS-A to,30}
{COMP to,} {IFCO E10}
{COMP r,1} {IFCO ,E3}
{SETV tnod,%fnod} {SETV fnod}
{:E3}
{SEND ^J^M^J}
{SEND %an7%Subj: %an13 ^M}
{SEND %an7%Subj: %an13%%subj}
{GETS-A subj,30}
{COMP subj,} {IFCO E10}
{SEND %an0^J^M}
{COMP ul,1} {IFCO MUL1}
{SETV lineno,0}
{SEND ^J^M^J%an7%Maximum of %max lines.^J^M}
{SEND %an1-------------%an0 /s - save %an1-------%an0 /e - editor %an1-------%an0 /abt - abort %an1--------------^J^M}
{COMP r,1} {IFCO ,E4}
{SEND %an1-------------------------------%an0 /q - quoter %an1-----------------------------------^J^M}
{:E4} {SETV dline}
{:E7} {SEND ^J^M%an3%%dline}
{SETG 300,E10}
{GETS-AH dline,78,E18}
{COMP dline,/e} ..... {IFCO edit_system}
{COMP dline,/q} ..... {IFCO quote}
{COMP dline,/s} ..... {IFCO S0}
{COMP dline,/abt} ... {IFCO E10}
{LENG %dline} {COMP _len,78} {IFCO-L E18}
{SETV ccount,79}
{:E15} {DECR ccount}
{COMP ccount,60} {IFCO-LE E18}
{SUBS ch,%ccount,1,%dline}
{COMP ch, } {IFCO ,E15}
{COMP ccount,78} {IFCO E18}
{SETV ch,%ccount}
{:E16} {INCR ccount} {SEND ^H ^H}
{COMP ccount,%_len} {IFCO ,E16}
{SUBS cline,1,%ch,%dline}
{INCR lineno} {SETV line%lineno,%cline}
{SETV cline}
{INCR ch}
{SUBS dline,%ch,100,%dline}
{COMP lineno,%max} {IFCO-L E7,E17}
{:E18} {INCR lineno} {SETV line%lineno,%dline}
{COMP lineno,%max} {IFCO-L E4}
{:E17} {RCLO}
{SEND ^J^M%an7%You have reached the line limit.^J^M}
{GOTO edit_system}
{:E9}
{COMP em,1} {IFCO E11}
{SEND #%himsgno...}
{CALL read_data} {INCR pub} {SETV ftime,%_tim} {CALL write_data}
{WOPE-A %datadir%LOG-1.LOG} {WRIT %_tim : Posted "%subj" on %bname%%an0} {WCLO}
{CALL update_baseinfo}
{CALL del_xs}
{GOTO E11}
{:E10}
{COMP em,1} {IFCO E7}
{SEND ^J^M%an1%Message aborted.} {PAUS 1}
{SEND ^J^M}
{DECR himsgno}
{:E11} {SETV r} {SETV dline} {SETV open} {SETV subj} {SETV to}
{SETV ann} {SETV tnod} {SETV qcount} {SETV sender} {SETV date}
{SETV trace} {SETV lineno}
{COMP em,1} {SETV em} {IFCO FW19}
{RETURN}
{:del_xs}
{COMP %maxmsg,0} {IFCO E21}
{COMP himsgno,%maxmsg} {IFCO-LE E21}
{SETV ch,%himsgno} {DECR ch,%maxmsg}
{:E19} {IFEX %msgsdir%A%a\%lomsgno.MSG,,E20}
{EXEC-N DEL %msgsdir%A%a\%lomsgno.MSG}
{:E20} {INCR lomsgno}
{COMP lomsgno,%ch} {IFCO-LE E19}
{CALL update_baseinfo}
{:E21} {SEND %an0%Ok^J^M}
{RETURN}
{:read_baseinfo}
{SETV fido}
{ROPE %msgsdir%A%a.BAS,RB1}
{READ bname}
{READ bal}
{READ maxmsg}
{READ lomsgno}
{READ himsgno}
{READ fido}
{RCLO}
{:RB1}
{SETV-S msgno,a%a}
{COMP msgno,} {IFCO ,RB2}
{SETV msgno,1}
{:RB2}
{RETURN}
{:update_baseinfo}
{WOPE %msgsdir%A%a.BAS}
{WRIT %bname}
{WRIT %bal}
{WRIT %maxmsg}
{WRIT %lomsgno}
{WRIT %himsgno}
{WRIT %fido}
{WCLO}
{RETURN}
{:edit_system}
{SETE-P0 esc_menu}
{SEND ^M ^M}
{:ES0}
{PUSH}
{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}
{SETG 300,time_out}
{:ES1} {GETS-H ch,1,ES1}
{COMP ch,a} {IFCO abort}
{COMP ch,c} {IFCO continue}
{COMP ch,d} {IFCO delete}
{COMP ch,e} {IFCO edit_line}
{COMP ch,i} {IFCO insert}
{COMP ch,l} {IFCO list}
{COMP ch,r} {IFCO replace}
{COMP ch,s} {IFCO save}
{:ES3} {SEND ^H} {GOTO ES1}
{:abort}
{COMP em,1} {IFCO ES3}
{SETE time_out}
{POPS}
{SEND bort^J^M}
{SETV dline}
{GOTO E10}
{:continue}
{COMP lineno,%max} {IFCO ES3}
{SETE time_out}
{POPS}
{SEND ontinue^J^M}
{SEND ^M%an7%Ok. Carry on... :)%an3^J^M}
{GOTO E4}
{:delete}
{COMP lineno,0} {IFCO ES3}
{SEND elete}
{SEND ^J^M^J}
{:D5} {SEND ^M%an7%DELETE%an4 From Line #:%an0 ^H^H^H}
{GETS ch1,3,R1}
{COMP ch1,1} {IFCO-L D5}
{COMP ch1,%lineno} {IFCO-G D5}
{SEND ^J^M}
{:D6} {SEND ^M%an4 To Line #:%an0 ^H^H^H}
{GETS ch2,3,R1}
{COMP ch2,%ch1} {IFCO-L D6}
{COMP ch2,%lineno} {IFCO-G D6}
{CALL range_dsp}
{SEND ^J^M^J%an7%Are you sure? %an0(%an7%Y%an0,n) :%an7 }
{:D3} {GETS-H ch,1,D4}
{COMP ch,y} {IFCO D4}
{COMP ch,n} {IFCO R1}
{SEND ^H} {GOTO D3}
{:D4} {COMP ch2,%lineno} {IFCO D2}
{:D7} {INCR ch2} {SETV-S line%ch1,line%ch2} {INCR ch1}
{COMP ch2,%lineno} {IFCO ,D7}
{:D2} {DECR ch1} {SETV lineno,%ch1}
{:D8} {SEND ^J^M%an0%Line(s) deleted.^J^M}
{:D1} {RETURN}
{:edit_line}
{COMP lineno,0} {IFCO ES3}
{SEND dit^J^M^J}
{:EL5} {SEND ^M%an4%Line # to EDIT:%an0 ^H^H^H}
{GETS no,3,R1}
{COMP no,1} {IFCO-L EL5}
{COMP no,%lineno} {IFCO-G EL5}
{SEND ^J^M}
{SETV-S dline,line%no}
{:EL0}
{SEND ^J^M%an5%Line %no reads:^J^M}
{SEND %an7%%dline^J^M}
{SEND ^J^M%an0%Type the string to replace, or press ENTER to abort.^J^M%an3}
{GETS oldstr,60,EL1}
{INST dline,%oldstr}
{COMP %_pos,0} {IFCO-G EL2}
{SEND ^J^M^J%an1%String not found.^J^M}
{GOTO EL0}
{:EL2} {SETV spos,%_pos}
{LENG %oldstr} {SETV olen,%_len}
{SETV mx,0}
{SETV ch,79} {LENG %dline} {DECR ch,%_len}
{INCR mx,%ch} {INCR mx,%olen}
{SEND ^J^M^J%an0%Type the replacement string, or press ENTER to cut.^J^M%an3}
{GETS newstr,%mx,EL3}
{:EL3} {SEND ^J^M}
{DECR spos}
{SUBS lstr,1,%spos,%dline}
{INCR spos,%olen} {INCR spos}
{SUBS rstr,%spos,100,%dline}
{SETV dline,%lstr%%newstr%%rstr%}
{SETV line%no,%dline}
{GOTO EL0}
{:EL1} {SETV olen} {SETV spos} {SETV lstr} {SETV rstr} {SETV newstr} {SETV mx}
{RETURN}
{:insert}
{COMP lineno,0} {IFCO ES3}
{COMP lineno,%max} {IFCO ES3}
{SEND nsert^J^M^J}
{:I4} {SEND ^M%an4%Line # to insert BEFORE:%an0 ^H^H^H}
{GETS no,3,R1}
{COMP no,1} {IFCO-L I4}
{COMP no,%lineno} {IFCO-G I4}
{SEND ^J^M^J%an5%INSERTING between these lines:}
{COMP no,1} {IFCO ,I2}
{SETV dline,*** BEGINNING OF MESSAGE ***}
{GOTO I3}
{:I2} {DECR no} {SETV-S dline,line%no} {INCR no}
{:I3} {SEND ^J^M^J%an7%%dline^J^M}
{SETV-S dline,line%no}
{SEND ^J^M%an7%%dline^J^M}
{SEND ^J^M%an0%Type the text for Line %no, or press ENTER to abort.^J^M%an3}
{GETS dline,79,I1} {SEND ^J^M}
{SETV ch1,%lineno} {INCR lineno} {SETV ch2,%lineno}
{:I5} {SETV-S line%ch2,line%ch1}
{DECR ch2} {DECR ch1}
{COMP ch2,%no} {IFCO ,I5}
{SETV line%ch2,%dline}
{SEND %an0%Line inserted.^J^M}
{:I1} {RETURN}
{:list}
{COMP lineno,0} {IFCO ES3}
{SEND ist^J^M}
{SETV no,0} {SETV count,1}
{SEND ^J^M}
{:L0} {SEND ^M%an7%Start listing at which line #?%an0 [1-%lineno, ENTER=1] :%an7 ^H^H^H}
{GETS-H ch,3,L2}
{COMP ch,1} {IFCO-L L0}
{COMP ch,%lineno} {IFCO-G L0}
{SETV count,%ch}
{:L2} {SEND ^J^M%an7%Include line numbers? %an0(y,%an7%N%an0) :%an7 }
{:L1} {GETS-H temp,1,L4}
{COMP temp,y} {IFCO L4}
{COMP temp,n} {IFCO L4}
{SEND ^H} {GOTO L1}
{:L4}
{SEND ^J^M^J%an3%Your message reads:^J^M^J%an0}
{:L6} {INCR no}
{SETV-S dline,line%count}
{COMP dline,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀} {IFCO ,L11}
{SETV dline,%an4▀▀▀▀▀▀ %an7%Quote %an4▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀%an7}
{GOTO L12}
{:L11} {COMP dline,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄} {IFCO ,L12}
{SETV dline,%an4▄▄▄▄▄▄ %an7%UnQuote %an4▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄%an0}
{:L12} {SEND %dline%%an0}
{COMP temp,y} {IFCO ,L7}
{SEND ^M%an7%%count:%an0}
{:L7} {SEND ^J^M}
{COMP count,%lineno} {IFCO L10}
{INCR count}
{COMP no,21} {IFCO ,L6}
{CALL screen_full}
{COMP ch,y} {SETV no,0} {IFCO L6}
{:L10} {SETV dline} {SETV count} {SETV no}
{RETURN}
{:replace}
{COMP lineno,0} {IFCO ES3}
{SEND eplace^J^M^J}
{:R2} {SEND ^M%an4%Line # to REPLACE:%an0 ^H^H^H}
{GETS no,3,R1}
{COMP no,1} {IFCO-L R2}
{COMP no,%lineno} {IFCO-G R2}
{SETV-S dline,line%no)
{SEND ^J^M^J%an5%Line %no reads:^J^M}
{SEND %an7%%dline^J^M}
{SEND ^J^M%an0%Type the new line, or press ENTER to abort.^J^M%an3}
{GETS dline,79,I1}
{SETV line%no,%dline}
{SEND ^J^M%an0%Line replaced.}
{:R1} {SEND ^J^M}
{RETURN}
{:save}
{SETE time_out}
{POPS}
{SEND ave}
{:S0}
{SEND ^J^M^J%an1%Saving}
{COMP em,1} {IFCO S3}
{:S6}
{COMP ann,y} {IFCO ,S10}
{SETV date,[unknown]} {GOTO S3}
{:S10}
{SETV date,%_dat %_tim}
{:S3}
{WOPE %dump_file}
{WRIT %to}
{WRIT %sender}
{WRIT %subj}
{WRIT %date}
{COMP fido,y} {IFCO ,S7}
{WRIT %tnod}
{WRIT %myno}
{:S7} {WRIT %trace}
{WRIT }
{COMP ul,1} {IFCO ,S9}
{WCLO}
{EXEC TYPE %filepath >> %dump_file}
{WOPE-A %dump_file}
{GOTO S2}
{:S9}
{SETV ch,0}
{:S1} {INCR ch}
{COMP ch,%lineno} {IFCO-G S2}
{SETV-S dline,line%ch} {SETV line%ch}
{WRIT %dline}
{GOTO S1}
{:S2}
{COMP fido,y} {IFCO ,S8}
{WRIT }
{WRIT --- MacroBBS 2.0}
{WRIT * Origin: %bbs %tagline (%myno)}
{:S8} {WCLO}
{SETV ann} {SETV tnod} {SETV qcount} {SETV sender} {SETV date}
{GOTO E9}
{:range_dsp}
{SETV ch,%ch1}
{SEND ^J^M}
{:RDS}
{SETV-S dline,line%ch}
{SEND ^J^M%an7%%dline}
{COMP ch,%ch2} {IFCO-GE RDS1}
{INCR ch} {GOTO RDS}
{:RDS1} {RETURN}
{:quote}
{COMP r,1} {IFCO ,E4}
{:Q1}
{SETV count,0}
{ROPE %quotemsg,Q7}
{READ dline} {READ dline} {READ dline} {READ dline}
{COMP fido,y} {IFCO ,Q11}
{READ dline} {READ dline}
{:Q11} {READ dline}
{COMP dline,} {IFCO Q4}
{READ dline}
{:Q4} {SEND ^M ^M%an7%%an12 ^M}
{SEND Quoting %to ...^J^M}
{SEND %an7%%an12 SPACEBAR = Quote Line N = Skip Line Q = Quit ^J^M}
{:Q2} {SEND ^M%an0%%an13 ^M}
{READ dline}
{COMP dline,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀} {IFCO ,Q10}
{SETV dline,▀▀▀▀▀▀ Quote ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀}
{GOTO Q5}
{:Q10} {COMP dline,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄} {IFCO ,Q5}
{SETV dline,▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄}
{:Q5} {SEND %an0%%dline}
{SETG ,.n}
{:Q6} {GETS-H ch,1,Q6}
{COMP ch, } {IFCO Q3}
{COMP ch,n} {IFCO Q2}
{COMP ch,q} {IFCO ,Q6}
{RCLO}
{:Q7}
{SETG 300,time_out}
{COMP count,0} {IFCO Q9}
{INCR count} {INCR lineno}
{SETV line%lineno,&▄▄▄▄▄▄ UnQuote ▄▄▄▄▄▄}
{COMP lineno,%max} {IFCO E17}
{INCR count} {INCR lineno}
{SETV line%lineno,}
{COMP lineno,%max} {IFCO E17}
{SEND ^J^M%an7%Finished quoting. Please continue your message ...^J^M}
{GOTO E4}
{:Q3} {COMP count,0} {IFCO ,Q8}
{INCR count} {INCR lineno}
{SETV line%lineno,&▀▀▀▀▀▀ Quote ▀▀▀▀▀▀}
{COMP lineno,%max} {IFCO E17}
{:Q8}
{INCR count} {INCR lineno}
{SETV line%lineno,%dline}
{COMP lineno,%max} {IFCO E17}
{GOTO Q2}
{:Q9} {SEND ^J^M%an7%No lines quoted. Please continue your message ...^J^M}
{GOTO E4}