home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ZSYS / ZSYSARK / Z3HLP01.ARK / I.LBR / IFCOM.HZP / IFCOM.HLP
Text File  |  1990-03-23  |  9KB  |  195 lines

  1. ;
  2.                                    IF.COM                                     
  3.  
  4.              Size (recs) CRC   Version    Author/Latest Issue      Disk
  5. IF.COM         4k (29)   4BEC  1.5        Howard Goldstein 6/89    Z3COM4
  6. IF.3OM         4k (29)   528C  1.5        Howard Goldstein 6/89    Z3COM4
  7. IF.4OM         5k (35)   BC5B  1.5        Howard Goldstein 6/89    Z3COM4
  8.  
  9.   1- Syntax/Options  2- Notes  3- Err Msgs  4- Examples of Use  5- Help File  
  10.  
  11.    IF is  the transient  counterpart of  the FCP-resident IF  command.  IF.COM
  12. tests the indicated condition to see if it is TRUE and,  if so,  sets the Flow
  13. State  to TRUE (allowing  the following commands to execute).  If  FALSE,  the
  14. Flow State is set to FALSE (allowing only Flow Commands to execute).
  15.  
  16.    IF.COM is invoked if the current FCP has the IF.COM facility  enabled.   If 
  17. so, when an IF command is issued, the FCP loads IF.COM from the ROOT directory
  18. into memory and executes it.  The command tail is passed to IF.COM, and IF.COM
  19. acts  as  a  conventional COM  file.   
  20. :1
  21.    Syntax   (1) IF ARG1=ARG2
  22.             (2) IF REGISTER# [value]
  23.             (3) IF CONDITION ARGUMENTS
  24.  
  25.    In form (1), the arguments are tested for literal equality and  must  match 
  26. character  for  character.   No space is permitted preceeding or following the 
  27. equal sign.  A more flexible comparison is provided by using form (3) with the 
  28. comparison  conditions,  i.e.   IF  EQ ARG1 ARG2 or IF = ARG1 ARG2.  This form 
  29. permits the use of the condition set EQ, NE, GT, GE, LT, LE as well  as  their 
  30. symbolic equivalents =, <> or ><, >, >=, <, <=. 
  31.  
  32.    In all forms which permit or require the use of numeric values such as form 
  33. (2) or the VALUE and REG conditions, numeric entry may be specified as  octal, 
  34. binary or hexadecimal by suffixing the letters o, b or h to the number.
  35.  
  36.    In form (3), only the first two letters of the condition are signifigant.  
  37.  
  38.    A '~' may be used to negate all conditions in forms (2) and (3).
  39.  Options - 1/5 
  40.  
  41. T             - Flow State set to unconditionally to TRUE
  42.  
  43. F             - Flow State set unconditionally to FALSE
  44.  
  45. AMBIG fnme    - Flow state set TRUE if file name is ambiguous    
  46.  
  47. ARCHIVE fnme  - Flow state set TRUE if archive attribute set
  48.  
  49. BG            - Flow state set TRUE if BackGrounder present
  50.  
  51. COMPR fnme    - Flow state set TRUE if file is squeezed or Crunched
  52.  
  53. DS            - Flow state set TRUE if DateStamper present
  54.  
  55. EMPTY afn,... - if all files in indicated list are EMPTY (size is 0k), 
  56.                    Flow State is set to TRUE
  57.  Options - 2/5 
  58.  
  59. ERROR [value] - if ZCPR3 error flag is set, Flow State is set to TRUE.  If 
  60.                    value is present, flow state is set TRUE only if error 
  61.                    number matches value.
  62.  
  63. EXIST afn,... - if all files in the list exist, Flow State is set to TRUE
  64.  
  65. INPUT [text]  - user input is enabled, and if user strikes T, Y, <cr>, or 
  66.                 <sp>, Flow State is set to TRUE.  Text appears as a prompt and
  67.                 may use '^' to generate control characters, %< to display 
  68.                 upper case and %> to display lower case.
  69.  
  70. LIST tail     - Flow state set TRUE if tail contains items separated by commas
  71.  
  72. NULL afn      - if no 'afn' (field is blank), then Flow State is set to TRUE
  73.  Options - 3/5 
  74.  
  75. PAUSE n [text]- where "n" is the number of seconds to wait before assuming 
  76.                 TRUE and "text" is the text to be displayed as in IF INPUT.
  77.                 "N" must be greater than 0.
  78.  
  79. REG m op n    - Flow state set TRUE if expression is true.  M is a register 
  80.                 number, n is a test value and op is a member of the operator
  81.                 set =, <>, ><, >, >=, <, <=.  All can be negated with '~'.
  82.  
  83. RO fnme       - Flow state set TRUE if file Read Only attribute set
  84.  
  85. SHELL [name]  - Flow state set TRUE if a shell is on shell stack.  If name is 
  86.                 present, it is compared to the name on the top of the shell
  87.                 stack and the flow state set TRUE if they match.  Name may
  88.                 ambiguous.
  89.  
  90. SYS fnme      - Flow state set TRUE if file Sys attribute set
  91.  
  92. TAG fnme n    - Flow state set TRUE if attribute n set in file name.
  93.  Options - 4/5 
  94.  
  95. TCAP [string] - if a Z3TCAP is installed, Flow State is set to TRUE.  If 
  96.                 string is present it is compared to the TCAP ID string (up  
  97.                 to the length of the former) and the flow state set TRUE if 
  98.                 they match.  String may contain '?' wildcards.
  99.  
  100. VALUE m op n  - Flow state set TRUE if expression is true.  M and n are values 
  101.             and op is an operater from the set =, <>, ><, >, >=, <, <=.  
  102.                 All can be negated with '~'.
  103.  
  104. WHEEL         - if WHEEL byte set, Flow State is set to TRUE
  105.  
  106. ZEX           - Flow state set TRUE if ZEX is running 
  107.  
  108. reg# value    - if reg (0-9) has indicated value (0-255), Flow State is 
  109.                 set to TRUE
  110.  
  111. afn1=afn2     - if two afns are identical in name, Flow State is set to TRUE 
  112.  Options - 5/5 
  113.  
  114.    A  leading  tilde  (~) char before a condition negates the  effect  of  the 
  115. condition.   If the condition is FALSE,  the Flow State is set to  TRUE.   For 
  116. each condition, only the first two chars are significant (eg. NU for NULL).
  117.  
  118. Examples:  "IF ~T" is the same as "IF F"
  119.            "IF ~NULL arg" is TRUE if 'arg' is non-blank
  120.            "IF ~EXIST afn,..." is TRUE if 'afn,...' do NOT
  121.                 exist (AFN and AFN ... must each not exist)
  122.  
  123.    For each condition given, only the first two characters are significant 
  124. (eg, NU for NULL).
  125. :2
  126.  IF Notes 
  127.  
  128.    a. Under NZFCP (NZCOM/ZCPR34),  IF.COM  is  invoked  only if  the indicated
  129.       condition is NOT included  in  the  condition  set  available  with  the 
  130.       resident FCP.  Typing ":IF" will invoke IF.COM directly.
  131.  
  132.    b. Vs 1.5 updates: 
  133.       - The IF PAUSE test has been added.   It  is similar to IF INPUT, except 
  134.       that the  function  returns  TRUE if the user does not respond within  a 
  135.       specified time interval.  
  136.       - It is now  possible to  highlight text displayed  by  IF INPUT  and IF
  137.       PAUSE.  Use ctrl-a to turn standout mode on and ctrl-b to turn it off as
  138.       in other Z-System utilities.
  139.       - The register test routines have been modified to handle all registers,
  140.       0..31.
  141.       - The tests that do  file lookups,  (EXISTS, EMPTY, RO, etc),  have been 
  142.       changed to work correctly under Z3PLUS.   When running under ZSDOS,  the 
  143.       DOS path will  no longer  be searched  if the specified  file  cannot be 
  144.       found in the specified directory.   Files found  via ZS/ZDDOS Public are 
  145.       ignored unless the program is  re-assembled with the IGNZDPUB option set
  146.       False.
  147. :3
  148.  Error Messages 
  149.  
  150.    IF.COM generates  several error messages  relating  to improper  entry  of 
  151. condition  arguments.  These messages are self-explanatory.  See the help for 
  152. IF.COM Options for correct syntax for each condition.
  153.  
  154.    "No IF Condition Given"    <-- the condition expressed was not one of 
  155.                                     the valid conditions.
  156.  
  157.    'IF overflow'              <-- indicates a nesting beyond the permitted 
  158.                                   8 levels.
  159. :4
  160.  Examples of Use - 1/2 
  161.  
  162.    a. IF NULL $1         
  163.       - if the indicated parameter (from within a SUBMIT or ZEX command file) 
  164.         is not provided, set the Flow State to TRUE
  165.  
  166.    b. IF ~EXIST ZEX.ASM,ZEX.ZEX
  167.       - if any one of these files does not exist, Flow State is set to TRUE
  168.  
  169.    c. IF EXIST ZEX.ASM,ZEX.ZEX
  170.       - if any one of these files does not exist, Flow State is set to FALSE 
  171.         (i.e., all files must exist for a TRUE Flow State)
  172.  
  173.    d. IF NEC=$1
  174.       - if the first passed parameter is the same as the file name "NEC.", 
  175.         then the Flow State is Set to TRUE
  176.  
  177.    e. IF 5 7h
  178.       - if Register 5 = 7 hexidecimal, the Flow State is Set to TRUE
  179.  Examples of Use - 2/2 
  180.  
  181.  
  182.    f. IF LT $1 FEE
  183.       - if the first passed parameter preceeds 'FEE' in alphabetical order,
  184.         the flow state is set to TRUE.
  185. :5
  186.  
  187.                                     IF.HLP 
  188.  
  189.              Size (recs) CRC   Version    Author/Latest Issue      Disk
  190.                8k        2C8A  n/a                                 Z3HLP1
  191. ==============================================================================
  192.  
  193.    Original  Z-System  HELP  file  on  'flow-control'  commands  (IF,  IF.COM, 
  194. IFSTAT.COM, ELSE, FI, XIF, etc.). 
  195.