
 ┌────────────────────────────────┐
 │  Chuck Seyboldt's COMMO Macro  │   CS-MAC13:CS-MAC.HLP
 └────────────────────────────────┘   Copyright (c) 1995
                                      All rights reserved

This is a help file with descriptions of the variables used by
the CS-MAC macro series.  It is kept in your COMMO home directory.
CS-COMMO has a help-reader function at label  :help_

Variable:  keys               CS-COMMO function key assignments                    Ref: ?
----------------------------------------------------------------------
      Mark & Dial            CS-MAC Menus            {Commo} Help
 NLBBS & Weather   SF1
 Weekend BBS Run   SF2   Macro Menu        @M    Built-in Help     F1
 Demodulator/BETA  SF3   Editing Menu      @Q    LIST Commo Docs   HOM
 Find & Dial REPs  SF4                           View this file    @MK
 Internet Dialer   F12   COMMO.MAC         @U
.
    ON-Line Utility         Session History         General Utility
 Send Name         F1                            Shell to OS       F4
 Send Password     F2    Enter Scrollback  @K    Voice Dialer      F6
 Search any file   F7    Review Call Log   @R    Strew Hold dir    F10
 PCB Auto-ASCII    F8    Command Recall    F5    Reset CS-MAC/CFG  F11
 Capture On/Off    F3                            Peek @ variable   @<
 Quote Message     @O     @ML = Alt-M, then L    Toggle video      @V
.
      File Utility              DOS Utility              Dual Use
 Use Wishlist      @MW     Dir Freedom     @F1    @D      @H      @O
 Upload Manager    @ML                            @T      HOM

-------------------------------------------------------------------
Variable:  ?              The following Menu Commands have help                         Ref: labels
-------------------------------------------------------------------
 F1       SF4       @<        @M        @MM       @N
 F2       @F1       @=        @MA       @MMB      @O
 F3                 @D        @MD       @MMC      @Q
 F4       HOM       @H        @ME       @MMF      @QR
 F5       PGU                 @MK       @MMS
 F6       PGD                 @MP       @MMX      @R
 F7                           @MU                 @S
 F8                           @MW       @MOC      @T
 F9                                     @MOP      @U
 F10                          @ML       @MOR      @V
 F11                          @MLL      @MOS      @X
 F12                          @MLQ      @MOX

-------------------------------------------------------------------
Variable:  labels         The following LABELS have a help listing                      Ref: variables
               (Include the colon in the label name)
-------------------------------------------------------------------
:c_?      :at_bbs   :doorway_ :var_peek   :searcher   :u_nulmodem
:c_x      :p_flg    :toggle_  :capture_   :fon_mark   :d_nulmodem
:glr                :video_   :compile_   :strings    :recall_cmd
:qwk                :init     :fgrep_ut   :start      :pcb_ascii
                    :shel     :inet_dir   :dialer     :add_eprot
                    :start_ap :strew_     :fon_dial   :macro_menu
:p?bs                         :ed_rlog    :back_up    :edit_menu
:p?br                         :dir_free   :ul_mngr    :action_make
:eup_?                        :ev_test    :send_rep   :srch_addr
:edn_?                        :reader     :help_nam   :review_log
                              :learn      :help_      :load_commo
                    :mx       :show_keys  :exit_      :commo_doc

-------------------------------------------------------------------
Variable:  variables            CS-MAC variables with a help listing
--------------------------------------------------------------------
Reference            CS-MAC    labels    menus    keys      register
─────────
CS-MAC about YOU     name      sig       v_ph     alias
─────────────────    handle    b_day     d_ph
.
Variables In .FON    bbsid     bbs       mail     or_prot   ql
─────────────────    abbr      keyb      dorno    door2     inet
                     le_pmt    alias     flag
.
Variables that control operation of CS-MAC
──────────────────────────────────────────
auto      _edd      xpert     shh       sho_      palette   max_desc
exed_all  swap_ed   l_parm    l_use     dev_mac   dev_st    cs_hlp
color     fast      prot      mprot     qrdr      znr       max_pak
min_msg   zmin_msg  pr_alarm  chat_str  skip      pfl       debug
inet_pmt  tn_pf     inet_bye  swap_prot fb_mac    _prn      xtime
m_call    _slp      jb_learn
.                                    CS-MAC Variables continue ...
           Variables (page 2 of 3)
-------------------------------------------------------------------
CS-MAC directory definitions
────────────────────────────
dosdir    utildir   ins_dir   lst_dir   savedir   cap       tagfile
ramdr     uldir     repdr     protodir  bu_dr     reader    tag_pf
hold_dr   dldir     qwkdr     znpak     znrdr     picdr     random_t
.
CS-MAC external program definitions
───────────────────────────────────
pk_zip    pk_un     ext_ed    ext_di    ext_fl    ext_li    address
pk_un     reader    eprot_?
.
CS-PILOT Autopilot Variables
────────────────────────────
ev_file   ap_clr    ring      ap_ans    ap_pass   ap_menu   _menu
event_?   ap_tlr    ring_c    ap_ans2   door_way  ap_chat   _skits_
auto      ap_see    ring_t    host_ac   cs_id     ap_?      ext_host
.                             pmail     host      lrn_mac   ini_file
CS-MAC Variables continue ...                                                Ref: labels
           Variables (page 3 of 3)
-------------------------------------------------------------------
CS-TABLE Mail Door Variables
────────────────────────────
md_pmt    mt_qwk    xfer_pmt  yes       up        qwk       rdr
md_bypas1 md_brnch  quit      no        dn        rep
uqwk_type uqwk_news
.
CS-TABLE BBSware Variables
──────────────────────────
gra_pmt   lan_pmt   nam_pmt   pwd_pmt   bypass    bbs_pmt   bye
rs        qlo
.
thanks


Variable:  :ul_mngr      Alt-M,L or F9  Ref: @ML

Variable:  F9            Alt-M,L or F9  Ref: @ML

Variable:  @ML           File upload list manager (at :ul_mngr)
.
The upload manager provides a way to copy pre-prepared (*.LST) file
lists into {send}.lst  Since {send}.lst is deleted after the upload,
it is helpful to have a shortcut method to quickly recreate
{send}.lst.  When {send}.lst exists, uploads can auto-start.
.
Alt-M,L has several menus.
.
1.  "Make {send}.lst"    Is the novice menu for making {send}.lst
.
2.  "Copy to {send}"     provides the shortcut to copy a pre-prepared
                         list to {send}.lst.  If {send}.lst exists,
                         this menu is bypassed.
.
3.  "File Upload Info"   is called if {send}.lst is found.  This menu
                         provides a quick way to send file names and
                         descriptions from {send}.lst to the host.
                         This menu is available to both novice and
                         expert users
           The "Copy to {send}" menu will copy a numbered .LST file to {send}.lst
.
 on  "L" will recall information about the last file uploaded,
 on  "Q" will bring up a menu to edit, make new, or delete .LST files
 on  <CR> will begin making a {send}.lst for the next upload.
.
You've made a {send}.lst, now let's get some use from it.
Alt-M,L calls the "File Upload Info" menu.  From here you have at
your fingertips the filenames and their descriptions.
.
The tactic is to do the upload manager thing on your end before
telling the BBS what you have up your sleeve.  Then, to the bbs, you
type "U" <CR>.  It asks for filename, you have it .. it asks for
description ... you have it... it starts the transfer process ...
your end starts automatically.
.
The "File Upload Menu" cycles through the file-list, putting filenames
and file descriptions one keypress away for each file in your send
list.
                                                        Ref: @MLQ

Variable:  @MLQ          Alt-M,L,Q      File upload list edit manager
.
Besides managing {send}.lst and the information in it, the CS-MAC
upload manager provides tools to make and manage *.LST files.
.
The numbered entries are used to edit the selected upload *.LST
on "Q" will return to the "Copy to {send}" menu
on "R" will remove a *.LST from the current upload directory
on <CR> will make a new *.LST in the current upload directory
.
Every entry in an upload list is checked for validity.
.
on "U", the upload manager can change upload directories.
.
With the ability to keep a variety of upload directories and a
group of file upload *.LSTs in each upload directory, it is easy
to send groups of files to your favorite host systems.
.
Ref: @MLL and @ML for more

Variable:  @MLL          Alt-M,L,L      Access "last file" information
.
Some Bbs-ware accepts your upload before asking for a description or
the filename.  In these cases, it is helpful to be able to access the
information from the "last file uploaded".
.
If {send}.lst has been deleted due to a successful upload, you may
still access the name and description of the last file uploaded.
.
See @ML and @MLQ for more

Variable:  keyb                 This is an optional selection to load a
Whereset:  .FON      keyboard macro after logon or mailrun is done.
.
  {keyb,pine}   loads PINE.MAC        Set the variable %keyb in the
  {keyb,vt102}  loads VT102.MAC       FON directory.  The keyboard
  {keyb,vt220}  loads VT220.MAC       macro will load automatically.

Variable:  term                 This is the terminal type that you want
                     for this BBS.  A = ANSI  T = TTY   V = VT100
.
        ANSI   Popular with most BBSs, can show color
        TTY    Teletype terminal.  No Escape code translations
        VT100  A superset of ANSI, popular on the internet

Variable:  baud                 This is the your serial port speed
.
        If you enter an empty <CR>, you will select your current port
        speed to be entered to the dialing directory.  Alternate values
        are 300, 1200, 2400, 4800, 9600, 19200, 38400, 56700, 115200

Variable:  bbsid                This is the first part of the mail packet
Whereset:  .FON      file name for a bulletin board system.  %bbsid is
                     used to send replies and to rename old mail packets.
.
                     Examples:  for NLBBS.QWK,    %bbsid=nlbbs
                                for DEMODULE.QWK, %bbsid=demodule

Variable:  abbr                 This is an abbreviation of %BBSID
Whereset:  .FON      It is typically the first two characters of %bbsid.
                     %abbr is used for some QWK rename routines, for
                     naming ACTION files, and by :send_rep for marking
                     the .FON when an ACTION file is found.
.
If you are using your internet provider to dial a destination BBS,
it is conceivable that you would want to perform independent ACTIONs
... one for each.  To prevent the destination BBS action from being
run at the internet provider yet provide automatic marking if ACTION
exists for the destination (this is getting complicated!), it is
necessary to put a dummy variable in the .FON directory.  In the two
lines below, the dummy variable is {de}.  If ACTION.DE is found, the
internet provider will be marked but action will be delayed until
connection is made with the "destbbs".
.
A. Internet  {555-1212} {....} {glr} {} {inet,destbbs} {bbs,int} {de}
B. >Destbbs  {%tn_pf destbbs.com} {....} {glr} {} {bbs,pcb} {abbr,de}

Variable:  bbs                  This is a three letter shorthand for the BBS
Whereset:  .FON      software at a bulletin board system.  %bbs sets up
                     the BBS prompts that the logon will respond to.
.
                     Examples:  for PCBoard,    %bbs=pcb
                                for Wildcat!,   %bbs=wc!

Variable:  mail                 This is a three letter shorthand for the MAIL
Whereset:  .FON      software or door at a given BBS.  %mail sets up the
                     Maildoor prompts that the mailrun will respond to.
                     Use a NUL value and CS-MAC will do just the logon.
.
                     Examples:  for Qmail 4,    %mail=qm4
                                for CamMail,    %mail=cam

Variable:  dorno                This is the command (or commands) used to get
Whereset:  .FON      from the BBS "main board command" prompt to the
                     main MAILware prompt.  Use ~~ to delay.
.
                     Examples:  door 4│     sends "door 4 <CR>"
                                m~~~~~t     sends "m", waits, sends "t"

Variable:  or_prot              This is an optional variable that will
Whereset:  .FON      over-ride both %prot and %mprot file transfer
                     protocols for one connect session.
.
                     I use this to select Kermit for one BBS and Zmodem
                     for all the others.  {or_prot,k} in .FON does it.

Variable:  fe_pmt               This is an optional variable in case the
Whereset:  .FON      "golooks" in CS-LOGON don't recognize the prompt on
                     a BBS front-end.  These are the things that ask you
                     to press ESCape twice.  If {glr} doesn't respond
                     to a front-end prompt, put the prompt here in your
                     .FON directory.   {fe_pmt,Press ESCAPE twice}

Variable:  alias                This is an optional variable for those
Whereset:  .FON      who prefer to travel under more than one name.  Set
                     in the .FON directory, it is good for one call.
.
        {alias,Clark Kent}  can be your new name for awhile. This
        variable takes precedence over the quick logon facility.
        If you choose an alias, {ql,y} will be overlooked.
        You maintain your secret identity until you hang up
        (losing carrier loses your alias).

Variable:  flag                 This is an optional variable with a
Whereset:  .FON      very particular application ... it will cause a
                     PCBoard BBS to list all the new files.
.
        This is enabled by putting {flag,n} in the .FON entry.
        The file list is captured to NEWFILES.%abbr in your %savedir.

Variable:  shh                  if "y", quiets speech
Whereset:  .CFG
Example :  NUL
.
        There are several routines in the CS-MAC series that are too
        busy for speech software.  Setting %shh to "y" tempers
        visually busy displays.
.
        Places that %shh comes into play:
.
        CS-PILOT   skips the once a second update of the time on the
                   hotkey menu.  This is of dubious value to SFI
                   users since the once-a-second menu refresh tends
                   to trigger the speech software anyway.  In this
                   case, turn the Autopilot Hotkey menu INVISIBLE.
.
        CS-MAC     skips "Counting" of lines processed in the
                   dupe label checker, the .FON configuration
                   routines, and in the macro comment stripper.
Ref: ap_see

Variable:  swap_prot            Swap out for external protocols?
Whereset:  .CFG
Example :  NUL
.
        If set to "Y", this variable causes Commo to swap out of
        memory before invoking any and all external protocols.
        Smodem is an example of a protocol that requires much memory.
.
        If you want only certain protocols to swap out for, set
        %swap_prot to NUL.  For a protocol that you want to swap,
        put the "$" character in its %eprot_? variable.  %eprot_? is
        only allowed to have a single "space" character in it.
.
        eprot_h,HS/Link         if %swap_prot=NUL, no swap
        eprot_h,HS/Link $       swaps Commo out when running HS/Link
.
        Caution:  by swapping out, you loose the errorlevel that the
        external protocol returns on bad transfers.  The macro
        thinks every transfer was a success if you use SWAP.

Variable:  fb_mac               Original COMMO.MAC renamed
Whereset:  .CFG
Example :  COMMO.MAC
.
        CS-MAC can use facilities built into Fred Brucker's COMMO.MAC
        This variable contains the name of Fred Brucker's COMMO.MAC
        if you have renamed standard COMMO.MAC to something else.
.
Ref: :load_commo

Variable:  eprot_?              External protocol name
Whereset:  .CFG
.
        CS-MAC supports easy installation of external protocols.
        The key to the external protocol are the %eprot_? variables.
        The "?" is the menu selection letter ... the contents are
        the menu description.
.
        Example:  %eprot_d,Hydra     ->    Menu:   D ■ Hydra
.
        The letter that fills the "?" spot points to two routines
        in the CS-COMMO file.  These routines contain the complete
        external protocol command lines.  The routines are labeled ...
.
        {:eup_?}    External protocol upload command
        {:edn_?}    External protocol download command
.
        All letters except "N" may be assigned to external protocols.
        Protocol letter "N" is reserved for NULmodem transfers.
.
           External protocols via .BAT files ....
.
        CS-MAC has two methods for external protocol definition.
        You have already seen the "Variable" method that uses
        %eprot_? and the two labels :eup_? and :edn_?
.
        Before going into details of the Batch file method, here are
        the overall relationships between "variable" and "batch" ...
.
        Menu construction and protocol availability occurs in the
        following order of priority;
.
        1.  Check for batch file.  This has first priority for
            protocol availability.  However, batch file protocols
            will not automatically appear on the protocol menus.
        2.  Check for %eprot_? definition, this has second
            priority and will certainly appear in menus.
        3.  Check for Commo internal protocols.  This is checked
            last and includes ONLY the protocols that Fred has
            built into Commo.

External protocols via .BAT files ....
.
        The macro puts priority on external batch files for protocol
        operation.  It looks for protocol batch files in the Commo
        directory.  Batch file driven protocols do not automatically
        appear on the protocol menu but can be made to appear by
        using the %eprot_? variable.  It is acceptable to define
        a %eprot_? variable and not have the :eup_? and :edn_? labels.
.
        Batch file protocol definitions will respect the "$"
        swap-out-for-this-protocol-only described under  swap_prot.
.
        Remember, a batch file "protocol" can be ANY DOS batch file!
        You can install editors or anything else simply by putting a
        batch file in the Commo home directory.
.
        The protocol batch files are named CSMS?.BAT and/or CSMR?.BAT.
        csmSD.bat          Called from "D" on Send Menu
        csmRD.bat          Called from "D" on Receive Menu
.
External protocol .BAT file technical details:
.
        Here is an example batch file to guide your construction;
.
        if exist csmerr.fil del csmerr.fil    ;delete old error flag
        dsz port %1 spe %2 rz %3              ;protocol command line
        if errorlevel 1 goto bad              ;check protocol error
        goto end                              ;if ok, return
        :bad                                  ;if not ok, ren to
        ren csmerr.old csmerr.fil             ; error-file
        :end
.
        The error flagging file CSMERR.OLD is automatically made
        before calling csmS?.bat or csmR?.bat.
        CS-COMMO will look for CSMERR.FIL when the batch file is
        done.  If CSMERR.FIL exists, we know there was an error in
        the protocol command line.
.
        CS-COMMO passes information to the batch file.
.
External protocol .BAT file technical details: (continued)
.
        Parameters passed to the batch file:
.
        %1 = COMport number
        %2 = serial port speed
        %3 = download path or upload filename
             {send}.lst is always on the disk, so is available to
             the batch file
        %4 = last speed reported by the modem
        %5 = COMport address
        %6 = COMport IRQ
.
.
.
.
.
.
.

Internal protocol default assignments:
.
        Finally, CS-COMMO has assigned letters to COMMO internal
        protocols.  You are allowed to over-ride any of these
        assignments by installing an external protocol.  By
        assigning "Z" to DSZ, the internal protocol will be
        "disabled".
.
            - ZGYOCAN               ;standard built-in protocols
              Zmodem
               Ymodem/G
                Ymodem
                 Xmodem/1k
                  Xmodem CRC
                   ASCII (text dump)
                    NUL modem via Zmodem  (cannot be over-ridden)
.
Ref: :eup_? and :edn_?

Variable:  :eup_?               External protocol upload command
Inmac: COMMO
.
        These routines define the complete command line for uploading
        files with an external protocol.  All {Commo} variables are
        available for the command line.  Be careful to represent
        curleys with "caret-parenthesis".
.
        Standard CS-COMMO contains several example labels as well as
        an external protocol configuration routine at Alt-M,M,X.

Variable:  :edn_?               External protocol download command
Inmac: COMMO
.
        These routines define the complete command line for receiving
        files with an external protocol.  The variable %dl_dir
        contains the current download directory (could be %qwkdr,
        %dldir, or %znpak depending on which CS-MAC routine calls).


Variable:  eprot_h              External protocol   HS/Link
Whereset:  .CFG
Example :  HS/Link      The pre-packaged CS-COMMO contains command
                        lines for Sam Smith's "HS/Link" protocol.
        The command lines are located at the end of CS-COMMO at
        labels :eup_h and :edn_h.  You'll need to have HSLINK.EXE
        located in your %protodir in order to use this protocol.

Variable:  eprot_k              External protocol   Kermit
Whereset:  .CFG
Example :  Kermit       The pre-packaged CS-COMMO contains command
                        lines for Columbia University's Kermit.
        The command lines are located at the end of CS-COMMO at the
        labels :eup_k and :edn_k.  Refer to full screen help for a
        performance tip.
.
        Kermit performance is much improved by making a MSKERMIT.INI
        file in your %utildir.  The following is a suggestion, you
        may improve performance by making changes.  See Kermit docs.
.
        ; MSKERMIT.INI
        set block 3
        set receive packet-length 2000
        set window 5

Variable:  eprot_s              External protocol   Smodem
Whereset:  .CFG
Example :  Smodem $     The pre-packaged CS-COMMO contains command
                        lines for Arisoft's "Smodem" protocol.
        The $ in the protocol name will cause Commo to swap out of
        RAM before running Smodem, even if you have set %swap_prot
        to NUL.  Without the $, the protocol will respect %swap_prot.

Variable:  name                 Your name
Whereset:  .CFG
Example :  Chuck Seyboldt
.
        This variable is available from the F2 string menu.
        The logon routine can send your name, your first and last
        name with separate <CR>s, or your "handle".  See %nam_pmt.

Variable:  sig                  Your signature
Whereset:  .CFG
Example :  Chuck∙S
.
        This variable is available from the F2 string menu.  You would
        use this to close a message.  A different F2 menu item provides
        for sending a tagline.  See %tagfile, %random_t, and %tag_pf.

Variable:  v_ph                 Your Voice Phone Number
Whereset:  .CFG
Example :  414-250-0512
.
        This variable is available from the F2 string menu.  The logon
        uses this to respond to "second password" requests.  You may
        find it useful as a new caller to a bulletin board system.

Variable:  d_ph                 Your Data Phone Number
Whereset:  .CFG
Example :  207-761-4782
.
        This variable is available from the F2 string menu.  The logon
        uses this to respond to "second password" requests.  You may
        find it useful as a new caller to a bulletin board system.

Variable:  b_day                Your Birth date
Whereset:  .CFG
Example :  04/23/65
.
        This variable is available from the F2 string menu.  The logon
        uses this to respond to "second password" requests.  You may
        find it useful as a new caller to a bulletin board system.

Variable:  auto                 "Y" for Autopilot ON
Whereset:  .CFG
Example :  NUL
.
        This determines whether the autopilot is automatically
        started when you load {Commo}.  The autopilot performs
        events according to a schedule that you establish (%ev_file).
.
        The autopilot can operate any event that you might define
        in your home macro.  It also has a host mode with call-back
        capability.  The autopilot records phone "RING" events.
.
        The autopilot provides a hotkey menu to access the functions
        that you may frequent from {Commo}.
.
Ref: ev_file

Variable:  xpert                "Y" to minimize CS-MAC reports
Whereset:  .CFG
Example :  NUL
.
        This variable enables an advanced upload manager and
        determines whether or not you will get initial startup
        reminders about RING.LOG.
.
        %xpert also has an effect on the menus presented during
        macro recording.  In "xpert mode" the macro recorder tends
        to make all responses in the "SSLOok format".

Variable:  ramdr                Your Ram drive
Whereset:  .CFG
Example :  d:
.
        %ramdr is used by the several CS-MAC routines.  You can set
        this to a location other than a Ram drive.
.
        Extracting file descriptions occurs from the upload manager.
        %pk_un is used to extract file_id.diz to your %ramdr to make
        the description available to send to a BBS
.
        Printing from help (the "P" key) extracts the pertinent
        section of the help file to a file on %ramdr and prints.
.
        The FGREP utility that extracts the CS-MAC {exec }s uses
        %ramdr to store the resulting search and filter operations.
.
        The macro recorder kepps BBS activity in a %ramdr capture.

Variable:  bu_dr                Backup drive for .MACs
Whereset:  .CFG
Example :  A:
.
        This is used by the :back_up routine.  The :back_up routine
        ZIPs macro and phone files and copies the ZIP to %bu_dr.
        If %bu_dr = NUL, the ZIP is not copied to a floppy.
.
        The ZIP file is named        mac.zip
        The ZIP file is located in   %savedir
        The ZIP file contains *.mac, *.csm, *.fon, and *.adr files
.
Ref: :back_up

Variable:  dldir                The drive:\dir to put ZIP, etc files
Whereset:  .SET
Example :  c:\co\dl
.
        This is the drive:\directory (no trailing backslash) that
        contains downloaded files (not mail).  See %hold_dr for the
        extensions that are moved to %dldir by %hold_dr strewing.

Variable:  uldir                The drive:\dir for file uploads
Whereset:  .SET
Example :  c:\co\dl
.
        This is the drive:\directory (no trailing backslash) that
        contains files you intend to upload.  It may be the same
        directory as the one you use for file downloads.

Variable:  dosdir               Your DOS dir
Whereset:  .CFG
Example :  c:\dos
.
        This directory is *NOT* called by any CS-MAC macro.
        It is made available as a convenience for those of you who
        do some of your own macro composing.

Variable:  ins_dir              Dir for docs & instructions
Whereset:  .CFG
Example :  c:\co\ins
.
        This directory is used to contain *.DOC files.  The HOME
        key will use your file lister to view these files;
        COMMO.DOC, MACRO.DOC  (by Fred Brucker)

Variable:  lst_dir              Dir for BBS file list storage
Whereset:  .CFG
Example :  c:\doc
.
        This directory is *NOT* called by any CS-MAC macro.
        It's intention is as a repository for bbs file lists
        that might be searched for files to download.

Variable:  savedir              Dir for capture files
Whereset:  .CFG
Example :  c:\co\sav
.
        This directory is to hold *.LOG, *.CAP, and other session
        history files.  Used ACTION files are concatenated into
        USED-ACT.%abbr files, see CS-ACTON for more.
.
        Special files that I keep in %savedir;
.
        ADDRESS         (my address list with phone numbers)
        RING.LOG        (record of telephone ring events)
        USED-ACT.%abbr  (ACTION history, separate by %bbsid)
        %_dat.CAP       (session capture, one for each date)

Variable:  utildir              Dir for utility programs
Whereset:  .CFG
Example :  c:\util
.
        This directory is to hold your DOS utilities that may be
        used from CS-COMMO.  Examples are dialers, editors, zip &
        unzip.
.
        I keep these specific programs in my %utildir:
.
LIST.COM      (Vern Buerg)              %ext_li
QEDIT.EXE     (Sam Mitchell)            %ext_ed
PHONE.EXE     (Johnathan Wayne)         %ext_di
PKZIP & UNZIP (Phil Katz)               %pk_zip & %pk_un
DFR.COM       (Gordon Haff)             :dir_free
DOORWAY.EXE   (Marshall Dudley)         CS-PILOT
FGREP.COM     (Chris Dunford)           :fgrep_ut

Variable:  protodir             Dir for external protocols
Whereset:  .CFG
Example :  c:\util
.
        This directory is to hold your external file transfer
        protocols (DSZ, HS/Link, Kermit, Smodem, etc.)
.
.
        I keep these programs in my %protodir:
.
COMMOPNS.EXE  (Shad Muegge)             %ext_fl
DSZ.COM       (Chuck Forsberg)
HSLINK.EXE    (Sam Smith)
KERMIT.EXE    (Columbia University)
SMODEM.EXE    (AriSoft)

Variable:  ext_ed               drive:\path\external_editor
Whereset:  .CFG
Example :  c:\util\qedit.exe
.
        This names the external file editor that you want to use.
        Alt-Q provides a list of files that you might want to edit.
        See %exed_all to force ALL edits to use your %ext_ed.

Variable:  ext_li               drive:\path\external_lister
Whereset:  .CFG
Example :  c:\util\list.com
.
        This names the external file lister that you want to use.
        It is used to review COMMO.LOG (Alt-R) and COMMO.DOC (Home)
        If %ext_li not defined, the macro will use Commo's editor.

Variable:  pk_zip               drive:\path\ZIP_program
Whereset:  .CFG
Example :  c:\util\pkzip.exe
.
        This names your ZIP program.  The macro uses this to make
        a backup ZIP of your macro and phone directories.
        See %bu_dr for more about the :back_up routine.

Variable:  pk_un                drive:\path\UNZIP_program
Whereset:  .CFG
Example :  c:\util\pkunzip.exe
.
        This names your unZIP program.  The macro uses this to
        extract file descriptions from ZIP files.  File descriptions
        (FILE_ID.DIZ) are available from the upload manager (@ML).

Variable:  prot                 File trans protocol (z,y,x,k}
Whereset:  .CFG
Example :  z
.
        This names the file transfer protocol.  K = Kermit.
        A separate variable is available for mail transfer protocol.
        Zmodem is stongly prefered.  See %eprot_? to choose external.

Variable:  mprot                Mail trans protocol (z,y,x,k)
Whereset:  .CFG
Example :  z
.
        This names the mail transfer protocol.  K = Kermit.
        A separate variable is available for file transfer protocol.
        Zmodem is stongly prefered.  See %eprot_? to choose external.

Variable:  qwkdr                Dir for .QWK files
Whereset:  .CFG
Example :  c:\qwk
.
        This is the drive:\directory (no trailing backslash) that
        contains downloaded QWKmail (not files).  See %hold_dr for
        extensions that are moved to %qwkdr by %hold_dr strewing.

Variable:  repdr                Dir for .REP files
Whereset:  .CFG
Example :  c:\qwk
.
        This is the drive:\directory (no trailing backslash) that
        contains your reply packets.  If you use more than one
        reader program, they will share this reply directory.

Variable:  reader               Your mail reader program
Whereset:  .CFG
Example :  c:\jr\Jabber.exe
.
        This is the drive:\path\program-name of a mail reader.
        CS-COMMO has a menu item Alt-Q,R to invoke your mail reader.
        You can assign this to another key in the table of labels.

Variable:  tagfile              Filename for your tag lines
Whereset:  .CFG
Example :  c:\jr\Taglines.tag
.
        This is the drive:\path\filename that contains your tag lines.
        The F2 menu has a selection to send a tagline from this file.
.
        See the variable %random_t for additional control of the
        tagline sending routine.
        See the variable %tag_pf for an optional prefix to the
        tag lines that you send.
.
Ref: random_t

Variable:  qrdr                 .QWK packet rename routine
Whereset:  .CFG
Example :  qwk
.
        This three character variable determines which packet renaming
        routine will be used for ".QWK" packets.  Only two macro options
        are available, QWK or JBR.  A batch file method is available.
.
        "QWK" packet renaming may be accomplished by one of three
        select-able methods.  1. Batch file     2. QWK     3. JBR
.
        1. Batch file renaming occurs if you have a RENQWK.BAT located
           in your Commo home directory.  A batch file is in CS-LOGON.
        2. Method QWK renames QWK packets with the date.
           NLBBS.QWK -> 12-03-NL.QWK
        3. Method JBR renames QWK packets with file extensions from
           000 to 999
.
Ref: znr for SOUP and ZIPNews renaming facilities.

Variable:  znr                  .ZNS/.SOU packet rename routine
Whereset:  .CFG
Example :  znr
.
        This three character variable determines the packet renaming
        routine to be used for ".ZNS" and ".SOU" packets.  The ZNR
        method renames packets %bbsid.Zxx with xx = 00 to 99
.
        It adapts to SOUP packets, renaming them %bbsid.Sxx
.
        %znr=znr is the only supported ZNS/SOU renaming method.
        Future CS-MAC versions may automatically select the
        appropriate rename method by examining the mail packet
        file extension and calling a routine by that name.
.
        The packet renaming also deletes the oldest packet you have,
        keeping %max_pak packets on your disk.
.
Ref: max_pak

Variable:  handle               Handle for Internet use
Whereset:  .CFG
Example :  cboldt
.
        You may logon with your %name or with your %handle.
        %handle is intended as your internet login name.
        CS-MAC has %alias variable for using an assumed name.
.
Ref: alias

Variable:  znrdr                Dir for ZIPNEWS reader
Whereset:  .CFG
Example :  c:\znr
.
        This directory is *NOT* called by any CS-MAC macro.
        Its intention is to be used as a pointer to your internet
        reader for possible future macro additions.

Variable:  znpak                Dir for ZIPNEWS packets
Whereset:  .CFG
Example :  c:\qwk
.
        This is the drive:\directory (no trailing backslash) that
        contains downloaded .ZNS/.SOU mail (not files).  See %hold_dr
        for extensions that are moved to %znpak by %hold_dr strewing.

Variable:  cap                  Capture filename
Whereset:  .CFG
Example :  %savedir\%_yea%%_mon%%_day.cap
.
        This is the drive:\path\filename of the capture file opened
        with Alt-1.  The suggestion is to open a new filename
        for each day.
.
Ref: :capture_

Variable:  color                Answer to ANSI graphics? prompt
Whereset:  .CFG
Example :  y
.
        This variable is the response sent to the BBS when you are
        asked if you want color graphics.  It should be set to
        "Y" or "N" only.  See %fast for extended graphics responses.
        .
Ref: fast

Variable:  fast                 "quick non-stop" modifiers
Whereset:  .CFG
Example :  q ns
.
        Some BBSware accept modifiers to the "Graphics?" prompt.
        The "q ns" commands PCBoard to do a "quick, non-stop" logon.
.
Ref: :loq

Variable:  random_t             Max 3600...# of lines in tagfile
Whereset:  .CFG
Example :  30
.
        This is the number of lines in your tagline file (3600 max).
        If %random_t is NUL, the tagline select macro changes to
        "select tagline by number".
.
        The "randomizing" uses the number of seconds since the hour
        started ... 3600 possible numbers, a new tagline each second.
.
        See %tagfile variable for name of tagline file.
.
Ref: tag_pf for an optional prefix to the tag lines that you send.

Variable:  ext_fl               Name of upload lister
Whereset:  .CFG
Example :  c:\util\commopns.exe
.
        CS-MAC supports several methods for making upload filelists.
        %ext_fl is the optional use of an external file list maker.
        COMMO.MAC and manual editing are the other options available.
.
        If you do not name an external file lister, CS-MAC will try
        to load COMMO.MAC's :select  routine.  If neither of these
        is available, CS-MAC will default to Commo's built in
        editor.  Your editing work is checked .... if you input a
        filename that does not exist, you will be asked to edit the
        list until it contains only files that  DO  exist.
.
Ref: @ML for more description of the upload list manager.

Variable:  ext_di               Name of external dialer
Whereset:  .CFG                 Optional
Example :  c:\util\phone.exe
.
        CS-MAC supports a phone directory and a voice dialer.  To
        choose an external dialer, name its drive:\path\filename.
        CS-COMMO has an internal phone dialer.
.
Ref: :dialer

Variable:  palette              Menu colors
Whereset:  .CFG
Example :  3e,3f 1e,1f 2e,2f 6e,6f 17,1b 4e,4f
.
        %palette is a series of %_mcolor (menu color) settings.
.
        Used on...                           #  {subs}  {color}
        Upload menu                          1    1,5   3e,3f
        Help screens                         1    1,5   3e,3f
        Download menu                        2    7,5   1e,1f
        Macro menu                           3   13,5   2e,2f
        Edit menu                            4   19,5   6e,6f
        F2 key menu (Name, password, etc)    5   25,5   17,1b
        Autopilot menu                       5   25,5   17,1b
        Autopilot Toggle                     6   31,5   4e,4f
        confirm ACTION                       6   31,5   4e,4f
        confirm skip DOWNLOAD                6   31,5   4e,4f
        confirm message DELETE               6   31,5   4e,4f
        confirm {Commo} EXIT                 6   31,5   4e,4f
        confirm GOODBYE from BBS             6   31,5   4e,4f

Variable:  xtime                # of seconds to EXIT
Whereset:  .CFG
Example :  8
.
        %xtime is an exit guard delay for Alt-X (Exit Commo)
        %xtime = NUL  require confirming keypress
        %xtime = 0    exit without further ado

Variable:  l_parm               NULmodem transfer parms
Whereset:  .CFG
Example :  NUL or 57600,,2
.
        This contains the local port parameters (speed,,port#) to
        support "null modem send/receive" activities.  If l_parm
        is defined, NULmodem will appear as a protocol option.

Variable:  l_use                NULmodem log-file name
Whereset:  .CFG
Example :  NUL or c:\co\sav\nulmodem.log
.
        This names the log-file for NULmodem file transfers.
        Setting %l_use to NUL is suggested.  No record of NULmodem
        transfers is made.

Variable:  dev_mac              Developmental macro
Whereset:  .CFG
Example :  INTERNET.MAC
.
        This names a macro that you might have under development.
        %dev_st is the label that is called when you start the macro.
        Alt-M,Z to run your developmental macro.  Alt-Q,Z to edit it.

Variable:  dev_st               Develop'l macro start lbl
Whereset:  .CFG
Example :  start_in
.
        %dev_st is the label at which to start your (%dev_mac)
        developmental macro.  Alt-M,Z to run your developmental
        macro.  Alt-Q,Z to edit your developmental macro.

Variable:  address              Filename of address list
Whereset:  .CFG
Example :  c:\co\sav\Address
.
        The name of a file that contains your voice phone book or
        list of internet addresses (or both).  See F6 for voice dialer.
        CS-MAC will start an address file by this name if you have none.
.
        If you use the CS-COMMO voice call dialer at F6, the phone
        numbers must be in columns 32-45 of your %address file.
.
Ref: :dialer and :srch_addr

Variable:  max_pak              Number of BBSID packets to keep
Whereset:  .CFG
Example :  12
.
        %max_pak is the number of packets to keep with the Jabber
        and ZIPnews rename methods in CS-LOGON.  Maximum values are
        49 packets for ZIPnews and SOUP, 499 for Jabber packets.
.
        The :renqwk routine automatically renames the newest packet
        and deletes the oldest one (for each BBSID separately).
        :renqwk loops through the 99->00 threshold so you never need
        to manually rename or delete mail packets.
.
Ref: qrdr

Variable:  sho_                 Y = Show file move, ren action
Whereset:  .CFG
Example :  y
.
        %sho_  when set to a non_NUL value, enables on screen
        display of file move and renaming activities.
        File renaming is performed by the :renqwk routine in LOGON.
        File moving is performed by the :strew_  routine in LOGON.

Variable:  min_msg              Minimum size of mail packet
Whereset:  .CFG
Example :  30
.
        %min_msg is used to decide whether or not to receive a mail
        packet (QWK).  If the message count is less than %min_msg,
        the packet download will be aborted.

Variable:  zmin_msg             Minimum size of ZIPNews packet
Whereset:  .CFG
Example :  3
.
        %zmin_msg is used to decide whether or not to receive a mail
        packet (ZNS).  If the message count is less than %min_msg,
        the packet download will be aborted.

Variable:  chat_str             Uh-oh, SYSOP interruption
Whereset:  .CFG
Example :  SYSOP Chat active at
.
        %chat_str is the string that your SYSOP sends when
        interrupting your macro.  CS-MAC attempts an intelligent
        response with a routine located in CS-LOGON.

Variable:  pr_alarm             Alarm ring count  0 = quiet
Whereset:  .CFG
Example :  1
.
        %pr_alarm sets the number of alarm rings at user input
        points during the logon process and at the end of
        file transfers.

Variable:  hold_dr              Temp hold dir for downloads
Whereset:  .CFG.     If set, Downloads land in the hold directory for
Example :  c:\co\dl  later distribution.  The files will be strewn
                     after disconnect, even on a non-mail-run call.
.
        .ZNS and .SOU go to  .  .  .  .  .  .  .  .  .   %znpak
        .QWK, .OLX, and %_dwt?  go to .  .  .  .  .  .   %qwkdr
        .GIF, .RLE, .BMP, .TIF, and .PCX go to .  .  .   %picdr
        .ZIP, .LZH, .ARC, .EXE, .DWC, and .ZOO go to .   %dldir
        Everything else stays in   .  .  .  .  .  .  .   %hold_dr
.
        You could make your %hold_dr == %dldir.  Distribution will
        still occur, skipping the silly "move from %dldir to %dldir".
.
        To get the most out of the %hold_dr feature, put
        {aut=pzbr,^xB00} in COMMO.SET.  This way, Zmodem downloads
        will start automatically and automatically be strewn after
        loss of carrier.  The PgDn key is retained for manually
        starting downloads.  If a keyboard macro is loaded, use
        Alt-Z to choose upload or download protocol menu.

Variable:  picdr        Directory to strew .GIF, etc
Whereset:  .CFG
Example :  c:\vpic\gifs
.
        This is the drive:\directory (no trailing backslash) that
        contains downloaded .GIF, .BMP, .TIF, .PCX, and .RLE files.
        These extensions are moved to %picdr by %hold_dr strewing.

Variable:  ev_file              Event timing and labels
Whereset:  .CFG
Example :  c:\co\Events
.
        %ev_file names the path\filename of your Autopilot event list.
        The event list is an ASCII text file with a strict format.
        You may keep the event list in any drive and directory.
        These are example event definition lines.
.
17:30 all sf1      Goes to :sf1 to dial nlbbs & ledge every day at 5:30PM
06:00 sat sf2      Goes to :sf2 only on Saturday.  Mark and dial 12 BBS's
01:11 all back_up  Goes to :back_up every day at 1:11AM  to backup macros
23:59 all sf4      Goes to :sf4 every day to look and send any .REP files
{qwkm}             Goes to :do_itnow if %qwkm=do_itnow  Check once/minute
@ :12 {qwkm}       Goes to :do_itnow as above, but only checked once/hour
10:00 mon [FF]     Goes to :cdefh on Mondays at 10AM if  DOS SET FF=cdefh
                        NOTE CAPITAL LETTERS ON DOS ENVIRONMENT NAMES.
.
        The event file is scanned once per minute.
        This %ev_file text file has a simple but strict format ....
.
        Columns 1-5 contain a time expression.
           Time is expressed in 24 hour format                hh:mm
           To make an event run once/hour, use an "@"         @ :mm or  @:mm
           To make an event run once/minute, use an "@"       hh:@  or hh: @
           To make an event run on every scan, use 2 @'s      @ :@  or  @: @
        Columns 7-9 contain a day-of-the-week or day-of-the-month expression.
           Allowed values are; all, sun, mon, tue, wed, thu, fri, sat
           Allowed day-of-the-month values are 1 to 31
        Columns 11-19 contain the event label.
           Any legal Commo label is allowed.  The label MUST exist in
              your home macro or the macro will stop with an error.
           Autopilot also supports indirect pointing;
           By enclosing in curleys, Autopilot will goto the
              label named by that Commo variable
           By enclosing in square braces, Autopilot will goto the
              label named by that DOS environment variable (all CAPS).
.
        Columns 20+ are not used by the Autopilot and may contain comments.
        Blank lines and comment lines are allowed.        Ref: host

Variable:  ap_pass              Autopilot host password file
Whereset:  .CFG
Example :  c:\co\Password
.
        %ap_pass names the path\filename for the Autopilot host
        password protection used by CS-PILOT.CSM.  The password file
        includes a line to set the host to "callback mode".
.
        The file you named %ap_pass must be found (drive:\path\filename)
.
        Line 1 of %ap_pass is the HOST access password (1 to 8 chars)
        Line 2 is optional and contains the host_mode. The default
        host mode is drop to DOS on the correct password.  The other
        acceptable host mode is "callback".
        Line 3 is optional and contains the callback password.

Variable:  ap_ans               Modem ANSWER string for Host
Whereset:  .CFG
Example :  ATA|
.
        %ap_ans is the string that your modem would use to answer.
        CS-PILOT provides a toggle to NUL this variable which
        disables the autopilot attempt to go into host mode.
.
        If %ap_ans is defined, a single ring will put the autopilot
        into host mode.  The autopilot enters host mode 10 seconds
        after the single RING, and exits the host mode 35 seconds
        after entering the host mode.
.
        Host mode requires DOORWAY.  See README.1ST for more.
.
        See ap_pass for a description of host modes and passwords.

Variable:  ap_ans2
Whereset:  PILOT
.
        %ap_ans2 keeps the modem answer string when the host mode is
        disabled by the Autopilot toggle.  This is not a user-set
        variable.

Variable:  door_way             path\doorway.exe /parm: option
Whereset:  .CFG
Example :  NUL
.
        %doorway is the full command line if you wish to change the
        defaults that are setup for host mode.  Read the docs that
        come with DOORWAY for an explanation.
.
Default command line:
.
doorway PORT:%_pad:%_irq /m:60 /g:on /a:on /v:d^u /o:t /s:* /c:dos

Variable:  ap_clr               Autopilot Hotkey menu color
Whereset:  .CFG
Example :  NUL
.
        The default color is 1e,17   Yellow on blue.
        You are able to set a color to your preference.

Variable:  ap_tlr               Autopilot Toggle menu color
Whereset:  .CFG
Example :  NUL
.
        The default color is 4e,4f   Yellow on red.
        You are able to set a color to your preference.

Variable:  ap_menu              "Y" to enable custom menu
Whereset:  .CFG
Example :  NUL
.
        With a CS-MAC key file, you can make your own Autopilot
        hotkey menu.  %ap_menu = NUL will use the menu built into
        the CS-PILOT file.  See %cs_id and README.1ST
.
        The menu is constructed in your home macro and is located
        at the label {:_menu}.  It is built as you would make any
        Commo menu, using {setv _menux, } commands followed by a
        {retu} to return control to the CS-PILOT routine.
.
Ref: _menu

Variable:  cs_id                Name for key file
Whereset:  .CFG
Example :  c:\co\cs-mac.id
.
        %cs_id is the path and filename of your registration key
        that enables custom menu definition and eliminates the
        1 in 12 chance for "press this key to continue" prompt.
.
        You may NUL this variable if you choose to name the key file
        cs-mac.id and locate it in your Commo home directory.
.
        The cost of key-file information is $ 20.00 US
.
Ref: register

Variable:  tag_pf               Prefix when sending tagline
Whereset:  .CFG
Example :  Fortune Cookie:
.
        %tag_pf is an optional prefix when sending tag lines.
.
        In this example, %tag_pf="Today's Fortune: "
.
        Today's Fortune:  Eez beeg trouble for moose and squirrel...
.
        The variable %tagfile names your tagline file.
.
Ref: random_t

Variable:  inet_pmt             internet provider prompt
Whereset:  .CFG
Example :  t/home/s/cboldt >
.
        %inet_pmt is your internet provider logged-on prompt.
        This variable is used for MAILtype "uqwk" and as the
        bbs prompt for BBStype "internet".

Variable:  tn_pf                telnet prefix for "dialing"
Whereset:  .CFG
Example :  telnet
.
        %tn_pf is the "dialing" prefix that invokes the telnet
        program at your internet provider.  This is used by LOGON
        to connect to a BBS via telnet.
.
Ref: inet for additional help.

Variable:  inet_bye             logoff command inet provider
Whereset:  .CFG
Example :  logout|
.
        %inet_bye is the command to logout of your internet provider.
        Be sure to include the trailing carriage return.

Variable:  max_desc             Max # lines per file descrip
Whereset:  .CFG
Example :  8
.
        %max_desc  is the max number of file description lines to
        send to the host.  This variable is used by the routine that
        extracts file_id.diz from a ZIP and sends it to the host.
.
        The max_desc setting is not honored when an ACTION file is
        made.  ACTION files contain all the lines from file_id.diz.
        When making an ACTION file, edit out lines that exceed the
        number allowed by the host.  The "Make Action" routine at
        @MF automatically invokes the editor after constructing
        the ACTION file.

Variable:  exed_all             "Y" to use ext_ed for all files
Whereset:  .CFG
Example :  NUL
.
        %exed_all  if set to "Y" will force your external editor to
        be used (if defined) even on these small files;
        - the event file
        - the CS-MAC.cfg file
        - the wishlist file (what you want to download)
        - the address file.
.
        A NUL setting is recommended.  This will use the much
        faster internal editor for these small files.

Variable:  swap_ed              "Y" to swap Commo before edit
Whereset:  .CFG
Example :  NUL
.
        %swap_ed if set to "Y" will cause Commo to be swapped out of
        memory before invoking your external editor.
        The "-s" switch on Commo's {exec } function is used.
.
        Even with this switch off, swap will occur when using the
        external editor on your home macro.

Variable:  cs_hlp               "Y" to ask for CS-MAC help
Whereset:  .CFG
Example :  y
.
        CS-COMMO will ask if you want CS-MAC.HLP or COMMO.HLP when
        this is set to "Y".  If you want to always go to CS-MAC help,
        set this to NUL.

Variable:  _edd                 "Y" to auto-enter dialer
Whereset:  .CFG
Example :  NUL
.
        CS-COMMO can automatically open the .FON directory when
        you start.  But, if you tell CS-COMMO to automatically start
        the autopilot with %auto=y, %auto will have priority.

Variable:  _slp                 Status line position (row#)
Whereset:  .CFG
Example :  25
.
        CS-COMMO puts a prompt bar for the help routine in the
        same place your status line normally is.  If you do not
        choose a value, the macro will assume _slp = 25.
.
        This row is also used for the "open capture" routine.

Variable:  jb_learn             Use JB-LEARN macro recorder
Whereset:  .CFG
Example :  y
.
        CS-COMMO has hooks to one of two macro recorder engines.
        Suggested here is to use the JB-LEARN engine which comes
        un-compiled (able to run on unregistered Commo).
.
        The alternative is to set %jb_learn=NUL which will invoke
        the macro recorder in compiled CS-PILOT (you need to
        register Commo with Fred Brucker in order to use compiled
        macros).

Variable:  _prn                 Printer Device Name
Whereset:  .CFG                 Examples: PRN, LPT1, LPT2
Example :  NUL
.
        CS-COMMO can print sections of the help file to your
        printer.  This variable allows you to choose which device
        to print to.  The macro will assume PRN if %prn = NUL

Variable:  uqwk_type            QWK, SOUP, or ZIPNews packets?
Whereset:  .CFG
Example :  NUL   (default is QWK type packet)
.
        Determines packet type and file extensions when using the
        uqwk program to make mail/news packets.  Choose one of the
        three packet types that uqwk supports.  [Qwk, Soup, Zipnews]
.
        To get news, %uqwk_news must be set to "Y"   Ref: uqwk_news
.
%uqwk_type sets these items for later macro use:
.
item / %uqwk_type     QWK              SOUP             ZIPNews
──────────────────    ─────────────    ─────────────    ─────────────
uqwk pack command     uqwk +m +n +W    uqwk +m +n +L    uqwk +m +n +z
uqwk unpak command    uqwk -m -n       uqwk -m -n +L    uqwk -m -n
uqwk -R parameter     MESSAGES.DAT     REPLIES
packet extension      .qwk             .sou             .zns
reply extension       .rep             .rep             .pst

Variable:  uqwk_news            Should uqwk get NEWS?
Whereset:  .CFG
Example :  NUL
.
        uqwk can be configured to get mail plus news or to get mail
        only.  With  %uqwk_news="Y", the "+n" parameter will be put
        on the uqwk pack command line.
.
        Otherwise, CS-MAC will only get the mail.  Here are the
        different uqwk command lines for an example with SOUP packets
.
        %uqwk_news=NUL          uqwk +m +L
        %uqwk_news=Y            uqwk +m +n +L

Variable:  ext_host             Use an external host for Autopilot
Whereset:  .CFG
Example :  NUL
.
This option is used to invoke an external Commo host macro when the
Autopilot is triggered to answer with your modem.  The host built
into Autopilot will only drop to DOS.
        ┌────────────────────────────────────────────┐
        │  Interfacing an external host to CS-PILOT  │
        └────────────────────────────────────────────┘
        CS-PILOT looks for a single ring to activate "modem answer
        mode".   PILOT exits "modem answer mode" if no additional
        rings occur within 35 seconds.
.
        The call to %ext_host occurs on the first ring while "modem
        answer mode" is active.  This way, additional rings will be
        available to cause the host to answer.
.
        It is the problem of the external host to decide how to
        behave if no additional RINGs come in.
.
        %ext_host is the label and macro that comprise the external host.
        %ext_host,start,jbhost.mac   for example.
.
        CS-PILOT takes the %ext_host variable and drops it into
        a Commo {GOTO } function as ... {goto %ext_host}.
.
        You may want to modify the external host so that it
        automatically restarts CS-PILOT.
.
        To resume the autopilot, {goto auto,cs-pilot.csm} when
        leaving the external host.  An unregistered autopilot
        carries an 8% risk of needing keyboard attention during
        loading.

Variable:  md_pmt               MailDoor_ProMpT
Whereset:  TABLE
.
        This is the MAILware Door Main command prompt.
.
        If the MAILware is built-in (such as PCBoard built in "qwk"
        command), be careful to set this variable exactly the same
        as the BBSware main command prompt.  If this is not done,
        LOGON will falsely be tricked into thinking it has been
        returned to the BBS before getting the mail ... LOGON will
        then prematurely LOGOFF.

Variable:  md_bypa1             MailDoor-bypass  (different MAILware have different
Whereset:  TABLE
.
        If the MAILware has nuisance "continue" prompts, they may be
        bypassed with this variable.  %md_bypa1 is a two part
        variable.  The first part is the response, the second part
        is the nuisance prompt.
        Example   {setv md_bypa1,n|,continue?}
.
        This variable must be defined and must be in the format
        described above.  Otherwise, a macro error will occur.

Variable:  mt_qwk               eMpTy_QWK
Whereset:  TABLE
.
        This is the message that the MAILware sends when the mail
        packet contains no mail.  The macro will avoid downloading
        this packet.

Variable:  md_brnch             MailDoor BRaNCH
Whereset:  TABLE        Ref: xfer_pmt
.
        The first of two controls for branching or controlling the
        mail fetch routine.  The other macro control is %xfer_pmt.
        %md_brnch is a two part variable.  The first part is a
        "branch-to", the second part is "on this prompt".
.
        %md_brnch is used two different ways.
        1.  To branch to a message counting subroutine
        2.  To branch to a routine that deals with extended
            MAILware prompts (LAKOTA and uqwk are examples)
.
        After telling the maildoor to make a mail packet, the macro
        waits for something like "Total Messages: " then branches
        to a label that will {gets } the number of messages.
.
        Branching goes to :qdl if no message counting or extended
        prompts are used.  Branching goes to :c_xxx where xxx is the
        three character shorthand for the MAILware type.

Variable:  xfer_pmt             TransFER ProMpT
Whereset:  TABLE
.
        The second of two controls in the mail fetching routine.
        The other macro control is %md_brnch.
        %xfer_pmt is used only in the :c_xxx subroutines.
.
        The %xfer_pmt is the MAILware's offer to take or not take
        the mail packet:  "Do you want this packet [Y/n]? "
.
        CS-LOGON then proceeds to send an affirmitive (%yes) or
        negative (%no) response, depending on whether it contains
        personal mail and on how many messages are in the packet
        (%pfl = personal mail flag, %min_msg is the minimum packet
        size that you are willing to download).

Variable:  rdr                  ReaDeR type
Whereset:  TABLE
.
        %rdr passes the mail packet renaming method from %qrdr and
        %znr (you set in CS-MACxx.CFG) to the LOGON :renqwk routine.
.
        You do not establish %rdr directly.
.
        %rdr will contain either the value you selected for %qrdr
                              or the value you selected for %znr
.
Ref: qrdr

Variable:  up                   Command to HOST for reply upload
Whereset:  TABLE
.
        %up is the command that the MAILware expects in order to
        start the process of reply upload.  Include or omit <CR>'s
        as the MAILware expects.

Variable:  dn                   Command to HOST for packet download
Whereset:  TABLE
.
        %down is the command that the MAILware expects in order to
        start the process of mail gathering and download.  Include
        or omit <CR>'s as the MAILware expects.

Variable:  qwk                  Mail packet file extension
Whereset:  TABLE
.
        %qwk is assigned one of three values; QWK, SOU, or ZNS
        %qwk is used to check your mail directories for the existence
        of old mail packets.  If old mail packets exist, they will
        be renamed to avert overwriting.  See %qrdr and %znr for
        details of the renaming schemes.
.
Ref: qrdr

Variable:  rep                  Reply packet file extension
Whereset:  TABLE
.
        %rep is assigned one of two values; REP or PST
        %rep is used to check for reply packets and send them
        automatically if they exist.

Variable:  yes                  Affirmative response
Whereset:  TABLE
.
        %yes is the response that the MAILware requires to start
        a mail packet download on a "Take this packet? " prompt.
        If there is no such prompt, it is OK to set %yes=NUL.

Variable:  no                   Negative response
Whereset:  TABLE
.
        %no is the response that the MAILware requires to abort
        a mail packet download on a "Take this packet? " prompt.
        If there is no such prompt, or you cannot abort a download,
        it is OK to set %no=NUL.
.
Ref: :c_x

Variable:  quit                 Return to BBS
Whereset:  TABLE
.
        %quit is the MAILware command to quit the maildoor and return
        to the BBS.  For built-in mail doors, set this to NUL.  This
        indicates to the macro that it needn't try to QUIT the maildoor
        before proceeding with any additional actions

Variable:  md_bye               Logoff BBS from MAILware
Whereset:  TABLE
.
        %md_bye is the command to logoff the BBS from the MAILware.
        Some MAILware do not have a logoff command.  In a case where
        the MAILware lacks a "bye" command, set %md_bye=NUL.  This
        indicates to the macro that it must quit to the BBS before
        attempting to logoff the BBS.

Variable:  bbs_pmt              BBSware_ProMpT
Whereset:  TABLE
.
        %bbs_pmt is the Main Board Prompt for the BBSware.  Reaching
        this is the conclusion of the logon routine.  Be sure to
        make this long enough to be unique.

Variable:  lan_pmt              LANguage_ProMpT
Whereset:  TABLE
.
        %lan_pmt is a two part variable.  It contains both the
        response and the prompt for a BBSware "Which language? "
        prompt.  The response is typically an empty <CR> to take the
        default language.
.
        %lan_pmt must be defined or the LOGON macro will terminate
        with a macro error.
.
Ref: gra_pmt

Variable:  nam_pmt              NAMe_ProMpT
Whereset:  TABLE
.
        %name_pmt is a two part variable.  It contains the response
        and the prompt for a BBSware "What is your name?" prompt.
.
        The response may be one of three subroutines contained in
        CS-LOGON.  1. :name      2. :f&l      3. :handle
.
        1.  {setv nam_pmt,name,What is your name? }
            Will send your name or alias at the BBS name? prompt.
            Will send the QuickLogOn string if one is defined for
            this BBSware AND %ql=y for this .FON entry
        2.  {setv nam_pmt,f&l,What is your name? }
            Will send your first name <CR>, wait 2 seconds, send
            your last name <CR>.  This too will use an alias if set.
        3.  {setv nam_pmt,handle,What is your name? }
            Will send your %handle at the BBS name? prompt.
.
Ref: pwd_pmt

Variable:  gra_pmt              GRAphics ProMpT
Whereset:  TABLE
.
        %gra_pmt is a two part variable.  It contains both the
        response and the BBSware " want color graphics? " prompt.
.
        The response may be a simple "Y" or "N" or optionally,
        TABLE may refer to :loq.  :loq will send %color & %fast.
        An example makes this easier to see.
.
        %color = y    %fast = q ns
        :loq sends "y q ns|" to a PCBoard for a quick, non-stop
                                  color graphics logon.
.
        %gra_pmt must be defined or the LOGON macro will terminate
        with a macro error.
.
Ref: nam_pmt

Variable:  pwd_pmt              PassWorD ProMpT
Whereset:  TABLE
.
        %pwd_pmt is the prompt that the BBSware sends when
        requesting your password.  This is the half-way mark of the
        CS-LOGON logon process.  The first {look } in the CS-LOGON
        logon routine is this string.
.
        Make this a unique string.  If you use "password" as the
        prompt and the sysop at the BBS uses the word "password" in
        one of his/her logon screens, the macro will wrongly think
        it is at the password prompt and will be premature in
        sending your password.
.
Ref: bypass

Variable:  bypass               Bypass nuisance
Whereset:  TABLE
.
        %bypass1 through %bypass9 are a series of two part variables.
        The %bypass_ variables are active between sending your
        password and reaching the Main Board Command prompt (%bbs_pmt).
.
        %bypass variables can be used to respond to the myriad
        annoying "more?", "second password", "are you real?" prompts.
.
        The first part of each %bypass_ is the response, the second
        part is the "continue?" prompt.  Be aware of overlapping
        %bypass strings.  See PRE-LOGOFF for a description of
        overlapping %bypass strings.
.
        %bypass variables are translated into {golo } commands.
        As such, the responses must be valid macro labels.
.
Ref: bbs_pmt

Variable:  bye                  Logoff Command for BBS
Whereset:  TABLE
.
        %bye is the command used to logoff the BBS.  Omit the <CR>
        in the definition of %bye.  If necessary, the <CR> will be
        appended in the form of the %rs variable.

Variable:  rs                   Response Suffix
Whereset:  TABLE
.
        %rs is either "|" or NUL.  If the BBSware is operated in
        hotkey mode, %rs=NUL.  If the BBSware expects a press of the
        enter key for each command, %rs = |

Variable:  ap_?                 Autopilot Hotkey labels
.
        The CS-MAC Autopilot has Hot-keys that point to COMMO.MAC
        Labels in your COMMO.MAC are formated ":ap_▒" with "▒" being
           the autopilot hotkey.  Autopilot "Q" goes to :ap_q, etc.
        Assignable letters are B, D, F, H, M, Q, S, T, U, V, and X
           "K" is preassigned to scrollback
           "L" is preassigned to edit the RING.LOG file
           "T" is preassigned to the Autopilot TOGGLE menu
.
Ref: _menu

Variable:  _menu                Autopilot Hotkey Custom menu
.
        A custom Autopilot menu may be located at the :_menu label
        The menu is to be written in your Commo home macro.
.
        Two conditions must be met to make the new menu active;
        -  you must have a working validation key
        -  the variable %ap_menu must be non-NUL
.
 {:_menu}
        {setv _menu1, T - Toggles  L - ring.Log  K - Scrollback}
        {setv _menu2, H - Help     X - eXit      M - Macros}
        {setv _menu3, D - Dialing  F - Find      V - }
        {setv _menu4, Q -          S - Shell     U - }
        {setv _menu5, %_dwt      %_dat     %_tim%:%_sec}
        {setv _msize,9,55}
        {retu}

Variable:  ap_see               CS-PILOT "show menu?" status flag
Whereset:  PILOT
.
        %ap_see    NUL          Autopilot Menu is visible
        %ap_see    any value    Autopilot Menu is invisible
.
        CS-MAC starts up without defining %ap_see, so the default is
        to make the Autopilot menu visible.  It can be toggled by
        the Autopliot Toggles Menu.  If you want the autopilot to
        default to invisible, set %ap_see to any non-NUL value in .CFG

Variable:  ring_c               Counts the number of rings in a ring event, if
Whereset:  PILOT     the number = 1 and the Autopilot host is
                     enabled, the Autopilot will convert to a simple
                     host for 45 seconds (will answer the next call
                     with the modem).

Variable:  ring                 Holds the number of telephone RINGs.  Is displayed
Whereset:  PILOT     in Autopilot menu.  Is reset to 0 with the Toggle
                     menu available in the Autopilot.

Variable:  pmail                Is set only when you have personal mail.
Whereset:  LOGON     It shows the date and time of the mailrun.

Variable:  set       Provides information about the Autopilot host
Whereset:  PILOT
.
        The contents of the %set variable are established by CS-PILOT
        %set contains information about the Autopilot host.
        This information is displayed on the Autopilot Hotkey menu.
.
        "Host set"   indicates a single ring but no follow-up
        "Remote Shell to DOS" means a successful host session
        "Bad Password" indicates a failed access attempt
        "Callback Failure" indicates a different failure mode
        "LOCAL Access" is when you fake the RING events

Variable:  ring_t               Shows the time of the last four RING events.
Whereset:  PILOT     If the boss called at 6:31 and let it ring 5 times,
                     that is only one ring "event".

Variable:  host_ac              Host Enable message or Host Disable
Whereset:  PILOT     Shows "Host Enabled"  or "Host Disabled"
                     depending on the setting of the Autopilot toggle.

Variable:  _skits_              Display event time on screen
.
        If you have events that "leave no trace", you may want a
        screen record of their occurrence.  Set _skits_="Y" and
        each autopilot event will put a one line notice on screen.
        Helps figure which event required the restart keypress!
        Use @< to set a value for a variable.
.
Ref: :var_peek

Variable:  :ed_rlog             Autopilot "L" hotkey
.
        This label is the start of editing RING.LOG, a record of
        telephone rings.  It is normally called from the Autopilot
        hotkey menu, but this label is available in CS-COMMO in case
        you want to assign an additional key.

Variable:  ap_chat              Inform that sysop asked for CHAT
Whereset:  LOGON
.
        Is set in CS-LOGON when the sysop interrupts your mail run.
.
        %ap_chat is set to "CHAT" if the sysop chat string (%chat_str)
        is received.  Used in Autopilot menu to advise of interrupted
        macro by helpful sysop.  Reset from Autopilot toggle menu.

Variable:  door2     Setting up two-doors-per-call requires %door2
Whereset:  .FON
.
        CS-MAC is setup to open multiple doors during a single phone
        call.  The variables %door2, %door3, etc. must be manually
        edited into your .FON directory to cause more than one door
        to be opened during that connect.
.
        The %door2 variable has three components ...
.
                  {door2,zns,zipnews cboldt|,nlbbs}
                         ┬─  ┬─────────────  ┬─
                         │   └ Command to    │
                         │     enter door    └ BBSID for second door
                         │
                         └ MAILware type
.
        You may have a %door3 and %door4 and ... until you have
        used all 255 spaces available on a .FON entry line.

Variable:  inet      The CS-MAC series supports telnet connections.
Whereset:  .FON
.
I call EXEC-PC locally, get to my Unix prompt, then telnet to NLBBS.
At NLBBS, I make a mailrun and logoff.  Then I logoff EXEC-PC and
hang up the phone.  Here's how ....
.
In your COMMO.FON, have an entry that dials your internet provider
(EXEC-PC in my case).  In this dialing entry, set a variable called
%inet.  This will be used to mark and telnet for a mailrun (in my
case, mark and telnet nlbbs).  The marking is done with {mark >%inet}.
                                                              ^
Dialing "A." is followed by mark and telnetting to "B."
.
A.  EXEC-PC:NLBBS {789-4600}{password}{int}{,,,v}{inet,NLBBS}
B.  telnet->NLBBS {%tn_pf nlbbs.com}{password}{i_qwk} .... etc .
           ^
In your dialing directory, locate "B." directly below "A." and avoid
manually marking "B."
.
           telnetting to a BBS (continued)
.
2.  Description of the "B." entry.
  - Instead of a phone number, put in the telnet address with a
    special dialing prefix {%tn_pf nlbbs.com}.
  - %tn_pf == telnet (the command to open a telnet session)
  - For the linked macro label, use {i_qwk}.
  - Define the mailrun variables.  The two lines below would be one
    line in COMMO.FON
.
    B.  telnet->NLBBS  {%tn_pf nlbbs.com}{password}{i_qwk}{,,,v}
                       {bbsid,nlbbs}{mail,qm4}{bbs,pcb}{dorno,door 2|}
.
3.  CS-LOGON has several telnet supporting routines at the end.
    :do_inet simply mark and "dials" the appropriate COMMO.FON entry
    :i_qwk gets past the terminal server to the point
        where the normal mailrun can take over.
    :bye_inet logs out of you internet provider

Variable:  event_?              %event_tim, %event_hr, %event_day, %event_def,
Whereset:  PILOT     %temp, %len, and %pos are all used then reset
                     to NUL by CS-PILOT.CSM.
.
                     These are not CS-MAC user variables.

Variable:  qlo       A QuickLogOn string set by BBSware in CS-TABLE.
Whereset:  TABLE
.
        A "Quick LogOn" string to be sent to the BBS.  %qlo should
        NOT end with a <CR>, CS-LOGON appends the carriage return
        after %qlo.  To USE the Quick LogOn string, you must add
        {ql,y} to the BBS entry in your .FON directory.
.
        Example:  qlo=*%name;%_pas sends *Chuck Seyboldt;password|

Variable:  ql        set as {ql,y} in the .FON to do Quick LogOn
Whereset:  .FON
.
        "Quick log-on" (%qlo set in TABLE) to be sent. Otherwise,
        the macro response to the BBS "name?" prompt is to send only
        your name. See variable %qlo for an example.  See label :f&l
        for related help.
.
Ref: qlo

Variable:  pfl                  %pfl is used transiently to flag existence of
Whereset:  LOGON     personal mail for one call for the ZIPnews
                     door and for built in PCBoard mail.

Variable:  skip                 Flag to skip mail d/l (not required)
Whereset:  COMMO
.
        %skip alters the behavior of the mail fetching macro so that
        it skips any attempt to download.  When %skip is set to "y"
        the macro will just upload replies.
.
        A kindred internal variable %nodl is set if %skip = y.
.
        %skip is set to "y" by the SF4 "send replies" macro.

Variable:  chuck                Hello!  I use this variable to toggle on items
Whereset:  .CFG      that are strictly of interest to me.  Like
Example :  NUL       making backups of my financial files.
.
        Here though, I'd like to thank you for using CS-MAC.  I enjoy
        your suggestions for improvement, so feel free to contact me.
        Look at the variable %v_ph for my phone number (it's the
        default).  Please call between 8AM and 8PM, Central Time.
.
Ref: v_ph

Variable:  debug               This special variable is used to assist logon
Whereset:  COMMO     and mail fetching troubleshooting.  It may be
Example :  NUL       set for one call by entering the dialing
                     directory via the Macro Menu.
.
        Alt-M,D  will set %debug=y and open the dialer window.
        For one connect, a raw capture, DEBUG.CAP, will be made
        and special marks will be placed where CS-MAC interacts with
        the host system.  The raw capture file will be in your
        Commo home directory.
.
Ref: TROUBLE

Variable:  :c_?                 Message counting subroutine
Inmac:  LOGON
.
        This family of subroutines started as strictly message
        counting.  It is better to think of them as a mail-door
        subroutine.  Any special needs that a particular mail door
        has (extraneous prompts) can be met in these areas.
.
        The MAIL_type LAKOTA (:lak) has several prompts that are
        unique.  The routine  :c_lak  has the appropriate responses.
        Notice the relationship :lak -> :c_lak.
.
        %md_brnch is used to pass control to these MAILware
        specific subroutines.
.
Ref: md_brnch

Variable:  :c_x                 Send several Ctrl-X characters
Inmac:  LOGON
.
        Some mail doors provide no prompt to abort a download.  In
        those cases, CS-MAC uses a string of Ctrl-X's.  The :c_x
        subroutine sends 8 Ctrl-X characters then returns.

Variable:  :at_bbs              Make it clear that we are at %bbs_pmt
Inmac:  LOGON
.
        With all the variety of MAILware (some return to the BBS
        after successful download, some have no "goodbye"), it became
        necessary to have a variable to indicate that the LOGON was
        certainly at the bbs_ware prompt.  This subroutine is used
        when a mail door suddenly displays the BBS prompt.

Variable:  :glr                 Label for the start of "generic logon"
Inmac:  LOGON
.
        This label is the start of the logon process.  It is called
        by CS-TABLE after the BBS_ware and MAIL_ware specific
        prompts and responses have been put in memory.  It also
        appears in CS-COMMO and may be used as a link from .FON
.
        :glr and :qwk  are redundant, they each do exactly the same
        thing.  If you want a .FON entry to skip making a mailrun,
        don't set a {mail} variable for that entry.

Variable:  :qwk                 Label for the start of "mailrun logon"
Inmac:  COMMO
.
        This label may be used in .FON to link to a full mailrun
        It jumps from CS-COMMO to CS-TABLE to CS-LOGON.  This label
        acts the same as the :glr label.

Variable:  :p_flg               Subroutine to set personal mail flag
Inmac:  LOGON
.
        Any BBS_ware you call might tell you that you have personal
        mail waiting.  This subroutine "remembers" that it has seen
        a personal mail message and downloads small mail packets if
        they contain personal mail.
.
        :p_flg may be called from a %bypass variable during the
        logon process.  The :p_flg subroutine sets a variable called
        %pfl to "y".  Later, message counting routines may act on
        the %pfl setting.  %pfl is reset to NUL After the mail
        packet has been downloaded.

Variable:  :qdl                 Send "yes" and download mail packet
Inmac:  LOGON
.
        This is a key location in the CS-LOGON.CSM macro.  It sends
        the %yes response to the maildoor then runs the mail
        download protocol on your system.  One would branch to this
        location if one wanted to get mail.
.
        The "don't get mail" label is :no

Variable:  :mx                  This label marks experimental routines
Inmac:  COMMO
.
        The label :mx has two uses.  First to be the starting point
        when you Alt-M,X.  It also is the point that Alt-M,E and
        Alt-M,P jump to.  You can move the :mx label around and the
        Commo editor will always take you to that location.

Variable:  :p?br                Auto-start receive protocol
Inmac:  COMMO
.
        This family of labels is made available to auto start file
        receive protocols.  By putting {aut=pzbr,^xB00} in COMMO.SET
        Zmodem will auto start downloads.  Adding more :p?br labels
        can follow the examples near the end of CS-COMMO.CSM

Variable:  :p?bs                Auto-start send protocol
Inmac:  COMMO
.
        This family of labels is made available to auto start file
        send protocols.  By putting {aut=pzbr,^xB00} in COMMO.SET
        Zmodem will auto start uploads.  Adding more :p?br labels
        can follow the examples near the end of CS-COMMO.CSM

Variable:  :ev_test             Autopilot event test label
Inmac:  COMMO
.
        At this label is a short routine to inform you that your
        test event was operated successfully.  Put this event in
        your %ev_file ...  @ :@  ev_test    ...

Variable:  @MK           Alt-M,K        Ref: :show_keys

Variable:  :show_keys           Show keyboard assignment summary
.
        This routine pops up a summary of keyboard assignments
        Don't forget that you can easily reassign keys using the
        "Table of labels" near the end of CS-COMMO.CSM.  Try it,
        put {:af5} at the start of the line that contains
        {goto show_keys} .... then press Alt-F5 and keyboard help
        will pop up!

Variable:  PGU           PgUp,N    NULmodem send    Ref: :u_nulmodem

Variable:  :u_nulmodem   PgUp,N    Autopilot "B" hotkey
.
        This marks the start of an upload routine that might use a
        second serial port to exchange data with another computer.
        In order for this routine to appear on the upload protocol
        menu, you need to define %l_parm
.
Ref: l_parm

Variable:  PGD           PgDn,N    NULmodem receive Ref: :d_nulmodem

Variable:  :d_nulmodem   PgDn,N
.
        This marks the start of a download routine that might use a
        second serial port to receive data from another computer.
        In order for this routine to appear on the download protocol
        menu, you need to define %l_parm.

Variable:  HOM           Home      View COMMO.DOCs  Ref: :commo_doc

Variable:  :commo_doc    HOM       Use LIST to view COMMO.DOCs
.
        This routine uses your %ext_li (external LIST) program to
        read *.DOC in your %ins_dir (instruction directory).  Put
        COMMO.DOC and MACRO.DOC in the instruction directory and
        your HOME key will provide a handy reference.

Variable:  @=            Alt-=     Toggle Doorway   Ref: :doorway_

Variable:  :doorway_     Alt-=     Toggle Doorway mode
.
        This routine is only the {door } toggle without the
        notification window.

Variable:  @<            Alt-<     Variable peek    Ref: :var_peek

Variable:  :var_peek     Alt-<     Variable peek and poke command
.
        Commo has no built-in "easy" way to change the contents of a
        variable.  CS-MAC does!  Input a variable name when asked,
        and then see and, if you want, change the contents of the
        variable.

Variable:  @D            Alt-D     Download file tagger  Ref: :fon_mark

Variable:  :fon_mark     Alt-D     Tag files for download while online
.
        The Alt-D command opens the dialer if you are offline.
.
        Online, it performs an entirely different function.  It
        provides a filename tagger for downloading files.
.
     >  In scrollback, press "W" to get the highlight bar.
     >  Locate the highlight bar on the filename you want to download.
     >  Press <ENTER> twice to write that line to the download list.
     >  When you ESCape from scrollback, you will go to the editor.
        This provides you with an overview of the filenames you have
        tagged from scrollback.  You don't need to edit off the
        descriptions, they'll be automatically stripped.
     >  When you ESCape from the editor, the macro sends first a
        "D" to the host, then each filename, one after the other,
        until all the filenames have been sent.
.
Ref: @MW

Variable:  @H            Alt-H     Help or Hangup  Ref: :help_

Variable:  :help_        Alt-H     Autopilot "H" hotkey
.
        If online, the :help_ routine will hangup the phone.  When
        Offline, :help_ will call on either CS-MAC.HLP or COMMO.HLP.
.
Ref: cs_hlp

Variable:  @M            Alt-M     CS-MAC Macro menu  Ref: :macro_menu

Variable:  :macro_menu   Alt-M     Autopilot "M" hotkey
.
        CS-MAC has a variety of online and offline tools.  The
        :macro_menu pops up a one menu while online and a different
        one while offline.  The "M" key will go from the online menu
        to the offline one.  The menu items are described
        individually in this help file.

Variable:  @MA           Alt-M,A   Start Auto-Pilot NOW  Ref: :start_ap

Variable:  :start_ ap    Alt-M,A   Start Auto-Pilot NOW!!
.
        This label points to the routine that unequivocally starts
        the Auto-Pilot.  This makes the autopilot ON.

Variable:  @MD           Alt-M,D        Set the %debug variable open dialer
.
        Alt-M,D  will set %debug=y and open the dialer window.
        For one connect, a raw capture, DEBUG.CAP, will be made
        and special marks will be placed where CS-MAC interacts with
        the host system.  The raw capture file will be in your
        Commo home directory.
.
        This facility is useful for troubleshooting settings in
        CS-TABLE and CS-LOGON.

Variable:  @ME           Alt-M,E        Open the CS-COMMO.CSM macro processor
.
        Alt-M,E opens the macro processor (similar to standard Commo
        Alt-M command).  It jumps to the first occurrence of the
        string ":mx".  Use the string :mx to mark the location that
        you want to jump to when invoking the Macro processor.

Variable:  :action_make  Alt-M,F   Autopilot "F" hotkey  Ref: @MF

Variable:  @MF           Alt-M,F        Make ACTION file for file transfers
.
        ACTION files are designed for PCBoard interaction only.
        The Alt-M,F menu item starts the process of making an ACTION
        file for a future phone call.  You specify filenames to
        download and to upload.  You may also command "G"oodbye.
        This way, a session may be preset to transfer files only.
.
        After a LOGON, CS-MAC will check for an action file for the
        BBS you are on.  It will run the file action before entering
        the maildoor.
.
Ref: CS-ACTON and @MOP for more about ACTION files

Variable:  @MMB          Alt-M,M,B        Make backup  Ref: :back_up

Variable:  :back_up      Alt-M,M,B        Backup macros to ZIP file
.
        This is a menu driven method to reach the backup routine
        located at :back_up.  The backup routine ZIPs (%pk_zip)
        *.CSM, *.MAC, *.FON, and *.ADR files into MAC.ZIP.
.
        MAC.ZIP is located in your %savedir.  If you have defined
        a back-up drive (%bu_dr), MAC.ZIP is copied to it for
        safekeeping.  I define an event in my event file (%ev_file)
        to call :backup once a day.
.
Ref: chuck

Variable:  @MMC          Alt-M,M,C      Automated Compiling  Ref: :compile_

Variable:  :compile_     Alt-M,M,C      Automated Compiling and renaming
.
        After compiling *.csm files, be sure to rename them to *.csm
        since they {call } and {goto } each other by hard coded names.
        Save the source code (old *.csm files) for any future changes.
.
        Your home macro is an exception to that rule ... it may be
        named anything, all references to the home macro are done
        with Commo's built-in variable %_mac.
.
        The automated compile routine is a nifty trick, but it
        increases the size of the source code a small amount.

Variable:  @MMF          Alt-M,M,F      Fgrep Utilities  Ref: :fgrep_ut

Variable:  :fgrep_ut     Alt-M,M,F
.
        CS-MAC has a family of macro routines that use fgrep for speedy
        searches.  One of these will extract all of the DOS commands
        called by CS-MAC {exec } functions.

Variable:  @MMS          Alt-M,M,S      Strip Comments from macros
.
        This macro function will remove the comments that I have
        sprinkled in the CS-MAC series.
.
        Why would you want to do this?  Well, if you have your own
        macro tidbits that you want to add to your home macro, and
        you want to use CS-COMMO.CSM as your home ... you need to
        clear some space out of CS-COMMO to make room for your own
        work saving keystrokes.

Variable:  @MMX          Install External Protocol  Ref: :add_eprot

Variable:  :add_eprot    Alt-M,M,X
.
        CS-MAC has a convenient method for adding external protocols.
        The routine at :add_eprot is designed to use PROTOCOL.DAT, a
        repository of external protocol command lines.

Variable:  @MOC          Command Recall Routine   Ref: :recall_cmd

Variable:  @MOP          Alt-M,O,P      Run PCBoard ACTION file
.
        ACTION files are designed for PCBoard interaction only.
        The Alt-M,(online)R command will run an ACTION file during
        the current session.
        .
Ref: @MF

Variable:  @MOR          Start Macro recorder (Learn)   Ref: :learn

Variable:  @MOS          Search address file   Ref: :srch_addr

Variable:  :srch_addr    Alt-M,O,S      Search address file
.
        This routine provides "search and send" tools for convenient
        online use.  It searches the file you named in %address and
        will present you with each match (one match at a time).
.
        Once you have selected a match, you will be able to send
        the address, send a command then the address (telnet, ftp,
        or ntalk), or ESCape.

Variable:  @MOX          Alt-M,O,X      Prompted write for CS-MAC.ID key file
.
        This Macro command is used to access the "make-a-key"
        routine in CS-PILOT.  When you have the key-file information,
        this routine steps you through making the key file.
.
Ref: cs_id

Variable:  @MU           Alt-M,U        Unload Auxiliary macro
.
        If you have loaded COMMO.MAC (or any other macro) as the
        auxiliary and want to remove it from memory, Alt-M,U
        performs the macro unload function.

Variable:  @MW           Alt-M,W        File download wishlist manager
.
        CS-COMMO provides a way for you to keep a master list of
        files that you want to download.  The wishlist manager
        automatically deletes filenames that it finds in your
        download directory.
.
        You must manually add in the filenames that you may later
        want to download.
.
        Future additions of CS-MAC may integrate the wishlist and
        the Alt-D (@D) download list maker.

Variable:  @N            Multi-number dialer    Ref: :fon_dial

Variable:  :fon_dial     Alt-N
.
        This is an enhanced multi number dialer.
        It include automatic un-marking and logging of;
.
              persistent busy            (45 attempts),
              persistent ring no answer  (5 attempts),
              persistent voice answer    (5 attempts).

Variable:  @O            Initialize Modem or Quote a message  Ref: :init

Variable:  :init         Alt-O          Initialize Modem or Quote a message
.
        While offline, this routine performs a modem initialization.
.
        While online, this macro provides a way for you to mark a
        section of scrollback, edit it, and return it to the host with
        every line starting with a ">".  This is an online message
        quoting facility.

Variable:  @Q            File editing menus     Ref: :edit_menu

Variable:  :edit_menu    Alt-Q          File editing menus
.
        CS-MAC provides a two tier menu for editing Commo support
        files.  The non-shown menu item "M" will shuttle you to the
        Macro Menu.

Variable:  @QR           Run mail reader program  Ref: :reader

Variable:  :reader       Alt-Q,R        Run mail reader program
.
        CS-MAC provides a two tier menu for editing Commo support
        files.  The non-shown menu item "M" will shuttle you to the
        Macro Menu.

Variable:  @R            Review Call log (COMMO.LOG)  Ref: :review_log

Variable:  :review_log   Alt-R     Autopilot "U" hotkey
.
        This routine uses your external lister to read COMMO.LOG.
.
        Your log will be opened and automatically taken to the end.
        If you are logging NULmodem transfers with %l_use, you will
        be taken to that log after you leave COMMO.LOG.

Variable:  @S            ALT-S          Shell to DOS
.
        This key performs a shell to DOS.

Variable:  @T            Terminal Toggles or Elapsed Time  Ref: :toggle_

Variable:  :toggle_      Alt-T          Terminal Toggles or Elapsed Time
.
        While OFFline, this calls the standard Commo toggles menu.
.
        While ONline, this presents information about your elapsed
        online time.  This is useful if you run a terminal with no
        status line.

Variable:  @U            Load COMMO.MAC, call Utility menu  Ref: :load_commo

Variable:  :load_commo   Alt-U          Load COMMO.MAC, call Utility menu
.
        CS-COMMO and Fred Brucker's COMMO.MAC get along quite well.
        When you use the :load_commo function from CS-COMMO, it loads
        COMMO.MAC as the auxiliary macro.  In this form, COMMO.MAC
        key assignments have priority and your terminal will act
        just like "standard" COMMO.
.
Ref: @MU for unloading auxiliary macro files

Variable:  @V            Toggle Video mode    Ref: :video_

Variable:  :video_       Alt-V          Toggle Video mode
.
        Commo supports dual video modes.  This function will toggle
        between the two settings that you have selected.

Variable:  @X            Exit Commo     Ref: :exit_

Variable:  :exit_        Alt-X     Autopilot "X" hotkey
.
        Exit Commo.  CS-MAC offers options on the exit method.
.
Ref: xtime

Variable:  F1            Help or send your name   Ref: :help_nam

Variable:  :help_nam     F1 key         Help or send your name
.
        The F1 key nearly always will call help.  However, in the
        first one minute of a logon, F1 will send your name to
        the host.  After the first minute, use F2 (:strings) for
        a shortcut method of sending your name.

Variable:  F2            Menu to select short strings to send  Ref: :strings

Variable:  :strings      F2 key         Menu to select short strings to send
.
        The key is a gathering place for the text strings that you
        send most often.  Items such as your name, your phone
        number, your "handle" will appear here.
.
        The F2 key also provides a gateway to these macro routines:
.
        -  "T"   Send a Random Tagline
        -  "R"   Invoke the "Command Recall" routine
.
Ref: F5 & F2T

Variable:  F2T           F2 "T" menu selection.  Send Tagline
.
        You have told CS-MAC where to find your tagline file, and
        how many taglines it contains.  The routine called here will
        select a tagline and send it.  The routine picks a new
        tagline each second, up to 3600 different seconds in an
        hour.
.
        Alternatively, you can omit telling CS-MAC how many lines
        are in your tagline file.  Then you choose a tagline by
        inputting a tagline number.
.
Ref: random_t

Variable:  F3            Capture file naming    Ref: :capture_

Variable:  :capture_     F3 key         Capture file naming.  CAPMode setting
.
        This key provides a simpler method of controlling the capture file
        settings (normally performed in ALT-1). When this key is pressed, a
        defaulted capture file name will be presented with todays date
        embedded within it. You can then either hit enter to accept this name
        or type a new name. Once the name has been decided upon, you will be
        asked to provide the type of capture mode. Your three options are:
        (R)aw, (F)ilter, or (S)creen. Press the letter of choice. You will
        hear a double beep signifying that the file is open. Pressing this
        key again will turn the capture off. At any time during the process
        of defining a capture file you may press <ESCAPE> to abort the
        process.

Variable:  F4            Shell to DOS (with swap)  Ref: :shel

Variable:  :shel         F4 key         Shell to DOS (with swap)
.
        This key performs a shell to DOS and swaps Commo out of memory.
.
Ref: @s

Variable:  F5            Command Recall Routine   Ref: :recall_cmd

Variable:  :recall_cmd             F5 or F2,R or Alt-M,O,C
.
        This is a powerful device to save up to 18 commands.  After
        starting the Command Recall routine, you may either send an
        old command or record a new.
.
        You can record commands as you type or from scrollback.
        When you enter commands after #18, the whole stack of commands
        is shifted upward one position and the command at the top is
        shifted off (lost).
.
        To record from scrollback, CS-MAC uses Commo's built-in "W"
        function in scrollback to mark the line that you want to
        save.  Put the cursor on the correct line, press <CR> twice.
        Then, ESCape from scrollback.  You will be taken to the editor.
        Edit the top line to whatever command you want to recall and
        press ESCape.  The command recall menu is automatically updated.
.
        Recall commands are only in RAM and will normally be lost
        when you exit Commo.  They may be saved in your .CFG file.
           :recall_cmd                                     Page 2
.
        You may save the sc_# variables to your CS-MACxx.CFG file.
        Then they will automatically be loaded when you start
        CS-MAC.  Once a %sc_# variable is in CS-MACxx.CFG, the save
        command will refuse to operate.  This is done to keep from
        inadvertently appending to the CS-MACxx.CFG file.
.
        Manual editing of the CS-MACxx.CFG file is quite simple.
        Use Alt-Q,G to edit the sc_# variables.
.
        When the recall command menu is visible, the "W" key will
        wipe-out all of the recall commands currently in RAM.
.
Ref: :learn

Variable:  F6            Voice dialer           Ref: :dialer

Variable:  :dialer       F6        Autopilot "V" hotkey
.
        CS-MAC includes a dialer for voice phone calls.  You may
        keep a voice call directory in the file %address and search
        that file with the dialer.  You may input partial names and
        the routine will display each entry in your %address file
        that matches.

Variable:  F7            Search any file        Ref: :searcher

Variable:  :searcher     F7 key         Search any file for address information
.
        If you do not use fgrep, you may use this slower routine to
        search any file for occurrences of text strings.  This
        routine only provides for searching, it will not send data.

Variable:  F8            Send ASCII file to PCBoard     Ref: :pcb_ascii

Variable:  :pcb_ascii    F8 key         Send ASCII file to PCBoard
.
        This routine takes care of all the PCBoard activity required
        to send a message.  It requires a message in STRICT format.
        The macro sends "E|", then sends the message.  So, the
        message first line is the "To: " info, the second line is
        the subject, the third line is "N" or "R" for message security,
        The fourth line varies depending on how you have configured
        PCBoard (line vs full screen edit, echo vs no echo of
        message).
.
        When all is said and done, it is much easier to use an
        offline reader than to take all the care in composing a
        message to conform to this!

Variable:  F10           Strew contents of hold directory  Ref: :strew_

Variable:  :strew_       F10 or Alt-M,M,H
Inmac:  LOGON                   Subroutine to strew contents of %hold_dr
.
        This is the subroutine that reviews the contents of your
        hold directory and automatically moves files according to
        their file extension.
.
Ref: hold_dr

Variable:  F11           Re-read CS-MACxx.CFG     Ref: :start

Variable:  :start        F11 key        Re-read CS-MACxx.CFG
.
        This routine reads through your CS-MAC config file and
        refreshes Commo variables to the settings currently in
        your configuration.  Use Alt-Q,G to edit your CS-MACxx.CFG

Variable:  F12           Load Address files for internet    Ref: :inet_dir

Variable:  :inet_dir     F12 key        Load Address files for internet
.
        This is an experimental macro that is used to load internet
        address files.  I am using .ADR as the file extension for
        internet address files.  Depending on the dialing directory
        that you choose, the macro will telnet, ftp, or finger the
        address shown in the directory.

Variable:  SF4           Check for .REP packets   Ref: :send_rep
Variable:  :send_rep     SF4 key        Check for .REP packets, mark and dial
.
    This automatic mark-and-dial routine will send your .REP files.
    It bypasses .QWK download questions with the "SKIP" variable.
.
    It also marks and dials BBS's that have an ACTION file request.
.
    :sf4 supports a "persistent" attempt to make .REP upload and
    is for use with an autopilot event that runs once per hour.
    It will always mark the boards, but when used during weekday
    phone rates, will require user input to dial.

Variable:  @F1           Run Gordon Haff's Directory Freedom  Ref: :dir_free

Variable:  :dir_free     Alt-F1 key
.
        This calls on the DOS program "Directory Freedom".  The
        specific call is ... {exec %utildir\dfr.com} {}


Variable:  :learn        Macro recorder
.
    Press Alt-M,O,R ("R" on the ONline macro menu) and follow the
    prompts for macro name and linked label name.  The "timer" prompt
    is the amount of time that the BBS may idle before the  LEARN>
    prompt will appear or the macro will guess a response.
.
    If you are currently offline, you will be taken to your .FON
    dialer.  Put {glr} or {learn} as the linked macro name.
    Learning will commence upon CONNECT.
.
    The default value for the recorded macro name is LEARN.MAC
    The default value for the starting label is {:learn}
.
    LEARN.MAC is appended to.  The newest recording is at the END.
.
    The "Seconds of idle time before guessing a response" timer
    controls Automatic  LEARN>  prompting.  Be careful with this
    timer, too short a value and the macro will lose BBS input.
.
               Macro recorder, step by step ...
.
    If the idle timer is active, the  LEARN>  prompt will appear
    automatically.  At any time, pressing ESC will cause the
    LEARN>  prompt to appear.  You have maximum control of the
    recorded macro from the  LEARN>  prompt.
.
    At the  LEARN>  prompt, all of your keypresses except ENTER will
    be recorded as response.  ESCAPE is recorded as an ESCAPE press.
.
    Pressing ENTER at the  LEARN>  prompt terminates your response.
.
    If you press ENTER directly (no keyboard response) you will be
    taken to the "Macro Recorder - Response Menu".  The "Macro
    Recorder" menu provides single key sending for your name and
    your password.  It also provides some macro recorder utilities.
.
    If you press enter after making a response, you will be taken to
    the "How shall I record your Response?" menu.
.
                     Macro Recorder - Response Menu  (not expert)
         ┌────────────────────────────────────────────────┐
         │  <CR>   Send and record CR response            │
         │   N  ■  Send your name                         │
         │   P  ■  Send your password                     │
         │   U  ■  Utilities for your recorded macro      │
         │   T  ■  Set Auto-prompt Timer                  │
         │   R  ■  Return me to the LEARN> prompt         │
         │   ESC   Exit learn macro                       │
         └────────────────────────────────────────────────┘
.
.
          How shall I record your response? menu (not expert)
         ┌──────────────────────────────────────────────────┐
         │  <CR>   Send my response with a carriage return  │
         │   H  ■  Hotkey BBS, send response with no CR     │
         │  ESC ■  I've changed my mind, Change response    │
         └──────────────────────────────────────────────────┘
.
.

          Macro Recorder - Response Menu  (expert)
         ┌────────────────────────────────────────────────┐
         │  <CR>   Record CR response as a SSLOok (#)     │
         │   N  ■  Send your name                         │
         │   P  ■  Send your password                     │
         │   L  ■  Record CR response as a LOOKfor        │
         │   U  ■  Utilities for your recorded macro      │
         │   T  ■  Set Auto-prompt Timer                  │
         │   R  ■  Return me to the LEARN> prompt         │
         │   ESC   Exit learn macro                       │
         └────────────────────────────────────────────────┘
.
          How shall I record your response?  menu   (expert)
         ┌──────────────────────────────────────────────────┐
         │  <CR>   Record this response as a SSLOok (#)     │
         │   H  ■  Hotkey BBS, send response with no CR     │
         │   L  ■  Record this response as a LOOK with CR   │
         │  ESC ■  I've changed my mind, Change response    │
         └──────────────────────────────────────────────────┘
.
    With %xpert set to "y", the macro recorder tends to make more
    robust recorded macros by using SSLOoks.  With a valid CS-MAC
    key file, the macro recorder allows up to 15 active SSLOoks.
    Without the key file, the learn macro only allows 3.
.
    Think of SSLOok as "Sometimes Look".  If the BBS sometimes sends
    the prompt (example: "This is your first call today, Check mail?")
    then we want a macro that operates if the prompt is there and if
    the prompt is not.  SSLOok commands handle the contingency.
.
    CS-MAC learn is intelligent enough that you could make all of
    your responses SSLOok types and the final target of your
    recording session can be the Main Board Command? prompt.
.
    The CS-MAC key file also enables SSLOok recording while in
    full-automatic learn mode (the learn macro tries to guess a
    response).  Without a key file, Autolearned macros are strictly
    composed of LOOK/SEND pairs.
.
               Advanced Macro recorder techniques
.
    The (U)tilities function in "Macro Recorder - Response Menu"
    can be used to insert Commo macro commands in your recorded
    macro.
.
    For instance, you can tell your macro to open and close a
    capture file, to clear the screen, and to capture to printer.
.
    There are menu driven facilities for selecting these functions.
    Any Commo function may be inserted by using the  (I)nsert a
    comment function.  Braces and %'s will be inserted directly.
.
    {clea} {capt y,filename}             ;open capture file w/date
    {clea} {capt n}                      ;turn off capture
    {clea} {prin y}                      ;start printing
    {clea} {prin n}                      ;stop printing
.
    The Command will appear in the recorded macro exactly the way
    that you type it here.  %variables are allowed and encouraged.

    Macro recorder and file downloading
.
    The macro recorder will auto-learn downloads using Zmodem,
    Smodem, Kermit, or HS/Link.  The auto-start strings are built
    into the auto-learn macro, you do not need to have any
    {aut= } definitions to enable this facility.
.
    Using this couldn't be much easier.  Ask the host for a file
    (from the  LEARN>  prompt, naturally).  Respond to any nuisance
    prompts (either waiting for auto-guess or respond from the
    LEARN>  prompt).  When the host starts to send the file, the
    macro recorder takes over for you.
.
    The file will be downloaded and the macro will record the steps
    you took ... including automatically starting the download.  You
    will not need to define {AUTO } strings to make the macro
    automatically follow the precise sequence you have taught it.
.
Ref: alrn_tim

Variable:  alrn_tim      BBS idle timer for Auto-Learn operation
.
    Besides the LEARN.DAT file that the macro uses to guess how
    to respond, the macro needs to know when it's time to guess!
.
    %alrn_tim (AutoLeaRN_TIMer) assumes the BBS is active as long as
    it is receiving carriage returns.  When no carriage return has
    been received in the past %alrn_tim seconds, the macro assumes
    the host is done and tries to respond.
.
    If the Autolearn macro doesn't have a guess, the LEARN> prompt
    will appear ... the macro needs your help to continue on this
    item.  If you have reached your destination, press <CR> to
    leave the LEARN> prompt, and ESCape to end the learn macro.
.
    When %alrn_tim is NUL, Auto-Learn will not operate.  The
    user is required to press ESC to initiate keyboard learning.

Variable:  lrn_mac       Name of macro file recorded with macro recorder
.
    You may record a macro under any file name.  If you have not
    selected a name for your recorded macro, CS-MAC chooses
    LEARN.MAC for you.  If you record to your home macro, the
    additions won't be visible until you re-enter Commo from a
    swap-out or exit.
.
Ref: lrn_lbl

Variable:  lrn_lbl       Start label of recorded macro
.
    You may choose a value for a start label of the recorded macro.
    If you have not selected a start label name, CS-MAC chooses
    {:learn} for you.

Variable:  m_call        Control sequence of dialing
.
     %m_call is used to save place during a dialing sequence that
     must proceed in a certain order.  The normal (default) setting
     for %m_call is  fon_dial.
.
     The end of CS-COMMO.CSM has an example of using this variable
     to control dialing sequence.

-------------------------------------------------------------------
Variable:  HELP           A description of the CS-MAC help facility.
-------------------------------------------------------------------
CS-MAC help is based on a text file, CS-MAC.HLP.  You are using a
Commo macro to read the help file.
.
CS-MAC will search for a variable with the name you specify.
If all the help available on a topic has been displayed, you will
not get the "[ENTER] for more"  prompt.
.
If the help topic has more than one page, you may still input a new
variable name at the "CS-MAC Help >" prompt.
.
The CS-MAC help facility has threading built in.
Sometimes a variable name will already be waiting at the help prompt.
Simply press ENTER to accept the thread.  Of course, you may input
a different variable name if you'd rather.
.
Ref: CS-MAC

-------------------------------------------------------------------
Variable:  CS-MAC          General macro layout and function
-------------------------------------------------------------------
The following topics are available for general information
.
CS-COMMO        Many manual terminal facilties
CS-TABLE        BBSware and MAILware specific prompts
CS-LOGON        The logon, mailfetching, and supporting routines
CS-ACTON        A PCBoard specific tool for file upload/download
CS-PILOT        Event operator, Host mode, and Hotkey menu
HELP            About the help facility
.
TROUBLE         Common problems and suggested investigation
.
Ref: CS-COMMO

-------------------------------------------------------------------
Variable:  CS-TABLE       The following variables are set in CS-TABLE.
Ref: CS-ACTON
-------------------------------------------------------------------
CS-TABLE contains BBS_type and MAIL_type information that CS-LOGON
uses for efficient logon and gathering of mail.
.
After a connect, CS-COMMO goes to CS-TABLE to get the information that
you specified in your .FON directory entry.  Once the BBS and MAIL
specific prompts are assigned to Commo variables, CS-TABLE goes to
CS-LOGON.  The whole process takes only a fraction of a second.
.
                  CS-TABLE Mail Door Variables
                  ────────────────────────────
md_pmt    mt_qwk    xfer_pmt  yes       up        qwk       rdr
md_bypas1 md_brnch  quit      no        dn        rep
.
                   CS-TABLE BBSware Variables
                   ──────────────────────────
gra_pmt   lan_pmt   nam_pmt   pwd_pmt   bypass    bbs_pmt   bye
rs        qlo

-------------------------------------------------------------------
Variable:  CS-LOGON       A description of CS-LOGON layout and use.
-------------------------------------------------------------------
CS-LOGON is called after BBS_type information is taken from CS-TABLE.
.
CS-LOGON contains the logon routine, opening the mail door, sending
replies, getting new mail, and logging off.
.
CS-LOGON will make a call to CS-ACTON for file uploads and downloads
if an ACTION file exists for this BBS.  This is available for PCBoard
only.  See CS-ACTON for additional help on this topic.
.
CS-LOGON will rename old mail packets (.QWK, .ZNS, or .SOU extensions)
See qrdr, znr, and rdr for more information.
.
CS-LOGON contains the routine that strews files from the hold_dr.
See hold_dr for more help on this topic.
.
Ref: CS-ACTON

-------------------------------------------------------------------
Variable:  CS-ACTON       A description of CS-ACTON layout and use.
-------------------------------------------------------------------
CS-ACTON is driven by a text file that contains action instructions.
CS-ACTON is only designed to work with BBS_type=PCBoard.
.
The ACTION files have a strict format and are always located in the
Commo home directory.  ACTION files are named "ACTION.%abbr" with
%abbr being the first two characters of %bbsid.
.
ACTION files may be constructed from a menu driven routine available
in the CS-MAC Alt-M macro menu.     @MF
.
After logon and before entering a mail door, CS-LOGON checks if an
ACTION file exists for this call.  If one does, CS-ACTON is called.
.
After the ACTION is complete, the ACTION.%abbr file is appended to
an action log called USED-ACT.%abbr (located in %savedir).  The
ACTION file is deleted automatically.

-------------------------------------------------------------------
Variable:  CS-COMMO        A description of CS-COMMO layout and use.
-------------------------------------------------------------------
CS-COMMO is my home macro.  You are encouraged to experiment with
Alt-M and Alt-Q to learn what is available in the manual terminal.
.
  Key           What is it, where is it?
 ────────       ───────────────────────────────────────────────────
  F11           -  Startup macro                         :start
  F9,  @ML      -  Upload manager                        :ul_mngr
  PGU, PGD      -  Upload and download protocols :u_prot,:d_prot
  @MW           -  Download wishlist manager
  @D            -  Online download file tagging          :fon_dial
  PGU, PGD      -  NULmodem file transfer routines       :u_nulmodem
  @Q            -  File edit and list routines           :edit_menu
  F2            -  Recall and send Online Commands       :strings
  F4            -  Check for replies and send them       :rep_send
  F6            -  Built-in voice call dialer            :dialer
  F7            -  Search address book                   :searcher
  @<            -  Variable peek and poke command        :var_peek
.
CS-COMMO is organized for ease of customizing.  The end of CS-COMMO
has several sections that are for you to edit.  Look for a "!" in
the first column for a line that you may want to edit.
.
Key assignment changes are made in the "Table of labels".  This
section is laid out in three columns, the key assignment, the
Autopilot hot-key assignment, and the CS-MAC function.  This makes
it easy to reassign keys to the functions in a way that you prefer.
.
Mark and dial routines are grouped so you may delete them or
install marks that suit your .FON directory.
.
The final section contains external protocol definitions and
auto-start labels.  With PROTOCOL.DAT and the Alt-M,M,X routine,
installation of external protocols is a snap.  To enable auto-start,
you'll need to add an {aut= } in COMMO.SET
.
Ref: CS-TABLE

-------------------------------------------------------------------
Variable:  CS-PILOT        A description of CS-PILOT layout and use.
-------------------------------------------------------------------
.
        CS-PILOT.CSM can serve as a launch-pad for all of your
        {Commo} related activities.  It comes equipped with
        a hot-key menu with 11 configurable keys.
.
        CS-PILOT.CSM watches the keyboard, the clock, and the phone
        line.  When the time matches your selected event, the event
        occurs.  A typical use would be to fetch mail every day at a
        certain time.
.
        The Autopilot can answer the phone and shell to DOS through
        Marshall Dudley's DOORWAY program.               (%ap_pass)
.
        Making an "event" for the autopilot is a three step process.
        1)  Put the event timing and name in a text file (%ev_file)
        2)  Define the event in your %_hom macro.        (:ev_test)
        3)  Enable and start the autopilot.              (%auto)
.
           CS-PILOT "AutoPilot"  Page 2
.
        2)  An important part of Autopilot events is putting a label
            on the event.  Whatever you want to happen on a certain
            day at at a certain time needs to be labeled in your
            home macro.  My home macro is CS-COMMO.CSM, yours may
            be different.  To resume the autopilot, put {goto
            auto,cs-pilot.csm} at the end of the event.
.
        3)  Start the autopilot with Alt-M,A.  This does a {goto
            auto,cs-pilot.csm} If you want the autopilot to start
            automatically when you start Commo, set auto,y in the
            CS-MAC.cfg file.
.
Ref: ev_file

Variable:  host               CS-PILOT Host mode
.
        The Autopilot has a simple host built in.
        When enabled, the host will answer the phone on a pattern of
        "RING; wait 10-45 seconds; RING RING"
.
        There are three conditions that must be met for the host to operate;
.
        1) %ap_ans is to contain the string that takes your modem off-hook
           This string is typically ATA|
        2) DOORWAY.EXE must be found in your %utildir
           doorway PORT:%_pad:%_irq /m:60 /g:on /a:on /v:d^u /o:t /s:* /c:dos
        3) The file you named %ap_pass must be found  (drive:\path\filename)
           Line 1 of %ap_pass is the HOST access password (1 to 8 chars)
           Line 2 is optional and contains the host_mode.
               The default host mode is drop to DOS on the correct
               password.  The other acceptable host mode is "callback".
           Line 3 is optional and contains the callback password.
.
Ref: ap_pass

-------------------------------------------------------------------
Variable:  TROUBLE        The following troubles have some help suggestions.
-------------------------------------------------------------------
PRE-LOGOFF      Premature logoff

Variable:  PRE-LOGOFF           BBS Goodbye before getting mail
.
        This problem occurs in two different areas.
.
        1.  Before entering (or as entering) the Mail door.
            The logon macro is sending extra responses during the
            logon process.  Run a session with the %debug variable
            set to "Y" (Alt-M,D).  Examine the resulting DEBUG.CAP
            found in your Commo home directory.  Look for occasions
            of overlapping %bypass responses.  Remove one of the
            overlapping {golo } strings.
.
            For example, if the BBS sends "press <ENTER> to continue:"
            it would trigger both of these {golo } strings:
            {golo |,ENTER}   {golo |,to continue}
.
        2.  After uploading replies, before downloading.  For
            mailware that is internal, make sure %md_pmt = %bbs_pmt

Variable:  thanks                                My sincere gratitude to ...
 ┌────────────────────────────────┐
 │  Chuck Seyboldt's COMMO Macro  │   CS-MAC13:CS-COMMO.CSM
 └────────────────────────────────┘   Copyright (c) 1995
.
     Thanks to Fred Brucker for Commo and to ...
     -  Donald Fagen for inspirational music
     -  Jeff Bishop for many slick ideas and major help
     -  Jim Bennett for many excellent suggestions
     -  Jim Rahfeldt for macro streamlining ideas
     -  Dave Legault for the ongoing ideas and support
     -  Kevin Nathan for insightful new challenges and effort
     -  My again pregnant wife, Joy and my daughter, Alexandra,
                            for putting up with a Commo addict

Variable:  register            Donation Information
.
        Thank you for taking the time to look this far.  I hope you
        are enjoying the CS-MAC working environment.  If you have
        suggestions for additions or improvements, they are always
        welcome.  My email address is    cboldt@nlbbs.com
.
        A CS-MAC key file improves Auto-Learned macros by
        automatically recording SSLOoks and increasing the maximum
        number of active recorded SSLOoks from 3 to 15.
.
        The CS-MAC key file removes the 1 in 12 chance that the
        Auto-Pilot will need keyboard attention when it is started.
.
        Information to make a key file costs $20 US for CS-MAC v13.
.
        Send your order to         Chuck Seyboldt
                                   N120 W16355 Freistadt
                                   Germantown, WI  53022

Variable:  @end         This is at line 2974

