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 (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. ("" 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 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 "" 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 , 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 "" 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 /* 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 (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 (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 "" S_SETUP d n D N C q r s t v - : x \DOS\ "" S_SETUP d ! D N C "" (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 /* 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 OR S_SETUP d n D N C q r s t v - : x \DOS\ OR S_SETUP d ! D N C 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 , 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\ (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 , 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 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 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 "" 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 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 "" QIKSTART d D c "" 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 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 /** . 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 /* , XCLEANUP /* , 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 and FWKCS /d! . 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 or CSAMACS d N c 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 , and then FWKCS /d! , 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 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 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 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] 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 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 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 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 /* 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 , 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 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 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 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 , 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 (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 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 "" S_NEWCSL N q r s t v - : x \DOS\ "" 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 . 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 . >>--> 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 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 /* 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 /* . 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 , 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 . Press D to go to the main directory, and explore what it offers. [ ] go to the \CS directory, type CSM , 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 /* . 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 /* find other copies of a file [ ] Y /* find copies, accession if any new [ ] MSG\MSGS /* to customize messages to users [ ] DO_HOSTQ /* run as host, do work on queue [ ] DO_BLOG /* do backlog in split_test mode [ ] DOZIZ0 /* process zip in zip from \CSA\ZIZ [ ] SPLITEST /* configure for split test [ ] LOOKUP /* for remote lookup [ ] RCROSREF /* to get remote cross_references [ ] BANAV /* ban a specific AV stamp [ ] LISTAV /* enter a specific AV as OK [ ] TESTAV /* test status of an AV stamp [ ] WIPE /* designate a file for automatic removal when not protected by AV [ ] EXCLUDE /* to block commercial files, etc [ ] FWKVTBAT /* called by FWKCS to run virus tests [ ] SETNEWVT /* to set up FWKCS to run FWKVTBAT [ ] BBSTART /* part of generic BBS interface [ ] SCANFILE /* upload testing, generic BBS [ ] LUT /* local upload test [ ] FWKHI /* hexadecimal etc input for .BATs [ ] FWKDG203 /* to make DIRGUIDE.TXT [ ] FWKDG /* file collection, time logging, etc [ ] FWKFT /* to copy from near tail of big file [ ] FWKQA /* to quickly append short file to long file [ ] CRLF0 /* to format text_block files, e.g., for sorting giant files. [ ] FWKCS /* brings up a list of commands for specific help. Try out each one now, or come back to them later. (/** is discussed below.) [ ] FWKCSC /* 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 , and then see [ ] DOEM /* annotated template for batch local uploading (heavy duty local) [ ] ZIZDOEM /* annotated template for batch local uploading of zip in zip from \CSA\ZIZ (may be used often) [ ] DOZIZ3 /* annotated template for revising file descriptions (relatively rare) and, in the \CS directory, see: [ ] REVCSL /* rebuild data base, few options [ ] S_REVCSL /* rebuild data base, many options [ ] FLAG_REV /* revise the eXclude and Wipe flags [ ] XCLEANUP /* clean out files based on matching x_flagged contents_signatures [ ] CSFILKIT /* used in finding duplicate files [ ] FWKDG /* used in system file collection etc [ ] REMOVADS /* removing ads from file collection [ ] DSA /* directory spacing adjust [ ] FWKCST /* contents_signature test [ ] FWKCSS /* contents_signature spectrum [ ] SPECTRUM /* 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 /** 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! , 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 /** , 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 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 /* to see what it's objectives are, then do SPECTRUM 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 , 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 /* .) 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 /* 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 /* 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 /* [ ] RCROSREF /* . [ ] 29. Different levels of technical support are available to registered users. For more information about support, see "Support" in REGISTER.DOC; and type FWKCS /! , 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.