 {COMMO} (tm) Help  (C)Copyright 1989-1997 Fred P. Brucker  All Rights Reserved

[00.10] ****  SETGet

 Default key:   none
 Description:   Set parameters for GETString functions.

 General form:

      {SETGet seconds,label,y/n/l,string}

           seconds
                GETString timeout.  If a character is not entered in the
                specified amount of time, the macro in the second argument will
                be started.  May be 0 to 999.  Default is 0 (disabled).

           label
                Timeout macro.  Macro to GOTO if the time in the first argument
                expires.  If no macro is specified or if the macro label is
                invalid, control will pass to the function following the
                GETString.  Default is no macro.

                Note that if the timer expires no variable assignment will be
                made.  Any previous assignment will be unaltered.

                IMPORTANT!  If the GETString is in a CALLed subroutine, be sure
                to execute a RETUrn or POPS at the label.

           y/n/l
                Echo Status.  If this is "yes", characters entered at the local
                or remote terminals will be echoed back to the remote and
                displayed locally.  This is the default.

                If "no", characters will not be echoed to either location.

                If "local", characters will be displayed locally, but not
                echoed to the remote.  This should be used when the remote is a
                host system.

                IMPORTANT!  This setting is independent of Local Echo.  Turn on
                Local Echo if necessary for local display of data transmitted
                with SEND, ASCIiup, etc.

           string
                Terminator response.  This string will be sent and/or displayed
                locally (in accord with the Echo Status) when a carriage return
                is received (input terminated).  This is typically a carriage
                return/linefeed.  May be up to 32 characters.  Default is no
                string.

 Example:

      {setg 120,noget,y,^m^j}
           Set GETString parameters.


 The SETGet function will set parameters for all subsequent GETString
 functions.  It may be executed at any time to modify the parameters.

 When macro execution terminates, the parameters will be reset to the default
 values.

 Default arguments are:

      GETString timeout        0 (disabled)
      Timeout macro            none
      Echo status              y (echo on)
      Terminator response      none

 IMPORTANT!  Null arguments in the SETGet function will be set to these
 defaults.

 See also GETString.


[00.20] ****  SETLook

 Default key:   none
 Description:   Set parameters for LOOKfor functions.

 General form:

      {SETLook seconds,label,seconds,response}

           seconds
                LOOKfor timeout.  Maximum time in seconds to look for strings.
                If no string is found in the allotted time, the macro in the
                second argument will be started.  May be 0 to 999.  Note that
                this timer is restarted whenever a string is sent by SSLOok.
                Default is 0 (disabled).

           label
                Timeout macro.  Macro to GOTO if the time in the first argument
                expires.  If no macro is specified or if the macro label is
                invalid, control will pass to the function following the
                LOOKfor.

                IMPORTANT!  If the LOOKfor is in a CALLed subroutine, be sure
                to execute a RETUrn or POPS at the label.

           seconds
                "No data" timeout.  If no characters are received from the
                remote system for the specified amount of time, {COMMO} will
                take action as indicated by the "N" switch (see below).  The
                timer is restarted whenever a character is received.  May be 0
                to 999.  Default is 0 (disabled).

                IMPORTANT!  The timeout should be long enough (or disabled
                entirely) to prevent a premature response.

           response
                This argument is a string or a macro label depending on the
                setting of the "N" switch (see below).  Default is no string or
                label.

 Switches:

      N0
           The response argument is a string (up to 32 characters).  This is
           useful if unexpected prompts appear, such as "Press any key" or
           "More [Y/n]".  Specify a generic response such as "|" or "n|" and
           {COMMO} will send it each time the "no data" timer expires
           (default).

           NOTE: The timer will be restarted after the response is sent or if
           any keys are typed while waiting (allowing a manual response to a
           prompt which the macro does not handle).

      N1 or N
           The response argument is a macro label.  If the "no data" timer
           expires, {COMMO} will GOTO the label.

 Examples:

      {setl 60,abc,4,n|}
           The LOOKfor timeout is set to 60 seconds; GOTO "abc" if the timer
           expires.  If no characters are received for 4 seconds, send the
           string "n|" (and keep looking).

      {setl-n 300,toolong,30,nodata}
           The LOOKfor timeout is set to 300 seconds; GOTO "toolong" if the
           timer expires.  If no characters are received for 30 seconds, GOTO
           the label "nodata".

 The SETLook function will set parameters for subsequent LOOKfor functions and
 may be executed at any time to modify the parameters.

 When macro execution terminates, the parameters will be reset to the default
 values.

 Default arguments are:

      LOOKfor timeout     0 (disabled)
      Timeout macro       none
      "No data" timeout   0 (disabled)
      Response            none

 IMPORTANT!  Null arguments in the SETLook function will revert to these
 defaults.

 See also LOOKfor, SSLOok, CALOok, GOLOok.


[00.30] ****  SETR

 Default key:   none
 Description:   Define a label to GOTO when a Macro Error occurs.

 Examples:

      {setr error}
           GOTO "error" when any Macro Error occurs.

      {setr}
           Reset to no label.

 SETR allows a macro to get control when a Macro Error occurs.  All macro
 parameters (see STOP) will be reset after the error (including the SETR
 label).

 TIPS on using SETR:

  >   The built-in variable "_met" will contain an error message describing the
      most recent error.

  >   Variable Space will not be changed.

  >   If the specified label does not exist, or if no label is currently
      specified, {COMMO} will STOP and indicate the location of the error.


[00.40] ****  SETUp

 Default key:   Alt+G
 Description:   Edit Setup File.

 Example:

      {setup}
           No arguments.


[00.50] ****  SETVariable

 Default key:   none
 Description:   Assign a string to a variable name.

 General form:

      {SETVariable name,string}

           name
                The name of the variable to which the string will be assigned.

           string
                A string of up to 240 characters (after expansion of any
                variables).  The expanded string may also be the name of an
                environment variable (see the "E" switch below).

 Switches:

      E1 or E
           This switch indicates that the second argument is a DOS environment
           variable.  If it is not found in the environment, the variable will
           be set to NULL.

           Note that environment variable names are CASE SENSITIVE (they are
           usually upper case).

      E0
           Normal variable (default).

      R1 or R
           Release variables from String Variable Space, starting with the
           named variable, to the end of Variable Space.  Released variables
           are set to null.

      R0
           Release all variables from Variable Space.

      S2
           Expand all variables in the second argument (as usual), then expand
           the second argument again.  This allows variables that are contained
           within variables to be expanded.

      S1 or S
           Expand all variables in the second argument, then treat the second
           argument as a variable name and expand it.  Note that the string
           resulting from the first expansion must NOT begin with a "%".  This
           can be used to create a "subscript."

      S0
           Normal expansion of the second argument (default).

 Examples:

      {setv net,nodeid}
           Assign the string "nodeid" to the variable name "net".

      {setv nodeid,ggcs_bbs}
           Assign the string "ggcs_bbs" to the variable name "nodeid".

      {setv-s board,%net}
           Assuming the above examples have been executed, this will set the
           variable "board" to "ggcs_bbs".

      {setv-s xxx,yyy%index}
           Suppose the variable "index" has the value "3".  It will be expanded
           first, then "yyy3" will be expanded and its value assigned to "xxx".

      {setv-s2 welcome,%wel_msg}
           If the variable "wel_msg" contains the string "Welcome, %name!" and
           the variable "name" contains the string "Fred", the variable
           "welcome" will be set to "Welcome, Fred!".

      {setv-e abc,TABLE}
           Assuming a "SET TABLE=" DOS command has been executed prior to
           running {COMMO}, the variable "abc" will be set to the environment
           string.

      {setv-r _mark_}
           Release all variables from the "_mark_" variable to the end of
           Variable Space.  The "_mark_" variable should have been set to a
           non-null value at some prior time.

      {setv abc} or {setv abc,}
           Set the variable "abc" to null (it will be deleted from variable
           space).


[00.60] ****  SFICtrl

 Default key:   none
 Description:   Speech Friendly Interface control.

 Switches:

      E1 or E
           Set expert mode.

      E0
           Set novice mode.

 Examples:

      {sfic}
           Toggle Speech Friendly Interface on/off.

      {sfic-e y}
           Turn on Speech Friendly Interface, set expert mode.

      {sfic n}
           Turn off Speech Friendly Interface.

 The built-in variable "_sfi" is 1 when the Speech Friendly Interface is ON, 0
 when it is OFF.


[00.70] ****  SHELl

 Default key:   Alt+S
 Description:   Shell to DOS.

 Switches:

      M1 or M
           Display "Swapping to Disk" just prior to swapping (default).

      M0
           Do not display the swapping message.

      S1 or S
           Swap to disk before shelling to DOS (see details under EXECute,
           "Using the Swap to Disk Switch").

      S0
           Do not swap to disk (default).

 Examples:

      {shell}
           No arguments.

      {shell-s}
           Swap to disk before shelling to DOS.


[00.80] ****  SIGNal

 Default key:   none
 Description:   Set state of hardware signals.

 Switches:

      D1 or D
           Set DTR high.

      D0
           Set DTR low.

      R1 or R
           Set RTS high.

      R0
           Set RTS low.

 Example:

      {signal-d0r1}
           Turn off DTR, turn on RTS.

 The "D" and "R" switches are used to control the RS-232C signals DTR (Data
 Terminal Ready) and RTS (Request To Send).  The default for each switch is to
 leave the signal unchanged.  Use these with care due to interaction with
 Hardware Flow Control, etc.


[00.90] ****  SOUNd

 Default key:   none
 Description:   Set Master Sound toggle.

 Examples:

      {sound}
           Toggle Master Sound on/off.

      {sound y}
           Turn on Master Sound.

      {sound n}
           Turn off Master Sound.


[01.00] ****  SPDCtrl

 Default key:   none
 Description:   Serial port display control.

 Examples:

      {spdc y}
           Serial port display is ON.

      {spdc n}
           Serial port display is OFF.

 This function will suppress display of any data received from the serial port.
 It can be used when a "clean" display is desired during automated procedures.

 TIPS on using SPDCtrl:

  >   Serial port display can be suppressed only while a macro is running (it
      will be restored to ON at macro termination).

  >   ANSI control sequences are not processed while the display is OFF
      (Terminal Emulation effectively reverts to TTY).

  >   LOOKfor will react as if TTY emulation was set (ANSI sequences are not
      stripped).  If necessary, make a manual run using TTY emulation to see
      what the LOOKfor will see.

  >   SCREEN Capture Mode will not capture any of the incoming data.  If
      capture is required, RAW mode or FILTER mode must be used (note that ANSI
      sequences will not be removed).


[01.10] ****  SPOCtrl

 Default key:   none
 Description:   Serial port output control.

 Examples:

      {spoc y}
           Serial port output is ON.

      {spoc n}
           Serial port output is OFF.

 This function will inhibit any data from being sent to the serial port.  All
 other program operations will be normal.  It can be used for "local mode" in
 host macros (no data is sent to the modem).

 TIPS on using SPOCtrl:

  >   Serial port output can be inhibited only while a macro is running (it
      will be restored to ON at macro termination).

  >   Dialing and internal file transfer protocols will not operate properly if
      serial port output is turned OFF.


[01.20] ****  SSLOok

 Default key:   none
 Description:   Send a string when a string appears.

 General form:

      {SSLOok name,target}

           name
                The name of a string variable (MUST be a variable).

           target
                The ASCII string to look for.  The string begins following the
                "," and is terminated by the "}".

 Switches:

      R1 or R
           Send a carriage return after sending the variable string to the
           serial port.

      R0
           Do not send a carriage return (default).

 Example:

      {setv ss_r,|} {setv ss_nr,n|}
      ...
      {sslo-r _pas,password:}
      {sslo ss_r,Press enter to continue}
      {sslo ss_nr,Do you want to log off?}
      {look command?} ...

 SSLOok is used in conjunction with the LOOKfor function.  It sets up an
 additional string to look for.  When the target string appears, the string in
 the variable is sent to the serial port.  The LOOKfor timeout (specified in a
 SETLook) is restarted and the LOOKfor continues to look for all specified
 strings.

 See LOOKfor for details, examples and tips on using SSLOok.

 See also CALOok, GOLOok, SETLook.


[01.30] ****  STATusline

 Default key:   none
 Description:   Set Status Line toggle.

 IMPORTANT!  The Status Line is {COMMO}'s instrument panel.  You should not
 turn it off until you are familiar with operating the program.

 Examples:

      {statusline}
           Toggle Status Line on/off.

      {status y}
           Turn on Status Line.

      {status n}
           Turn off Status Line.

 When the Status Line is off (not visible), The Terminal Screen has one
 additional display row (e.g., 25 rows instead of 24).

 The STATusline function is ignored while in Chat Mode.


[01.40] ****  STOP

 Default key:   none
 Description:   Halt macro execution.

 Examples:

      {stop}
           No arguments.

      {}
           Short form.

 STOP always returns {COMMO} to manual operation in the Terminal Screen.  All
 macro parameters are reset (except string variables).  This includes the macro
 push/pop stack, SETLook, SETGet, SETEsc, etc.  Files opened with ROPEn and
 WOPEn will be closed.


[01.50] ****  STRAn

 Default key:   none
 Description:   Maintain Send Translate Table.

 Switches:

      I1 or I
           Initialize Send Translate Table to default values (consecutive 0 to
           255).

      I0
           Do not initialize (default).

 Examples:

      {stran y}
           Turn send translation ON.

      {stran-i n}
           Initialize the table and turn it OFF.

      {stran-i y,92,47}
           Initialize the table, turn send translation ON, change "\" to "/".

      {stran}
           Toggle send translation ON/OFF.

      {stran #13,65,78,#13,78,65,#13,97,110,#13,110,97}
           ROT13 translation.  This swaps the first 13 letters of the alphabet
           for the second 13.

 Rules for STRAn arguments are the same as for the "str" item in the Setup
 File.  In addition, "n" may be used as the first argument to turn send
 translation OFF at any time.

 See "Alt+G  Edit Setup File" for details and more examples.

 TIPS on using STRAn:

  >   Some control characters are unaffected by translation when certain
      features are enabled.  Examples:  XON (17) and XOFF (19) are not
      translated when Software Flow Control is on.  When ENQ/ACK emulation is
      on, an ACK sent in response to an ENQ will not be translated.

  >   In GETString, data echoed to the modem (and displayed locally) will be
      translated with the Send Translate Table (it may be necessary to turn
      send translation off during certain GETString functions).

 See also RTRAn.


[01.60] ****  SUBString

 Default key:   none
 Description:   Move a substring to a variable.

 General form:

      {SUBString name,start,count,string}

           name
                The name of the variable to which the substring will be
                assigned.

           start
                The starting character number (first character is "1").  If it
                is negative, {COMMO} will count in from the end of the string.

                If it is too large and positive, the substring will be null.

                If it is too large and negative, the substring will start at
                the beginning of the string.

           count
                The number of characters to use.  If the number is too large,
                {COMMO} will use as many as possible.  If the count is 0, the
                substring will be null.

           string
                The string to use.

 Examples:

      {subs var_sub,2,4,abcdefgh}
           Set "var-sub" to "bcde".

      {subs newvar,-5,20,abcdefgh}
           Set "newvar" to "defgh".


[01.70] ****  SXMOdem

 Default key:   none
 Description:   Send a file using the Xmodem protocol.

 Switches:

      See SYMOdem (switches are the same).

 Example:

      {sxmo-ka c:\ul\file.zip}
           Send "file.zip" using 1024 byte block size (Xmodem-1k), sound the
           alarm.

 Only one file may be sent with each SXMOdem function.

 See SYMOdem for tips that apply to both SXMOdem and SYMOdem.


[01.80] ****  SYMOdem

 Default key:   none
 Description:   Send a file using the Ymodem Batch protocol.

 Switches:

      NOTE: U, D, A and W switches are the same as for SZMOdem.

      K1 or K
           Use 1024 byte block size.

      K0
           Use 128 byte block size (default).

 Examples:

      {symo-ka %uldir\*.zip}
           Send all .ZIP files in the upload directory using 1024 byte block
           size, sound the alarm.

      {symo-k c:\subdir\*.*,@c:\ul\file.lst,info.txt,a:*.qw?}
           Send all files listed using 1024 byte block size.

 See "File Specifications" under SZMOdem for more details on specifying files
 for uploading.

 TIPS on using SYMOdem and SXMOdem:

  >   CRC vs. Csum mode and use of "G" method is determined by the receiver.
      Block size is determined by the sender.  {COMMO} will always use 1024
      byte blocks with "G" method.

  >   Some conditions that will cancel a transfer:
        >   10 consecutive errors.
        >   Any error when "G" method is used.
        >   The receiver has transmitted CAN (^X) characters.
        >   Loss of carrier.

  >   The Exit Code (test with IFER) will be set at the end of the transfer and
      will also be stored in the variable "_err".  0 means all files were
      transferred successfully.  1 means one or more files in the batch were
      not completed.

  >   If the Usage Log is enabled, an entry will be made after each file is
      transferred (or if a transfer is cancelled).


[01.90] ****  SZMOdem

 Default key:   none
 Description:   Send a file using the Zmodem Batch protocol.

 Switches:

      R1 or R
           Tell the receiving program to resume the transfer at the end of the
           existing file.

      U1 or U
           Delete files after successful transmission.  Use with CAUTION!

      D1 or D
           Cancel transfer if Carrier Detect is lost (default).

           NOTE: If Carrier Detect is off when the transfer is started, this
           switch will behave as if "D0" had been set.

      D0
           Ignore state of Carrier Detect.

      A1 or A
           Sound the success or fail alarm at end of the transfer.

      A0
           Do not sound the alarm (default).

      W
           Wait for a keypress at end of transfer.

      Wn
           Wait for "n" seconds, "n" may range from 0 to 999.  Press a key to
           cancel the wait.

           NOTE: Default (no "W" switch) is no wait.

 Examples:

      {szmo-a %uldir\*.*}
           Send all files in the upload directory, sound the alarm when
           finished.

      {szmo-u ginger.rep}
           Send "ginger.rep" and delete it after a successful transfer.


[02.00] ***  File Specifications

 Any combination of file specifications may be listed in the SZMOdem or SYMOdem
 functions.  These must be separated with commas and may include wildcard
 specifiers (*,?), the indirect file specifier (@) and any single files.

 If a filespec is preceded with the "@" sign, it will be assumed to be an
 "indirect file."  This means that it is a text file containing a list of
 filespecs.  Filespecs should be listed one per line and each line should end
 with a cr/lf (i.e., a normal text file).  Each filespec may contain wildcards.
 For example:

      c:\subdir\*.*
      info.txt
      a:*.qw?

 TIPS on using SZMOdem:

  >   Some conditions that will cancel a transfer:
        >   20 consecutive errors.
        >   The receiver has cancelled.
        >   Loss of carrier.

  >   The Exit Code (test with IFER) will be set at the end of the transfer and
      will also be stored in the variable "_err".  0 means all files were
      transferred successfully.  1 means one or more files in the batch were
      not completed.

  >   If the Usage Log is enabled, an entry will be made after each file is
      transferred (or if a transfer is cancelled).


[02.10] ****  TOGGles

 Default key:   Alt+T
 Description:   Set various toggle parameters.

 Example:

      {toggles}
           Open Set Toggles window.


[02.20] ****  UNLOad

 Default key:   none
 Description:   Unload the current auxiliary Macro File.

 Examples:

      {unload}
           No arguments.

 The auxiliary Macro File will be released from memory.  If no auxiliary is
 loaded, no action will be taken.

 If this function is executed from the auxiliary file, a STOP will occur after
 the auxiliary is released.

 See also CALL, GOTO.


[02.30] ****  UNMArk

 Default key:   none
 Description:   Unmark Dialing Directory entries.

 Switches:

      L1 or L
           Unmark last-dialed entry only.

      L0
           Unmark all or listed entries (default).

 Examples:

      {unmark joes-bbs,file-city}
           Unmark listed entries.

      {unmark}
           Unmark all entries.

      {unmark-L}
           Unmark last-dialed entry.

 NOTE: When the "L" switch is present, any Dialing Strings listed will be
 ignored.

 Dialing Strings may be separated by spaces or commas.

 {COMMO} will search the Dialing Directory for each string and unmark the first
 entry where a match is found.  Case is ignored.

 The strings may consist of any part of a Dialing Directory entry line
 (including strings contained within curly braces), but must NOT contain any
 spaces, commas or curly braces.

 See also DIAL, MARK.


[02.40] ****  VIDEo

 Default key:   none
 Description:   Change to an alternate hardware video mode.

 Switches:

      M1 or M
           Change to the alternate display mode.

      M0
           Change back to the normal display mode.

 Examples:

      {video-m1}
           Change to the alternate mode.

      {video-m0}
           Change back to the normal mode.

 The "alternate" mode is defined by Setup File item "avm".  The "normal" mode
 is the mode in effect when you start {COMMO}.


[02.50] ****  VTCUr

 Default key:   none
 Description:   Define a VT102 cursor (arrow) key.

 Example:

      {vtcur ^[[A|^[OA}
           Define up-arrow key strings.

 The first string is sent when cursor mode is active; the second string is sent
 when application mode is active (these modes are controlled by the host).

 The two strings must be separated by a "|".  Use "^m" for carriage return if
 necessary.

 See also VTPAd.


[02.60] ****  VTPAd

 Default key:   none
 Description:   Define a VT102 keypad key.

 Example:

      {vtpad 5|^[Ou}
           Define keypad "5" key strings.

 The first string is sent when numeric mode is active; the second string is
 sent when application mode is active (these modes are controlled by the host).

 The two strings must be separated by a "|".  Use "^m" for carriage return if
 necessary.

 See also VTCUr.


[02.70] ****  WCLOse

 Default key:   none
 Description:   Close the write file.

 Example:

      {wclose}
           No arguments.

 NOTE: The write file will be closed automatically when the macro terminates
 (STOP, EXIT, etc.).

 See also WOPEn, WRITE.


[02.80] ****  WINDow

 Default key:   none
 Description:   Preserve window display.

 Switches:

      K1 or K
           Do not allow the Terminal Screen to be restored when exiting from a
           window.

      K0
           Allow the Terminal Screen to be restored when exiting from a window
           (default).

 Examples:

      {window-k}
           Don't restore the Terminal Screen.

      {wind-k0}
           Restore the Terminal Screen.

 This function will prevent the Terminal Screen from being restored after a
 window function exits.  It is useful for making smooth, flicker-free
 transitions between windows or for placing one pop-up window on top of
 another.

 The condition will remain active until either the "k0" switch is used or the
 macro terminates.


[02.90] ****  WOPEn

 Default key:   none
 Description:   Open a file for writing.

 Switches:

      A1 or A
           Open the file in "append" mode.  New lines written to the file will
           be added at the end.  If the file doesn't exist, it will be created.

      A0
           Open the file in "create" mode.  If the file exists, it will be
           erased (default).

 Examples:

      {wopen c:\bbs\file.txt}
           Open the file in create mode.

      {wopen-a c:\data\word.fil}
           Open the file in append mode.

 TIP on using WOPEn:

  >   Only one file may be opened for writing (and one for reading).

 See also WRITe, WCLOse.


[03.00] ****  WRITe

 Default key:   none
 Description:   Write a string to the write file.

 Examples:

      {write %nextline}
           Write the contents of the variable "nextline" to the write file.

      {write}
           Write a carriage return/linefeed only (blank line) to the file.

      {write %num%> }
           Write the contents of "num" followed by a ">" and a space.

 TIPS on using WRITe:

  >   A file must be open for writing or a Macro Error will result.

  >   The string will be written as one line, terminated by a carriage
      return/linefeed.

  >   Control character conversion is NOT performed on the write string.

  >   A Macro Error will result if the disk is full.

 See also WOPEn, WCLOse

