 

 Ŀ
   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                                                     ChuckS|~|~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 Node3}      {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}
         {}
