home *** CD-ROM | disk | FTP | other *** search
- ══════════════════════════════════════════════════════════════════════
-
- ┌────────────────────────────────┐
- │ Chuck Seyboldt's COMMO Macro │ THE-REST
- └────────────────────────────────┘
-
- * This file combined with COMMO.MAC is my personal COMMO.MAC
- * WARNING ... some of the stuff doesn't work right.
- * This was built haphazardly and contains a few experiments.
-
- * This is the more disorganized part of my personal COMMO.MAC.
- * For the curious, it provides a copy of my Commo working environment.
-
- ! * You !NEED! to edit! lines that have a "!" in the first column.
- ^^^^^^^^^^^^^^^
- * * Lines with a "*" may be deleted.
- * Deleting my comments is a good thing to do, it saves much RAM.
-
- * With this line in COMMO.SET, Commo starts with the :start macro
- * └──┴─────> {mac=start} Startup macro label
-
- * I use the :start tool for easy portability from one machine to another.
- * Many directories are defined here. They could all have the same name,
- * but you wouldn't do that (would you?).
-
- ─────────────────────────────────────────────────────────────────────────────
- Startup Macro {:start}
- {clear}
- {setv ins_dir,%_hom%ins} ;for docs & instructions
- {setv savedir,%_hom%sav} ;for capture files
- {setv utildir,c:\util} ;for utility programs
- {setv maildir,d:\qwk} ;for .QWK and .REP files
- {setv dosdir,c:\dos} ;another place for UTIL
- {setv ramdr,i:} ;for FASTest responses
- {capt n,%savedir\%_mon%%_day.cap} ;establish capture filename
- {}
- {:retu} {return} ;Very handy labelname
- ─────────────────────────────────────────────────────────────────────────────
-
- * Tradename Author Myname
-
- * Support files in my %ramdr are: LIST.COM (Vern Buerg) l.com
- * QEDIT.EXE (Sam Mitchell) q.exe
- * DSZ.COM (Chuck Forsberg) dsz.com
- * as well as the requisite COMMAND.COM
-
- * Support files in my %dosdir are: COMMOPNS.EXE (Shad Muegge)
- * HSLINK.EXE (Sam Smith)
-
- * Support files in my %utildir are: PHONE.EXE (Johnathan Wayne)
- * DFR.COM (Gordon Haff)
- * MJOG.COM (Chris Dunford)
-
- * Support file in my %ins_dir are: COMMO.DOC
- * MACRO.DOC
- * The Home key uses LIST to read docs.
-
- * The %savedir is important: WHATEVER.CAP (session captures)
- * ADDRESS (address book)
- * RING.LOG (timestamp of RINGs)
-
- * The Commo %_hom% directory has: ASSIGN.KEY (one page help screen)
- * ACTION.%abbr% (ACTION-file to be run)
- * USED-ACT.%abbr% (ACTION-file history)
- * RINGLOG.MAC \
- * DOSFUNC.MAC > Commo macros
- * MOSTHOST.MAC /
-
- UpLoad Protocols upld
-
- ╒════════════════╕
- │ Zmodem │ {call alp} {exec-n %ramdr%\dsz.com ha bo sz -m @%_hom%files.zup} {}
- │ Ymodem/G │ {call alp} {exec-n %ramdr%\dsz.com ha bo sb -k @%_hom%files.zup} {}
- │ Zmodem/REP │ {inpu nodeid,.REP to Upload} {ifex %maildir\%nodeid.rep,,no_rep} {exec-N %ramdr%\dsz.com ha bo sz -mu %maildir%\%nodeid%.rep} {:no_rep} {}
- │ 1k-Xmodem │ {setv proto,1K-Xmodem} {call gfnu} {sxmo-k %file} {setv proto} {}
- │ Xmodem CRC │ {setv proto,Xmodem-CRC}{call gfnu} {sxmo %file} {setv proto} {}
- │ HS/Link │ {call alp} {exec-n %dosdir%\hslink.exe -@ -I2 -NV -P%_por% @%_hom%files.zup} {}
- ╘════════════════╛
-
-
-
-
-
-
-
-
-
-
-
-
- DownLoad Protocols downld
-
- ╒════════════════╕
- │ Zmodem │ {exec-n %ramdr%\dsz.com rz -mr %dldir%} {}
- │ Ymodem/G │ {exec-n %ramdr%\dsz.com rb -g %dldir%} {}
- │ Zmodem/QWK │ {exec-n %ramdr%\dsz.com rz -m d:\qwk} {}
- │ 1k-Xmodem │ {setv file,%dldir%\} {inpu file,Filename to Download (1k-Xmodem)} {rxmo %file} {}
- │ Xmodem CRC │ {setv file,%dldir%\} {inpu file,Filename to Download (Xmodem CRC)} {rxmo %file} {}
- │ HS/Link │ {exec-n %dosdir%\hslink.exe -@ -C -I2 -NV -P%_por% -R -O -K -U%dldir%} {}
- │ Ymodem │ {exec-n %ramdr%\dsz.com rb %dldir%} {}
- ╘════════════════╛
-
-
-
-
-
-
-
-
-
-
-
- Call Download Menu {:pgd} {macr downld} {return}
- Call Upload Menu {:pgu} {macr upld} {return}
- Pick N Send {:alp} {exec-n cd %dldir}
- {exec-d %dosdir%\commopns.exe %_hom%files.zup -F} {return}
-
- Get FileName, Upload {:gfnu} {setv file,%uldir\%mask}
- {leng %uldir} {setv flen,%_len} {incr %flen%,2}
- {inpu file,Filename for %proto% upload (.ZIP default)}
- {ifex %file,,addzip}
- {setv mask}
- {retu}
- {:addzip} {instring file,.}
- {ifco chek}
- {setv file,%file%.zip}
- {:chek} {ifex %file,,mask}
- {setv mask} {setv flen}
- {retu}
- {:mask} {subs mask,%flen,1,%file}
- {exec-nw4 dir %uldir%\%mask%*.* /w}
- {goto gfnu}
- *---* General *---*
- Any Command at all {:alw} {setv comm}
- {inpu comm,Enter any DOS Command below}
- {exec-W %comm} {}
- Test Command here: {:gr*} {:cla} {disp ,63,07,%_dwt %_dat%^m} {}
-
- *---* Terminal Control *---*
- Hang Up Modem {:alq} {hang} {}
- Toggle Signal Lights {:al0} {ligh} {}
- Toggle Master Sound {:al3} {soun} {}
- Toggle Local Echo {:al6} {loca} {}
- Access Connect Parms {:all} {dpar} {}
- Clear display & more {:alc} {parm ,,,,} {clea} {setv abbr} {}
- Toggle Status Line {:al-} {statusline} {return}
-
- * This doorway mode toggle has a feature that you need to be aware of.
- * It is setup to send the "drop to DOS" command to a PCBoard host.
- * You may want to take those "!" lines right out of the picture.
-
- Toggle Doorway Mode {:al=} {comp dway,yes} {ifco ext}
- {setv dway,yes}
- ! PCBoard Drop to DOS command {send 9 y|} You probably want it out!
- {doorway-m0} {}
- {:ext} {setv dway}
- ! Return from DOS to PCBoard {send exit|} Remove this line too!
- {doorway-m0} {}
-
- *---* Send Strings *---*
- !Send Name {:nf1} {send Chuck Seyboldt|} {}
- Send Password {:nf2} {send %_pas|} {}
- !Send Signature {:nf0}
- {send Chuck·S|~|~SN|}{}
-
- *---* Utilities *---*
- DSZ terminal shell {:af1} {exec-d %ramdr%\dsz.com t -8g} {}
- Directory Freedom {:cf5} {:cky} {exec-d %utildir%\dfr.com} {}
- List {:nf3} {setv file,%dldir%\}
- {inpu file,File to List}
- {exec-D %ramdr%\l.com %file} {}
- Qedit {:nf5} {setv file,%dldir%\}
- {inpu file,File to Edit}
- {exec-D %ramdr%\q.exe %file} {}
- Dial Phone for voice {:nf6} {setv file}
- {inpu file,Name or Number to Call}
- {exec-N phone %file} {}
- Shell To DOS {:nf4} {shell} {}
- Mjog {:alj} {exec-w mjog /l} {return}
- See DOS Environment {:als} {exec-w set} {return}
-
- *---* Commo Help and quick reference *---*
- Show Key Assignments {:alk} {exec-w type %_hom%assign.key} {}
- List Commo DOCS {:hom} {exec l %ins_dir\*.doc} {}
- Call Commo HELP {:alh} {help} {}
-
- *---* Session History *---*
- Enter Scrollback {:upa} {screen n,%savedir\savescro} {scro} {}
- Edit Capture File {:dna} {exec-d %ramdr%\q.exe %_cap} {}
- List Capture File {:lfa} {exec-d %ramdr%\l.com %_cap} {}
- Review Past Capture {:rta} {exec-d %ramdr%\l.com %savedir\*.cap} {}
- Capture Screen {:gr+} {screen y,%savedir\commo.scn} {}
- Show Screen Capture {:gr-} {edit %savedir\commo.scn} {}
- Review Call Log {:alr} {exec-d %ramdr%\l.com %_hom%commo.log} {}
- Edit ACTION File {:end} {inpu abbr,Which 2-letter ACTION File?}
- {edit %_hom%action.%abbr%} {}
-
- *---* Load other macros from here *---*
- Load HOST mode {:al5} {macl mosthost.mac,bbs} {}
- RingLOG Macro {:sf5} {macload ringlog.mac,g01} {return}
- DosFunc Macro {:nf9} {macload dosfunc.mac,g01} {return}
-
- *---* Messaging macros *---*
- Ascii Upload {:ala} {asci %dldir%\,:} {}
- Capture/Quote Message {:alo} {screen n,%_hom%quote.in}
- {scro} {edit %_hom%quote.in}
- {ifex %_hom%quote.in,,equote}
- {rope %_hom%quote.in,equote}
- {:nline} {read line} {send -> %line%^m^j}
- {goto nline}
- {:equote} {send ^m} {exec-n del %_hom%quote.in} {}
-
- *---* An automatic ASCII message entry system for PCBoards *---*
- {:nf8} {setv file,%dldir%\} {inpu file,Name of Upload Message}
- {ifex %file%,,n_e}
- {parm ,,,,2} {send e|} {asciiup %file%,}
- {parm ,,,,0} {send ~~|~~~sn|}
- {lookfor Command?}
- {display ,,,^j^j}
- {display ,18,1E,▌ Erase %file%? [Y/n] ▐^m}
- {setlook 5,y_d,,}
- {golook y_d,y}
- {golook n_e,n}
- {lookfor 'N' Skips Message Delete}
- {:y_d} {exec-n del %file}
- {:n_e} {send ^h}{disp ,18,, ^m}{}
-
- *---* A guarded Alt-X command when leaving Commo from the terminal screen.
- {:alx} {setv count,0} {setescape-p0 noex}
- {display 24,1,74, EXIT ^(Commo^) at "30" > }
- {display ,,70, Are you Sure? (Y/n) }
- {display 24,26}
- {setv %count,0} {setv %resp,0} ;initialize variable
- {:xlop} {setg 1,upct,n} {gets-h %resp,1,q_t} ;set up 1 second wait
- {comp %resp,n} {ifcon noex} ;compare response
- {comp %resp,y} {ifcon q_t} ;if resp = y, goto :q_t
- {:upct} {disp 24,26,71,%count}
- {disp 24,26} {incr %count}
- {comp %count,31} {ifcon-G q_t,xlop} {retu} ;loop or :q_t
- {:noex} {display 24,1,, ^m}
- {retu}
- {:q_t} {exit}
-
-
- *---* A tool to search a file for a string.
- *---* Display the entire first line that includes a match.
-
- {:cf3} {inpu name,Name to search from ADDRESS book}
- {rope %savedir\address,aend}
- {:aloop} {read addr}
- {inst addr,%name}
- {ifco ,aloop}
- {setv oldrow,%_row} {setv oldcol,%_col}
- {setv row,%_row} {decr row,2}
- {disp %row,1,20, }
- {disp %row,1,20,%addr} {disp %oldrow,%oldcol}
- {rclo}
- {:aend} {setv row} {setv oldrow} {setv oldcol}
- {setv name} {setv addr} {retu}
-
- *---* Automatic mark and dial routines *---*
-
- !{:sf7} {hold 05:30} {call nfb} {}
- !{:nf7} {unmark} {mark Weather} {dial ,} {}
- !{:nfa} {hold 05:30}
- ! {mark 2 ■,3 ■} {dial-c 40,}
- ! {mark weather} {dial-c 40,} {retu}
- !{:nfb} {unmark} {mark 2 ■,3 ■} {dial-c 40,} {unmark} {}
- !{:sfb} {:sfa} {mark 2 ■,3 ■,Maine,smvti,wolf's,direct,dataw,ledge}
- {disp 6,21,1f,║ Weekend! Dial All ■ marked BBS's ║}
- {dial -c 40,} {}
- !{:sf1} {unmark} {mark Node 3} {dial 15} {}
- !{:sf2} {unmark} {mark Director} {dial 15} {}
- !{:sf3} {exec-n d:\br\jabber} {}
-
- *---* Routines that might be useful to a remote sysop *---*
-
- Aview at NLBBS {:alv} {door-m0} {send aview|} {setv dway,yes} {}
- View ANSWER1 {:cf9} {exec-d %ramdr%\l.com %savedir\answer1} {}
- View COASTAL sessions {:cf0} {exec-d %ramdr%\l.com %savedir\*.log} {}
- Edit Upgrade Instruct {:ale} {setv file,%ins_dir\setup.ins}
- {inpu file,File to edit}
- {edit %file} {setv file} {}
-
- ┌──────────────────────────────────────────────────────────────────────────┐
- │ Download list tagging using COMMO built-in tools │
- ├──────────────────────────────────────────────────────────────────────────┤
- │ * Featuring dual-function Alt-D * │
- │ * depending on ON/OFF line Status * │
- ├──────────────────────────────────────────────────────────────────────────┤
- │ {:ald} {ifca mlist} ;Alt-D first checks for CARRIER │
- │ {dial} {} ;If NO, bring up dialing directory │
- │ │
- │ {:mlist} {scre n,%_hom%dl-list} ;If CARRIER ONLINE, name screen image │
- │ {scro} ;Enter scrollback mode: │
- │ ; This is where you will tag files │
- │ ; Use the "W" facility in scrollback │
- │ ; Press C/R twice on each file to tag │
- │ ; Press ESC to quit tagging. Next, │
- │ {edit %_hom%dl-list} ;Enter COMMO's built-in editor: │
- │ ; Add or delete file names, 1 per line │
- │ ; Description text will be stripped │
- │ ; later in the macro. │
- │ {ifex %_hom%dl-list,dstart} {} ;Graceful exit if you deleted all lines. │
- │ │
- │ {:dstart}{setv file} │
- │ {inpu file,C/R to Start DownLoad Now} ;A chance to exit │
- │ {comp file} {ifco go-dl} {} ; before start of d/l. │
- │ │
- │ {:go-dl} {send d|} ;To the BBS, the download command │
- │ ; (or use the FLAG command) │
- │ {rope %_hom%dl-list,end-dl} ;Open file list for reading │
- │ │
- │ {:next-1}{read file} ;Read one complete line into %file% │
- │ {subst file,1,12,%file} ;Strip all but first 12 characters │
- │ {send ~~~%file%|} ;Send filename to BBS │
- │ {goto next-1} ;Repeat read unti dl-list is all read │
- │ │
- │ {:end-dl}{exec-n del %_hom%dl-list};Delete the list after sending │
- │ {send ~|} {} ;This macro is ended. │
- │ ;Waiting for Auto-Zmodem d/l? │
- └──────────────────────────────────────────────────────────────────────────┘
-
- ┌────────────────────────────────────────────────────────────────┐
- │ COMMO Macro that calls a WAFFLE BBS and checks for ZIPNEWS │
- ├────────────────────────────────────────────────────────────────┤
- │ │
- │ * This macro uses a variable called %pword2%. │
- │ * That variable is defined in my COMMO.FON file so I can │
- │ * freely share all of my COMMO.MAC file with the world. │
- │ │
- │ {:cfb} {send open inet|} │
- │ │
- │ {parm ,,,,390} │
- │ {setlook 30,,15,|} │
- │ {golook byz,try later} │
- │ {lookfor NEW:} {send ~cboldt|} │
- │ {lookfor Password:} {send %pword2|} │
- │ {lookfor Command? } {send ~zipnews|} │
- │ {setlook 240,nozn,,} │
- │ {golook nozn,No new articles} │
- │ {lookfor Found:} {setg ,,l} {gets-H count,7} │
- │ {comp count,15} {ifco-L nozn} │
- │ {lookfor articles?} {send ~~y|} │
- │ {lookfoR ^xB00} │
- │ {exec-N dsz rz -m %dldir\inet%_mon%%_day.zip} │
- │ {:nozn}{setlook ,,10,n|} │
- │ {lookfor Command? } {parm ,,,,600} │
- │ {send ~bye|} {parm ,,,,0} │
- │ {pause 5} {ifca ycar} {return} │
- │ {:ycar}{setlook ,,5,|} │
- │ {lookfor Command?} {send m|} │
- │ {return} │
- └────────────────────────────────────────────────────────────────┘
-
- *---* Call the National Weather Service.
- *---* This macro saves to a disk file and to the printer.
-
- {:wtr} {exec-N xeq prstring 018 027 077 027 120 000 027 108 008 027 048}
- {exec-N f:}
- {exec-N cd \futil}
- {exec-N yow >prn}
- {exec-N xeq prstring 010 010 010}
- {exec-N d:}
- {pause 2}
- {send |}
- {pause 2}
- {setlook 60,abt,5,|}
- {send |}
- {lookfor er Case}
- {send y|}
- {setlook 120,abt,15,|}
- {:ec0} {push} {golook n|,N,NS?}
- {lookfor FIRST} {pops}
- ! {send Chuck|}
- {lookfor Last}
- ! {send Seyboldt|}
- {lookfor echo)?}
- {send %_pas|}
- {lookfor Function}
- {send P|}
- {setlook 15,abt,5,|}
- {lookfor PUBLIC <}
- {send 1|}
- {lookfor FORECAST}
- {clear} {capture y,%dldir%\report.wtr} {printlog y}
- {exec-N echo ******************************* >> %dldir%\report.wtr}
- {exec-N echo WEATHER FOR %_dat %_tim >> %dldir%\report.wtr}
- {exec-N echo ******************************* >> %dldir%\report.wtr}
- {setlook 120,abt,5,|}
- {lookfor TIDES}
- {clear} {capture n} {printlog n}
- {pause 4}
- {send |}
- {setlook 10,abt,5,|}
- {lookfor PUBLIC <}
- {send 7|}
- {lookfor SUMMARY}
- {clear} {capture y,%dldir%\report.wtr} {printlog y}
- {exec-N echo ======---------------------====== >> %dldir%\report.wtr}
- {exec-N echo STATE WEATHER SUMMARY >> %dldir%\report.wtr}
- {exec-N echo ======---------------------====== >> %dldir%\report.wtr}
- {setlook 120,abt,5,|}
- {lookfor Enter to continue}
- {clear} {capture n,%savedir\%_mon%%_day.cap} {printlog n}
- {pause 2}
- {send |}
- {setlook 20,abt,5,|}
- {lookfor PUBLIC <}
- {send |} {goto ewr}
- {lookfor FUNCTION}
- {send A|}
- {lookfor Almanac <}
- {Send 8|}
- {lookfor SNOW...}
- {lookfor .^m}
- {clear} {capture y,%dldir%\almanac.wtr} {printlog y}
- {exec-N echo ************************************* >> %dldir%\almanac.wtr}
- {exec-N echo ALMANAC ENTRY FOR %_dat %_tim >> %dldir%\almanac.wtr}
- {exec-N echo ************************************* >> %dldir%\almanac.wtr}
- {setlook 120,abt,10,|}
- {lookfor continue ?}
- {clear} {capture n,savedir\%_mon%%_day.cap} {printlog n}
- {send |}
- {setlook 10,abt,5,|}
- {lookfor ALMANAC <}
- {send |}
- {:ewr} {lookfor Function}
- {send G|}
- {lookfor Comment}
- {send N|}
- {lookfor NO CARRIER}
- {hangup y} {call sf5} {}
- {:abt} {send |~~~|~~~~~~~G|~~~~~N|}
- {clear} {capture n,savedir\%_mon%%_day.cap} {printlog n}
- {hangup y} {retu}
-
- *---* The environment variable macro below is obsolete.
- ┌────────────────────────────────────────────────────────────────────────┐
- │ COMMO Macro to transfer a DOS environment variable to a COMMO variable │
- ├────────────────────────────────────────────────────────────────────────┤
- │ {inpu e_var,Name the DOS variable to transfer to ^(Commo^)} │
- │ {exec-n set>%ramdr%\temp} │
- │ {rope %ramdr%\temp,edone} │
- │ {:eloop} {read c_str} │
- │ {inst c_str,%e_var} │
- │ {ifco ,eloop} │
- │ {inst c_str,=} │
- │ {setv posi,%_pos} │
- │ {incr posi} │
- │ {subs %%e_var,%posi,255,%c_str} │
- │ {rclo} │
- │ {:edone} {setv c_str} {setv e_var} {setv posi} │
- │ {exec-n del %ramdr%\temp} {retu} │
- └────────────────────────────────────────────────────────────────────────┘
-
- *---* Providing anti-crash protection on downloads
-
- {inpu file, Start}
- {:shuffle?} {setv ext,1000}
- {ifex %dldir\%file,shuffle!,retu}
- {:shuffle!} {decr ext}
- {inst %file,.}
- {ifco ,newname}
- {setv pos,%_pos} {decr pos}
- {subs file,1,%pos,%file}
- {:newname} {setv file,%file.%ext}
- {ifex %dldir\%file,shuffle!,retu}
-
- *---* Making a mark on every 00/00/00 dialing directory entry
-
- {rope %_fon,retu}
- {:agin} {read bbsname}
- {inst %bbsname%,/}
- {ifco ,agin}
-
- {setv pos,%_pos}
- {decr pos,2}
- {subs mo,%pos,2,%bbsname}
-
- {comp mo,00}
- {ifco ,agin}
-
- {subs bbsid,70,8,%bbsname}
- {mark %bbsid}
- {goto agin}
-
- *---* This macro was designed to press a key every 7 minutes
- {:perpet} {setv hr,%_24h} {setv min,%_min} {setv interval,7}
- {incr min,%interval%}
- {comp min,54}
- {ifco-G up_hr}
- {goto p_loop}
- {:up_hr}
- {comp hr,23}
- {ifco ,p_loop}
- {setv hr,0}
- {:p_loop} {hold %hr%:%min%} {send hi! } {goto perpet}
- {}
-
- *---* This macro is related to my workplace. Should be in a separate.MAC
- {:get_pn} {disp 9,34,1e, }
- {inpu part,What Part Number? ("q" to quit)}
- {inst part,q}
- {ifco endmac}
- {call get_op}
- {call modify}
- {call send_op}
- {goto get_pn}
- {:endmac} {}
-
- {:get_op} {setv desc} {setv op_no} {setv string} {setv wc}
- {setv sut} {setv setup}
- {disp 9,23,1f, }
- {disp 9,26,1e,Part #: %part}
- {inpu op_no,Operation Number}
- {comp op_no}
- {ifco get_pn}
- {rope %_hom%work\opdata,get_op}
- {:data_loop} {read opdata}
- {subs test,1,4,%opdata}
- {comp test,%op_no}
- {ifco-E ,data_loop}
- {rclo}
- {subs wc,17,6,%opdata}
- {subs desc,25,20,%opdata}
- {subs sut,49,5,%opdata}
- {subs setup,57,1,%opdata}
- {setv opdata}
- {retu}
-
- {:modify} {inpu desc,Description of Op# %op_no}
- {inpu wc,Default WC: OP %op_no% : %desc}
- {inpu sut,Standard Unit Time for %desc}
- {inpu setup,Setup Time for %desc}
- {setv ok,y}
- {inpu ok,%desc Run=%sut Setup=%setup WC=%wc OK?}
- {comp ok,y}
- {ifco ,modify}
- {retu}
-
- {:send_op} {disp 2,5,,Operation Number: %op_no%}
- {disp 3,5,,Is in Workcenter: %wc}
- {disp 4,5,,Operation Called: %desc}
- {disp 5,5,,Standard Unit Hr: %sut}
- {disp 6,5,,Setup Hours: %setup}
- {retu}
-
- *---* Play Space Below:
-
- {:cf2} {setg 20,end,l}
- {gets-hx play,5} {:end} {}
-
- {setv play1} {input play1,Put in a value for "PLAY1"} ;try 'NODE'
- {setv play2} {input play2,Put in a value for "PLAY2"} ;try 'ID'
- {display ,,,^j^j^m}
- {display ,,,The variable Play1 is: %play1} {disp ,,,^J^M}
- {display ,,The variable Play2 is: %play2} {disp ,,,^m^j}
- {display ,,,Variable Play1+Play2 is: %play1%%play2}{disp ,,,^m^j}
- {setv-s play3,%play1%%play2}
- {display ,,,The variable play3 = the variable %play1%%play2%: %play3}
- {}
-