home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / ZCOMMDOC.ZIP / ZCOMMDOC.AI < prev    next >
Text File  |  1995-03-21  |  68KB  |  1,771 lines

  1.  
  2.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  3.       ZCOMM User Manual                                                  241
  4.  
  5.                control characters NULL (0) to US (1F) in both parities.  The
  6.                ? character corresponds to FF (all ones character).
  7.  
  8.                EXAMPLE: set zmrxesc "@" Requests the sending program to
  9.                escape NULL (0) and NULL with 8th bit set (80 hex).
  10.  
  11.                SEE ALSO: zmtxesc string parameter
  12.  
  13.       zmtxesc  Causes ZMODEM send commands to escape the specified
  14.                additional control character(s).  Printing characters @ (40
  15.                hex) to _ (57 hex) escape the corresponding control
  16.                characters NULL (0) to US (1F) in both parities.  The ?
  17.                character corresponds to FF (all ones character).
  18.  
  19.                SEE ALSO: zmrxesc string parameter
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.       (C) 1994 Omen Tech Inc                    Chapter 25 Character Escapes
  59.  
  60.  
  61.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  62.       ZCOMM User Manual                                                  242
  63.  
  64.       26.  CHARACTER ESCAPES
  65.  
  66.       Some commands use strings with character escapes similar to those used
  67.       by the C programming language for describing string constants.  When
  68.       translating a string for character escapes, ZCOMM substitutes strings
  69.       (%svar) and then translates the result for backslash (\) encoded
  70.       character escapes.
  71.  
  72.               String-Parameter    %svar
  73.               Environment-Param   %SVAR
  74.               % (per cent)        \045
  75.               password*           \PXXXXXXX
  76.               cleartext*          \C+clear-text+
  77.               ciphertext*         \M+ciphertext+
  78.               newline (LF)        \n
  79.               return (CR)         \r
  80.               tab (HT)            \t
  81.               alarm (BEL)         \a
  82.               backspace (BS)      \b
  83.               form feed (FF)      \f
  84.               escape (ESC)        \E
  85.               transparent         \T
  86.               lowercase           \L
  87.               uppercase           \U
  88.               octal byte          \nnn
  89.               decimal byte        \dnnn
  90.               hex byte            \xHH
  91.               control char        \^C
  92.               concatenation       \&
  93.               backslash           \\
  94.  
  95.       To preserve compatibility with future TurboDial enhancements, a
  96.       backslash should not be followed by a character not listed above.
  97.  
  98.       %svar is replaced by the value of the corresponding string parameter.
  99.       The string parameter name must be written exactly, in the correct
  100.       case, with no extra letters or digits at the end.  Any non
  101.       alphanumeric character delimits the parameter name.  The DOS
  102.       environment is searched for parameters after exhausting the ZCOMM
  103.       string parameters.[1]
  104.  
  105.       \PXXXXXXX uses the xpassword and remote string parameters to generate
  106.       a password unique to each remote system, replacing each X character
  107.       with an upper case alphabetic character.* The xpassword parameter must
  108.       have at least as many characters as the number of characters used in
  109.  
  110.  
  111.       __________
  112.  
  113.        1. DOS environment parameters are upper case only
  114.  
  115.  
  116.  
  117.       (C) 1994 Omen Tech Inc                    Chapter 26 Character Escapes
  118.  
  119.  
  120.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  121.       ZCOMM User Manual                                                  243
  122.  
  123.       the \PXXXXX construction.
  124.  
  125.       SEE ALSO: xpassword, remote string parameters
  126.  
  127.       \M+ciphertext+ uses a cipher and the contents of the mpassword string
  128.       parameter to decrypt and transmit the cleartext equivalent to
  129.       ciphertext.  Ciphertext is delimited by the character immediately
  130.       following "M".
  131.  
  132.       \C+cleartext+ is treated as above, except for no decryption.
  133.  
  134.       EXAMPLE: \C+foobar+ is translated to foobar by ZCOMM's character
  135.       escape expansion.
  136.  
  137.  
  138.       A separate program pga encrypts instances of \C+cleartext+ into
  139.       \M+ciphertext+ according to a user specified master password.  Pga
  140.       also decrypts \M sequences to either cleartext, or encrypts them with
  141.       a new master password.  Please refer to Chapter 99.
  142.  
  143.       The \n, \r, \t, \b, \f, \E, \nnn, \xHH, \^C and \\ character escapes
  144.       generate the associated character.
  145.  
  146.       The \T character escape inhibits the processing of character eascpes
  147.       (but not string substitutions) in the remainder of the string.  It is
  148.       useful when the raw string contains backslashes which must not be
  149.       treated as character escapes.
  150.  
  151.       The \L character escape forces the rest of the string to lower case,
  152.       up to the next \ character.  Likewise, \U forces upper case.
  153.  
  154.       Octal byte escapes (\nnn) accept 1 to 3 octal digits terminated by the
  155.       first non octal digit.  Decimal byte escapes (\dnnn) accept 1 to 3
  156.       digits terminated by the first non digit.  Hex byte escapes (\xHH)
  157.       accept exactly 2 hex digits.  Control characters may also be
  158.       represented by \^C where C is the printing representation for Ctrl-C
  159.       and ^ is the circumflex character.
  160.  
  161.       The \& character escape generates nothing; it is useful to delimit the
  162.       lexical end of a string parameter name in string concatenation
  163.       applications.
  164.  
  165.  
  166.       26.1  Concatenating String Parameters
  167.  
  168.       To concatenate the contents of a string parameter with other
  169.       characters, one must escape the next character with a backslash if it
  170.       is a letter or digit.  The \& character escape expands to nothing.
  171.  
  172.       EXAMPLE: Assume string parameter s1 contains "foo".
  173.            putw "%s1\&bar"
  174.  
  175.  
  176.       (C) 1994 Omen Tech Inc                    Chapter 26 Character Escapes
  177.  
  178.  
  179.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  180.       ZCOMM User Manual                                                  244
  181.  
  182.       sends "foobar".
  183.            putw "%s1\142bar"
  184.       sends "foobbar".
  185.            putw "%s1-skidoo"
  186.       sends "foo-skidoo".
  187.            putw "%s1bar"
  188.       is undefined.
  189.            putw "%s1\bar"
  190.       sends "foo<BS>ar"
  191.  
  192.       Failure to observe this property causes the sets and put commands to
  193.       give unexpected results.
  194.  
  195.       An encrypted password* is generated from the prototype string
  196.       \PXXXXXXXX where each X generates an upper case alphabetic character
  197.       by encrypting the leading letters of the remote system name by
  198.       xpassword.
  199.  
  200.       Only the leading letters of the remote system name are used to allow a
  201.       directory to have a number of alternate access methods for a given
  202.       system, yet produce the same automatic password.  For example,
  203.       "source", "source-telenet", "source300" would all generate the same
  204.       password, but "sourceb" would generate a different password.
  205.       xpassword must have at least as many characters as X characters in the
  206.       prototype string.
  207.  
  208.       Omen Technology Inc and sellers of ZCOMM cannot accept any
  209.       responsibility for damages due to the breaking of any ciphers used or
  210.       generated by ZCOMM.
  211.  
  212.       An arbitrary byte is generated by backslash followed by one to three
  213.       octal digits, backslash x followed by exactly two hex digits, or by
  214.       backslash circumflex followed by three decimal digits.  7 bit term
  215.       options (7s, 7m, 7e, 7o) modify the parity bit of characters
  216.       transmitted by the term function during the put[w] command.
  217.  
  218.  
  219.       26.2  Quoting Strings
  220.  
  221.       Strings must be enclosed by double quotes (Shift ' on the IBM Personal
  222.       Computer) to allow white space and/or semicolon to be included in the
  223.       string.  If a string containing white space were not quoted, it would
  224.       be terminated by the first space or tab, and ZCOMM would consider the
  225.       rest of the intended string as another (incorrect) command.
  226.  
  227.       26.3  Layering of Escaped Characters
  228.  
  229.       Sometimes a string will be processed two (or more) times by ZCOMM's
  230.       character escapes.
  231.  
  232.            set fs2 "@accept s1 Name:; obey find\ \\n%s1\ %phones"
  233.  
  234.  
  235.       (C) 1994 Omen Tech Inc                      Chapter 26 Quoting Strings
  236.  
  237.  
  238.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  239.       ZCOMM User Manual                                                  245
  240.  
  241.       This example causes ZCOMM to ask for a name when Shift-F2 is typed.
  242.       The name is read into string parameter S1, which is then used as part
  243.       of the argument for the find command.  The find command searches the
  244.       telephone directory for lines beginning with the string you just typed
  245.       in.  To match only lines starting with the given string, a linefeed
  246.       (\n) is prepended to the argument of the find command.  When the obey
  247.       command executes, the backslash-space sequences translate to spaces,
  248.       and the double backslash translates to a single backslash.
  249.  
  250.       The space after "find" and after "%s1" must be escaped because the
  251.       obey command accepts a single string argument.  If these spaces were
  252.       not escaped, the obey command would not "see" the rest of the line
  253.       after "find".
  254.  
  255.       The find command performs its own character escape translation,
  256.       changing the \n to a linefeed character.
  257.  
  258.       Since the find command performs string substitution on its list of
  259.       files, it is not actually necesary to use the obey command here:
  260.  
  261.            set fs2 "@accept s1 Name:; find \n%s1 %phones"
  262.  
  263.       26.4  Regular Expressions
  264.  
  265.       Regular Expressions allow TurboDialTm scripts to search and parse data
  266.       from files, the keyboard, and remote computers.  Regular expressions
  267.       are used for string searching and parsing (splitting) with the ss and
  268.       egrep commands, and the h and H test conditions.
  269.  
  270.       Many DOS and Unix programs use regular expressions to search and parse
  271.       text, including grep, egrep, many flavors of EMACS, Brief, Epsilon,
  272.       ed, vi, sed, lex, and Perl.  The effort expended in learning how to
  273.       use regular expressions will be rewarded by the increased utility of
  274.       dozens of programs and tools, not just ZCOMM.
  275.  
  276.       ZCOMM regular expressions give "magic" meanings to the characters \ *
  277.       + ? . | ^ [ ] ( )
  278.  
  279.       A regular expression is zero or more branches, separated by |.  It
  280.       matches anything that matches one of the branches.
  281.  
  282.       A branch is zero or more pieces, concatenated.  It matches a match for
  283.       the first, if it is followed by a match for the second, etc.
  284.  
  285.       A piece is an atom possibly followed by *,+, or?.  An atom followed by
  286.       * matches a sequence of 0 or more matches of the atom.  An atom
  287.       followed by + matches a sequence of 1 or more matches of the atom.  An
  288.       atom followed by ? matches a match of the atom, or the null string.
  289.  
  290.       An atom is a regular expression in parentheses (matching a match for
  291.       the regular expression), a range (see below), .  (matching any single
  292.  
  293.  
  294.       (C) 1994 Omen Tech Inc                  Chapter 26 Regular Expressions
  295.  
  296.  
  297.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  298.       ZCOMM User Manual                                                  246
  299.  
  300.       character), ^ (matching the null string at the beginning of the input
  301.       string), $ (matching the null string at the end of the input string),
  302.       a \ followed by a single character (matching that character), or a
  303.       single character with no other significance (matching that character).
  304.  
  305.       A range is a sequence of characters enclosed in [].  It normally
  306.       matches any single character from the sequence.  If the sequence
  307.       begins with ^, it matches any single character not from the rest of
  308.       the sequence.  If two characters in the sequence are separated by -,
  309.       this is shorthand for the full list of ASCII characters between them
  310.       (e.g. [0-9] matches any decimal digit).  To include a literal ] in the
  311.       sequence, make it the first character (following a possible ^).  To
  312.       include a literal -, make it the first or last character.
  313.  
  314.       EXAMPLE: One can match separators (space, tabs, punctuation) by
  315.       excluding them from a range [^0-9A-Za-z] That means "match anything
  316.       except A to Z, or a to z, or 0 to 9.[2]
  317.  
  318.  
  319.       If a regular expression could match two different parts of the input
  320.       string, it will match the one which begins earliest.  If both begin in
  321.       the same place but match different lengths, or match the same length
  322.       in different ways, life gets messier, as follows.
  323.  
  324.       In general, the possibilities in a list of branches are considered in
  325.       left-to-right order, the possibilities for *, +, and ? are considered
  326.       longest-first, nested constructs are considered from the outermost in,
  327.       and concatenated constructs are considered leftmost-first.  The match
  328.       that will be chosen is the one that uses the earliest possibility in
  329.       the first choice that has to be made.  If there is more than one
  330.       choice, the next will be made in the same manner (earliest
  331.       possibility) subject to the decision on the first choice.  And so
  332.       forth.
  333.  
  334.       For example, `(ab|a)b*c' could match `abc' in one of two ways.  The
  335.       first choice is between `ab' and `a'; since `ab' is earlier, and does
  336.       lead to a successful overall match, it is chosen.  Since the `b' is
  337.       already spoken for, the `b*' must match its last possibility-the empty
  338.       string-since it must respect the earlier choice.
  339.  
  340.       In the particular case where no `|'s are present and there is only one
  341.       *, +, or ?, the net effect is that the longest possible match will be
  342.  
  343.  
  344.       __________
  345.  
  346.        2. Ranges in regular expressions are in ASCII collating order.  For
  347.           example, the range [A-z] matches all the letters in either case,
  348.           PLUS all the funny characters between Z and a in the ASCII code
  349.           chart.
  350.  
  351.  
  352.  
  353.       (C) 1994 Omen Tech Inc                  Chapter 26 Regular Expressions
  354.  
  355.  
  356.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  357.       ZCOMM User Manual                                                  247
  358.  
  359.       chosen.  So `ab*', presented with `xabbbby', will match `abbbb'.  Note
  360.       that if `ab*' is tried against `xabyabbbz', it will match `ab' just
  361.       after `x', due to the begins-earliest rule.  (In effect, the decision
  362.       on where to start the match is the first choice to be made, hence
  363.       subsequent choices must respect it even if this leads them to less-
  364.       preferred alternatives.)
  365.  
  366.       Case is significant in regular expressions.  Ranges may be used to
  367.       match characters in either case.  The regular expression [aA]ny
  368.       matches "any" or "Any".
  369.  
  370.       The regular expression subroutines and much of this description were
  371.       written at the University of Toronto.
  372.  
  373.       EXAMPLE: If s0 contains 1234567890 Hello There then the command
  374.  
  375.            ss s0 "(12.*0 ).*The(..)"
  376.  
  377.       results in
  378.  
  379.            z1='1234567890 '
  380.            z2='re'
  381.  
  382.       String parameter z0 contains the entire matched string, and may be
  383.       used for testing the success of the match with an if %z0 goto foundit
  384.       command.
  385.  
  386.  
  387.       EXAMPLE:      string = 'Here are 345 dots'
  388.            ss string "([0-9]+)"
  389.            z0= '345'
  390.  
  391.  
  392.  
  393.       EXAMPLE: Sometimes one needs to shorten a string which is too long.
  394.       The following loops while the length of subject is greater then 24.
  395.       One character is chopped off the end of the string each time the ss
  396.       command is executed.  The parentheses contain the portion of the
  397.       string that should be retained.
  398.  
  399.            while %sbj>24 ss sbj "(.*)[A-z]" sets sbj "%z1"
  400.  
  401.       An alternative:
  402.  
  403.            if %sbj>24 ss sbj ".........................";  sets sbj "%z1"
  404.  
  405.  
  406.       26.4.1  Sample Script - Browse/Download  The kcisdl.t script downloads
  407.       a file after it has been listed by the Compuserve Special Interest
  408.       Group DownLoad "bro" command.  The kcisdl.t script should be bound to
  409.       F3 with
  410.  
  411.  
  412.       (C) 1994 Omen Tech Inc                  Chapter 26 Regular Expressions
  413.  
  414.  
  415.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  416.       ZCOMM User Manual                                                  248
  417.  
  418.            set f3 "@source kcisdl.t"
  419.  
  420.       The Compuserve "browse" command displays file information and then
  421.       invites the user to download it:
  422.  
  423.       [73125,617]
  424.       P3YAM.ARC/binary          09-Jul-87 3224               Accesses: 13
  425.           Keywords: YAM PRO-YAM ZCOMM YAMDEMO
  426.  
  427.           Sample YAMscript, for handling messages and file up/downloads
  428.           with the popular PCBoard bulletin board systems.
  429.  
  430.       Disposition !
  431.  
  432.       Keyboarding F3 activates the script to scan the circular buffer for
  433.       the file name and download the file.
  434.  
  435.            if !h^\[ echo "Can't find Account Number"; return
  436.  
  437.       The h test condition searches backwards through the circular buffer
  438.       for a left square bracket ([).  Since "[" is a magic character for
  439.       regular expressions, it must be escaped.  The "^" magic character
  440.       anchors the search to the beginning of the line.  The script prints a
  441.       message and exits if the search was unsuccessful.
  442.  
  443.            ss yf "^[^     /]+"
  444.  
  445.       The yf string parameter accesses the next line in the circular buffer.
  446.       This line, which follows the uploader's account number, contains the
  447.       file name.  The ss command extracts the file name, discarding the rest
  448.       of the line starting with a possible file type designation
  449.       ("/binary").  As above, "^" matches the beginning of the line.  The
  450.       "[^    /]+" phrase matches a class of characters ("[") excluding ("^")
  451.       space, tab, and "/".  The trailing "+" matches one or more instances
  452.       of the search string, resulting in all characters starting at the
  453.       beginning of the line up to but not including the first space, tab, or
  454.       "/".
  455.  
  456.            setc s0 "\L%z0"
  457.  
  458.       Translate the file name in string parameter z0 to lower case.  (This
  459.       script is also used on Unix systems where most file names are lower
  460.       case.)
  461.  
  462.            if f%s0 echo "%z0 Exists: No Action taken."; return
  463.            echo "File name is %s0"
  464.            put "\025dow %s0/PRO:B\r"
  465.            pat 2i "\nFile name"
  466.            wait -f20
  467.            if 2 put "\025%s0\r"
  468.            ena -C;  return
  469.  
  470.  
  471.       (C) 1994 Omen Tech Inc                  Chapter 26 Regular Expressions
  472.  
  473.  
  474.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  475.       ZCOMM User Manual                                                  249
  476.  
  477.       The remainder of the script generates commands using the parsed file
  478.       name.  The script enables Compuserve's B Protocol, allowing the
  479.       mainframe to initiate the download.
  480.  
  481.  
  482.       26.4.2  Magic Characters: Synopsis  ZCOMM regular expressions give
  483.       magic meanings to the characters \ * + ? . | ^ $ [ ] ( ) as follows:
  484.  
  485.       *  0 or more
  486.  
  487.       +  1 or more
  488.  
  489.       ?  0 or 1
  490.  
  491.       .  Any single character
  492.  
  493.       |  Branch separator (for matching)
  494.  
  495.          EXAMPLE: ss s0 "(^cc: *|^ *)([^ ]+)" The first () grouping matches
  496.          either "cc:" or a space at the begining of the line in s0.
  497.  
  498.  
  499.       ^  Matches beginning of line
  500.  
  501.       $  Matches end of line
  502.  
  503.       [] Single character(s) in a class
  504.  
  505.       [^] Single character(s) not in a class
  506.  
  507.       () Grouping (for parsing)
  508.  
  509.       ZCOMM regular expressions closely resemble those used by the Unix
  510.       egrep command.  The Unix ed and vi editors use regular expressions
  511.       with a slightly different syntax.  Epsilon and Brief editors for DOS
  512.       also use regular expressions.
  513.  
  514.       Regular Expression pattern matching is a software disicipline unto
  515.       itself.  Different program behave differently when matching ambiguous
  516.       patterns.  A number of Unix related books contain useful information
  517.       on the uses of Regular Expressions.
  518.  
  519.       In the meantime, practice makes perfect.  Setup some string variables
  520.       with strings to search and parse, and experiment with different ss
  521.       command search patterns.  A full screen editor that uses regular
  522.       expressions is a handy learning aid.
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.       (C) 1994 Omen Tech Inc                      Chapter 26 Test Conditions
  531.  
  532.  
  533.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  534.       ZCOMM User Manual                                                  250
  535.  
  536.       27.  TEST CONDITIONS (if, on, while commands)
  537.  
  538.       The following conditions may be tested with the if, on and while
  539.       commands.
  540.  
  541.       Where a string parameter is indicated, it is an error to specify a
  542.       nonexistient string parameter.
  543.  
  544.       When an immediate string argument is indicated, that argument is
  545.       delimited only by white space.  As a result, if "is1,hello&&L<5"
  546.       command ...  won't work as expected, but if is1,hello if "L<5" command
  547.       ...  will work.
  548.  
  549.       Some of the test conditions described below may be used with ">",
  550.       "==", "!=", or "<" for numeric comparisions.  The right hand argument
  551.       of a numeric comparision may be:
  552.  
  553.          + A decimal number.
  554.  
  555.            EXAMPLE:      if "L>5" abort
  556.  
  557.  
  558.          + A string paremeter which contains a decimal number.
  559.  
  560.            EXAMPLE: set maxloops "5"
  561.                 if "L>maxloops" abort
  562.  
  563.  
  564.          + The length of the string stored in a string parameter, denoted by
  565.            a leading % character.
  566.  
  567.            EXAMPLE: set s1 "Hello"
  568.                 set s2 "foo"
  569.                 if "%s1>%s2" echo "%s1 is longer than %s2"
  570.  
  571.  
  572.       These comparisions should be quoted in case a future version of ZCOMM
  573.       implements output redirection in the same manner as COMMAND.COM or the
  574.       Unix shell.  On 16 bit machines, 16 bit numerical values are used in
  575.       comparisions; numbers greater than 32767 should not be used.
  576.  
  577.       Numeric conditions may also be tested against a bit mask using the &
  578.       operator.
  579.  
  580.       EXAMPLE:      if s&64 echo "Caps Lock is ON"
  581.  
  582.  
  583.  
  584.       0...25 The specified pattern (see pattern command) was matched in the
  585.         last wait command.
  586.  
  587.  
  588.  
  589.       (C) 1994 Omen Tech Inc                      Chapter 27 Test Conditions
  590.  
  591.  
  592.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  593.       ZCOMM User Manual                                                  251
  594.  
  595.       %svar The specified string parameter svar (see the set command) is non
  596.         empty.  May be used with ">", "==", or "<" for numeric comparisions
  597.         of the string length of svar.
  598.  
  599.         EXAMPLE: if %s1 putw %s1
  600.  
  601.  
  602.         EXAMPLE: if %symbol>4 ss symbol "(.*)[A-z]"; sets symbol %z1
  603.         If the length of the string in string variable symbol exceeds 4,
  604.         chop off the rightmost letter.
  605.  
  606.  
  607.       ? The ?  numeric parameter counts the number of files sent or received
  608.         with a protocol, and the number of lines matched by the find
  609.         command.  The fFILE test condition (if true) assigns the file length
  610.         to the ?  parameter.  On 16 bit computers, file lengths greater than
  611.         32767 are represented as 32767.  With certain operating systems, the
  612.         exit status of a subprogram accessed by a DOS Gateway is stored in
  613.         the ?  numeric parameter.
  614.  
  615.         The ?  numeric parameter may then be tested with the ?  test
  616.         condition.  It can be used with ">", "==", or "<" for numeric
  617.         comparisions.
  618.  
  619.         EXAMPLE: p?0 find fizzbin *.txt; if ? echo "Found fizzbin"
  620.  
  621.  
  622.         SEE ALSO: ?  numeric parameter
  623.  
  624.       B True iff Ctrl-Break has been pressed since the last purgek command.
  625.  
  626.       Csvar True iff string parameter svar contains any control characters
  627.         less than 040 (hex 20) or rubout.
  628.  
  629.         EXAMPLE: if Cs0 echo "Please Retype
  630.  
  631.  
  632.       E True iff the elapsed time in seconds is non 0.  Used with ">", "==",
  633.         or "<" for numeric comparisions.
  634.         NOTE: Elapsed time may be off by up to one second.  On 16 bit
  635.         machines, the maximum testable value for elapsed time is 32767
  636.         seconds.
  637.  
  638.         EXAMPLE: if "E>300" off Disconnects the modem if the elapsed time is
  639.         greater than 300 seconds.
  640.  
  641.  
  642.         SEE ALSO: restime command
  643.  
  644.       F>N True iff more than N kilobytes (1 kilobyte = 1024 bytes) of free
  645.         space remain on the default drive.
  646.  
  647.  
  648.       (C) 1994 Omen Tech Inc                      Chapter 27 Test Conditions
  649.  
  650.  
  651.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  652.       ZCOMM User Manual                                                  252
  653.  
  654.         EXAMPLE: if "F>2000" gosub getfiles
  655.  
  656.  
  657.       Hregular-expression Searches backward thru the last 127 lines of
  658.         circular buffer for the next line matching regular-expression.  If
  659.         the search is successful, the y string parameter points to the
  660.         matched line.
  661.  
  662.         The N test condition may be used to test the number of lines that
  663.         were searched before finding a match.
  664.  
  665.         EXAMPLE: To allow processing of information such as:
  666.              5 Review folder UFO  (0 stories) (a typical news item in the
  667.         Executive News Service), one must scan for lines with a certain
  668.         pattern (in this case the character "(" immediately followed by
  669.         1...9 indicating 1 or more stories).
  670.  
  671.              while "H\([1-9]" ss (rest of line)
  672.  
  673.         The above searches backwards for the next line containing "(1" to
  674.         "(9".  Note that "(" is a magic character in regular-expressions,
  675.         and must be escaped.
  676.  
  677.  
  678.         The h test condition is similar, but starts the search with the last
  679.         displayed line.
  680.  
  681.  
  682.         SEE ALSO: ens.t and kcdisl.t scripts, regular-expressions, y, yb,
  683.         y0...y127 string parameters, N test condition
  684.  
  685.       Isvara,svarb Tests whether the contents of string variable svara are
  686.         IDENTICAL to the contents of string variable svarb.  Case is
  687.         significant.
  688.  
  689.         EXAMPLE: if Is0,s9 goto exactmatch
  690.  
  691.  
  692.         SEE ALSO: i test condition (compares a string parameter and an
  693.         immediate string)
  694.  
  695.       Jsvar,string Tests whether any of the characters in the immediate
  696.         string string appear one or more times in string parameter svar.
  697.  
  698.         EXAMPLE:
  699.         if "Js0,!@#$%^&()_" echo "No funny characters"; goto getname
  700.  
  701.  
  702.       L>N True iff this while command has made more then N loops.
  703.  
  704.         EXAMPLE: while !1 put "\r" wait ife "L>5" off Disconnects the modem
  705.  
  706.  
  707.       (C) 1994 Omen Tech Inc                      Chapter 27 Test Conditions
  708.  
  709.  
  710.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  711.       ZCOMM User Manual                                                  253
  712.  
  713.         if the while command has sent more than five "\r"'s.  The "L>N"
  714.         should be quoted in case a future version of ZCOMM implements output
  715.         redirection in the same manner as command.com or the Unix shell.
  716.  
  717.  
  718.       N>N True iff the last h or H condition searched more than N lines
  719.         before a match.
  720.  
  721.         SEE ALSO: h and H test conditions
  722.  
  723.       Q>N True iff the number of active queue entries is greater than N.
  724.  
  725.       R>N After a zcommand "" command, evaluates true iff more than N
  726.         kilobytes (1 kilobyte = 1024 bytes) of free space remain on the
  727.         remote system's default disk drive.
  728.  
  729.         EXAMPLE: zcommand ""; if "R>1000" sz -y hugefile
  730.  
  731.  
  732.       S>N True iff the transmission speed is greater N bits per second.
  733.  
  734.         EXAMPLE: if S>2400 put "set verbose\r"
  735.  
  736.  
  737.       U True if ZCOMM was unrestricted when the first level of the current
  738.         set of scripts was activated.
  739.  
  740.         SEE ALSO: u test condition
  741.  
  742.       asvar The numeric value of the specified string parameter svar is non
  743.         zero.  May be used with ">", "==", or "<" for numeric comparisions.
  744.         The string variable may contain leading spaces or tabs, an optional
  745.         + or - sign, and digits.
  746.  
  747.         EXAMPLE: if "as1==30" goto seen30 Performs the goto if s1 contains
  748.         "30".
  749.  
  750.  
  751.       bTIME True if the current time is Before TIME.  TIME is written in the
  752.         form [yy[mm[dd]]]hhmm.  No further conditions may be given in the if
  753.         statement after the b condition.
  754.  
  755.         EXAMPLE: if b2300 return Returns from the script if the time is
  756.         before 11 p.m.
  757.  
  758.  
  759.         EXAMPLE: if b8512250900 return Returns from the script if the
  760.         date/time is before 9 a.m.  Christmas day in 1985.
  761.  
  762.  
  763.  
  764.  
  765.  
  766.       (C) 1994 Omen Tech Inc                      Chapter 27 Test Conditions
  767.  
  768.  
  769.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  770.       ZCOMM User Manual                                                  254
  771.  
  772.       c Carrier detect[1] is present on the modem port.
  773.  
  774.         EXAMPLE: if !c goto lostit
  775.  
  776.         NOTE: On Unix systems, a dis -d command must be given to "arm" the
  777.         system to detect carrier loss.
  778.  
  779.         SEE ALSO: d term option
  780.  
  781.       d{2?ADLMPSTXZacdflmprtu} True iff the corresponding configuration is
  782.         true:
  783.  
  784.           2 The OS/2 protected mode ZCOMM flavor is executing.
  785.  
  786.           ? True if an unrecoverable error or manual abort was detected on
  787.             the last protocol file transfer.
  788.  
  789.           A True if the term function's emulation Alternate Keypad Mode mode
  790.             is on.
  791.  
  792.           C>N Numeric, true if the display column is greater than N.
  793.  
  794.           D The script is running on a demonstration program.
  795.  
  796.           G The script is running on a gyam (graphics file xfer display)
  797.             flavor.
  798.  
  799.           H True iff no software flow control has been specified by the
  800.             handshake command.  Assuming the last handshake command
  801.             correctly reflects flow control settings on any modems or
  802.             networks involved, this test condition will give an indication
  803.             that the transmission path should not intercept XON and XOFF
  804.             characters.
  805.  
  806.           L True if ZCOMM is recording TurboLearn(TM) script information
  807.             (learn command).
  808.  
  809.           M True if term function Keyboard Mapping is on ("display mapkb").
  810.  
  811.           P Packet state is active (X.PC driver).
  812.  
  813.           R>N Numeric, true if the display row is greater than N.
  814.  
  815.             EXAMPLE:      set fa10
  816.             @pat 23cp \n "@lput \E[K if dR>23 lput \E[H\E[K"
  817.  
  818.  
  819.       __________
  820.  
  821.        1. Carrier Detect, CD, pin 8 on RS-232 25 pin connectors
  822.  
  823.  
  824.  
  825.       (C) 1994 Omen Tech Inc                      Chapter 27 Test Conditions
  826.  
  827.  
  828.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  829.       ZCOMM User Manual                                                  255
  830.  
  831.             When the Alt-F10 key is struck, a search pattern (23) is set.
  832.             This searches for each linefeed from the remote and performs a
  833.             local display clear to end of line on each new line.  If the
  834.             display row exceeds 23, jump to the top of the screen and clear
  835.             the first line.  This "trick" may be used to prevent scrolling
  836.             on displays that smear badly.
  837.  
  838.  
  839.           S The script is running on a shareware program (e.g., ZCOMM).
  840.  
  841.           T True if a higher level of the script has called the Term
  842.             Function.  When True, the script should return to the Term
  843.             Function; the script should not invoke the Term Function.
  844.  
  845.           X The X.PC commands are available.
  846.  
  847.             EXAMPLE: if dX goto xpclogin
  848.  
  849.  
  850.           Z The ZMODEM commands are available.
  851.  
  852.             EXAMPLE: if dZ sz -n logfile
  853.  
  854.  
  855.           a>N True iff ZCOMM was called from the operating system with more
  856.             than N arguments (counting the program name).
  857.  
  858.           c The color/graphics display is selected.
  859.  
  860.           d The DOS or OS/2 ZCOMM flavor is executing.[2]
  861.  
  862.             SEE ALSO: d2 test condition (OS/2)
  863.  
  864.           f The program is running in the foreground.  On DOS, a script is
  865.             considered to be running in the foreground when it is NOT called
  866.             by the Callout Queue as described in Chapter 28.  A program
  867.             running in the background is unlikely to have an operator
  868.             available for interaction.
  869.  
  870.             Under Unix, a script is considered to be running in the
  871.             background if it is detached from possible keyboard input, and
  872.             ZCOMM will exit when it reaches the main command prompt.
  873.  
  874.  
  875.       __________
  876.  
  877.        2. The dd test condition detects what flavor of Zcomm is running, not
  878.           what environment Zcomm is running under.  The dd test condition
  879.           does not distinguish between DOS, DR-DOS, DOS-Merge, VP/ix, or
  880.           other DOS emulators
  881.  
  882.  
  883.  
  884.       (C) 1994 Omen Tech Inc                      Chapter 27 Test Conditions
  885.  
  886.  
  887.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  888.       ZCOMM User Manual                                                  256
  889.  
  890.             SEE ALSO: fg, bg commands
  891.  
  892.           l>N True iff the script level (nesting) is greatern than N.
  893.  
  894.           m The monochrome display is selected.
  895.  
  896.           p The program has a non zero serial number.
  897.  
  898.           r Data Set Ready (DSR) on the modem is active.
  899.  
  900.           t ZCOMM is running under a Topview or DESQview virtual screen
  901.             which may be smaller than the physical screen size
  902.  
  903.           u ZCOMM is executing under Unix/Xenix.
  904.  
  905.           v ZCOMM is executing under the VMS operating system.
  906.  
  907.       e True iff an t, sz, or rz command terminated with an error, or if the
  908.         term function has detected framing or overrun errors.  Unless the q
  909.         file transfer option is used, each file skipped as a result of
  910.         ZMODEM selective transfer increments this parameter.
  911.  
  912.         This is the e numeric parameter, and is reset with each call
  913.         command.  It can also be reset with a pe0 command.
  914.  
  915.         SEE ALSO: e numeric parameter
  916.  
  917.       e>N True iff the e parameter (number of errors) is greater than N.
  918.  
  919.         EXAMPLE: if "e>5" off Disconnects the modem if more than 5 errors
  920.         have been counted.
  921.  
  922.         The "e>N" should be quoted in case a future version of ZCOMM
  923.         implements output redirection in the same manner as command.com or
  924.         the Unix shell.
  925.         NOTE: The e parameter is not compared within the term function, so
  926.         "detection" may be delayed.
  927.  
  928.         SEE ALSO: e numeric parameter
  929.  
  930.       fFILE (No space between f and FILE).  Tests whether FILE exists as a
  931.         normal readable file (not a directory or hidden file).  FILE is
  932.         expanded for string parameters.  If the test is successful, the ?
  933.         numeric parameter (testable with the ?  test condition) is set to
  934.         the file length. [3] The N test condition reflects the number of
  935.  
  936.  
  937.       __________
  938.  
  939.        3. On 16 bit computers, file lengths greater than 32767 are
  940.           represented as 32767.
  941.  
  942.  
  943.       (C) 1994 Omen Tech Inc                      Chapter 27 Test Conditions
  944.  
  945.  
  946.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  947.       ZCOMM User Manual                                                  257
  948.  
  949.         links to the file.
  950.  
  951.         EXAMPLE: if fnit put "message\r"; f -xp nit; put "\r\336y" If nit
  952.         exists, give a "message" command, upload the file, then send
  953.         carriage return, pause, and the letter "y".
  954.  
  955.         When used in a numeric context, the fFILE test represents the size
  956.         of the file in full kilobytes (1024 bytes), or 1, whichever is
  957.         greater.
  958.  
  959.         EXAMPLE: if ffoo.bar>30 echo "File Longer than 30kb"
  960.  
  961.  
  962.         EXAMPLE: if fspy.kgb if !? echo "Zero Length File"
  963.  
  964.         SEE ALSO: obey command
  965.  
  966.       g Tests whether term function file transmission flow is go (not
  967.         stopped by an XOFF character).
  968.  
  969.         EXAMPLE: if !g echo "Remote has not sent XON"; pg1
  970.  
  971.  
  972.         SEE ALSO: g term option, term function XON and XOFF
  973.  
  974.       hregular-expression Please refer to the Hregular-expression test
  975.         condition.
  976.  
  977.       isvar,string Tests whether the contents of string variable svar are
  978.         identical to the immediate string string.  Case is significant.  No
  979.         further conditions may be given in the if statement after the i
  980.         condition.  This test is useful in designing menu applications.  The
  981.         menu script menu.hst uses this test condition extensively.
  982.  
  983.         EXAMPLE: accept s1 Choice:; if is1,a goto choicea Executes a goto
  984.         choicea if the user keyboards an a in response to the "Choice:"
  985.         prompt.
  986.  
  987.  
  988.         SEE ALSO: I test condition (compares two string parameters)
  989.  
  990.       jsvar,string Tests whether the immediate string string is a substring
  991.         of (contained somewhere within) the contents of string variable
  992.         svar.  Lower case characters in string match characters in either
  993.         case.  Upper case characters in string match upper case characters.
  994.         No further conditions may be given in the if statement after the j
  995.         condition.  This test is useful in designing menu applications, and
  996.         for examining message lines read with the grab command.
  997.  
  998.         EXAMPLE: grab s1; if js1,sig= goto endofsig Executes a goto if the
  999.         line read by the grab command contained "sig=" or "This SIG=".
  1000.  
  1001.  
  1002.       (C) 1994 Omen Tech Inc                      Chapter 27 Test Conditions
  1003.  
  1004.  
  1005.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1006.       ZCOMM User Manual                                                  258
  1007.  
  1008.       k One or more characters have been received from the keyboard and are
  1009.         in the interrupt queue awaiting processing.  Note: Keyboard
  1010.         characters are transmitted to the remote by the term function,
  1011.         except during a put command.
  1012.  
  1013.       l True if the line printer is ready to accept a character.
  1014.  
  1015.       m One or more characters have been received from the modem and are in
  1016.         the interrupt queue awaiting processing.
  1017.  
  1018.       n No pattern was matched as a result of the last wait command or
  1019.         search pending term function.  n detects a search timeout, loss of
  1020.         carrier detect signal, or manual exit with F1 or ALT-X.
  1021.  
  1022.       psvar,string Tests whether the immediate string string is a prefix of
  1023.         the contents of string variable svar.  The match is case sensitive.
  1024.         No further conditions may be given in the if statement after the p
  1025.         condition.  This test is useful for examining message lines read
  1026.         with the grab command.
  1027.  
  1028.         EXAMPLE: grab s1; if ps1,sig= goto endofsig Executes a goto if the
  1029.         line read by the grab command contained "sig=", but not if it
  1030.         contained "This sig=" or "SIG=".
  1031.  
  1032.  
  1033.       q>N True iff the number of free queue entries is greater than N.
  1034.  
  1035.       r True iff a receive file is open for capture.
  1036.  
  1037.         SEE ALSO: create, t commands
  1038.  
  1039.       s>N True iff the keyboard shift state is greater than N.
  1040.  
  1041.         EXAMPLE: if "s>63" echo "Caps Lock is Active"
  1042.  
  1043.  
  1044.       t True iff a transmit file is open.
  1045.  
  1046.         EXAMPLE: if !t echoc "%1 Short file! ";  goto foobar
  1047.  
  1048.  
  1049.         SEE ALSO: f, open commands
  1050.  
  1051.       u True if ZCOMM is unrestricted.
  1052.  
  1053.         SEE ALSO: U test condition
  1054.  
  1055.       v True if the v (Verbose) numeric parameter is non zero.
  1056.  
  1057.         EXAMPLE: if "v>0" s Displays the status on the console if the v
  1058.         numeric parameter (Verbose) is greater than zero.
  1059.  
  1060.  
  1061.       (C) 1994 Omen Tech Inc                      Chapter 27 Test Conditions
  1062.  
  1063.  
  1064.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1065.       ZCOMM User Manual                                                  259
  1066.  
  1067.       y ZCOMM accepts a single character from the keyboard, which is printed
  1068.         followed by a newline.  True if the character is "y" or "Y".  False
  1069.         the H numeric is non zero, and a character is not typed within the
  1070.         time limit set by that parameter.
  1071.  
  1072.         EXAMPLE: echo "Really quit?"; if y quit
  1073.  
  1074.  
  1075.       Compound tests may be formed with the unary ! (not), binary || (or),
  1076.       and binary && (and) operators.  The tests are evaluated strictly left
  1077.       to right.  The unary ! operator applies to the following operand only.
  1078.  
  1079.       EXAMPLE: if n&&!n||c echo "Carrier Detect Present" simply tests
  1080.       carrier because the result of the binary and operation above is always
  1081.       false.
  1082.  
  1083.       EXAMPLE: if !c||1||2 o abort Disconnects the modem and aborts the
  1084.       script if carrier detect is off, or if either pattern 1 or pattern 2
  1085.       were matched.
  1086.  
  1087.  
  1088.       EXAMPLE: on e>45||!c goto allsignd Each time the term function
  1089.       returns, branch to the end of the script if carrier detect is lost or
  1090.       more than 45 line hits have been detected.
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.       (C) 1994 Omen Tech Inc                       Chapter 27 Host Operation
  1121.  
  1122.  
  1123.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1124.       ZCOMM User Manual                                                  260
  1125.  
  1126.       28.  HOST OPERATION / REMOTE CONTROL
  1127.  
  1128.       ZCOMM Host Operation allows callers to access files, programs, and
  1129.       other computers with baud rate detection, speed conversion, and
  1130.       multiple layers of password access control.
  1131.  
  1132.       The comments in this chapter apply when ZCOMM is in Host Operation.
  1133.       Host Operation is entered by the host command.  The host command is
  1134.       given only from a script, such as the telephone directory "host"
  1135.       entry.
  1136.  
  1137.       In Host Operation, the default disk is set to the default disk as of
  1138.       when ZCOMM was started.  The port and baud rate are set to those in
  1139.       effect when the host command was given.  Normally the screen is
  1140.       cleared, unless the v numeric parameter is set >0.  The status line
  1141.       displays the number of Calls, Logins, Messages, and Scans since ZCOMM
  1142.       was invoked.  ZCOMM then awaits a carrier detect signal or character
  1143.       from the modem indicating an incoming call.  The modem must be
  1144.       configured to obey Data Terminal Ready (DTR) and provide an accurate
  1145.       Data Carrier Detect (CD) signal to the computer.
  1146.  
  1147.       While awaiting a call ZCOMM periodically scans the queue of outgoing
  1148.       message scripts if the callpath string parameter is set.*\*(ZZ*F
  1149.  
  1150.       The call3 string parameter may be used to display a help message which
  1151.       will show while ZCOMM is awaiting calls.
  1152.  
  1153.       EXAMPLE:      set call3
  1154.       @echo "Now awaiting incoming calls.  Press F1 to exit."
  1155.  
  1156.  
  1157.       When a character is received from the modem or the modem's carrier
  1158.       detect signal comes on, ZCOMM executes the baudstr string
  1159.       parameter.[1]
  1160.  
  1161.       Most contemporary modems can send a string indicating the incoming
  1162.       transmission speed.[2] The baud2.t script searchs for these strings
  1163.       and sets the transmission speed accordingly.  The caller does not have
  1164.       to hit carriage returns to allow ZCOMM to detrmine the transmission
  1165.  
  1166.  
  1167.       __________
  1168.  
  1169.        0. The Callout Queue is described in a later subchapter.
  1170.  
  1171.        1. If the executed string begins with "@", the rest is treated as a
  1172.           command line, otherwise the string is sent to the modem.
  1173.  
  1174.        2. At the current speed, before switching to the speed of the
  1175.           incoming transmission
  1176.  
  1177.  
  1178.  
  1179.       (C) 1994 Omen Tech Inc                       Chapter 28 Host Operation
  1180.  
  1181.  
  1182.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1183.       ZCOMM User Manual                                                  261
  1184.  
  1185.       speed.  The call2 string parameter setting in the distribution
  1186.       phones.t file commands a Hayes compatible modem to transmit these
  1187.       extended result codes.
  1188.  
  1189.       When ZCOMM completes execution of baudstr, ZCOMM checks the modem's
  1190.       carrier detect signal.  If carrier has disappeared, ZCOMM executes the
  1191.       call2 string parameter and resumes its vigil.
  1192.  
  1193.       If carrier is still present, ZCOMM increments the Call counter and
  1194.       switches to remote operation.  Remote operation allows characters to
  1195.       be keyboarded from either the local keyboarded, or by the caller.
  1196.       Remote operation also causes most screen output to be sent to the
  1197.       modem.
  1198.  
  1199.       Then ZCOMM executes the challenge string parameter.  The supplied
  1200.       CHALLENG.T script file first states the name of the system.
  1201.  
  1202.       If the string parameter password is set, the script demands a
  1203.       password.  The caller must enter it correctly, in the correct case, or
  1204.       be disconnected after three tries.  If password is empty, no password
  1205.       is demanded.
  1206.  
  1207.       The caller then enters his name.  Names with special characters are
  1208.       rejected.  The name link immediately access the link command.**[3]
  1209.       Otherwise, the script asks the caller to confirm the name just typed.
  1210.       If the script is exited with a fail command, ZCOMM terminates the
  1211.       call.
  1212.  
  1213.       Iff none of the previous activities has terminated the call, ZCOMM
  1214.       increments the login counter, sets Restricted and executes the welcome
  1215.       string parameter and then drops into remote command function.  Most
  1216.       commands are allowed remotely, except those that would disrupt the
  1217.       connection (port selection) or violate security if unrestricted
  1218.       privileges are not granted.
  1219.  
  1220.       The caller may request unrestricted privileges with the unrestrict
  1221.       command.* The caller must enter a password matching the unrestrict
  1222.       string parameter.
  1223.  
  1224.       The session is terminated by loss of carrier detect, the bye, o, or
  1225.       off command, or by typing F1 or NUKE (ALT-N) on the local keyboard.
  1226.  
  1227.       In Host Operation, ZCOMM will drop the call if it has to wait more
  1228.       than five minutes for the next command.  The j numeric parameter sets
  1229.  
  1230.  
  1231.       __________
  1232.  
  1233.        3. The supplied CHALLENG.T script terminates the call when the link
  1234.           command exits.
  1235.  
  1236.  
  1237.  
  1238.       (C) 1994 Omen Tech Inc                       Chapter 28 Host Operation
  1239.  
  1240.  
  1241.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1242.       ZCOMM User Manual                                                  262
  1243.  
  1244.       the connect time limit in seconds for restricted callers.  This limit
  1245.       is checked each time the host command prompt is displayed.
  1246.  
  1247.       If Restricted, pathnames are checked against the contents of string
  1248.       parameter home.  Absolute pathnames (beginning with \ or /) must
  1249.       include home as a prefix, and contain no references to parent
  1250.       directories (..).  This allows remote users to access a subtree of the
  1251.       disk without allowing access to other directories.  The string
  1252.       parameter rdisks should be set to include only the disks that are to
  1253.       be accessed by restricted callers.[4] The disks string parameter
  1254.       should be set to include the disks that are to be accessed remotely by
  1255.       any caller.
  1256.  
  1257.       ZCOMM's Kermit commands operate properly in Host Operation.
  1258.  
  1259.       When the caller disconnects by issuing a bye or off command or by
  1260.       dropping carrier, the exrc string parameter is executed.  exrc should
  1261.       contain commands to "clean up" after a host session.  If hardware
  1262.       handshaking is used, exrc should contain a handshake off command.
  1263.  
  1264.       The callout queue is scanned, and the call2 parameter is executed and
  1265.       ZCOMM resumes waiting for incoming calls.  The screen is then cleared
  1266.       unless the v numeric parameter is greater than 0.
  1267.  
  1268.       If the user keyboards F1 ZCOMM leaves host state and executes the
  1269.       outahost string parameter.
  1270.  
  1271.       28.1  Remote Execution of DOS Programs
  1272.  
  1273.       The !  command is allowed only if unrestricted privileges have been
  1274.       granted.  All the caveats mentioned under the !  command apply,
  1275.       especially since it may be inconvenient to reset the computer hardware
  1276.       from a distance.
  1277.  
  1278.       A DOS program invoked with the !  command will normally display on the
  1279.       local screen only.  The program's output may be redirected to the
  1280.       modem by referring to the DOS device corresponding to the modem port.
  1281.       For example, if serial port 1 (COM1) is being used for the modem
  1282.       connection, the following ZCOMM command will output to the modem.
  1283.  
  1284.            !chkdsk >com1
  1285.  
  1286.       Although input can be redirected from the modem, the modem status may
  1287.       not be appropriate for the desired operation.  Some careful checking
  1288.  
  1289.  
  1290.       __________
  1291.  
  1292.        4. The pathnames private, messages, rxlog, txlog, and callers are not
  1293.           checked.  They cannot, however, be changed by a Restricted user.
  1294.  
  1295.  
  1296.  
  1297.       (C) 1994 Omen Tech Inc                       Chapter 28 Host Operation
  1298.  
  1299.  
  1300.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1301.       ZCOMM User Manual                                                  263
  1302.  
  1303.       beforehand may forestall the frustration of a distant computer tightly
  1304.       wedged beyond all hope.  Be especially careful to check what such
  1305.       commands might do in the event of line hits or loss of carrier detect.
  1306.  
  1307.       The DOS "ctty" command may be used with caution.  It should be
  1308.       preceded with a DOS mode command to set 7 bits.  The caller should be
  1309.       using the same number of bits and parity as used with the DOS mode
  1310.       command.
  1311.  
  1312.       The following may be placed in a .BAT file to allow remote operation
  1313.       of DOS programs:
  1314.  
  1315.       mode com1:1200
  1316.       ctty com1
  1317.       command
  1318.       ctty con
  1319.  
  1320.       If these commands placed in "CT.BAT", then the caller can type !~ct to
  1321.       get a DOS "shell" (command.com).  When finished, give the DOS "exit"
  1322.       command.  CT.BAT then returns DOS control to the console and then
  1323.       returns to ZCOMM's Host Operation.
  1324.  
  1325.       Please refer to the DOS Gateway subchapter in Chapter for more
  1326.       information on running DOS programs under ZCOMM.
  1327.  
  1328.       The Doorway or similar programs may be useful for remote DOS program
  1329.       execution.  Doorway intercepts VIDEO BIOS calls and transmits ANSI
  1330.       escape sequences to regenerate the display on the calling terminal.
  1331.       Doorway may be set to use an extended keyboard mapping supported by
  1332.       ZCOMM's term function ALT-= toggle.  (Current Doorway versions command
  1333.       ZCOMM's term function to extended keyboard mapping automatically.)
  1334.  
  1335.  
  1336.       DOS doesn't do anything intelligent with break or carrier dropout, so
  1337.       be careful.  ZCOMM will reinitialize the modem UART properly when it
  1338.       regains control.
  1339.  
  1340.       28.2  Script for Host Operation
  1341.  
  1342.       The supplied scripts assume the following directories exist on the c:
  1343.       drive: \host \tmp \memo \yam
  1344.  
  1345.  
  1346.       host    echo "Host"
  1347.       host:   echo "Host1"
  1348.            set emdir /memo; set twxfile twx;
  1349.            set disks "c"
  1350.            set rdisks "c"
  1351.            set call1 ATZ\r\336ATZ\r
  1352.            set call2
  1353.       @bye; sleep 3; putw "\336ATZ\r\336\336ATX1 M0 S0=1\r"; clears
  1354.  
  1355.  
  1356.       (C) 1994 Omen Tech Inc                       Chapter 28 Host Operation
  1357.  
  1358.  
  1359.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1360.       ZCOMM User Manual                                                  264
  1361.  
  1362.            set callpath /tmp/*.xx?
  1363.            set outahost ATZ\r
  1364.            : set rmtcmd "C:/host/checkrmt.t"
  1365.  
  1366.       The above lines set parameters used with Host Operation.  The call1
  1367.       callpath, and rmtcmd lines must be commented out for use with ZCOMM.
  1368.  
  1369.            px2; py9600         : Set parameters for link cmd
  1370.            set linkpass "Giznoid"
  1371.            set outalink "@kill; put \r\4;o"
  1372.            port 1; bye;
  1373.            set rcmdlog "c:/tmp/rcmds"
  1374.            speed 1200 putw "ATZ\r"
  1375.            set callers "c:/host/callers"
  1376.            :Do NOT remove the "." in ".%lib..." below
  1377.            set baudstr "@gosub .%lib/baud2.t"
  1378.            set challenge "@gosub .%lib/challeng.t"
  1379.            set welcome "@type welcome.txt; purgek; nulls 0"
  1380.            set password "Change This Already"
  1381.            set rxlog "c:/host/rxlog"; set txlog "c:/host/txlog";
  1382.            set unrestrict ""
  1383.            set xhelpfile "/host/xyamhelp.t"
  1384.            set home "/host"; cd
  1385.            set private "/private"; set messages "/host/messages"
  1386.            set emdir "/memo"; set twxfile "twx";
  1387.            set answerback "\r\nJ. Fred Muggs\r\n\21"
  1388.            set outahost "ATZ\r"
  1389.            set menu "/host/hostmenu"
  1390.            host
  1391.  
  1392.       28.3  Command Intercept Script
  1393.  
  1394.       After the remote caller in Host Operation keyboards each command,
  1395.       before that command line is executed, ZCOMM executes the rmtcheck
  1396.       string parameter. * This is also performed on commands received by
  1397.       ZMODEM protocol Command Download.
  1398.  
  1399.       The rmtcheck parameter may be set to invoke a READ ONLY script to
  1400.       examine the command line stored in the rmtcmd string parameter.  Such
  1401.       a script may modify the command by changing the contents of rmtcmd
  1402.       disconnect the user with a bye command, or perform other checks for
  1403.       the particular application.  The script can trap references to illegal
  1404.       disks, directories, or files, or redefine or add commands.
  1405.  
  1406.       SEE ALSO: pwd, rmtcheck, rmtcmd string parameters
  1407.  
  1408.       An example remote command inspection script is provided in checkrmt.t
  1409.       shown below.
  1410.  
  1411.            ss rmtcmd "(^arc[^  ]*)(.*)"
  1412.            if %z2 obey "!~pkxarc /v %z2>COM1"; goto done
  1413.  
  1414.  
  1415.       (C) 1994 Omen Tech Inc                       Chapter 28 Host Operation
  1416.  
  1417.  
  1418.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1419.       ZCOMM User Manual                                                  265
  1420.  
  1421.       String Split the user's command (in rmtcmd) into a command name
  1422.       starting with "arc" and an argument separated by a space or tab.  If
  1423.       the split is successful, execute the DOS pkxarc program with a "/v"
  1424.       (verbose archive listing) flag and the name of the archive stored in
  1425.       the z2 string parameter.  Program output is redirected to the modem.
  1426.  
  1427.            if %z1 echo "Must specify archive"; goto done
  1428.  
  1429.       If the "arc" command was found but no archive name was given,
  1430.       complain.
  1431.  
  1432.            ss rmtcmd "^whereis |^sd$|^sd |^ls |ls$"
  1433.            if !%z0 return
  1434.            obey "!~%rmtcmd>COM1"
  1435.  
  1436.       If the command is "whereis" with an argument, "sd" with ot without an
  1437.       argument, or "ls" with ot without an argument, execute the DOS command
  1438.       with output redirected to the modem.
  1439.  
  1440.       done:     set rmtcmd ""; return
  1441.  
  1442.       After command execution, clean up by clearing rmtcmd and return to
  1443.       ZCOMM.
  1444.  
  1445.       This script must be stored with the READ ONLY file attribute for
  1446.       normal operation.  For convenience in testing, use the unrestrict
  1447.       command to allow operation without the READ ONLY file attribute.  The
  1448.       ALT-1 and ALT-2 keys allow local keyboard access to commands without
  1449.       executing the rmtcmd string parameter.
  1450.  
  1451.       28.4  Callout Queue
  1452.  
  1453.       When entering host operation, and periodically thereafter, ZCOMM scans
  1454.       for script files specified by the callpath string parameter.** (If
  1455.       callpath is empty, this function is disabled.) The period in seconds
  1456.       between scans is set by the c numeric parameter.  Between these scans,
  1457.       ZCOMM waits for incoming calls.
  1458.  
  1459.       The pathspec callpath is expanded alphabetically, and a queue entry is
  1460.       made for each file found, up to a maximum of 40 entries.
  1461.  
  1462.       If one or more queue entries are found, the transmission speed is set
  1463.       to the speed in effect when the host command was given, and call1 is
  1464.       executed.  Typically, call1 disables the modem's autoanswer mode.
  1465.  
  1466.       Then each queue entry is executed as a source file.  Unless enclosed
  1467.       by double quotes, string parameters appearing in the commands (as
  1468.       %spar) are replaced by their values as the commands are read from
  1469.       disk.  These script files typically contain commands to check the
  1470.       time, set transmission speed, dial a telephone number, and transfer
  1471.       data.  The last line of each script usually contains a command to
  1472.  
  1473.  
  1474.       (C) 1994 Omen Tech Inc                        Chapter 28 Callout Queue
  1475.  
  1476.  
  1477.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1478.       ZCOMM User Manual                                                  266
  1479.  
  1480.       delete itself (or to rename itself so it will no longer be executed)
  1481.       after successful transfer of data.  If the data transfer fails, the
  1482.       script will not execute its last line, and will be retried on the next
  1483.       callout.
  1484.  
  1485.       After the queue entries have been exhausted, the transmission speed is
  1486.       set to the speed in effect when the host command was given, and call2
  1487.       is executed.  Usually, call2 sends a command to the modem to to make
  1488.       it answer incoming calls.
  1489.  
  1490.       ZCOMM then waits for incoming calls until it is again time to scan for
  1491.       outgoing scripts.
  1492.  
  1493.       28.5  Callback Security
  1494.  
  1495.       In security conscious applications, it may be desireable to limit
  1496.       access to specified users calling from authorized locations.  A
  1497.       callback scheme is demonstrated in the supplied script callback.t with
  1498.       a sample callback directory callback which references entries in the
  1499.       phone directory.
  1500.  
  1501.       Be sure to remove the echo commands before using this script.
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.       (C) 1994 Omen Tech Inc                   Chapter 28 Terminal Emulation
  1534.  
  1535.  
  1536.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1537.       ZCOMM User Manual                                                  267
  1538.  
  1539.       29.  TERMINAL (CRT) EMULATION
  1540.  
  1541.       PCDOS flavors emulates the DG Dasher, 3101, TI940, H19, Z19, VT52,
  1542.       VT100, VT102, VT220, Wyse, and LSI-ADM3a terminals with the display
  1543.       command.  The display command controls the display's emulation of
  1544.       control characters and escape sequences.  Keyboard mapping is defined
  1545.       with mk commands.  A number of script files with the mk extension are
  1546.       provided for common configurations in the SCRIPTS.ZOO archive.
  1547.  
  1548.  
  1549.       29.1  Wyse 60 Emulation
  1550.  
  1551.       DOS flavors can emulate the Wyse 60 terminal given the command display
  1552.       wyse.  Wyse (wy60) terminal emulation supports operation with
  1553.       applications on Unix/Xenix systems.  The command display wyse enables
  1554.       Wyse screen emulation.
  1555.  
  1556.       Wyse emulation can place YAM in "PC Terminal" mode with 25 display
  1557.       lines (status line invisible) and "scan code" operation.  Since the
  1558.       SysRq key does not return a code to Zcomm, the sequence LeftShift Alt
  1559.       = sends the scancodes generated by the SysRq key.  To exit from VP/ix,
  1560.       hold down on the LeftShift and Alt keys, keyboard =, keyboard m (for
  1561.       menu), and then keyboard q before releasing the Alt and Shift keys.
  1562.  
  1563.       29.2  Data General DASHER Emulation
  1564.  
  1565.       8 bit Dasher terminal emulation is enabled by the display 8bit
  1566.       command.
  1567.  
  1568.       29.3  Printer Controller
  1569.  
  1570.       ZCOMM supports the DEC VT100 Printer Controller command (ESC [ 5 i).
  1571.  
  1572.       When the display vt100 has been given, NULL, XON, and XOFF characters
  1573.       are not passed to the printer.  Disable vt100 emulaion to pass these
  1574.       characters to the printer.
  1575.  
  1576.       To pass 8 bits to the printer, give ena -8g or toggle ALT_P until 8g
  1577.       shows in the status line.
  1578.  
  1579.       If you are using software flow control (XON/XOFF) and the printer is
  1580.       slower than the communications line, the host must not be configured
  1581.       to resume output on receipt of a second XOFF character (Unix "stty
  1582.       ixany") or data will be lost.
  1583.  
  1584.       29.4  VT220 8 bit Controls
  1585.  
  1586.       The command display 8bit casuses ZCOMM to emulate the VT220 in "level
  1587.       2" operation.  The DEC "GR" display characters are not currently
  1588.       supported.
  1589.  
  1590.  
  1591.  
  1592.       (C) 1994 Omen Tech Inc                   Chapter 29 Terminal Emulation
  1593.  
  1594.  
  1595.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1596.       ZCOMM User Manual                                                  268
  1597.  
  1598.       29.5  Keyboard Mapping
  1599.  
  1600.       When enabled by a display mapkb command, DOS flavors of ZCOMM reassign
  1601.       keys to simulate the function keys of the emulated terminal.  Keyboard
  1602.       Mapping operartes only in the term function, where the mappings
  1603.       override the other meanings of the affected keys.
  1604.  
  1605.       The following key assignments for a PC-AT style 84 key keyboard are
  1606.       made by the distribution setup entry.
  1607.        VT100 Keyboard Mappings for PC-AT Keyboard
  1608.  
  1609.        PC Key.................VT100 keyCharacter
  1610.        F7.....................UP.......A    Cursor Keys
  1611.        F8.....................DOWN.....B
  1612.        F9.....................LEFT.....D
  1613.        F10....................RIGHT....C
  1614.        F1.....................PF1......P    PF Keys
  1615.        F2.....................PF2......Q
  1616.        F3.....................PF3......R
  1617.        F4.....................PF4......S
  1618.        Pad 0..................Pad 0....p    Number-Pad Keys
  1619.        ...
  1620.        Pad 9..................Pad 9....y
  1621.        Pad -..................Pad -....m
  1622.        Pad *(PrtSC)..........., comma..l (lowercase L)
  1623.        Del (.)................(.) (period)n
  1624.        Pad +..................ENTER....M
  1625.  
  1626.  
  1627.       Many users prefer a different keyboard layout for terminal emulation.
  1628.       Laptop computers that do not use a standard keyboard layout may not
  1629.       map well in Alternate Keypad Mode, suggesting different mappings.
  1630.  
  1631.       The mk command, K and N numeric parameters provide a flexible, if
  1632.       complex, keyboard mapping ability for various terminal emulations.
  1633.  
  1634.       ZCOMM's term function maps the keyboard by scanning a table of
  1635.       mappings for a match to the key's modified scan code, shift state, and
  1636.       the state of the emulation machine.  Iff the match is successful,
  1637.       special characters required by the emulation are sent to the
  1638.       application according to the class field, followed by the character(s)
  1639.       defined in the mapping.
  1640.  
  1641.       If you have a 101 key keyboard and ROM BIOS support for it, set the K
  1642.       numeric parameter to 1 to activate the extra keys,[1] distinguish the
  1643.  
  1644.  
  1645.       __________
  1646.  
  1647.        1. This may cause problems with certain versions of IBM BIOS.
  1648.  
  1649.  
  1650.  
  1651.       (C) 1994 Omen Tech Inc                   Chapter 29 Terminal Emulation
  1652.  
  1653.  
  1654.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1655.       ZCOMM User Manual                                                  269
  1656.  
  1657.       cursor keys from the numeric pad, and set the N numeric parameter to 1
  1658.       to keep the keyboard in its preferred NumLock state at all times.
  1659.  
  1660.       With a regular keyboard, you must make more compromises in selecting
  1661.       your keyboard mapping, depending on which keys are important to your
  1662.       particular application.  In particular, the "5" key on the numeric pad
  1663.       doesn't work unless NumLock is on.  The four possible values of the N
  1664.       numeric parameter allow the keyboard to be placed in NumLock none of
  1665.       the time, all the time, when the emulation's Numeric Keypad mode is
  1666.       on, or when Alternate Keypad mode is on.
  1667.  
  1668.       To devise your own mapping, you will need to know the modified scan
  1669.       code, shift state, and ZCOMM internal value for each key you wish to
  1670.       use.  The modified scan code and internal value information are
  1671.       provided by the _ (underscore) command.
  1672.  
  1673.       To clear the keyboard mappings, give the mk command without arguments.
  1674.  
  1675.       For each term function keyboard mapping, the mk command takes four
  1676.       arguments.
  1677.  
  1678.       modified scan code This is normally the value returned by the ROM BIOS
  1679.           indicating the key's physical location on the keyboard.  If the
  1680.           raw scancode equals 224 (extended keyboard only), the modified
  1681.           scancode consists of the scancode added to the ZCOMM internal
  1682.           code.  It is shown by the second number printed by the _
  1683.           (underscore) command.
  1684.  
  1685.       shift state The arithmetic sum of the following conditions:
  1686.  
  1687.           1   Right hand shift key
  1688.  
  1689.           2   Left hand shift key
  1690.  
  1691.           4   Ctrl Key
  1692.  
  1693.           8   Alt key
  1694.  
  1695.           16  Provided the Shift, Crrl, and Alt key states match, select
  1696.               this mapping regardless of whether the Application Keypad Mode
  1697.               or the Decoded Function Key conditions (below) are true.
  1698.  
  1699.           32  Alternate Keypad Mode (not numeric)
  1700.  
  1701.           64  Decoded Function Key (Character value greater than 0400 as
  1702.               displayed by the _ (underscore) command.
  1703.  
  1704.           128 Select this mapping unconditionally.
  1705.  
  1706.           Note that a separate entry must be made for each shift key
  1707.           (left/right).  A separate entry may be made for BOTH left and
  1708.  
  1709.  
  1710.       (C) 1994 Omen Tech Inc                   Chapter 29 Terminal Emulation
  1711.  
  1712.  
  1713.       Version 18.18 TurboDial 2.41            Universal Line Printer Edition
  1714.       ZCOMM User Manual                                                  270
  1715.  
  1716.           right shif keys provided your computer's BIOS recognizes
  1717.           characters entered with both shift keys down.
  1718.  
  1719.       class
  1720.  
  1721.           0   Cursor Code (LRUD).  In VT52 mode, ESC is prepended to the
  1722.               string.  In VT100 Application mode, "ESC [" is prepended.  In
  1723.               VT100 Cursor mode, "ESC O" is prepended.
  1724.  
  1725.           1   PFK Key.  In VT52 mode, ESC is prepended, otherwise "ESC O".
  1726.  
  1727.           2   Numeric Keypad.  Not mapped in Numeric Keypad mode.  In
  1728.               Alternate Keypad mode, the string is prepended with with
  1729.               "ESC ?" for VT52, "ESC O" for VT100.
  1730.  
  1731.           3   An ESC is prepended.
  1732.  
  1733.           4   No characters are added to the string.
  1734.  
  1735.       string A string of 1 to 7 characters taken from the third column
  1736.           above.  Control characters must be represented with ZCOMM
  1737.           character escapes.
  1738.  
  1739.       96 keyboard mapping entries are allowed.  To change an entry, all must
  1740.       be cleared and reloaded.
  1741.  
  1742.  
  1743.       EXAMPLE: To remap the backspace key to send RUBOUT without affecting
  1744.       Ctrl-H:
  1745.            mk
  1746.            mk 14 0 4 "\177"
  1747.            display mapkb
  1748.  
  1749.  
  1750.  
  1751.       EXAMPLE: We wish to map the Up key to send the VT100 cursor up code.
  1752.       First, we see _ (underscore) command dislays 72 72 0 510 for the Up
  1753.       key, indicating a scan code of 72, modified scan code of 72, 0 shift
  1754.       state, and a ZCOMM internal code of 0510 (Function Key).  (Exit the _
  1755.       command by typing Ctrl-Enter).
  1756.  
  1757.       To make this key always active in "display mapkb" mode, assign it a
  1758.       shift state of 16.  Since VT100 cursor keys have class 0, the command
  1759.       is: mk 72 16 0 A
  1760.  
  1761.  
  1762.       EXAMPLE: mk 72 1 0 A maps "right shift keypad 8" to send the VT100
  1763.       cursor up code (assumes right shift key).
  1764.  
  1765.  
  1766.       The set command may also be used to define suitable key mappings.
  1767.  
  1768.  
  1769.       (C) 1994 Omen Tech Inc                   Chapter 29 Terminal Emulation
  1770.  
  1771.