;
                                  ZCNFG.COM                                   

             Size (recs) CRC   Version    Author/Latest Issue      Disk
ZCNFG.COM      8k (62)   FB96  2.1        Al Hawley 11/91          Z3COM32
CFGLIB.REL     2k (10)   777A  2.1        Al Hawley 11/91          Z3COM32

  1- Syntax  2- Notes  3- Help files  4- ZCNFG.HLP                            

   ZCNFG is  a universal configuration utility which configures option data in
executable files.  This is done by changing data  at  known  addresses  in the 
first page  of program code.   ZCNFG  performs  this  editing  function  in  a 
particularly convenient way.  Data options are displayed in one or more menus.
The current selection for  each  option  is  displayed  as  part  of  the menu 
information.  HELP screens can be invoked for assistance in selecting options.

   ZCNFG is universal because it uses  an  overlay file (.CFG) to  provide the 
menu layout(s), Help screen(s), and data specifying the location and nature of
each option.   An appropriate overlay must be  present for the target program; 
ZCNFG loads it automatically or as a result of a command line specification.
:1

   Syntax    ZCNFG    TFS  [[/]FS]  [[/]FS]

Examples:  (Configure TGT.COM, default LBR is D15:CONFIG.LBR  )

     ZCNFG TGT TGT /CFG01     ;uses TGT.CFG in CFG01.LBR
     ZCNFG TGT /CFG01 TGT     ;order of args 2,3 optional with '/'
     ZCNFG TGT TGT CFG01      ;'/' optional if LBR is 3rd argument
     ZCNFG TGT CFG01.LBR      ;'/' optional with explicit .LBR
     ZCNFG TGT TGT            ;TGT.CFG on Path (includes default LBR)
     ZCNFG TGT                ;<internal FN.CFG> or TGT.CFG on Path
     ZCNFG ZCNFG              ;configures itself to assign ALT:, etc.

ZCNFG configures option data in Executable files (TFS),  using a configuration
data file (FS) which may be in a LBR (/FS or [DIR:]FN.LBR).   FS, TFS are ZCPR
style filespecs.   All parts are optional except TGT FN.  ZCNFG seeks FS files
on a configurable internal path which includes Alt Directory unless superseded
by a DIR: form in FS.  See ZCNFG.HLP for full syntax and usage. 
:2
 ZCNFG Notes - 1/6 

   a. Vs 2.1 updates (11/01/91, Al Hawley):
      - Functions 1,5, and 9 modified to change  ONLY  the 7 ASCII bits in the
        configuration block,  and ignore the high  bit  during screen display.
        This allows the high bit in such data to be used as an independent
        flag, configurable with the SWITCH function.
      - Added several more exit functions  (W,^W,^Q,^X) and  menu  select keys
        (^A,^S,^D,^F).   Changed the internal ZCNFG menu to be more compatible
        with highlighted screen display and less complex.  The  '?'  selection
        in this menu now displays a description of all the alternate keys that
        control ZCNFG operation.
      - ZCNFG21.CFG is reformatted for compatibility  with  highlighted screen 
        displays.
      - Added Function 9 which accepts a keystroke to update an ASCII byte (^@
        to DEL) which is displayed on the screen  with  translation of control
        characters to ^X form and to SP or DEL for those non-printing  charac-
        ters.  This function is useful for escape character and printer string
        configuration.
      - Modified keyboard input error handling.   Input errors now redraw only
        the prompt instead of entire screen (speeds response dramatically).
 ZCNFG Notes - 2/6 
        
      - Revised code for Function 1 and  Function 5 to use a value  at  S_LIST
        (from the menu list) in the CFG overlay as the terminator byte for the
        current string.   If S_LIST is zero,  then a space delimited string is
        assumed.  (The value at S_LIST could also be 20h.  Other normal values
        are Null and '$').   There is no provision for HBS string termination.
      - modules affected:  ZCNFG.Z80, CFGSUBS.Z80, ZCNFGCFG.LBR

   b. Vs 2.0 updates (09/17/91, Al Hawley):
      - Fixed bug in the parsing of DU form.  Also enhanced to allow a leading
        space during input to leave drive  unchanged and trailing space leaves
        User unchanged.  Thus, " 14" changes only the  user,  and "C " changes
        only the drive.
      - Revised HELP screen to reflect current configuration and new LBR argu-
        ments on the command line.
      - Revised ZCNFG.HLP to reflect the new syntax and clarify description of
        defaults.
      - Revised command line parsing to provide new syntax which allows speci-
        fication of the CFG library on the command line.  Syntax is a superset
        of the old syntax.
      - Added error traps in FN2, FN3, FN6 for user input.
 ZCNFG Notes - 3/6 

      - Replaced code with SYSLIB routines in many places.
      - Modules  affected:  ZCNFG.Z80,  CFGSUBS.Z80,   CFGLIB.REL,  ZCNFG.CFG,
        GETZFS.Z80(in CFGLIB.LBR), ZCNFG.HLP.

   c. Vs 1.9 updates (08/21/91, Al Hawley):
      - Added ability to  extract  CFG  files  from a  library  of  such files
        compatible with NULU and SYSLIB.   CONFIG.LBR is  expected to be found
        in ZCNFG's alternate directory.  The  LBR  will  be searched first for
        the required CFG file if there is no DIR  form  (D:, U:, DU:, or DIR:)
        specified in the SECOND argument of the invoking command tail.
      - The configuration file has been updated to contain a new menu item for
        changing the name of the library which contains CFG  files  (distribu-
        tion default is CONFIG).
      - several new error traps and  associated  messages  help prevent use of
        wrong or damaged CFG overlays.   Hopefully,  they will never  be seen!
      - documentation files have been updated to  include the  new features in
        versions 1.8 and 1.9.   Terry Hazen contributed a set of  help  files,
        ZCFG.HLP and ZCNFG.HLP,  which have been edited to reflect version 1.9
        features.  These files are for the standard ZCPR help utility, and are
        a complete replacement for ZCNFG.WS.
 ZCNFG Notes - 4/6 

      - Configuration function 7 has been generalized to rotate a bit in a bit
        field of from 2 to 7 bits located anywhere in a byte.  Current implem-
        entations in CFG files (the 3 lsb in a byte) are unaffected.

   d. Vs 1.8 updates (08/09/91, Al Hawley):
      - Reformatted & reorganized source code.
      - Revised CFG help function to recognize  ':'  or Form Feed character at
        the start of a line in help screens.   These  characters  start  a new
        screen but are not  displayed.  Help  screens  are  now much easier to
        compose.
      - Revised CFG file search logic to speed up  response for common invoca-
        tion situations.  If user has provided a partial or complete  dir:/du:
        form, the alternate directory will not be searched.  When the CFG file
        name comes from the  target  file  configuration  block, the alternate
        directory is searched first.

   e. Vs 1.7 updates (08/12/90, Al Hawley):
      - Corrected a bug in the TEXTLC routine.
 ZCNFG Notes - 5/6 

   f. Vs 1.6 updates (07/21/90, Al Hawley):
      - Added logic in FILINIT routine to detect Z34 type 4  executable files,
        and skip over the type 4 header to  find the  program's  configuration
        block.  ZCNFG will now work with all types of Z system and CP/M files.

   g. Vs 1.5 updates (05/28/90, Al Hawley):
      - Replaced a lost  instruction in the  TABS routine in CFGSUBS.Z80 which
        caused the column counter to be improperly maintained  and resulted in
        eratic expansion of tabs.

   h. Vs 1.4 updates (11/03/89, Al Hawley):
      - Reconfigured to allow 256-byte configuration block in target program.
      - Added screen/cursor controls which  become  effective if a Z-System is
        present.   ZCNFG functions in a  CP/M system without terminal-specific
        functions.  
      - Removed option to use '$'  terminated  strings  in  .CFG  files.   All
        strings must be null terminated  (necessary to accomodate the  V4 VLIB
        routines which do not accept the '$' string terminator).
 ZCNFG Notes - 6/6 

   i. Vs 1.3 updates (12/19/88, Al Hawley):
      - This is the release version of ZCNFG.   Earlier versions were develop-
        mental, and contained functions that behave differently from this one.
        To avoid problems in using  ZCNFG,  older versions should be discarded
        along with their .CFG  files and  replaced  with  updated  .CFG  files
        designed to the interface  requirements  outlined in  ZCNFG.WS (or the
        equivalent text file, ZCNFG.DOC).
:3
                                 ZCNFG.HLP 

             Size (recs) CRC   Version    Author/Latest Issue      Disk
              10k (77)   6A4A  2.1        Al Hawley 11/91          Z3HLP6 
==============================================================================

ZCPR3 HELP file describing operation of ZCNFG vs 2.1.

                                  ZCFG.HLP 

             Size (recs) CRC   Version    Author/Latest Issue      Disk
              22k (170)  A1E6  2.1        Al Hawley 11/91          Z3HLP6
==============================================================================

ZCPR3 HELP file describing operation of ZCNFG vs 2.1.  Called from ZCNFG.HLP.

                                 CFGLIB.HLP 

             Size (recs) CRC   Version    Author/Latest Issue      Disk
              10k (73)   21D8  2.1        Al Hawley 11/91          Z3HLP6 
==============================================================================

ZCPR3 HELP file on use of  CFGLIB.REL  routines.   It is accessed from the "Y"
(Libraries) menu.
:4 :ZCNFG