FWKCS(TM) Contents_Signature System, Version 2.03. 1995 Apr 19.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.

Important: Your use of this software is at solely your own risk: please have
           proper backups of your files.

This README.TXT file contains these sections:

       Summary
       Checklist for Installation, Help, and Routine Maintenance
       Distribution


Summary:
~~~~~~~~
        This zipfile, FWKCS203.ZIP, contains the FWKCS(TM) Contents_Signature
     System, Version 2.03, including assembly_language programs,
     documentation, user interface programs, other supporting programs,
     automated setup procedures, etc.  All functions are enabled, to permit
     testing.

        Anti-piracy resource material is available separately in the current
     release of FWKCXnnn.ZIP; that series started with FWKCX001.ZIP (note:
     that series number is not tied to the FWKCS version number; for where to
     get the most recent release of FWKCXnnn, see "Note 2:" near the end of
     this file).  Executable code to use that resource data is provided in
     this package, FWKCS203.ZIP.

        This package is for use with DOS 3.30 or later, or in a suitable DOS
     session under a multitasking system (including IBM OS/2 2.0 or later).

        Allow as much space as DOS permits, to run virus_test programs. Under
     OS/2, use standard DOS settings. FWKCS itself needs 163568 bytes of
     memory to load, more is better.  In swap mode, FWKCS frees all but about
     8816 bytes (stack, environment, etc are reserved for multitasking).  In
     the client/host configuration, the client program, FWKCSC.COM, while
     running needs only 32640 bytes of RAM -- all external programs called by
     FWKCS as host run on a host processor (FWKCS can automatically allocate
     work among multiple host processors).

        You may test FWKCS(TM) at no fee before registering it; if for use in
     a public, commercial, school, institutional, or governmental environment,
     then this no_fee test period shall not be more than 45 days.

        An unregistered copy of FWKCS shows a note saying how many days have
     elapsed since use began, counting the first day as day 0.  After day 45,
     a delay of about one second per additional day is added (for example, on
     day 55, it pauses for approximately 10 seconds).  Suggested test time is
     up to 30 days, to allow time for your registration to normally reach you
     by mail before those delays start.

        To run an unregistered copy of FWKCS, you need to keep a copy of the
     registration form REGISTER.FRM available in the same directory with
     FWKCS.EXE (you can put that directory on your PATH and then call FWKCS
     from anywhere on your system).

        Also, FWKCS has a special option, FWKCS /here , which tells FWKCS to
     copy FWKCS.EXE to wherever you are when you give that command.  For
     example, the  /here  option is convenient when a .BAT program needs a
     temporary copy of FWKCS.EXE so that it can change the "macro" settings
     for local use.  However, /here does not fetch a copy of REGISTER.FRM.

        Registration for personal use is only $47.00, or for a bulletin board
     of 1 or 2 nodes is only $80.00, plus any applicable taxes (see
     REGISTER.FRM).  In the case of use on a bulletin board system, FWKCS
     often pays for itself completely in a matter of hours, just by the space
     it saves by finding duplicate files already on the board.

        The FWKCS(TM) Contents_Signature System provides a powerful platform
     supporting contents_signature functions.  Among other applications,
     FWKCS is used on giant bulletin boards for protecting against duplicate
     files and against accidentally uploaded commercial files.  It can
     process (including controlling the virus testing of) an uploaded zipfile
     containing a full DOS tree of zipped paths and subdirectories, and up to
     16383 entries, while preserving the paths and the Authenticity
     Verification stamp. And its remote Lookup features help users find
     matching files on giant bulletin boards, get missing parts of packages,
     and avoid uploading duplicate material.

        In experimental testing, the FWKCS system has been seen to provide
     statistical resolution typically better than one part in ten trillion,
     well over a thousand times as good as the best that is mathematically
     possible for the 32_bit CRC to do.

        The affordable prices, the automated installation procedures ranging
     from simple to complex, and the extensive on_line support provided by
     FWKCS on your computer, bring the FWKCS system within reach of almost
     anyone with a computer that can run DOS or a DOS session.

        The kernel for the FWKCS system is a 91232_byte self_modifying
     program written entirely in assembly language. It uses a 3072_byte
     internal command line, supports 26 73_byte dynamically changeable
     "macros", can read multiple configuration files into its internal
     command line and expand any macros which they contain, and can operate
     on multiple processors so as to dynamically allocate work among hosts
     serving clients on a network.  FWKCS.EXE, running in host mode, can
     accept work posted to its queue from threads or processors running
     under an operating system other than DOS, provided that any files
     involved are accessible from DOS.  ("threads" is used here generically
     to refer to execution of a set of steps in a program, including also
     "session" under a preemptive multitasking system and "task" under a
     non_preemptive multitasking system)

        For a system with a very large data base, FWKCS supports the use of
     an index system with increased "cell" count.  Depending on the
     computer operating system used, this option supports improved access
     to a data base of up to slightly less than 4 Gigabytes (DOS), or
     slightly less than 2 Gigabytes (OS/2), respectively (e.g., more than
     40,000,000 entries of the usual ca 50_byte length), and may improve
     performance for systems with as little as two million entries in the
     data base.  Note that, if desired, the "j" or "l" (lower case L) flag
     can be used in column 17 of CSLIST.SRT and CSLIST1.SRT, to enable
     further bit comparison on an extended (if "j", contiguous) string from
     column 18 up to column 509, inclusive -- if coded in hexadecimal, up
     to an additional 1968 bits.  The "j" flag allows additional material
     to be placed following one or more blank spaces after the contiguous
     identification string.  In this way, many orders of magnitude of
     additional statistical resolution can be provided for the basic /f
     (find if match) and /g (get matching entries) functions.

            For details, see FWKCS203.REF (e.g., FWKCS /** ), and search for
            "granularity", "to further enhance statistical resolution", and
            "Special Column 17 Flags".  (e.g., in step 22 in the Checklist,
            below)

        Many powerful internal functions are brought out for other uses,
     including the 520_key sorting function able to handle the maximum file
     size which the operating system can handle or 2^32-1, whichever is less
     (e.g., for DOS, slightly less than 4 Gigabytes).  FWKCS can merge two
     sorted files in place, find the difference between sorted files,
     support automatic text interpretation, do very fast contents_signature
     matching, provide a subset of the text find functions with enhanced
     range and speed, and perform many other functions which do not appear
     to be supported by various DOS operating systems.  For a detailed list
     of functions supported, see FWKCS203.REF (step 22, below).

        For the FWKCS application of automatically processing files uploaded
     to a bulletin board when they arrive, three configurations are used:

     1. FWKCS can process files, working directly (default configuration).

     2. The split_test configuration allows the fast part of the testing
     (including checking for duplicate files, known ads, known trojans, and
     known commercial files) to be done while the user waits a few seconds,
     with the slower file_unzipping and further virus testing done while the
     user goes on to other things.  (For example, Channel 1 (ca 135 nodes,
     ca 35 Gigabytes) runs FWKCS in the split_test configuration.)

     3. The client / host configuration allows work to be automatically
     transferred to one or more other processors. This can be especially
     useful when multiple nodes are running on a single CPU, with the
     CPU_intensive work of evaluating uploads done on another; or when a fast
     processor on a network is used to upgrade the processing of uploaded
     files on a large BBS without having to replace any of the older CPUs.

        For example, The Invention Factory (ca 50 nodes, ca 14.6 Gigabytes)
     has been running FWKCS in the client / host configuration. Until April
     of 1994, 43 of the nodes were running Clark Development Company's
     PCBoard 15.1 on 8088 slave cards, with FWKCS running in host mode on a
     486 on the network (The Invention Factory now uses 80386 CPU's or higher
     on its 50 nodes, with FWKCS client / host configuration).  When PCBoard
     shells out to test an upload, it does not give up any memory -- it calls
     PCBTEST.BAT which calls the FWKCS client program FWKCSC.COM, which can
     run in about 32 KB of RAM.  The spectrum of activities included, and
     includes, among others,
        * virus testing the outer package (McAfee's SCAN),
        * preliminary test of file integrity (using internal FWKCS code),
        * replacing the zipfile comment (Phil Katz's PKZIP),
        * unzipping the zipfile and testing file integrity (PKUNZIP),
        * virus testing the unzipped files,
        * checking the AV stamp to see if it is recognized as an abused AV,
        * comparing all the files with all the other corresponding files on
         the system, regardless of filename, including those in other
         zipfiles, and those which have been retired from use,
        * setting aside uploads which do not have sufficient novelty,
        * testing the files inside a zipfile for age,
        * checking for and deleting commercial files recognized on the
         basis of their contents_signatures, regardless of filename,
        * updating the data base to be able to recognize the files in the new
         upload if they are seen again, even if their names are changed,
        * removing non_AV files found in AV zipfiles,
        * removing recognized ads not protected by AV stamp,
        * blocking trojan files recognized by contents_signature,
        * checking any internal zipfile description FILE_ID.DIZ, DESC.SDI,
         and/or VENDINFO.DIZ to see if it is recognized as unwanted material,
        * using internal upload description FILE_ID.DIZ, DESC.SDI, or
         VENDINFO.DIZ
        * modifying the upload description to include a report of filecount,
         dates of earliest and latest, and how many of the files are new,
        * adding zipfile contents signature line to the upload description,
        * moving rejected files to separate subdirectories for easy
         inspection (except for deleting commercial files received),
        * preparing a report to send to the user,
        * etc...
     In the case where the node which received the upload used an 8088 slave
     card, a typical time for evaluating and accepting an uploaded zipfile
     about half a Megabyte long was less than 20 seconds.

        Other supported activities include trimming the artificial tail of
     extra characters from GIF files, processing plain files, partial or
     fully automatic interpretation of text descriptions of files, etc. For
     more, see FWKCS203.REF (step 22, below).

--------------------------------------------------------------------------


Checklist for Installation, Help, and Routine Maintenance
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    This checklist provides steps for installing, or replacing, the
    FWKCS(TM) Contents_Signature System;
    It includes a "guided tour" of many help options; and
    It serves as a checklist for routine maintenance of the installed system.

    You might find it convenient to print out this checklist for your use in
    setting up the system, and for reference in doing maintenance.

    Once you get started, take your time to read the help screens presented
    by the programs as you work with them.  The .BAT program help_screens put
    information where you can use it while you key in your input.  If the
    installation programs report a problem, stop, correct the problem, and
    begin again.

    For full installation and full use of all FWKCS options, you need on your
    PATH the programs listed in checklist steps 1-4, below.

    If you will only be using Lookup and Rcrosref, and do not wish to set up
    the whole system, you can run GETLOOK in step 14. To support that, you
    will need PKZIP/PKUNZIP as in step 1, below, and you may want LIST (step
    2) in case you call FWKCS /** for extensive help (discussed below in step
    22).

    If you are running a large system with complex use of drives and
    directories, the recommended method of installation is to use QIKSTART
    to install the FWKCS system, and then go to your \CS directory and use
    S_REVCSL.BAT to build the data base.

                           (checklist entries 1-3 are shareware; if you are
                           missing any of them, see Note 2, near the end of
                           this file, for no_fee downloads)

    [ ]  1. Phil Katz's PKUNZIP(R) and PKZIP(R), Version 2.04g or later.

    [ ]  2. Vernon Buerg's LIST program, a recent version.
         (if only using GETLOOK, you can go to step 9)

    [ ]  3. A current version of one or more of these virus detection
            progams: SCAN, F-PROT, Thunderbyte.

         (if you find that you need more free memory, FWKCS can give up all
         but 8816 bytes of RAM when calling external programs, by swapping
         most of itself out of memory; this is discussed in step 26)

    [ ]  4. DOS commands and programs:
            [ ] ATTRIB
            [ ] CHKDSK
            [ ] DEBUG (used in FWKCTEST.BAT and FWKCHTST.BAT)
            [ ] MORE
            [ ] a version of QBASIC, GWBASIC, BASICA, or BASIC, suitable for
                use on your system.

    [ ]  5. (optional) If your operating system allows this function,
            preferably include a file defragmentation program, for example,
            Peter Norton's Speed Disk.

    [ ]  6. If FWKCS has not been told specific paths for finding executable
            files (this is discussed in step 18), it checks its current
            directory for executable files before searching for them on the
            PATH. One potential source of trouble, is if APPEND is used with
            a directory which contains an executable file FWKCS calls.
            APPEND makes those files seem to be present in the current
            directory, but they are not executable that way.  To avoid such
            problems, make sure that PKZIP, PKUNZIP, LIST, and SCAN are not
            in any directory which is APPENDed.

    [ ]  7. The data base uses (or will use, once it's installed) CSLIST.SRT,
            CSLIST.NDX, CSLIST1.SRT, and CSLIST1.NDX, located in the \CS
            directory. CSLIST.SRT is the main data file. CSLIST1.SRT is used
            for rapid updating when accessioning new material ("accessioning"
            means recording them in the data base for future recognition,
            i.e., generating the contents_signature ("cs") for each file and
            for files directly present in zipfiles, sorting the cs's if there
            is more than one (as often found with files in a zipfile), adding
            their cs's to the data base, and refreshing the rapid update
            index CSLIST1.NDX).

               Note: If your collection is sufficiently large, or if your
                     system uses slow network communications (such as "speech
                     quality" telephone lines), you may wish to set the index
                     "cell size" after you have installed this version of
                     FWKCS. (when you do FWKCS /** in step 22, below, search
                     for "granularity" (without the quotes))

            A new automatic exclusion list, X_ADD.LST, can be automatically
            incorporated into the data base. When using X_ADD.LST, its length
            needs to be considered in calculating the free workspace to
            allow.

            (Following are some formulas for estimating the amount of space
            to allow, writing len(x) for "length of file x", and * for
            multiplication.)

            If you do not have a new X_ADD.LST, then, to run REPLACE or
            QIKSTART, allow 5 Megabytes free workspace (used temporarily
            while setting up; installed size is discussed below).

            If you do have a new X_ADD.LST, then

            to run QIKSTART, allow 5 Meg + 5*len(X_ADD.LST);

            to run REPLACE, allow
            5 Meg + len(CSLIST.SRT) + 5*len(X_ADD.LST) + 3*len(CSLIST1.SRT),
            to permit copying X_ADD.LST and concurrent revision of an active
            FWKCS system (i.e., while the system is up and running; do not do
            a system revision at the same time as you are running REPLACE).

            If you run QIKSTART, which does not search your system nor build
            a big data base, the total installed lengths of the FWKCS
            system's files is less than 2 Meg, in a total of 184 files and
            directories (not counting any special custom messages you may
            wish to add).  If you are incorporating a new X_ADD.LST, add
            len(X_ADD.LST).  (The total amount of disk space committed to
            storing those files and directories will depend on how
            efficiently your system uses space on the disk:  for example,
            storing the files using an 8192 byte block size on the disk ties
            up more space than if the system uses a 512 byte block size.)

            If you run INSTALL (in step 14) and do the full installation
            procedure, FWKCS may process a large amount of material, and need
            more temporary free space to work in.  Counting temporary files,
            etc., used in sorting and in preparing the main data base,
            recommended workspace is 5 Megabytes + 8% of the total of all the
            filelengths on your system + 5*len(X_ADD.LST); the workspace must
            be located on the drive which will hold the \CS
            (Contents_Signature) directory.

            If you use option 5 on the "Menu for Installation" screen
            (reached if you start with INSTALL), you can specify which groups
            of files to include, in which case 8% of the total of those
            filelengths would be used in the above estimate.

            After the installation is finished, the amount of space which
            continues to be used is considerably less; it's usually the
            sorting process that needs the most space.

            One contents_signature is made for each file (including files
            directly inside zipfiles), and one for each zipfile.  Each
            contents_signature with related additional information takes up
            roughly 50 bytes in the data base; it can be more, if you use
            long paths, or if there is a lot of zipped path information.  If
            your system specializes in ca 500K GIF files, then the CSLIST.SRT
            data file containing their signatures, etc., may be only about
            0.01% as long as the total filelengths.  But if your system
            specializes in haiku, the database could be about half as long as
            the total of all the haiku filelengths.

            A typical size for the data base on large public bulletin board
            systems has been somewhat less than 0.5% of the total of the
            filelengths on the system. The recommended working space allows a
            safety factor over this.

            If you estimate the space needed, allow a temporary working space
            of at least  (5 Meg) + 4*(the estimated final data base size) +
            5*len(X_ADD.LST).

            For example, allow at least (in bytes)
                  5242880 + 200*(filecount+zipfilecount) + 5*len(X_ADD.LST).
            However, filecount includes files inside zipfiles, and often is
            not accurately known until after FWKCS is installed; that's why
            a simple estimate based on total visible external filelengths is
            provided above.

            How much free workspace you will actually need also depends in
            part on how your operating system handles the deletion of
            intermediate files.

    [ ]  8. A Contents_Signature Activity place is created during automatic
            installation, as the \CSA directory. Under it is placed a set of
            subdirectories. When used for screening incoming files on a
            bulletin board system, FWKCS puts various kinds of rejected files
            into various of these different subdirectories, according to why
            the file was rejected; the descriptions which accompanied the
            files are placed in companion target subdirectories which have
            the directory extension ".D", using respectively the same
            filename.ext as the file which the description belongs to.

            For speed of operation, it is much more efficient if the \CSA is
            on the same drive that initially holds the uploaded files: in
            that case, a large rejected file can be quickly moved to its
            target subdirectory just by moving the relatively small amount of
            information that points to the file, without having to copy the
            file itself.

    [ ]  9. Make an empty directory (to make it easy to clean up later).

    [ ] 10. Copy FWKCS203.ZIP into that empty directory.

    [ ] 11. Make that your current directory.

    [ ] 12. Do  PKUNZIP FWKCS203.ZIP <enter> (don't delete FWKCS203.ZIP yet).
         (if you will use only GETLOOK, you can go to GETLOOK in step 14)

    [ ] 13. If you have a new copy of an automatic exclusion list, X_ADD.LST,
               copy it into this directory before doing step 14.

    [ ] 14. Read this part carefully, select which procedure you will use, and
               make any required changes in your system configuration;

               If you have already registered FWKCS, copy the registration
               key into the directory as in step 12 and name it REGISTER.KEY
               (it will ask, if you have not done that, and give you an
               opportunity to stop, get the key, and start the program again);

               Then, in the same directory as in step 12, run one of these
               setup programs, and follow the instructions on the screen.
               ("<enter>" means "press the enter key")

               The programs discussed for this step are INSTALL.BAT,
               REPLACE.BAT, QIKSTART.BAT, and GETLOOK.BAT.  Because INSTALL
               has several major options, it is discussed in more detail
               directly below.

        [ ] INSTALL - versatile, for new installation, can search a huge file
                    collection.

                    Before doing a full installation of FWKCS for the first
                    time:

                    [ ] make sure that there is enough free space on the
                        drive where you will put the \CS (Contents_Signature)
                        directory. (see the discussion in step 7, above).

                    [ ] to prevent accidental double_counting of files, go
                        over your system carefully and either (easy way) make
                        sure that there is no case in which the same physical
                        file is reached by two different paths (check all
                        your ASSIGN and SUBST commands), or (and this may be
                        more complicated) make sure that you know of all such
                        cases: if you need to use duplicate paths, see Note 1,
                        below;

                    then, do:

                    [ ] INSTALL <enter>

                    and then follow the instructions on the screen.

                         Note 1: if you need to have extra path(s) to the
                                 same file(s), then later,

                             [ ] when you get to the screen which says "Menu
                                 for Installation" in the upper left corner,
                                 use option 5;

                             [ ] when asked, "Shall I turn S_SETUP.BAT over
                                 to you?", answer Y (for YES);

                             [ ] when S_SETUP is turned over to you for use,
                                 study the screen carefully, and leave out
                                 (or exclude) the extra path(s) when you
                                 specify what to include in (or exclude from)
                                 the search.

                    INSTALL will do preliminary setup steps, bring out the GO
                    installation program, and then start GO.

                    GO is an interactive program. Take your time. Read each
                    screen slowly and carefully. Here are copies of the
                    screens which GO presents, together with explanatory
                    material:

[ ] First screen of GO. Follow the instructions for making a printed record.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 During installation, status reports and advice about on_line help are
 displayed on the console screen. For your convenience, and for use in
 case of trouble, you may wish to make a printed record.

 To make a printed record, first turn your printer on, then
 toggle Ctrl+P or Ctrl+Shft+PrtSc to send screen output to your printer,
 and then

Press any key when ready...  (this line can vary on different systems)


 FWKCS(TM) Contents_Signature System, Version 2.03.
 Printed record of GO installation procedure:
-------------------------------------------------------------------------

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


[ ] Second screen of GO. Press F to go forward to next screen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Part of FWKCS(TM) Contents_Signature System, Version 2.03.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.

Your use of the FWKCS(TM) Contents_Signature System is at solely your own
risk.  For safety, please have proper backups of your files.

GO.BAT to install the FWKCS(TM) Contents_Signature System, Version 2.03.

Note: for a first_time installation, this procedure normally takes time to do
  automatic searching. For example, for a 32 Megabyte hard disk on an IBM PC,
  or for a 1.2 Gigabyte hard disk with an Intel 486/33, storing mostly
  zipfiles, the total installation time is typically less than half an hour.

GO.BAT is for use when called by INSTALL.BAT, or when called directly in
the same directory with FWKCS203.EXE, or FWKCS.203 and FWKCS_TM.203.

Usage, direct mode:    GO "<enter>"


To go forward (next screen), press F.

To abort (quit), press A.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ ] Third screen of GO. Press F to go forward to next screen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

FWKCS(TM) Version 2.03, for use under DOS 3.30 or later, or in a suitable DOS
 session under a multitasking system (including IBM's OS/2 2.0 or later).

Minimum system memory: For running various virus testing programs, allow as
  much DOS memory as you can. FWKCS itself requires 163568 bytes of memory to
  load. Future needs of external programs may vary.
Under OS/2, run FWKCS in a DOS session with the standard default DOS settings.
In the FWKCSC/FWKCS client/host configuration, client while running needs only
  32640 bytes of memory; any external programs are run on the host processor.

Be sure that you have available on your PATH:
     DOS ATTRIB; and a version of QBASIC, GWBASIC, BASICA, or BASIC,
        suitable for use on your system.
To exploit FWKCS options, also have on your PATH:
 *   Phil Katz's PKZIP(R) and PKUNZIP(R), Version 2.04g.
 *   Vernon Buerg's LIST program, a recent version.
 *   A current version of one or more of these: SCAN, F-PROT, Thunderbyte.
     DOS MORE (normally provided in DOS system or DOS session)
(* shareware programs; please register)

(If your system fragments large files, preferably include a file
 defragmentation program, for example, Peter Norton's Speed Disk.)

 B = go Back 1 screen.  F = go Forward 1 screen.  A = Abort (quit).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


[ ] Fourth screen of GO.  The "Menu for Installation" screen is part of GO.
    Detailed explanations appear below.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Menu for Installation - FWKCS(TM) Contents_Signature System, Version 2.03.
~~~~~~~~~~~~~~~~~~~~~
Note: Options 1-5 must have creation rights to make their subdirectories.
Allow at least 5 Megabytes + 8%% of total filelengths, of free workspace.
Options 1,2,3,6,0 execute immediately. Options 4,5 (with *) explain further.

For single user, no bulletin board, any/all drives C:-Z:, installation on C:,
with no overlapping paths (won't reach the same physical file by two paths):
   1. including only zipfiles, with extension .Z*.
   2. including only zipfiles, any or no extension, self_extracting or not.
   3. including all accessible non_directory files.
For more detailed control of installation, including bulletin board use,
multiple local users, selected drives, specific file extensions, string
searches, choice of only zipfiles or of all non_directory files, etc.:
 * 4. searches any drives C:-Z:, limited .ext choice, no string searches.
 * 5. flexible: selected drives A:-Z:, selected .ext's, string searches;
      can replace Ver. 1.12 or later; can keep old CSLISTs or start empty;
      can configure for client/host operation.
6. get REGISTER.DOC, REGISTER.FRM, README.1ST, and README.TXT to read first.
0. unpack the FWKCS(TM) Contents_Signature System into the current
   directory, without installation. This is used in special cases.

To choose option 0...6, press the corresponding numeric key.
 B = go Back 1 screen.  A = Abort (quit).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Explanations of Options 0...6:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Option
~~~~~~
     0. (listed last in menu) is for unzipping the package without doing any
        installation. For example, if you have installed FWKCS, and have an
        accident which damages one or more of the FWKCS programs, you can
        unpack the whole package into a temporary subdirectory using option 0
        on the menu, copy out a replacement for the damaged file, delete all
        the files in the temporary directory, and remove the directory.

     1. install the \cs and \csa directories on drive C:, search any and all
        drives C: - Z: on the system, searching only for zipfiles which have
        an extension of .Z*, such as .ZIP, .Z01, .Z, etc. Files which have an
        extension of .Z*, but are not zipfiles, are skipped. This system
        search is also able to find zipfiles which have their hidden and
        system attribute flags set.  This option executes when you press the
        1 key.

Example:  Suppose you wish to install FWKCS on your C: drive, and suppose you
          wish to include the contents_signatures for the new version of
          FWKCS and only zipfiles on your system having file extension .Z* .

          In that case, you would type

              install <enter>,
              follow the instructions on the screen,
              when you reach the "Menu for Installation", choose option '1'.

          The rest of the installation is automatic.

     2. install the \cs and \csa directories on drive C:, search any and all
        drives C: - Z: on the system, searching only for zipfiles, any or no
        extension, self_extracting or not. This system search is able to find
        files which have zipfile structure, even if they have their hidden
        and system attribute flags set. This option executes when you press
        the 2 key.

     3. install the \cs and \csa directories on drive C:, search any and all
        drives C: - Z: on the system, searching for any and all accessible
        non_directory files, that is, files which are not themselves
        subdirectories (a subdirectory is actually a file which contains
        directory information about the files "in" the subdirectory, but
        files which are being used in that way are not included in this
        search).

        If this search finds a .GIF file, with or without a .GIF file
        extension, if will check to see if the .GIF file has a spurious tail
        attached after the end of the working file itself (for example, some
        communications protocols pad the end of the file to bring it up to
        their packet size). If it finds such a spurious tail, it will try to
        remove that material from the end of the file. If it is not allowed
        to remove that apparently spurious material (for example, the file
        may have its attribute set to read_only, or may be located on a
        CDROM, etc), then FWKCS will ignore that apparently spurios material
        when it generates the contents_signature for that file.

        This system search is able to find files, even if they have their
        hidden and system attribute flags set. If you are installing FWKCS on
        a system which is keeping one or more files open (e.g., for system
        use) and inaccessible, this option 3 installation process will pause
        when it tries to read such a file, then display an error message (and
        save a copy in FWKCS.ERR), and then continue working. This option
        executes when you press the 3 key.

     4. searches any and all drives C:-Z:, limited .ext choice, no string
        searches.  Option 4 displays the screen for the program 2_SETUP.BAT,
        and asks you if you wish to use that program. 2_SETUP.BAT allows you
        to install the \CS directory and the \CSA directory on the same, or
        on different, drives, which can be any drives on your system. Along
        with that additional ability, it allows you to choose from the same
        kinds of searches as are offered in options 1, 2, and 3,
        respectively, as described above.

        If you press N ("no"), you are returned to the installation menu; if
        you press Y ("yes"), you are returned to the command line, with
        2_SETUP.BAT's screen still displayed on the screen. (a copy of that
        screen is provided below, with explanation)

     5. this is the most flexible of the installation options; and with the
        larger range of choices comes the need for more input from the user
        (explained in detail, below):

        you can search on selected drives A:-Z:, look for selected file
        extensions, do string searches for which paths and/or files are to be
        included and for which ones are to be excluded (this is very
        powerful);

        you can replace FWKCS Ver. 1.12 or later;

        you can keep old CSLISTs or start with empty new ones;

        you can configure for client/host operation.

        Option 5 displays the screen for the program S_SETUP.BAT, and asks
        you if you wish to use that program.  If you press N ("no"), you are
        returned to the installation menu; if you press Y ("yes"), you are
        returned to the command line, with S_SETUP.BAT's screen still
        displayed on the screen. (a copy of that screen is provided, below,
        with a detailed explanation of the inputs needed from the user)

     6. this unpacks new copies of REGISTER.DOC, REGISTER.FRM, README.1ST,
        and README.TXT, e.g., in case the package has been damaged and one or
        more of those four files has been altered.

Screens and Examples for options 4 and 5:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Option 4:
~~~~~~~~~
If you choose option 4, this screen is displayed:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Part of FWKCS(TM) Contents_Signature System, Version 2.03.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.

2_SETUP.BAT to install the FWKCS(TM) Contents_Signature System,
            searching for non_directory files,
            on a system with no overlapping paths, any drive(s) C:-Z:.
            (Note: this does not install options g and z.
             See README.TXT and FWKCS203.REF.)
                                       (2_SETUP.BAT is used after GO.BAT.)
Usage:  2_SETUP d n D  "<enter>"

d  without ":" is drive for the \CS Contents_Signature subdirectory.

n = 1 include only zipfiles with extension .Z*.
    2 include only zipfiles, any or no extension, self_extracting or not.
    3 include all accessible non_directory files; strip GIF tail, keep date.

D  without ":" is drive for the \CSA Contents_Signature Activity place.
Shall I turn 2_SETUP.BAT over to you?  (Y/N)    A = Abort.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you press Y, you are shown the following additional line, and then
returned to the command line:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for online help, type  2_SETUP /*  and then press the enter key.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you have to make any changes in your system before proceeding, you can
take a break at this point, come back later, and type  2_SETUP /* <enter>
to put the help material back on the screen where you can see it while you
key in your command_line entries.

Examples: Suppose you wished to install the system on your J: drive, and
          include only zipfiles which had an extension of .Z* . In that case,
          you could use this command line:

               2_SETUP j 1 j <enter>

            (the rest of the installation is automatic)

          Suppose you wished to install the \CS directory on your H: drive,
          install the \CSA directory on your D: drive, and include all files
          which had zipfile structure, independent of filename.ext. In that
          case, you could use this command line:

               2_SETUP h 2 d <enter>

            (the rest of the installation is automatic)

          In fact, the "Menu for Installation" options 1, 2, and 3 call
          2_SETUP.BAT, and provide it with appropriate command_line inputs.

          -----------------------------------------------------------------

Option 5:
~~~~~~~~~
If you choose option 5, this complex screen is displayed (this is explained
in detail, below); this screen serves to provide "reminder" information, and
should be used in conjunction with the more detailed explanation given
below:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Part of FWKCS(TM) Contents_Signature System, Version 2.03.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.
S_SETUP.BAT to install the FWKCS(TM) Contents_Signature System,
    searching for non_directory files,
    including specified drive(s)(A-Z)  and  file extension(s) or string(s).
    NB: this does not install options g and z. See README.TXT, FWKCS203.REF.

Usage:  S_SETUP d n D N C q r s t v - .Z .GIF :\UP\ x .SYS "<enter>"
        S_SETUP d n D N C q r s t v - : x \DOS\ "<enter>"
        S_SETUP d ! D N C "<enter>" (to replace 1.12 or later, keep CSLISTs)
d  without ":" is drive for the \CS Contents_Signature subdirectory.
n = 1 include only zipfiles, any or no extension, self_extracting or not.
    2 include all accessible non_directory files; strip GIF tail, keep date.
   "!" is literal, for no search (keeps old CSLISTs, else starts new empty).
D  without ":" is drive for the \CSA Contents_Signature Activity place.
N = 0 get default settings from old \CSA\FWKCS, Ver. 1.12 or later.
    1 install default settings for Ver. 2.03 (including new options).
C = 0 process uploads directly;  1 client/host configuration.
q r s t v  indicate single letters for drives to search.
"-" is literal, followed in CAPITAL LETTERS by extensions (with "."), or
     other strings, to include.  N.B.: do not use 2 paths to same file.
":" in " - : " means "all non_directory files" (may include hidden/system).
"x" in lower_case is literal, followed in CAPITAL LETTERS by exclusion list.
Shall I turn S_SETUP.BAT over to you?  (Y/N)    A = Abort.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you press Y, you are shown the following additional line, and then
returned to the command line:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for online help, type  S_SETUP /*  and then press the enter key.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you wish to make any changes in your system before proceeding, or wish to
give careful thought to how you would like to set up the search procedure,
you can take a break at this point, come back later, and type
S_SETUP /* <enter>  to put the help material back on the screen where you can
see it while you key in your command_line entries.

Here is an expanded view of the S_SETUP.BAT screen, with additional
explanation:

     Usage (illustrating different command lines):

             S_SETUP d n D N C q r s t v - .Z .GIF :\UPLOADS\ x .SYS <enter>
         OR
             S_SETUP d n D N C q r s t v - : x \DOS\ <enter>
         OR
             S_SETUP d ! D N C <enter>

           where  d   without ":" is a single letter for the drive on which
                      to put the \cs subdirectory.

                  n = 1 include only zipfiles, with any or no extension,
                        whether self_extracting or not.

                      2 include all accessible non_directory files
                        (this can include hidden and system files).

                    " ! " (literal) is used when you do not want FWKCS to
                        search for files.

                            ! can be used when:

                            installing a new version of FWKCS to replace an
                            existing installation of Version 1.12 or later,
                            while keeping your existing subdirectory
                            structure, CSLIST?.* files, uploads log, and
                            special messages;

                            making a new installation, starting with an empty
                            set of CSLIST.SRT, CSLIST.NDX, CSLIST1.SRT, and
                            CSLIST1.NDX files. (For example, QIKSTART.BAT,
                            discussed below, calls S_SETUP.BAT and passes
                            this command to it.)

                  D   without ":" is drive for the Contents_Signature
                      Activity \CSA place.

                  N = 0 get default settings from old \CSA\FWKCS.COM or
                        \CSA\FWKCS.EXE, Version 1.12 or later. Note that
                        there have been many features added in successive
                        releases of FWKCS since version 1.12, and it can be
                        much easier to save a copy of your old macro
                        screen(s) and install all the new macros (option N=1,
                        below), then -- if changes are needed -- use
                        GET_DFLT.BAT to make PUT_DFLT.BAT, edit PUT_DFLT.BAT
                        as appropriate, and then run PUT_DFLT to install the
                        modified settings.  Always keep backup copies when
                        making changes in the macros in FWKCS.EXE or
                        FWKCSC.COM.

                      1 install default settings for Ver. 2.03 (including new
                        options).

                  C = 0 each node's computer processes each upload directly.

                      1 each node runs the evaluation of uploaded files, the
                        evaluation of files already on a BBS, checking for
                        duplicate files, virus testing, and related functions
                        as a client under an FWKCS host.

                            The client/host configuration is discussed in
                            more detail, below. If you have many slow nodes
                            and a few fast processors, all on the same
                            network; or if most of your fast processors have
                            many nodes on each, and you also have one or more
                            local fast processor(s) on the net which is/are
                            not used for node interface; then you may find it
                            especially convenient to use the client/host
                            configuration to automatically allocate the
                            CPU_intensive screening of uploads to one or more
                            fast processors, to bring the typical
                            upload_testing speed of all the nodes on your
                            network up to nearly the speed of the fastest
                            processors on your network.

                            The client program (FWKCSC.COM) can run in about
                            32 Kb of RAM (1 Kb = 1024 bytes).

                            When running in host mode under a multitasking
                            time_slice system, FWKCS.EXE looks for work
                            posted to the host queue, and returns most of its
                            time slice to the system when it does not have
                            work to do.

           q r s t v  are examples of single letters designating drives to
                      search; all 26 letters a...z can be listed, with spaces
                      in between.

           the " - " is literal, to separate the list of drives from the list
                     of extensions or strings (see next item).

           .Z .GIF :\UPLOADS\ in CAPITAL LETTERS, are examples of file
                     extensions (note the ".") or other strings, for
                     non_directory files (or their paths) which are to be
                     included.

                     For example, specifying .Z has the effect of including
                     files which DOS would find for *.Z* , including
                     searching in all subdirectories, and all hidden or
                     system files.

                     Or, if you wish to include all the non_directory files
                     in each of your :\UPLOADS\ subdirectories on every drive
                     you listed, plus all the non_directory files in all the
                     subdirectories below them, then you could put :\UPLOADS\
                     in the list of extensions or strings.  Note the ":" used
                     in this example:  because a colon appears directly after
                     the drive letter, using it in the string causes the
                     search to look for a string starting in the
                     root_directory position.

                     The string_search feature can be used with any substring
                     which can be found anywhere in a (capitalized)
                     D:\PATH\FILENAME.EXT character_string.

                     To include all non_directory files which have an
                     extension, whatever that extension may be, or which are
                     located on a path which includes a directory name
                     containing a file extension, you could specify a period
                     "." as your only entry after the "-", by using " - ."
                     (without the quotes) as your last entry.  Note that this
                     may include hidden and system files.

                     Note: Under some circumstances, you may find it easier
                           to specify a set of file extension(s) or other
                           search string(s) which results in some
                           d:\path\filename.ext's being included more than
                           once.

                           If each file is reached by only one path (that is,
                              there is not any case where the same physical
                              file is reached via 2 different paths),

                              then, in S_SETUP, FWKCS automatically deletes
                              the extra references.

           ":" in " - : " means "all non_directory files" (may include
                     hidden/system). This is because every
                     D:\PATH\FILENAME.EXT contains a ":".

           "x" in lower_case is literal, followed in CAPITAL LETTERS by an
                     exclusion list. In working with complex systems, it
                     sometimes is simpler to specify which files are to be
                     included if the inclusion list can capture a few
                     filenames which are not wanted, and those are then
                     excluded by naming them in an exclusion list.

                     Examples: " x .SYS " would exclude all files with
                               extension ".SYS", and any path which contained
                               a directory whose name included that ".SYS"
                               extension;

                               In working under OS/2 running on FAT formatted
                               drives, OS/2 has a hidden system file named
                               "EA DATA. SF" in the root directory of each
                               FAT formatted drive, which it holds open.
                               These can all be skipped, by putting  :\EA  in
                               the exclusion list.

                               Most of the OS/2 files are normally installed
                               in a tree structure, comprising \OS2 with
                               subdirectories, and \DESKTOP with
                               subdirectories. OS/2 holds open some of the
                               files in the \OS2 tree, especially OS2.*,
                               OS2SYS.*, and SWAPPER.DAT.  The files in or
                               under the \OS2 directory can be skipped, by
                               putting  :\OS2\  in the exclusion list.

Examples:

5.1.      Suppose you have the following situation:

          you have a bulletin board system, using drives E:, F:, G:, I:, and
          J: for storing zipfiles for your BBS, and suppose you are using a
          directory named :\BBS\ on each drive (plus any subdirectories under
          the :\BBS\ directory) to hold the zipfiles;

          you wish to install FWKCS on your C: drive and include only the
          zipfiles located in all the \BBS\ directories and their various
          respective subdirectories;

          you are installing the system for the first time;

          and you wish to process uploaded files using the same computer that
          is connected to the node on which the uploaded file arrives (rather
          than use the client/host configuration):

          In that case, you would type

              install <enter>,

              follow the instructions on the screen,

              when you reach the "Menu for Installation", choose option '5',

              when the help screen for S_SETUP.BAT comes up, it asks (at the
              bottom)
  "Shall I turn S_SETUP.BAT over to you?  (Y/N)    A = Abort."
              press Y for YES,

              then type

              S_SETUP c 1 c 1 0 e f g i j - :\BBS\ <enter>

                                            (be sure to use ALL CAPITAL
                                            LETTERS in the list of what to
                                            include, in this case  :\BBS\ )

          The rest of the installation is automatic.

5.2.      Suppose you are running under IBM's OS/2, and wish to install FWKCS
          on your J: drive, and suppose you wish to include the
          contents_signatures and options for the new version of FWKCS, and
          include all files on drives E:, F:, G:, and Q:, except files on the
          paths :\OS2\ and :\DESKTOP\, and except for files which start with
          :\EA ; using each node's local computer to process newly uploaded
          files.

          In that case, you would type

              install <enter>,
              follow the instructions on the screen,
              when you reach the "Menu for Installation", choose option '5',
              when you are asked
   "Shall I turn S_SETUP.BAT over to you?  (Y/N)    A = Abort."
              press Y for YES,
              then type

              S_SETUP j 2 j 1 0 e f g q - : x :\OS2\ :\DESKTOP\ :\EA <enter>

                   Notes: the " - : " is literal: a colon ":" appears in
                          every path, so putting a ":" as the inclusion entry
                          tells S_SETUP to include every file on the system;

                          this is followed by lower case " x " to mark the
                          beginning of the exclusion list;  after the " x ",
                          every letter used in that exclusion list must be in
                          UPPER CASE.

          The rest of the installation is automatic.


                    After the automatic installation has finished running,
                    the printed record will tell you how and where to get
                    on_line help.

                    On a large system, this automatic procedure can take
                    hours to run. If you are using drives which have slow
                    access to files, it can take many hours.

                    After running INSTALL, go to step 15.

        [ ] REPLACE - for quickly replacing a working FWKCS system, version
                    1.12 or later; does not search your file collection.  If
                    you are not running a recent version of FWKCS, it can be
                    easier to copy your old version of FWKCS.EXE or FWKCS.COM
                    to FWKCSOLD.*, tell REPLACE to install the new options on
                    FWKCS.EXE, and later use GET_DFLT to tailor the settings
                    using your old version's /d and /d! screens for
                    suggestions.

                    To use REPLACE, do

                    [ ] REPLACE <enter>

                    and then follow the instructions on the screen.

This is the main instruction screen from REPLACE:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Part of FWKCS(TM) Contents_Signature System, Version 2.03.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.

Your use of the FWKCS(TM) Contents_Signature System is at solely your own
risk. For safety, please have proper backups of your files.

REPLACE.BAT to replace a working FWKCS(TM) system, Ver. 1.12 or later;
   for use in same directory with FWKCS203.ZIP, FWKCS.203, and FWKCS_TM.203.
To proceed, have QBASIC, GWBASIC, BASICA, or BASIC available on your path, as
     appropriate for your operating system;
 have a working copy of FWKCS in \CSA, containing your macros, paths, etc..
     (If you are installing FWKCS(TM) for the first time, use INSTALL.BAT.)
                                                              ~~~~~~~~~~~
 Usage:   REPLACE d D N C "<enter>"
 where  d  without ":" is the drive for the \CS directory
        D  without ":" is the drive for the \CSA directory
        N = 0 get default settings from old \CSA\FWKCS, Ver. 1.12 or later.
            1 install default settings for Ver. 2.03 (including new options).
        C = 0 process uploads directly; 1 run as client under FWKCS host.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           where  d   without ":" is a single letter for the drive on which
                      to put the \cs subdirectory.

                  D   without ":" is a single letter for the drive for the
                      Contents_Signature Activity \CSA place; REPLACE looks
                      here for a copy of FWKCS.COM or FWKCS.EXE.

                  N = 0 get default settings from old \CSA\FWKCS.COM or
                        \CSA\FWKCS.EXE, Version 1.12 or later. Note that
                        there have been many features added in successive
                        releases of FWKCS since version 1.12, and it can be
                        much easier to save a copy of your old macro
                        screen(s) and install all the new macros (option N=1,
                        below), then -- if changes are needed -- use
                        GET_DFLT.BAT to make PUT_DFLT.BAT, edit PUT_DFLT.BAT
                        as appropriate, and then run PUT_DFLT to install the
                        modified settings.  Always keep backup copies when
                        making changes in the macros in FWKCS.EXE or
                        FWKCSC.COM.

                      1 install default settings for Ver. 2.03 (including new
                        options).

                  C = 0 each node's computer processes each upload directly.

                      1 each node runs the evaluation of uploaded files, the
                        evaluation of files already on a BBS, checking for
                        duplicate files, virus testing, and related functions
                        as a client under an FWKCS host.

                        (see also discussion of C options under S_SETUP,
                        above)

                    (REPLACE.BAT does preliminary checks, calls S_SETUP.BAT
                    with commands tailored for this installation)

                    After running REPLACE, if you do not have a registration
                    key, be sure to see step 29 and to do step 30.  You might
                    find the rest of this checklist interesting: in
                    successive versions since 1.12, many new features have
                    been added.  This checklist provides a guided tour of
                    selected features, and a system maintenance list.

        [ ] QIKSTART - quick, does not search your file collection; this
                    provides a convenient way to see the FWKCS system
                    structure, programs, and literature.

                    To use QIKSTART, do

                    [ ] QIKSTART <enter>

                    and then follow the instructions on the screen.

The QIKSTART screen:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Part of FWKCS(TM) Contents_Signature System, Version 2.03.
(C)Copyright Frederick W. Kantor 1989, 1995. All rights reserved.
     Your use of the FWKCS(TM) Contents_Signature System is at solely your
        own risk. For safety, please have proper backups of your files.

QIKSTART.BAT to set up the FWKCS(TM) Contents_Signature System, Ver. 2.03;
  for use in same directory with FWKCS203.ZIP, FWKCS.203, and FWKCS_TM.203.
  QIKSTART does not search your file collection (see README.TXT).
  Disk space: allow 5 Meg. setup, ca 1.8 Meg. static files, starting empty.
  For full installation with search of your file collection, use INSTALL.BAT.
(More information provided as FWKCS.203 package is opened; see README.TXT.)

             If you are replacing FWKCS Ver. 1.12 or later, use REPLACE.BAT.
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Usage:   QIKSTART d D "<enter>"
          QIKSTART d D c "<enter>"

 where  d  without ":" is the drive for the \CS directory
        D  without ":" is the drive for the \CSA directory
        c  capture contents_signatures re FWKCS203.ZIP (recommended).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                    After running QIKSTART, go to step 15.

        [ ] GETLOOK  - only brings out programs and literature re remote
                    Lookup etc, and files which may be called by FWKCS.EXE.

                    To use GETLOOK, do

                    [ ] GETLOOK <enter>

                    and then follow the instructions on the screen.

                    After running GETLOOK, you can delete these files in the
                    temporary directory:
                    [ ] FWKCS203.ZIP
                    [ ] FILE_ID.DIZ
                    [ ] WHATSNEW.TXT
                    [ ] INSTALL.BAT
                    [ ] REPLACE.BAT
                    [ ] QIKSTART.BAT
                    [ ] GETLOOK.BAT
                    [ ] FWKCS.203
                    [ ] FWKCS_TM.203

                    If you are very tight on space, and will not want to use
                    the main reference, you can also delete FWKCS203.REF.
                    But, before you do that, try this:  FWKCS /** <enter>.

                    After deleting unwanted files, copy or move the remaining
                    files to a directory already on your path, and empty and
                    remove the temporary directory.

                    Then, go to step 28.

    [ ] 15. When the setup program finishes running, you should be in your
               \CSA Contents_Signature Activity place (a directory with 21
               subdirectories); and there should be a "welcome" screen. If
               that came out OK, then
           [ ] Empty and remove the directory made in step 9.
           [ ] Copy all the virus detection programs you wish to use into
               the \CSA\VIRTEST directory, so that FWKVTBAT.BAT can run
               them. If they are not listed in FWKVTBAT.BAT in your \CSA,
               instructions and examples are included in FWKVTBAT.BAT to
               help you edit it and add them (remember to do
               ATTRIB FWKVTBAT.BAT -r before you edit it, and
               ATTRIB FWKVTBAT.BAT +r after you have finished editing it).

     If you ran INSTALL, and did a fresh installation with a system search
     to build your data base; or if you ran REPLACE, and replaced a working
     version of FWKCS which already has its data base:

          you can take advantage of the anti-piracy resource material
          provided separately in FWKCXnnn.ZIP.

          It comes with a short instruction file / check list.

          XCLEANUP.BAT and FLAG_REV.BAT are used for that purpose. They
          are located in your \CS directory.

                       For direct on_line help, do  FLAG_REV /* <enter>,
                                                    XCLEANUP /* <enter>,
                       or use CSM in your \CS directory.


----------------------------------------------------------------------------
Here is some additional explanatory material which you may want to use, in
installing or maintaining the system -- you might start using it at this
stage of the installation procedure, or wait until later. I suggest that you
scan it now, and come back to it later:

           There are many useful options. The above setup procedures have set
           up a place for you to work with them, and installed them in FWKCS
           so that they refer to that place.  This configuration is for
           multiple concurrent operations, including single or multiple local
           users and multi_node bulletin board systems.

           The options are installed via "macro"s, loaded into FWKCS itself,
           after which they are available from the command line. This is
           explained in FWKCS203.REF. The macros can be displayed, as part of
           the user_settable defaults, by typing  FWKCS /d <enter>  and
           FWKCS /d! <enter>.

           The program CSAMACS.BAT was used for setting up a work area
           for use with a multinode BBS. It is called autoimatically during
           the setup procedures, or can be called while in the \CS directory:

                     CSAMACS d N <enter>
              or
                     CSAMACS d N c <enter>

           where  d  without a ":" is a single letter for the drive
                     on which to install the Contents_Signature
                     Activity \CSA place.

                  N = 0 get default settings from old \CSA\FWKCS.COM, or
                        .EXE, Version 1.12 or later.

                      1 install default settings for Ver. 2.03 (including new
                        options).

                  c  create special copy of PCBTEST.BAT to run as FWKCS
                     client.

           CSAMACS sets up the \CSA Contents_Signature Activity subdirectory
           with 21 additional subdirectories under it, prepares it as a work
           place, and moves to there.  Once you get there (and have perhaps
           had a chance to look at LOOKUP.DOC, FWKCTEST.BAT, and
           FWKCHTST.BAT), do a DIR listing to see what's there.

           Then type FWKCS /d <enter>, and then FWKCS /d! <enter>, to see the
           new macros, and refer to FWKCS203.REF for what these macros and
           options are able to do.

           For safety, the automatic installation procedure write_protects
           all the initial files in the \CSA Contents_Signature Activity
           place. To make any changes in the entries on the FWKCS.EXE /d and
           /d! screens, you will need to unprotect FWKCS.EXE.  To do this,
           type

                     attrib -r fwkcs.exe <enter>

           Then, set paths for items 5-8 on the /d screen, so that FWKCS can
           reach those programs more efficiently. Otherwise, it has to search
           the path for those programs which are not in its default
           directory. If you look at item 9 on the FWKCS /d screen, you will
           see that the path for the uploads log has been set to create or
           add to FWKUPLD.LOG in the d:\CSA subdirectory.

           If you wish to keep your upload log in a different place, or use a
           different name for it, you can set it in item 9 on the /d screen,
           by typing

                     fwkcs d:\path\filename.ext /d9 <enter>

           If you do not use a d:\path for the uploads log, then each node
           writes separately to an uploads log in its default directory.

           Errors are logged to FWKCS.ERR in the default directory, to help
           keep track of where a problem occurred, and optionally also to a
           central file. As part of routine maintenance, you can do a
           system_wide search on your equipment for any FWKCS.ERR file which
           may have been created there; a central error log can be used to
           notify you when such a system_wide search would be appropriate.

           After you have set the paths, you can protect your configuration
           by setting the attribute of FWKCS.EXE to read_only (shareable
           read_only). To do that, type

                     attrib +r fwkcs.exe <enter>

           If you protect FWKCS.EXE in this way, remember to unprotect it
           (ATTRIB -r) before you try to change any entry on the /d or /d!
           screen.  Otherwise, you will get an error message saying that
           access was denied.

           For local BBS work, you can create a configuration file to use
           instead of the macros used for BBS operation, by running

               fwkcs [uvwxyzcdefgh] [-localmac] <enter>

           and then use a word processor (with the wordwrap OFF) to edit
           LOCALMAC -- for example, you can include /a5 or /a6, or other(s),
           in LOCALMAC, so that you do not have to make the entry each time.
           Then, you can include this modified LOCALMAC in your command line,
           this way:

               fwkcs (whatever goes here) [+localmac] (whatever else)

           the  [+file]  appearing in the command line tells FWKCS to read
           the file as part of the command line, inserting it at that
           location in the surrounding material. The file can have full
           d:\path\filename.ext. See FWKCS203.REF.

           Make the copy of FWKCS.EXE which is in your \csa subdirectory
           available on your path, by adding d:\csa, where d is its drive, to
           your path.

     >>--> Use only one source copy for all the copies of FWKCS.EXE on your
           path. If you have multiple servers with a copy of FWKCS.EXE on
           each, make them all from the working copy of FWKCS.EXE which has
           had its defaults and macros loaded. (If you have run 2_SETUP or
           S_SETUP (which run CSAMACS), or have run CSAMACS directly, that
           working copy of FWKCS.EXE is in your \csa subdirectory, and a
           write_protected backup copy is in your \cs subdirectory.)

           These setup procedures leave copies of FWKCS.EXE and FWKDG.COM
           behind in the \cs directory. The \csa area contains files which
           you can experiment on, and material to read while you do this. If
           you destroy some of the FWKCS files, you can go to step 9, above,
           run INSTALL, and choose option 0 on the Menu for Installation,
           copy the missing files, delete the rest of the files in the
           temporary directory, and remove the empty temporary directory.

           I suggest you look at the discussion re removing duplicate files,
           in this section, below. It is something you may well want to
           pursue, at your convenience. For future reference, I suggest that
           you look at section 5, on revising the four CSLIST*.* files. You
           may also wish to look at the discussion in section 6, below, on
           customizing messages to users.

           Note to Sysops:

           The macros installed by CSAMACS do not include the important &g
           option.  To add this option, type

                     ADD_G <enter>

           On completion, this displays the FWKCS /d! screen. The addition is
           made to the right end of macro [y], where it should appear in
           capitalized form.

           The operating version of PCBTEST.BAT provided in your \CSA
           Contents_Signature Activity subdirectory by CSAMACS supports this
           function.  It is a single line,

                         FWKCS %1 %2 %3 /t20a5[uvwxyzcdef]

           During testing, this preserves the AV status and internal
           structure of the uploaded file. It is able to run virus testing on
           all the files in a zipfile which contains a full DOS tree of
           subdirectories, while using only one subdirectory per node as a
           work area.  See FWKCS203.REF.

           If you wish to restrict your BBS to accept only zipfiles, you can
           accomplish this by adding the z option to the macros used by FWKCS
           in performing BBS activities. To do this, type

                     ADD_Z_56 <enter>

           On completion, this displays the FWKCS /d screen. The addition is
           made to the left end of macro [d], where it should appear in
           capitalized form.

           Separately, you can set the macro used with /a3 and /a4 to accept
           only zipfiles, by typing

                     ADD_Z_34 <enter>

           On completion, this displays the FWKCS /d screen. The z option is
           added to the left end of macro [b], where it should appear in
           capitalized form.  With just that addition of z, the programs
           ACCESION and ACCESZIP will rename non_zip files ".NZ".

                   Notes:  Option s suppresses renaming under /a3 and /a4.

                           The right end of macro [b] has been left as  V  so
                           that -- if the version of SCAN which you are
                           running accepts an external data file at run_time
                           -- you can easily add an external virus_data_file
                           d:\path\virdata to ACCESION.BAT and ACCESZIP.BAT.
                           To do this, use a word processor to make the
                           following insertion in each of the two .BAT
                           programs, using a contiguous string of characters
                           with no blank space between the "]" and the
                           semicolon ";" :

                           ACCESION.BAT:

                              change   FWKCS %1 /t60a3[uvwxb]

                              to       FWKCS %1 /t60a3[uvwxb],d:\path\virdata;

                           ACCESZIP.BAT:

                              change   FWKCS %1 /t60a4[uvwxb]

                              to       FWKCS %1 /t60a4[uvwxb],d:\path\virdata;

                           See FWKCS203.REF, /a3 and /a4, option v.

           Option !N is a bit_mapped option for deferred disposition of files
           rejected because of zip in zip or because their AV_stamp was
           banned, obsolete, or deficient. See discussion under Auxiliary
           Function 5 in FWKCS203.REF. To add !3, you can make \CSA your
           current directory, and then do

                     ATTRIB -r FWKCS.EXE
                     ADD_!3
                     ATTRIB +r FWKCS.EXE

           to add !3 to the left end of macro [d] for use under Auxiliary
           Functions 5, 6.


       Split Testing
       ~~~~~~~~~~~~~

           Faster modems are coming into wider use, and various test
           procedures, such as virus_testing and test for file integrity, can
           present an unwelcome waiting time for a user who is, for example,
           calling long distance. Two programs are provided to handle this in
           the FWKCS(TM) Contents_Signature System, SPLITEST.BAT and
           DO_BLOG.BAT, together with assembly_language code in FWKCS.EXE.

           SPLITEST replaces FWKCS macros [f], [g], and [h], to split the
           test into a quick part, done and reported to the user while the
           user is waiting, and a slower part, which can be done later by the
           same processor -- or can be done by another processor on a network
           or as another task on a multitasking system, while the user goes
           on to something else.

           You are asked to provide a search list, d:\CSA\SRCH , of the
           places where FWKCS should look to find the backlogged file to
           process further.  This should have one entry per line, flush left,
           of the form  d:\path  for each directory to be searched.  In order
           to avoid conflict with the BBS operating system, make the first
           directory different from the one into which the file is first
           uploaded, so that the BBS will have time to move the file before
           FWKCS opens the file. A wait_time is provided, during which FWKCS
           will wait for a file to appear in the first directory on the
           search list, *tNNNN.NN (up to 9999.99 seconds). SPLITEST initially
           sets this to 5 seconds (you can use GET_DFLT to make PUT_DFLT.BAT,
           to easily change *t in macro [f].  After waiting for the file at
           the first location, if the file is not yet there, then FWKCS
           searches quickly through subsequent locations on the search list
           until it either finds the file or uses up the list.  If it does
           not find the file at any location on the search list, it looks
           last in its own default directory.

           DO_BLOG processes the backlog produced by the split testing.  It
           can automatically allocate this work to multi_tasking processor(s)
           and to multiple processor(s) on a network, to share the work load.
           When multiple processors are used to process the backlog, each
           should be run in a separate work area, to avoid any conflict in
           the operation of DO_BLOG. If you are using a ##CELLAR below the
           default directory of each node, then each of these separate work
           areas for processing the backlog should also have its own separate
           ##CELLAR below it.

           DO_BLOG keeps two local lists, PASS2.LST and FAIL2.LST, to keep
           track of which files passed the second test and which ones failed;
           and FWKCS puts these entries into two central lists, d:\CSA\PASS2
           and d:\CSA\FAIL2.  In a multitask or multiprocessor environment,
           FWKCS's network queue timing provides protection against conflicts
           in appending these entries to these central lists.

              PASS2.LST contains a one_line note for each file that passed
              further testing; and, if you specified that a final zipfile
              comment be added, a further entry saying that the zipfile
              comment has been replaced. FWKCS does not make a further entry
              in FWKUPLD.LOG when a file passes further testing.

              FAIL2.LST contains a report of the reason why the file was
              rejected, like what would have been presented to the user had
              the file been rejected while the user was waiting, but the part
              of the message created by FWKCS is in plain ASCII (i.e., it
              does not include any special PCBoard @codes).  These reports
              are separated by a horizontal dashed line.  FWKCS makes a
              further entry in FWKUPLD.LOG, noting the time and the reason
              why the file was rejected, etc.

           If FWKCS (called by DO_BLOG) finds that it cannot delete a
           rejected file (e.g., after the file has been copied to its target
           directory), then, as set up by SPLITEST, it creates a DWRN
           deletion_failure_warning file in your \CSA . For example, this
           might happen on a network if someone started to download a file
           before the second part of the testing was completed. You can set
           *dNNNN.NN (up to 9999.99 sec.) to specify how long to keep trying
           before reporting failure. SPLITEST sets this to 5 seconds, to
           avoid excessive delay when only one processor is handling the
           backlog.


       Client/Host Configuration
       ~~~~~~~~~~~~~~~~~~~~~~~~~
           The computation_intensive steps in evaluating an uploaded file
           may add an undesired amount time to processing files on slower
           computers, or in systems which have many nodes under a computer.
           One approach is split testing, discussed above.  It is also
           possible to have each node run as a "client" under one or more
           FWKCS hosts.  For example, the host processors can be Intel 486
           CPU's, while each node might be no more than an 8088.

           FWKCSC.COM is provided for operation as a client. It can fit into
           ca 32 KB of memory.

           Operation in the client/host configuration requires setting up the
           .BAT program called for processing the upload, so that FWKCSC runs
           as a client.  Macros [a] and [b], as installed using the automatic
           installation procedure, contain instructions for operation as a
           client.  (The installation option of specifying whether the node
           is to act directly or in a client/host configuration, provides a
           choice of whether the .BAT program created for use by the node(s)
           is configured for direct action or to act as a client;  in either
           case, installing the new options installs macros [a] and [b].)

             Note: you can make changes using GET_DFLT.BAT to make
                   PUT_DFLT.BAT, and then use a word processor (with wordwrap
                   turned off) to edit PUT_DFLT.BAT. If your word processor
                   can process two files together, you might use it to copy
                   lines for macros from BBCLIENT.BAT or other setup
                   programs, into PUT_DFLT.BAT.

                   (for help re GET_DFLT.BAT, type  GET_DFLT /* <enter>
                   after installation)

           BBCLIENT.BAT (re)installs macros [a],[b] in FWKCSC.COM, and can
           also create a version of PCBTEST.BAT configured to run as a client
           under an FWKCS host.  Because BBCLIENT.BAT is a .BAT program, you
           can look inside it for the exact code used.

           Operation of the host is specified in DO_HOSTQ.BAT. It can be run
           on one or more host processor(s), (each) monitoring the dynamic
           host queue, taking work from it, and delivering the result to the
           respective client.  To avoid conflict, each host should run in its
           own separate subdirectory.  If you have specified the use of a
           ##CELLAR, then each host's work area should be set up with a
           ##CELLAR under it.

           (For more detailed information re using FWKCS in a client/host
           configuration, see FWKCS203.REF; re BBS use, brief notes appear
           under Auxiliary Function 5;  detailed discussion of client/host
           operation appears under Auxiliary Function 8.)


       Doing it in pieces
       ~~~~~~~~~~~~~~~~~~
           It is possible that the above procedures might not meet your exact
           needs -- for example, you might have a mixture of files with the
           same extension in the same subdirectory, but wish to include only
           some of them. There are step by step instructions for a wide
           variety of circumstances, included in this package for your
           convenience. See FWKCS203.REF.

           For example, after running QIKSTART to set up a "skeleton" for the
           FWKCS Contents_Signature System...  The following approach is for
           use in your \CS directory:

           Basically, what you do is make a worklist, which includes
           the d:\path\filename.ext for each file which you wish to
           include. That worklist is a pure ASCII file, which you can
           manipulate using a word processor.  A text_find function is
           provided in FWKCS.EXE, which you can use for selecting or
           excluding material. For example, to include all files listed in
           WORKTEMP which have an extension .Z*, do

               FWKCS /t30a7.8f".Z" < worktemp > worklist

           For a working example, see, for instance, S_SETUP.BAT.

           FWKCS then accepts the worklist as an input, goes out and
           gets the information, and makes a contents_signature list.
           This is then sorted, after which it is indexed.

           The drives for items #1-4 on the FWKCS /d screen are set by
           QIKSTART; or, if you wish, you can run SETDRIVE d <enter> , where
           d without ":" is the drive letter.

           After you have made your WORKLIST (and, if you did not run
           QIKSTART, INSTALL, or REPLACE, set your drive, made your \cs
           subdirectory), and moved into your \cs directory, these lines can
           be used to set up the contents_signature data base for the
           FWKCS(TM) Contents_Signature System, including the step of
           stripping the tail from GIF files (see FWKCS203.REF):

               fwkcs /t30/1cfjpxz worklist cslist
               fwkcs cslist cslist1.srt /t30s
               del cslist
               fwkcs /t30u
               fwkcs /t30v

           (the t30 allows for 30 seconds of network or access delay)
           Those lines strip tails from GIF files, build the master file
           using only unique full lines (in case your worklist contained
           accidental duplicate entries of the exact same
           d:\path\filename.ext), index it, protect it, and start an empty
           quick_update file.  Look to see if you have created a CSLIST.NDX,
           a full CSLIST.SRT, a CSLIST1.NDX, and an empty CSLIST1.SRT.  If
           any are missing, check items 1, 2, 3, and 4 on the FWKCS /d screen
           to make sure that you have pointed them to the right place.


       Removing duplicate zipfiles and plain_files
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                   Note: if you have inserted material into zipfiles, (not
                         zipfile comments, but files put inside) and at
                         different times have made different insertions, then
                         those different inserts can disguise duplicate
                         files. In that case, to use these procedures for
                         recognizing and removing duplicate zipfiles, you
                         will first need to remove the effects of those
                         inserts. To remove the inserts themselves, you can
                         use the TOREJECT procedure, discussed in
                         FWKCS203.REF in connection with removing non_AV
                         files from within AV_zipfiles.  (see FWKCS203.REF,
                         scan for AVONLY , and then read the discussion about
                         collecting each file line you want to reject into
                         TOREJECT.TMP and then running TOREJECT.BAS.  This
                         material is available on_line; you can use CSAM to
                         get the literature for you.)

                         If you have a full set of examples of the inserts
                         you wish to remove, you can put them together in a
                         single zipfile, e.g., INSERTS.ZIP, and do the
                         following (as a single command line):

                         FWKCS /t30/1 INSERTS.ZIP | FWKCS /t30a7.8v"z" |
                            FWKCS /t30s | FWKCS /t30a7.1w ADLIST.SRT

                         and then use REMOVADS.BAT in your \CS directory to
                         make TOREJECT.BAT. After you inspect TOREJECT.BAT,
                         then, solely at your own risk, you can run it to
                         remove the inserts. Please make backups before you
                         run this automatic removal. After removing those
                         inserts, rebuild your CSLIST.SRT and CSLIST.NDX,
                         using the automatic procedures provided in your
                         \CS directory (while in \CS, do  CSM <enter>  for
                         help).

                         If inserts which you made in the past now pose a
                         large_scale problem re finding and deleting
                         duplicates on your system, it is suggested that
                         you contact the author for assistance.

           After you have made CSLIST.SRT, there are some simple steps for
           finding duplicate files. Working in your \cs subdirectory, run

                 csdups <enter>

           After it finishes running, it will advise you that these files
           have been created:

             ZCS_DUPS  list of groups of zipfiles with matching
                       zipfile_contents_signature(s) (zcs).

             ZCS_DUPS.RPT report tabulating zcs grouping.

             FCS_DUPS  list of groups of non_zip files with matching
                       file_contents_signature(s) (fcs).

             FCS_DUPS.RPT report tabulating fcs grouping.

             ICS_DUPS  list of groups of files which are contained in
                       zipfiles, with matching contents_signature(s)
                       (internal_cs (ics)).

             ICS_DUPS.RPT report tabulating ics grouping.

             FICSDUPS  list of groups of plain files and files in
                       zipfiles, with matching contents_signature(s)
                       (file_cs + internal_cs (fics)).

             FICSDUPS.RPT report tabulating fics groupings.

             UNAVINAV.LST list of non_AV files found in AV_zipfiles.

           You can take any of those DUPS files listing groups of apparently
           duplicate files, rename it MULTIS, and skip to 15.2, below.

           If you wish to split entries in CSLIST.SRT into separate lists of
           contents_signatures, you could run

                 cs_split <enter>

           After it finishes running, it will advise you that these files
           have been created:

             ZCS_LIST.SRT  list of zipfile_contents_signature(s) (zcs) for
                           zipfiles.

             FCS_LIST.SRT  list of file_contents_signature(s) (fcs) for
                           non_zip files.

             ICS_LIST.SRT  list of contents_signature(s) (internal_cs (ics))
                           for files which are contained in zipfiles.

             FICSLIST.SRT  list of contents_signature(s) (file_cs +
                           internal_cs (fics)) for plain files and files in
                           zipfiles.

           If you wish to do both the analysis and the split, you can run
           CSFILKIT <enter>, which does both in one pass, and takes less time
           than the total for running both CSDUPS and CS_SPLIT separately.

     15.1  If you wish, rather than using CSDUPS, CS_SPLIT, and/or
           CSFILKIT, you can use the FWKCS text_find function to select
           material to process.  For example, to find duplicate
           zipfiles, do this:

              FWKCS /t30a7.8f"z" < cslist.srt | fwkcs /t30/1sm > multis

     15.2  MULTIS produced in step 15.1, above, and the ZCS_DUPS files
           produced by CSDUPS and CSFILKIT, show groups of zipfiles which
           have the same zipfile_contents_signature ("zcs"). For an
           explanation of zcs's, see FWKCS203.REF.

           The command line in 15.1 also creates a file called MULTCNT.RPT,
           which shows a multiplicity count -- how many groups there were,
           for each size of group (how many times were there two zipfiles
           with the same zcs, how many times were there three with the same
           zcs, and so on). This corresponds to the ZCS_DUPS.RPT produced by
           CSDUPS and CSFILKIT.

           Then, using a word processor, you can overwrite a lower_case "d"
           into column 17 of each line that contains a file you wish to
           delete. Be careful to leave that "d" out of one line in each
           group. For example,

        column 17
                |
----------------------------------------------------------------
014FF56D   158AC LAWN2.ZIP     z   cs      J:\PQRS
014FF56D   158ACdLAWN200.ZIP   z   cs      M:\PQRS
----------------------------------------------------------------
0249E9AB    486D EQIPVIEW.ZIP  z   cs      H:\PQRS
0249E9AB    486DdVIS.ZIP       z   cs      K:\PQRS

    >>-->  If there is a possibility that you may have changed the mapping of
           your drive(s), please be sure that they have the same mapping they
           had when you made CSLIST.SRT, before you carry out the next step.

           If it has a different name, rename the annotated file MULTIS.
           Then, at solely your own risk, you can run

              qbasic /run fwkc17d <enter>   (or use whichever version of
                                             BASIC is appropriate for your
                                             system)

           to delete all the files in the marked lines in MULTIS, and compile
           a log (DELETED.LOG) of the deleted files. Note that FWKC17D
           deletes whole zipfiles, and does not selectively remove files from
           within zipfiles. (For an example of selectively removing files
           from within zipfiles, see /1 option x, with discussion, in
           FWKCS203.REF.)

           Next, if your system has both zipfiles and plain files (e.g., .GIF
           files), you can do another search for plain files which are
           duplicates of other plain files, or which are duplicates of files
           which appear inside zipfiles.

           (If you wish to save your MULTCNT.RPT, do so before it gets
           overwritten in the next example. If you got here by running CSDUPS
           or CSFILKIT, the .RPT files were already given different names and
           saved.)

           If you did not use CSDUPS or CSFILKIT, you can find this form of
           duplication, by doing this:

              FWKCS /t30a7.8v"z" < cslist.srt | fwkcs /t30/1sm > multis

           This makes a new MULTIS and a new MULTCNT.RPT, which correspond to
           FICSDUPS and FICSDUPS.RPT produced by CSDUPS and CSFILKIT.  If you
           have removed duplicate zipfiles as a result of the zcs matchings
           (keeping one out of each matching set), and have not yet made a
           new CSLIST.SRT, then apparent matches found between files inside
           different zipfiles may no longer be relevant.

           But, matches found between non_zip files, or between non_zip files
           and files which appear inside zipfiles, still provide a correct
           basis for deciding to remove various of those non_zip files (the
           ones which have "f cs" in their line).

           So, you can use the same technique described above, but this time
           for removing selected ones of those non_zip files.

           After you do that, you should probably make a new CSLIST.SRT.

           To help you make a new CSLIST.SRT, you can choose one of these
           two:

                 NEWCSL n <enter>

                        n = 1 include only zipfiles with extension .Z*.

                            2 include only zipfiles, with any or no
                              extension, whether self_extracting or not.

                            3 include all accessible non_directory files
                              (this can include hidden and system
                              files).

                 to create all four cslist*.* files,
                 on a system with non_overlapping paths,
                 searching drives c: - z:,

             OR
             ~~

                 S_NEWCSL N q r s t v - .Z .GIF :\UP\ x .SYS "<enter>"
                 S_NEWCSL N q r s t v - : x \DOS\ "<enter>"

                   N = 1 include only zipfiles, with any or no extension,
                         whether self_extracting or not.

                       2 include all accessible non_directory files (this can
                         include hidden and system files).

                 q r s t v  are examples of single letters designating drives
                            to search.

                 the " - " is literal, to separate the list of drives from
                           the list of extensions or strings.

                 .Z .GIF :\UP\ in CAPITAL LETTERS, are examples of file
                         extensions with ".", or other strings, to include --
                         do not use more than one path to reach the same
                         physical file.

                         Note: Under some circumstances, you may find it
                               easier to specify a set of file extension(s)
                               or other search string(s) which results in
                               some d:\path\filename.ext's being included
                               more than once.

                            If each file is reached by only one path (that
                               is, there is not any case where the same
                               physical file is reached via 2 paths),

                               then, in S_NEWCSL, FWKCS deletes the extra
                                     references.

                 ":" in " - : " means "all non_directory files" (may include
                         hidden/system).

                 "x" in lower_case is literal, followed in CAPITAL LETTERS by
                         exclusion list.

                         For example, if your system keeps certain files open
                         and does not permit read_only access to them, you
                         can exclude them. If they are all located in a
                         single subdirectory, and you do not wish to include
                         any other files from that subdirectory, you could
                         exclude the whole subdirectory.

                         If you have a multinode bulletin board system, and,
                         for example, each node has its own subdirectory
                         named J:\NODE001 ... J:\NODE060, you might be able
                         to efficiently exclude all of those subdirectories
                         by   x J:\NODE0


                 to create all four cslist*.* files,
                 including specified drive(s) (a: - z:)
                   and files with specified extension(s)
                   and/or strings.

           To use one of these two .BAT programs, first make the \cs
           subdirectory your current (default) directory. Then call the
           program.

           For on_line help, just type the name of either of these two
           programs, then  /*  , and then press <enter>.


       Revising the four CSLIST*.* files
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

           In looking at duplicates, you may have noticed that an ongoing
           series of programs from the same author often includes material
           which has not changed from one release to the next. After the
           author has issued a better version of a program, you may choose to
           remove the old one from your system. But, you don't want to lose
           the ability to recognize the old material if it arrives in a
           different guise.

           There are two .BAT programs included in FWKCS203.ZIP, which
           provide for revising the four CSLIST*.* files. You can choose one
           which matches your initial set_up, or make a change at this time.

               REVCSL.BAT     to revise all four cslist*.* files,
                              on a system with non_overlapping paths,
                              searching drives c: - z:,

                              including only zipfiles with .Z*
                                extension(s),
                              OR
                              including only zipfiles with any or no
                                extension(s), self_extracting or not,
                              OR
                              including all non_directory files (this
                                can include hidden and system files),

                         AND  preserving unique prior contents_signatures,
                              deleting obsolete d:\path specifications.


               S_REVCSL.BAT   to revise all four cslist*.* files,
                              including specified drive(s) (a: - z:)
                                and files with specified extension(s)
                                or strings (can specify inclusion /
                                exclusion),
                              optionally including only zipfiles, any
                                or no extension, self_extracting or not,
                              preserving unique prior contents_signatures,
                              deleting obsolete d:\path specifications.

                              Note: Under some circumstances, you may
                                    find it easier to specify a set of
                                    file extension(s) or other search
                                    string(s) which results in some
                                    d:\path\filename.ext's being
                                    included more than once.

                                 If each file is reached by only one
                                    path (that is, there is not any
                                    case where the same physical file
                                    is reached via 2 paths),

                                    then, in S_REVCSL, FWKCS deletes
                                          the extra references.

           For on_line help, just type the name of either of these two
           programs, then  /*  , and then press <enter>.

    >>-->  To use these programs, you must be in your \cs subdirectory.

           Except as noted, each of these two programs

               consolidates CSLIST1.SRT into CSLIST.SRT,

               searches the system to make a worklist of files to include.

               Note: S_REVCSL performs the additional step of deleting any
                     redundant, exactly duplicate, full lines of
                     d:\path\filename.ext from the worklist. (This can
                     simplify the design of the search, as noted above.)

               searches the system to build a new CSLIST,

               searches the prior CSLIST for any contents_signature(s) which
                 do not belong to files currently found on the system,

               merges those unique contents_signatures into the new
                 CSLIST.SRT,

               indexes the resulting new, combined CSLIST.SRT,

               protects the new CSLIST.NDX and CSLIST.SRT,

               restarts the quick_update files CSLIST1.SRT and CSLIST1.NDX.

           The prior material is saved without the d:\path pointing to where
           the file was once found, because that data would probably not be
           correct.  Because the ":" is missing from those lines which were
           carried forward in this way, you can collect those lines (and
           omit the x_flagged lines without ":") by using the FWKCS
           text_find:

  FWKCS /t30a7.8v":" < cslist.srt | FWKCS /t30a7.8v"x" > cs_prior.srt  <enter>

           This information is also available to a user, via Lookup.
           (See LOOKUP.DOC)


       Customizing the messages sent from FWKCS to BBS users
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

           Note to Sysops:

           FWKCS accepts message material which you prepare in advance.
           You can use this to create messages in which you can control
           graphics, use personal names via the PCBoard @codes, select
           messages of your own, and/or send information provided by
           FWKCS in a framework of your own design.

           Thought has gone into keeping key parts of the FWKCS
           messages short, partly out of respect for people's time and
           the fact that people may be calling long distance.

           However, over the years, you may have devoted part of your
           efforts to creating a special, personal environment which
           you and the users of your board now find pleasant,
           comfortable, and productive. And, you may have specific
           instructions, etc., to add, in order to help people use your
           board.  For at least these reasons, you may wish to
           customize and personalize the messages.

           If this interests you, see FWKCS203.REF, "Customizing
           messages to users:", under auxiliary function /a5, option h.

           A program is included, MSGS.BAT, which makes dummy files for
           all the messages which you can provide. Each of the files
           contains its name. To see which files to put your material
           in, upload a file locally and look at the "message" which
           would be sent to the user (e.g., under PCBoard, PCBPASS.TXT
           or PCBFAIL.TXT).  That "message" will tell you the names of
           the files to use for that case.  You can then remove from
           each such file the line which says which file it is, and put
           in your message (including graphics, PCBoard @codes, etc.).

           A Local Upload Test program is included, LUT.BAT, which you
           can use for locally viewing your messages. The messages
           prepared for local use by FWKCS under option x0 do not
           contain @codes generated under PCBTEST by FWKCS for PCBoard
           use, but will contain any which you have provided in any
           parts used in making the final output.

           When you are installing FWKCS, if you run the automatic
           installation procedures (which run CSAMACS to set up the
           \CSA Contents_Signature Activity place), or if you run
           CSAMACS directly to set up \CSA, you will find a copy of
           MSGS.BAT in the subdirectory \CSA\MSG, where your message
           material goes.

           Before you customize any of the messages, you can run FWKCTEST,
           and see on the screen many kinds of messages to users which FWKCS
           can produce.  During the run of FWKCTEST, these messages are also
           collected in UPLOADS.RPT.  Each message in UPLOADS.RPT also
           contains special notations as to where customizing material of
           yours would appear.  These cases are explained under Auxiliary
           Function 5, option h.

           In designing your messages, please bear in mind that there
           are people who are blind, and who use relatively simple
           computer reading software which may not respond well to
           graphics.  They are welcome and productive members of our
           computer networks.  They, and others, may choose an OFF
           setting for the graphics mode (e.g., on PCBoard).

       Generic interface for use with various bulletin board systems
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           BBSTART.BAT contains notes to help you revise it to fit
           various bulletin board systems. It sets up the environment
           for one node, calls the BBS program, reloads the BBS program
           in the event that it exited with errorlevel 1 or greater, else
           cleans up that node's environment before ending.

           SCANFILE.BAT contains notes for editing it, including how to
           change it for use in a client/host configuration (changes in
           two lines provided; rem one out, and remove the rem from the
           left end of the other). Scanfile accepts a single command_
           line input, which provides the d:\path\filename.ext of the
           file to be tested.

           For detailed information, see the two programs themselves.

           These two programs, together, can be edited in simple ways to
           let a wide variety of bulletin board systems use all three
           FWKCS configurations for testing uploads:  direct testing,
           split testing, and client/host configuration.

           As shipped, the two programs are configured for using FWKCS
           with Mustang Software, Inc.,'s Wildcat.
----------------------------------------------------------------------------

    [ ] 16. If you are running a bulletin board system, check the following
               new programs as appropriate (any prior copies there of these
               programs will have been renamed *.OLD), and make any changes
               needed:

           [ ] If you are running PCBoard, see the new PCBTEST.BAT.
           [ ] If you are running a different bulletin board system, see
                   BBSTART.BAT and SCANFILE.BAT.

    [ ] 17. If you wish to add a contents_signature line to the text file
               description of uploaded files, type  ADD_G /* <enter>  for
               instructions. This signature can be used by other systems
               running FWKCS to avoid downloading duplicate files or packages
               from your board, even though the name may be different.

    [ ] 18. FWKCS provides for the use of prespecified paths for rapidly
               reaching the executable files PKZIP, PKUNZIP, LIST, and SCAN.
               If you wish to tell FWKCS which specific drive:\path\ to use
               for each, here are two ways to do it:

             [ ] Indirect method: use GET_DFLT.BAT. This is the preferred
                                  method for making changes. For
                                  instructions, type GET_DFLT /* <enter>.

                                  You may wish to copy the modified copy of
                                  FWKCS.EXE also to your \CS directory.
                                  Remember to do  ATTRIB -r \CS\FWKCS.EXE
                                  before you overwrite it, and
                                  ATTRIB +r \CS\FWKCS.EXE  afterward to
                                  protect it.

             [ ] Direct method (press the "enter" key after each command
                    line); working in your \CSA directory:

                           attrib fwkcs.exe -r
                           copy fwkcs.exe *.old
                           fwkcs /d

                    That last command brings up a screen displaying a set of
                    internally stored commands. (The d:\path\filename for the
                    copy of FWKCS which you are changing is displayed near
                    the bottom of the screen. This helps avoid changing the
                    wrong copy of the program, especially on a network.) The
                    lines you want to change are 5, 6, 7, and 8. To do this,
                    type in each of the following command lines, putting in
                    the correct drive letter and path in place of the
                    "d:\path\" for each program, respectively, and end each
                    command line by pressing the ENTER key:

                           fwkcs d:\path\pkzip.exe /d5
                           fwkcs d:\path\pkunzip.exe /d6
                           fwkcs d:\path\list.com /d7
                           fwkcs d:\path\scan.exe /d8
                           fwkcs /d

                    That last command brings up the display again.  Look at
                    lines numbered 5, 6, 7, and 8 (each line is labeled at
                    the left edge of the display), and check the entry which
                    appears on the right side of the "=" sign. If there is an
                    error, you can set that entry again (the instructions
                    also appear near the bottom of the screen).  To reset the
                    entry on the right side of the "=" the same as it appears
                    on the left side, use FWKCS /dN <enter> , where N is that
                    line's single digit at the left edge of the display.
                    When you have those four entries the way you want them,
                    do
                           attrib fwkcs.exe +r
                           del fwkcs.old

                    (Screen /d also shows "macros" A-I. There is also a /d!
                    screen, with macros J-Z. All of this is explained in the
                    main reference, FWKCS203.REF, discussed in step 22,
                    below. When you get there, look up "Format 3", "d and d!",
                    and "macros", under "The FWKCS command_line" in the Table
                    of Contents.)

                    You can copy this modified copy of FWKCS.EXE to use in
                    your \CS directory, as described under "Indirect method",
                    above.

    [ ] 19. To make the .BAT, .COM, and .EXE programs in the \CSA directory
               generally available on your system, put  drive:\CSA  on your
               path, replacing "drive" with the letter for the drive the \CSA
               directory is on. But first do a directory listing for *.bat,
               *.com, and *.exe, and see if you may need to change the names
               of programs elsewhere on your system. For unambiguous
               execution, it is usually better to put  drive:\CSA  at the
               beginning of your PATH.

               Note: for safety, do not put the \CS directory on your path,
                     just the \CSA. The \CS directory contains the data base,
                     and contains powerful system maintenance programs,
                     including the ability to revise and rebuild the data
                     base while the system is up and running and handling
                     traffic. (that's done using REVCSL and S_REVCSL, which
                     appear as examples in step 22, below)

    [ ] 20. If this is the first time you have installed FWKCS, and you built
            a contents_signature data base (e.g., you did not use QIKSTART),
            then
              to remove duplicate files,
                  change to your \CS directory,
                  find the README.TXT section in step 15, above, called
                     "Removing duplicate zipfiles and plain_files"
                  read carefully all the way through that section, and
                  follow the instructions given there.

    [ ] 21. Go to your \CS directory and run CHKDSK CSLIST*.* , to see if the
            files are contiguous. If they are fragmented into non_contiguous
            parts, and if your operating system permits defragmentation, then
            run a suitable defragmentation program, e.g., Norton's Speed Disk
            or equivalent.

    [ ] 22. Extensive on_line help is available in these ways; try each of
               them out so that you know how to get help later:
           [ ] go to the \CSA directory, and type  CSAM <enter>. Press D to
               go to the main directory, and explore what it offers.
           [ ] go to the \CS directory, type  CSM <enter>, and explore what
               it offers.
              CSAM and CSM are convenient as reminders of some of the
              programs available, and what they do. You can call programs
              directly for help (CSAM and CSM were doing that):
           [ ] Except for PCBTEST.BAT, every .BAT, .COM, and .EXE program
               automatically installed in setting up the FWKCS system can be
               asked for direct help, by typing the program's NAME /* <enter>.
               This puts the help right on the screen, usually with a "Usage"
               example you can use as a guide while you type in your input.
               For example, in the \CSA Contents_Signature Activity place,
               being careful to use the /* , see:
                  [ ] GET /* <enter>       find other copies of a file
                  [ ] Y /* <enter>         find copies, accession if any new
                  [ ] MSG\MSGS /* <enter>  to customize messages to users
                  [ ] DO_HOSTQ /* <enter>  run as host, do work on queue
                  [ ] DO_BLOG /* <enter>   do backlog in split_test mode
                  [ ] DOZIZ0 /* <enter>    process zip in zip from \CSA\ZIZ
                  [ ] SPLITEST /* <enter>  configure for split test
                  [ ] LOOKUP /* <enter>    for remote lookup
                  [ ] RCROSREF /* <enter>  to get remote cross_references
                  [ ] BANAV /* <enter>     ban a specific AV stamp
                  [ ] LISTAV /* <enter>    enter a specific AV as OK
                  [ ] TESTAV /* <enter>    test status of an AV stamp
                  [ ] WIPE /* <enter>      designate a file for automatic
                                             removal when not protected by AV
                  [ ] EXCLUDE /* <enter>   to block commercial files, etc
                  [ ] FWKVTBAT /* <enter>  called by FWKCS to run virus tests
                  [ ] SETNEWVT /* <enter>  to set up FWKCS to run FWKVTBAT
                  [ ] BBSTART /* <enter>   part of generic BBS interface
                  [ ] SCANFILE /* <enter>  upload testing, generic BBS
                  [ ] LUT /* <enter>       local upload test
                  [ ] FWKHI /* <enter>     hexadecimal etc input for .BATs
                  [ ] FWKDG203 /* <enter>  to make DIRGUIDE.TXT
                  [ ] FWKDG /* <enter>     file collection, time logging, etc
                  [ ] FWKFT /* <enter>     to copy from near tail of big file
                  [ ] FWKQA /* <enter>     to quickly append short file to
                                             long file
                  [ ] CRLF0 /* <enter>     to format text_block files, e.g.,
                                             for sorting giant files.
                  [ ] FWKCS /* <enter> brings up a list of commands for
                      specific help. Try out each one now, or come back to
                      them later. (/** is discussed below.)
                  [ ] FWKCSC /* <enter> brings up a list of commands for
                      specific help re operation as a client under FWKCS.
                  etc;
               under the \CSA is the \CSA\P Process area; do  cd p <enter>,
               and then see
                  [ ] DOEM /* <enter>      annotated template for batch local
                                             uploading (heavy duty local)
                  [ ] ZIZDOEM /* <enter>   annotated template for batch local
                                             uploading of zip in zip from
                                             \CSA\ZIZ (may be used often)
                  [ ] DOZIZ3 /* <enter>    annotated template for revising
                                             file descriptions (relatively
                                             rare)
               and, in the \CS directory, see:
                  [ ] REVCSL /* <enter>    rebuild data base, few options
                  [ ] S_REVCSL /* <enter>  rebuild data base, many options
                  [ ] FLAG_REV /* <enter>  revise the eXclude and Wipe flags
                  [ ] XCLEANUP /* <enter>  clean out files based on matching
                                             x_flagged contents_signatures
                  [ ] CSFILKIT /* <enter>  used in finding duplicate files
                  [ ] FWKDG /* <enter>     used in system file collection etc
                  [ ] REMOVADS /* <enter>  removing ads from file collection
                  [ ] DSA /* <enter>       directory spacing adjust
                  [ ] FWKCST /* <enter>    contents_signature test
                  [ ] FWKCSS /* <enter>    contents_signature spectrum
                  [ ] SPECTRUM /* <enter>  calculate approx. system errorload
                  etc.
                      Note: XCLEANUP and FLAG_REV can be used with anti-
                            piracy resource material to help you protect your
                            system from becoming involved in software piracy
                            (see "Note 2:" near end of this file for where to
                            get that resource material).

           [ ] FWKCS /** <enter> calls LIST to display FWKCS203.REF, the main
               reference file, which has a detailed Table of Contents (after
               the Preface). If necessary, FWKCS searches your PATH for both
               LIST and FWKCS203.REF. If \CSA is not on your path, call this
               while in your \CSA directory. (If FWKCS doesn't find LIST, it
               presents material sequentially, which is not convenient with a
               file that big.)

               When you find an item in the Table of Contents, you can have
               LIST search for "page n", where n is the 1, 2, or 3 digit page
               number, and then use the up and down arrows etc. to move
               around in that part of the file. LIST lets you copy parts of
               the file to your printer or to another file. If you wish, you
               can copy all of FWKCS203.REF to your printer for your own use,
               but using it on_line is often more convenient (with a
               multitasking system, you can open another thread and window,
               and have the reference material on the screen while you work
               in another window).

    [ ] 23. This step explains adding a "node ID" for each processor or
               multitask thread (window). If your system has only a single
               CPU, with no multitasking and no automatic procedures that
               would call FWKCS (such as running a bulletin board system),
               this step is optional (but may be interesting).

               Different network and multitask systems treat temporary files
               in different ways.  Some operate better when temporary files
               are given the same names again and again.  For this reason,
               except in special situations, conflict is preferably avoided
               by using each node's identification as part of that node's set
               of names for temporary files.  The FWKCS system looks for the
               environment variable FWKNODE=ccc, where "ccc" can be any three
               DOS filename characters; this variable should be set in each
               node's environment, using  SET FWKNODE=ccc  with a different
               set of characters, respectively, for each node (if running
               under Novell, Inc.'s network system, use their syntax instead
               of this).  This node ID is case insensitive; e.g., aBc is
               treated as the same as ABC.

               Reusing the same set of names for temporary files also helps
               in automatically cleaning up after an interruption, because
               the files are routinely deleted after their next use.

               Clark Development Company's PCBoard passes along its node ID
               when it shells to call other programs, and FWKCS can read that
               ID from the environment. For use with Mustang Software, Inc.'s
               Wildcat, set the node ID in BBSTART.BAT, and use SCANFILE.BAT,
               both of which are normally installed in the \CSA directory.

               BBSTART.BAT and SCANFILE.BAT are designed as templates for
               more general interfacing of FWKCS with other bulletin board
               systems, and may be edited as needed for that purpose; their
               default settings are for use with Wildcat.

    [ ] 24. If you are running a bulletin board system, upload some files to
               your board to test your setup.
               [ ] Change the name of one and upload it again.
               [ ] Take files from different zipfiles already uploaded,
                     rename them, make a zipfile out of the renamed files,
                     and upload the combination zipfile.
               [ ] Use LIST to look at \CSA\FWKUPLD.LOG.
               [ ] Do FWKCS /**, search for "upload log, format and contents",
                   (it appears first in the Table of Contents, then in a
                   forward reference, and then where it is used as a header,
                   followed by several pages of detailed description).
               Later, do step 31, and use LIST to look at the FWKUPLD.LOG
               created there, and at the UPLOADS.RPT file, and to look in the
               subdirectories, etc. Some of those cases might not turn up on
               your board. Note that different settings, changed during the
               test run, result in successive files being treated in
               different ways.

    [ ] 25. Local bulk uploading of files: FWKLOCAL.BAS, installed in the
               \CSA directory, is used for this. It may be more convenient to
               copy it to a separate workarea, for ease in keeping track,
               cleaning up, etc.  For details, see FWKCS /**, and search for
               "4. L" to find "4. Locally processing batches of files as
               uploads", first in Table of Contents, next as a header,
               followed by detailed instructions.

    [ ] 26. System maintenance: some of this you can set up now, and some of
               this is for future use. This is for bulletin board use, and
               for similar or related automatic operations.

           [ ] SCAN has been getting bigger. If SCAN begins to require more
                 free memory than is available when FWKCS calls SCAN,
               do  FWKCS /d! <enter> ,
               look at line X (as labeled at the left side of the screen),
               If line X does not contain an entry  #V;  then go to your
                 \CSA directory and do

                   attrib fwkcs.exe -r
                   fwkcs [x]#v; /dx
                   attrib fwkcs.exe +r
                   fwkcs /d!

                   so that the  #V;  option entry appears near the end of
                   the list of options on line X.  Option  #V;  tells
                   FWKCS.EXE to leave only 8128 bytes of itself in memory
                   when it calls SCAN.  For additional information, see
                   FWKCS /** <enter> , and search for "Swapping most"
                   (without the quotation marks).

               If you already have option #V; and do not have enough space
               for SCAN, you may need to use an operating system which
               provides more low memory in a DOS session

                     (for example, IBM OS/2 2.11 can provide more than
                     710,000 bytes of free low memory in a DOS session, if
                     you set the DOS session VIDEO_MODE_RESTRICTION to CGA
                     and use RMSIZE=640 in your CONFIG.SYS)

               or run in the client/host configuration, with FWKCS in host
               mode running the testing on a different machine or a
               different thread which provides the needed RAM (including
               possibly running it in a different DOS session under OS/2).

           [ ] When FWKCS.EXE encounters a problem and reports an error, it
               tries to write it to FWKCS.ERR in its current directory,
               creating a new file if it does not find the file there.  If a
               copy of FWKCS.ERR exists in a directory which is APPENDed,
               then FWKCS may be misled into thinking that that file is in its
               current directory, and append its error message to that other
               file.  There can be benefits from being able to find where an
               error actually took place.  For this reason, don't leave an
               FWKCS.ERR file in any directory on which APPEND is used. As a
               safety precaution, you can create an empty FWKCS.ERR file in
               the same directory where work is being done, by doing
                 rem > fwkcs.err <enter>
               there. Then, that empty file would be found locally and the
               error appended to it, rather than to one in a remote directory
               on which APPEND was used.  FWKCSC.COM behaves similarly,
               writing its error reports to FWKCSC.ERR.
           [ ] As part of system maintenance, occasionally run an automatic
               search for FWKCS.ERR and FWKCSC.ERR, see what any non_zero_
               length ones have in them, and do the necessary repairs and
               clean_up (if they are deliberately there, reset them to zero
               length, as above).

               -----------------------

           [ ] Normally keep CSLIST1.SRT below 50KB long, preferably less, so
               as to keep the update process conveniently fast. There are two
               options used for automatically consolidating CSLIST1.SRT into
               the main data base, CSLIST.SRT.  The older one is
                   FWKCS /t30v     (reVise)
               (The /t30 allows for 30 seconds network or "collision" delay.)
               It has one advantage:
               1. it does a merge_in_place, followed by indexing, etc.  The
                  total amount of free space required depends mostly on the
                  length of CSLIST1.SRT, rounding the sum of CSLIST.SRT +
                  CSLIST1.SRT up to the file block size required to hold that
                  total on your system.  For example, a 30K CSLIST1.SRT can
                  be merged into a 30 Meg CSLIST.SRT using only a free space
                  of about 30K.
               It has two important disadvantages:
               1. the system is tied up while this is going on;
               2. a power interruption could result in a corrupted main data
                  base.
               The /v option lends itself to use on a RAMdisk.

               The more recent revise option (in use for more than a year), is
                   FWKCS /t120vc10000    (reVise Concurrent)
               It has three advantages:
               1. it can be done using one processor on a network, or one
                  thread on a multitasking system, while the system is up and
                  running and handling traffic;
               2. if there is a power interruption, the main data base is not
                  damaged;
               3. the decimal digits after the  vc  set the threshold: if
                  len(CSLIST1.SRT) is not bigger than that number, FWKCS
                  skips the operation and returns to the command line.
               It has one disadvantage:
               1. the amount of free space required is
                   len(CSLIST.SRT) + len(CSLIST.NDX) + 2*len(CSLIST1.SRT).
           [ ] This is the preferred method used on large systems. For system
               maintenance, it is recommended that you run this on a daily
               basis:

                         rem  any drive mappings go here
                         fwkcs /t120vc10000

               If your system is multitasking or uses multiple processors on
               a network, this can be done while the system is up, and is in
               effect "transparent" to users. What they see is that the
               system response in accessioning new files stays fast.

               -----------------------

           [ ] During normal operation of a bulletin board system, etc.,
               some files are retired from use, and others are moved to
               different locations on the system. Two maintenance procedures,
               REVCSL.BAT and S_REVCSL.BAT, are provided for
                  rebuilding the data base,
                  correcting the d:\path\ statements for moved files still on
                     the system,
                  making sure that those present are included,
                  carrying forward all unique contents_signatures from files
                     retired from the system,
                  carrying forward all contents_signatures flags (the
                     exclusion flag, the handling of AV stamps, deletion of
                     ads, etc.),
                  when used on a multitasking system, or a network with
                     multiple processors, either of these two procedures can
                     be run while the system is up and running and handling
                     traffic, bringing the new, rebuilt data base on line in
                     a way which is in effect transparent to users.

               It is recommended that you run one of those two programs
               whenever you reorganize your system, or move or retire many
               files; and routinely on approximately a monthly basis. To do
               this, it is suggested that you prepare a .BAT program which
               sets up whatever network configuration you normally use, and
               calls REVCSL or S_REVCSL.  If you installed FWKCS by using
               option 4 on the Menu for Installation, then you may find
               REVCSL sufficient for your needs. If you used option 5, or if
               your system has become more complex, S_REVCSL may better serve
               your needs.  Because of the time interval between running that
               special .BAT program, it is suggested that you check it each
               time before you use it, and make any changes needed.

           [ ] A general form for that .BAT program is

                  rem  any drive mappings go here
                  rem  then change to whatever drive holds \CS
                  d:
                  cd \cs
                  attrib -r sysmaint.log
                  echo --------------------------------------- >> sysmaint.log
                  fwkdg /w1 >> sysmaint.log
                  echo  starting data base revision >> sysmaint.log
                  rem  the example used here is REVCSL;
                  rem  you could use S_REVCSL with its detailed command line.
                  call revcsl 1
                  fwkdg /w1 >> sysmaint.log
                  echo  finished data base revision >> sysmaint.log
                  attrib +r sysmaint.log

                           Notes:

                           If essentially all the files on your system which
                              you are going to include in the revised data
                              base are already included in the current data
                              base (e.g., they were routinely added since
                              your first installation or last system
                              revision), and the total length of your
                              CSLIST.SRT and CSLIST1.SRT together is more
                              than 100 KB, then allow an amount of free
                              workspace of at least

                                   4*len(CSLIST.SRT) + 4*len(CSLIST1.SRT)

                              located on the same drive that holds your \CS
                              directory.  The revised CSLIST.SRT typically
                              takes up no more space than the prior
                              CSLIST.SRT and CSLIST1.SRT together. It is
                              often smaller than before, for these reasons:

                                all unique contents_signatures of retired
                                files are carried forward, but their d:\path
                                information is dropped as obsolete;

                                there are some files which often appear in
                                multiple copies, because they are packaged
                                with executable code to support operation;
                                those files which were present in the retired
                                packages and are currently present elsewhere
                                on the system are not unique, so the entries
                                corresponding to their presence in the
                                retired packages are dropped;

                                the contents_signature for each file which
                                appeared in multiple copies in the different
                                retired packages, and is not currently
                                present on the system, is carried forward as
                                only one entry (without d:\path) in the
                                revised CSLIST.SRT.

                           SYSMAINT.LOG is a dated system maintenance log
                              automatically created and updated in your \CS
                              directory.

                           FWKDG /w1 provides a date/time_stamp at the
                              beginning of a line, without a carriage return,
                              in the same format used in FWKUPLD.LOG; if you
                              need to track down a system problem, you can
                              make a merged file and sort it by date and
                              time. The echo statement in the next line has
                              two blank spaces after the "echo", to provide a
                              blank space after the date/time stamp; it
                              continues and completes the line, and provides
                              the carriage_return and line_feed.

                           S_REVCSL is used on giant boards; if necessary, it
                              can be modified to call an external .BAT for
                              even more detailed file selection criteria.

               On large systems, normal FWKCS maintenance does not require
               any system down time!

               -----------------------

           [ ] In the \CS directory, CSLIST.SRT and CSLIST1.SRT provide an
               easy indication of size and growth of the data base. After you
               consolidate CSLIST1.SRT into CSLIST.SRT, there are some more
               detailed types of data you can extract.  If you run a BBS,
               various of these numbers may also be of interest to your
               board's users or potential users. Here are some examples:

               [ ] If your system uses zipfiles, you can count the number of
                   zipfiles currently on your system by running, in the \CS
                   directory, this single command line:

                     fwkcs cslist.srt /t30a7.8f"z" | fwkcs /t30a7.8c":" zc

                   The resulting output file ZC receives the zipfile count.

               [ ] If your system uses zipfiles, you can count the number of
                   unique files directly contained in the zipfiles currently
                   on the system, by running this .BAT program:

                     fwkcs cslist.srt /t30a7.8v"cs" | fwkcs /t30a7.8f":" $t1
                     fwkcs $t1 nul $t2 /t30mp
                     del $t1
                     fwkcs $t2 /t30a7.8c":" fc
                     del $t2

                   Output file FC receives the unique_files_directly_in_
                   zipfiles filecount. (This count of unique files is based
                   on the contents_signature statistical resolution, with
                   typical pairwise statistical error rate of less than one
                   part in ten trillion. For detailed discussion of the cs,
                   see FWKCS /** , search for "  Intro" and "x 4. D" .)

               [ ] If your system also uses non_zip files (here called
                   "plain files"), you can count the number of such files
                   currently on your system by running, in the \CS directory,
                   this command line:

                     fwkcs cslist.srt /t30a7.8f"f" | fwkcs /t30a7.8c":" pc

                   Output file PC receives the "plain file" count.

               [ ] For an approximate analysis of statistical error load of
                   the entire data base, in your \CS directory, first do

                       SPECTRUM /* <enter>   to see what it's objectives are,

                   then do  SPECTRUM <enter>  and press the space bar to
                                              continue.

                   The results are summarized on the screen display when
                   SPECTRUM finishes running, and later you can use LIST to
                   read the results from the files listed on the /* help
                   screen.

                   A convenient way to use LIST for this is to type

                        LIST <enter> , then press 1, S, D, Ctrl_End.

                   Absent intervention (see indented () explanation, below),
                   that displays the files as a single_column_list in order
                   of when they were closed after last being written to, and
                   positions your cursor at the bottom of the list. Absent
                   special circumstances, the files you just made then appear
                   in sequence at the bottom of the list. (E.g., if a file is
                   accessioned on a network or multitask system while
                   SPECTRUM is running, CSLIST1.SRT and CSLIST1.NDX could be
                   down among them).

                         (There are programs which can alter the date and
                         time recorded for a file, so as to show values other
                         than when the file was closed after last being
                         written to.  For example, during the production run,
                         all the files in this release of FWKCS were given a
                         specific date and time; those which were processed
                         further during or after installation usually show
                         different date and time.)

               -----------------------

           [ ] The \CSA directory provides a single place to routinely check
               for what's going on:

                 FWKULPD.LOG  for upload activity, record of disposal of files
                 FWKCNTRL.ERR for FWKCS.EXE error reports
                 CLIENT.ERR   for FWKCSC.COM error reports
                 TELSYSOP     warning of an apparent virus found

                       Notes: If you see an FWKCNTRL.ERR, it means that there
                                 likely is also an FWKCS.ERR file, hopefully
                                 created at the location where the error took
                                 place.
                              Similarly, if you see a CLIENT.ERR, it means
                                 that there likely is also an FWKCSC.ERR file
                                 somewhere, to track down.
                                       (see discussion re FWKCS.ERR and
                                        FWKCSC.ERR near top of this step 26).
                              If you see a TELSYSOP, look also in
                                 \CSA\POTVIRUS for a copy of the file.

               \CSA contains the \CSA\P general purpose Process area.  For
               example, batch programs running in \CSA\P can make special
               copies of FWKCS.EXE to carry out specific tasks.  You can
               use the P directory under \CSA for locally processing "batch
               uploads".

               \CSA contains target directories for rejected files, for
               convenience if further processing is desired; each target
               directory has a companion directory, with directory extension
               ".D", into which is put the file description which goes with a
               file (e.g., QSN has companion directory QSN.D):

                 ADINZIZ   an ad was found inside an inner zipfile, inside a
                             zip in zip zipfile (rejected via DOZIZ0.BAT)

                 BAV       banned or bad AV stamp (a file's AV stamp can be
                             specified as banned using BANAV)

                 ENC       contained apparently encrypted material when not
                             allowed

                 FZT       failed zipfile test

                 MAV       missing AV, when AVs are required

                 OLD       older than the age test is set for

                 POTVIRUS  potentially a virus

                 QSN       question as to sufficient novelty (settable)

                 RSN       contained a file with a reserved system name

                 TRASHOLD  duplicate or redundant files (nothing new in them,
                             but preserved in case a necessary part of an
                             acceptable set of interrelated files)

                 UAV       unknown AV, when only pre_approved AVs accepted
                             (AVs can be entered as OK using LISTAV)

                 UNC       unchecked: client did not receive reply from host

                 UNCLEAR   ambiguity arose in further disposing of a zip in
                             zip zipfile from ZIZ (rejected via DOZIZ0.BAT)

                 ZIZ       zipfile contained another zipfile

                 ZIZPATH   a zip in zip zipfile contained a zipped path in
                             the outermost zipfile (rejected via DOZIZ0.BAT)

                 ZXL       zipfile would have been larger then allowed if
                             unzipped ("zip bomb") (allowed size is settable)

                 ZIZIZ     zipfile in ZIZ contained another zipfile which
                             contained another zipfile (rejected via
                             DOZIZ0.BAT)

                         Notes:

                         RSN: zipfiles in there are probably trojans. Look at
                              them with LIST or DEBUG, if you want, but if
                              you're going to unzip them, it is suggested
                              that you do it on an isolated machine with
                              nothing important on it, which you can
                              conveniently reboot.

                         UNC: look there if you see a CLIENT.ERR file; once
                              everything is running, this kind of failure
                              may indicate a network or hardware problem.  If
                              the client, FWKCSC, was able to reach the \CSA
                              to make that report in CLIENT.ERR, there's a
                              good chance it was also able to save the file
                              in UNC for possible processing (e.g., SYSOP
                              intervention) later.

                         ZIZ: At this time, when automatically processing
                              uploaded files, FWKCS sets aside any zipfile in
                              which it finds another zipfile structure, for
                              possible inspection by the system operator or
                              for possible (batch) processing using
                              DOZIZ0.BAT or ZIZDOEM.BAT.  Those "zip in zip"
                              zipfiles are put into the \CSA\ZIZ directory.

                              A .BAT program is provided, DOZIZ0.BAT, which
                              can be run while in the \CSA directory, to
                              automatically process zip in zip zipfiles found
                              in \CSA\ZIZ. It puts the accepted ones in
                              \CSA\ACCEPTED. (See  DOZIZ0 /* <enter> .)

                                 For each "zip in zip" zipfile processed
                                 using DOZIZ0, the first zipfile (the outer
                                 one) must not have any zipped paths, but can
                                 contain up to 16,383 zipfiles.

                                 Each of the inner zipfiles can contain a
                                 full DOS tree of subdirectories (up to 32
                                 levels of subdirectories) with up to 16,383
                                 files and subdirectories, but must not
                                 contain any further level of zipfile
                                 (including self extracting zipfiles).

                                 AV stamps are preserved and processed.

                                 Zipfiles rejected via DOZIZ0 can go to
                                 various target directories listed above;
                                 these are DOZIZ0's special target
                                 directories for rejects (described above):
                                        \CSA\ADINZIZ
                                        \CSA\UNCLEAR
                                        \CSA\ZIZIZ
                                        \CSA\ZIZPATH

                                 See DOZIZ0 /* <enter>

                              A template is provided, ZIZDOEM.BAT, for
                              configuring your system, calling DOZIZ0 to
                              process zip in zip rejects, preparing file
                              descriptions in PCBoard text file format
                              (including using internal upload description
                              FILE_ID.DIZ, DESC.SDI, or VENDINFO.DIZ), and
                              other functions.  ZIZDOEM.BAT is run from a
                              separate process area, not from in \CSA nor
                              from in \CS. (default is \CSA\P )

                                 See \CSA\P\ZIZDOEM /* <enter>

                         Why are zipfiles which contain other zipfiles set
                         aside during automatic processing?  Here is part of
                         the reason why:

                              DOS supports a sophisticated tree structure of
                              subdirectories. Phil Katz wrote PKZIP so that
                              it can capture a full DOS tree of files and
                              subdirectories into a single zipfile, with a
                              few keystrokes, and that whole structure can be
                              recreated at the receiver's end simply by using
                              the PKUNZIP -d option. For commercial and
                              business applications, scientific work, and
                              computer work, this is much more practical than
                              putting one zipfile inside another.

                              FWKCS is designed to efficiently and accurately
                              support that capability Phil provided --
                              quickly process a zipfile containing a full DOS
                              tree of files and subdirectories, while
                              preserving the structure of the zipfile and the
                              integrity of the zipfile's Authenticity
                              Verification stamp. That includes the ability
                              to generate the contents_signatures of all the
                              files in a zipfile with over 16,000 entries,
                              containing a DOS tree made of many directories
                              and files, stacked up to 32 subdirectories deep
                              (a limit imposed by DOS before the zipfile was
                              made), on the fly.  Also, FWKCS controls the
                              processing of uploaded files for virus testing,
                              so that (default setting) files with different
                              zipped paths but the same names do not
                              overwrite one another.  (There is an option
                              which allows files with the same name and the
                              same contents_signature to overwrite one
                              another.)

                              Let me note that I am not a lawyer, and that
                              what I say here is not offered as "legal
                              advice".  Having said that, let me continue
                              with some remarks on the history of treatment
                              of zipfiles on bulletin boards, and zip in zip:

                              Regrettably, in the early use of zipfiles on
                              bulletin board systems, people took a shortcut:
                              To virus test the files, they automatically
                              unzipped all the files into a single
                              subdirectory, writing one file on top of
                              another if they had the same name, and using
                              PKUNZIP's -o (automatic overwrite) option to
                              avoid having their systems "hang".  Then, they
                              used a virus testing program to test the files
                              which were present in the subdirectory. But,
                              because of the possibility of one file
                              automatically overwriting another with the
                              same name, the fact that all the files in the
                              subdirectory passed the virus test did not mean
                              that all the files in the zipfile were OK. So,
                              they did what they euphemistically called
                              "rezipping": they deleted the original zipfile,
                              and made a new zipfile containing only the
                              files which were left in the subdirectory.

                              That always destroyed any path information
                              contained in the original zipfile, possibly
                              lost some files, and always destroyed any
                              author's Authenticity Verification stamp which
                              might have been there -- which AV stamp, if
                              originally present, was possibly the best
                              protection the end user would have had.

                              Of course, this impaired the operation of any
                              program which depended on finding files at
                              their expected locations in that (missing)
                              directory tree after the package was opened.
                              And, it substantially impaired the end user's
                              ability to rely on the data.  The authors and
                              owners of that material had not authorized
                              those people to make such changes in it,
                              damaging the operation of their programs, and
                              had not authorized those people to pass such
                              altered material on to others as if it were the
                              authors's work.

                              Moreover, in "rezipping", they would appear to
                              have been creating a "derivative work" without
                              the author's permission, in violation of the
                              author's copyright.

                              So, an author would try putting material inside
                              a zipfile, and then zipping that, in hopes that
                              the inner material would reach the end user
                              unscathed. Other instances of zip in zip arose
                              from people putting other people's zipped work
                              into an additional outer package, thus
                              ostensibly "creating" a "new work". Other cases
                              arose in which people took the contents of a
                              floppy disk, which included a zipfile and an
                              installation program, and packaged them
                              together into yet another outer layer of
                              zipfile -- in this instance, with a little
                              thought, they might have served their purpose
                              by putting the installation program into the
                              existing zipfile (or asking the author to do
                              so, if the zipfile carried an AV stamp), with
                              instructions on how to unzip that installation
                              program first and then use it.

                              While this was going on, others were delightedly
                              discovering how easy it was to turn the zip in
                              zip structure into trojans, etc -- procedures
                              which I will not discuss further here.

                              Meanwhile, the UK enacted a Computer Misuse
                              Act, under which unauthorized alteration of
                              material on a computer which impairs the
                              operation of a program or the reliability of
                              the data would appear possibly a prosecutable
                              offense, potentially carrying a fine and up to
                              five years in jail.

                              This author is not aware of any current
                              software for reliably and completely processing
                              the full structure of a zipfile, with a full
                              DOS tree and Authenticity Verification, in real
                              time, and at the same time reliably and
                              completely processing a multi_nested zip in zip
                              in zip... structure, each nested zipfile
                              potentially carrying a multiplicity of zipfiles
                              each of which may itself contain a full DOS
                              tree, etc -- while carrying out the objective
                              of protecting the integrity of the original
                              package and the author's AV stamp.  Although
                              code could be written to process such zip in
                              zip in zip... structures on a case by case
                              basis, this author is not aware of any
                              mechanism for rapidly scanning them on a
                              system.

                              There is a real concern that the community
                              would be better served by a wider recognition
                              of the rights of authors and end users to have
                              Authenticity Verified Zipfiles pass through the
                              bulletin boards with their contents in pristine
                              condition -- at which time, authors and end
                              users could safely employ the far better zipped
                              path system Phil Katz provided.

    [ ] 27. The FWKCS system has many files and several subdirectories.  If
               you need to completely remove the FWKCS system from your hard
               drive(s), this can be done by running DELCSA D in your \CSA
               directory and DELCS D in your \CS directory, where D is the
               drive letter for the drive holding that directory,
               respectively.

    [ ] 28. For direct help on using remote Lookup and remote
               cross_references, type
               [ ] LOOKUP /* <enter>
               [ ] RCROSREF /* <enter>.

    [ ] 29. Different levels of technical support are available to registered
            users.  For more information about support, see "Support" in
            REGISTER.DOC; and type FWKCS /! <enter>, and press the space bar
            until you reach the screen about support.

    [ ] 30. Print out REGISTER.FRM, and follow its instructions for
               registering FWKCS.
            Until you have registered FWKCS, keep a copy of REGISTER.FRM in
               the same directory with FWKCS.EXE.
            Using the registered version saves time, in two ways: the
               registered version does not spend any time on verifying
               REGISTER.FRM; for an unregistered copy, the first evaluation
               day is counted as day 0 -- after day 30, a delay is added of 1
               second for each additional day.
            This software is not free -- if you do not register it, you should
               discontinue using it.

    Be patient, Have fun, Register, and If you need help, please ask.


                   For programmers, bulletin board operators, sophisticated
                   users, and people who like to see a lot of action:

                   [ ] 31. Two extensive quality_control testing programs,
                              used before FWKCS(TM) is released, are
                              installed in \CSA.  Among other things, they
                              test a series of ways in which a file uploaded
                              to a bulletin board system can be handled.

                              To run one of these programs, make \CSA your
                              current directory, do  MD 1  to make an empty
                              subdirectory 1 under \CSA, do  CD 1  to make
                              the new directory your current directory, and
                              run the program there.  To clean up afterward,
                              run FWKCLEAR in the same directory.  The
                              special needs of these programs are explained
                              when you start, or you can use the /* help
                              command with each of them.

                              Be sure to have the \CSA directory on your
                              PATH.

                          [ ] FWKCTEST can run on a single processor, in DOS.

                          [ ] FWKCHTST requires a multitasking or
                              multiprocessor (network) system. It sets up
                              and runs the client/host configuration, using
                              two DOS sessions.

------------------------------------------------------------------------------


Distribution:
~~~~~~~~~~~~~
Provided that no fee is charged for the use, copying, or distribution; and
provided that they are not modified in any way; then you may freely
distribute unregistered copies of FWKCS(TM), solely in its original
Authenticity Verification Zipfile named FWKCS203.ZIP with AV code =
    "# OFT466   Frederick W. Kantor (founder/information mechanics)" .

If you upload this material to a bulletin board system which does not
automatically insert the FILE_ID.DIZ description, please provide that
material in your upload description.

And, please do not remove Dr. Kantor's Authenticity Verification stamp from
the FWKCS203.ZIP zipfile.  If the AV stamp was removed before you received
the zipfile, or if you have accidentally removed the AV, get a good copy to
distribute of the current release of FWKCS, as a no_fee download, from the
phone number or telnet address listed in Note 2, below.

-----------------------------------------------------------------------------

Note 2:
~~~~~~~
To get the current release of anti-piracy resource material FWKCXnnn.ZIP, or
if you are missing any of the shareware programs in checklist items 1-3
above, they are available as no_fee downloads from The Invention Factory BBS
on your first call, from a 48_line hunt_up group of USR Dual Standard modems,
at 2400-16800 bits/sec (including V32.bis):

                    telephone  212-274-8110 8N1
                       telnet  199.183.47.133

Remember to properly compensate the shareware authors whose product(s)
you use.


Note 3:
~~~~~~~
The remote lookup functions, including Rcrosref, are available in a
relatively small kit, FWKLU203.ZIP, released 1995 Apr 19.

Most of the remote lookup functions (but without Rcrosref), are available
in a special, even smaller kit, FWKLZ203.ZIP, releaased 1995 Apr 19.
FWKLZ203.ZIP does not require registration.

If you run a BBS, you may wish to get FWKLU203.ZIP and FWKLZ203.ZIP for
your users, especially if your BBS is a "feeder BBS" and many of your users
are other BBS's. The kits come with instructions, and FWKLU203.ZIP contains
a short bulletin, FWKLU203.BLT, suitable for posting. (see phone number in
Note 2, above)

----------------------------------------------------------------------------

IBM and OS/2 are trademarks of International Business Machines Corporation.
Other product names are the property of their respective authors or
companies.
