FWKCS(TM) Contents_Signature System, Ver. 1.12, 1991 Jul 18. (C)Copyright Frederick W. Kantor 1989-1991. All rights reserved. Your use of this program is at solely your own risk: PLEASE HAVE PROPER BACKUPS ........................ C A V E A T O P E R A T O R ........................ Installing the FWKCS Contents_Signature System, Version 1.12 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FWKCS(TM) Version 1.12 is for use under IBM/MS DOS 3.30 - 5.00. Minimum system memory: DOS 5.00 is specified as requiring 512K. Under DOS 3.30, FWKCS has run properly and called external programs in 380K. On disk, allow at least 1 Megabyte + 8% of total filelengths as workspace. Typical finished installation would require only about 1 Megabyte + about 2%-3% of total filengths, depending on whether you have many small files, directly or in zipfiles, and whether many of your files have lengthy zipped path information; and depending on whether you use many long path names, etc. To do its job, the FWKCS(TM) Contents_Signature System needs to know about the files on your system. And it needs a place to keep its files. After FWKCS is installed, there are two menus, CSM.BAT and CSAM.BAT, to help you with information on the special .BAT programs, .COM programs, and literature. Below are listed some ways to set up FWKCS under different circumstances. Choose the one which best serves your needs. The GO.BAT installation menu program is the most recent, and the easiest to begin with. It also gives you the option of direct access to the installation programs, in case you need to make special use of their features. Note: When you run one of the installation .BAT programs discussed below, it may tell you what it does, first, and then pause so that you can quit in case of error. These installation procedures are not intended for many_times_ a_day regular use, so they have been made to explain themselves. In CONTENTS.112, in the left margin next to each of the .BAT programs, there is notation as to whether the .BAT program accepts /* as a request for on_line help, explains and operates in an interactive mode ("EI"), explains and pauses ("EP"), explains and returns you to the command line ("ER"), or executes directly with no explanation and no pause ("D"). Only one of these .BAT programs is delivered solely in a form that executes directly: PCBTEST.BAT, which is intended for machine interface. If there is an error, it makes direct use of FWKCS.COM's error_handling capabilities, with an error message sent to the screen and logged to FWKCS.ERR in the default directory. A version with on_line help and other additional features is also provided, called LUT.BAT ("Local Upload Test"); for on_line explanation, type LUT /* . Three of the .BAT programs - Y.BAT, ACCESION.BAT, and ACCESZIP.BAT - are provided in such form as to provide on_line help in response to /*, but can also be generated in a short form which is better suited for use as a subroutine, e.g., in machine_interface applications. For instructions on how to generate the short forms, use the on_line help provided by the delivered versions of Y, ACCESION, and ACCESZIP; see CONTENTS.112; or see FWKCS /a . For all the other .BAT programs, and all the .COM programs, listed in CONTENTS.112, all you have to do to get an explanation is type in the name of the program, then /* , and then press the key. For every .BAT and .COM program in the FWKCS(TM) Contents_Signature System, Version 1.12, execution is blocked by the use of /* as the only entry on the command_line after the program's name. (The four machine_ interface .BAT programs mentioned above pass the /* along to FWKCS.COM, which displays the FWKCS.COM /* help_screen and blocks further execution.) Note about files: subdirectories are files, but the contents of those special files are not included when gathering files for making the lists of contents_signatures. The phrase, "all files", may sometimes be used to mean "all non_directory files". Here is how to start: ~~~~~~~~~~~~~~~~~~~~~ First, be sure that you have these programs available on your PATH: The IBM/MS DOS "ATTRIB" program or command. The IBM/MS DOS "BASICA" program, or equivalent. The IBM/MS DOS "CHKDSK" program. The IBM/MS DOS "FIND" program. The IBM/MS DOS "MORE" program. Ben Baker's QSORT program, Version 3.20. Phil Katz's PKZIP(R) and PKUNZIP(R), Version 1.1. Vernon Buerg's LIST program, a recent version. McAfee's SCAN, a recent version. A file defragmentation program, for example, Peter Norton's SPEEDISK. GO.BAT ~~~~~~ For a variety of new installations, the simplest way to install FWKCS is to use GO.BAT. It will fetch for you the different setup programs discussed below. And, if a simple procedure will do the job, it will set it to work for you. If you do not have GO.BAT for Version 1.12, type PKUNZIP FWKCS112 GO.BAT Then, type GO It will explain what to do, and help you select an option. If it asks any questions, respond appropriately. According to which option you choose, after the option you choose has finished running, you can look through this introductory material for key features to follow up on. Once it is installed, to take full advantage of the power of the FWKCS Contents_Signature System, you can use the system to explore, "hands_on", the many features explained in FWKCS112.REF and the many supporting .BAT programs listed in CONTENTS.112. 0. Replacing FWKCS 1.09 or later ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0. If you are already using FWKCS 1.09 or later, and just want to put this new version into your existing FWKCS system, or if you wish to proceed with installation step by step from the beginning, you can do this: put FWKCS112.ZIP in your \cs subdirectory. make that your default directory. make sure that your working copy of FWKCS.COM is not in your \cs subdirectory, and that it is available via the path. then do pkunzip fwkcs112 go.bat go press the "F" key twice (F = go forward to next screen) press "0" key for option 0. It executes directly. Note: if you do not wish to use GO, you can carry out these steps directly: pkunzip fwkcs112 0_setup.bat When PKUNZIP finishes, run 0_setup 0_SETUP does not do any setting up. All it does is use PKUNZIP to unzip the FWKCS Contents_Signature System from FWKCS112.ZIP. If you are setting up for the first time, step by step, go to step 0.1, below. If you are replacing an existing installation and, therefore, do not run NULSTART, and if you do not have a .BAT program to install the defaults in your new copy of FWKCS, you can use SETFWKCS.BAT to set the macros to work with the subdirectory structure prepared by CSAMACS.BAT for the \CSA Contents_Signature Activity place. For explanation, type setfwkcs /* . Or, you can set only defaults #1-4 to point to the d:\cs location for its working contents_signature list and index files. To do this, run setdrive d where d without a ":" is the drive letter for the \cs subdirectory. SETDRIVE.BAT sets defaults 1-4, and then runs FWKCS /d to display their new settings for you to check. Also, if you do not have a .BAT program to install the defaults in your new copy of FWKCS, you can capture the [b], [c], [d], [e], and (if it exists) [f] macros from your working copy of FWKCS Version 1.09 or later, and transfer them into your new copy of FWKCS Version 1.12. Staying in the default subdirectory with the new copy of FWKCS, run keepmacs KEEPMACS reaches your old copy of FWKCS on the path, reads macros [b], [c], [d], [e], and, if it exists, [f] from it, and installs them in the new copy. After looking at the display of the default screen FWKCS /d, set the additional defaults (items 5...A) as before. And then install your new copy of FWKCS.COM on your system in place of the old one. There is a very good chance that you will want to install one or more of the new options. See FWKCS112.REF, UTILS.112 (for FWKLOCAL), and LOOKUP.DOC. You might be interested in setting up a work place, discussed in 1.5 and 2.5, below. They use CSAMACS.BAT, provided in FWKCS112.ZIP. 0.1 Setting up for the first time, step by step ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ After you have run GO, option 0, or carried out the explicit unzip commands set forth in section 0. above... If you are setting up for the first time, step by step, and wish to create an "empty" system to start, you can run nulstart d where d without a ":" is the drive letter for where the system is to be installed. This does not do any searches. It sets the drive entry for the first 4 default files, so that FWKCS looks in the correct place for its CSLIST*.* files (to see this, run FWKCS /d ). Note: NULSTART deletes any CSLIST.NDX, CSLIST.SRT, CSLIST1.NDX, and CSLIST1.SRT files which may exist in a \cs directory on that drive. There is a very good chance that you will want to install one or more of the options. See FWKCS112.REF, UTILS.112 (for FWKLOCAL), and LOOKUP.DOC. You might be interested in setting up a \CSA Contents_Signature Activity place, discussed in 1.5 and 2.5, below. They use CSAMACS.BAT (provided in FWKCS112.ZIP) to create the \CSA subdirectory structure and to load into FWKCS.COM a set of macros configured to use that subdirectory structure. 1. Installing on single computer with one hard drive, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ no bulletin board system ~~~~~~~~~~~~~~~~~~~~~~~~ One user, one computer, one hard drive, named C:, IBM/MS DOS 3.30 - 5.00 personal use, not a bulletin board system If you do not wish to use GO.BAT, here is a sequence of steps for installing FWKCS: Start with a copy of Authenticity Verification Zipfile FWKCS112.ZIP, either in your A: drive on a floppy disk, or on your C: drive in a subdirectory which, for the purpose of this discussion, is called "NEWSTUFF". So, FWKCS112.ZIP is located at A:FWKCS112.ZIP or at C:\NEWSTUFF\FWKCS112.ZIP. 1.2 Be sure that at least 10% of your hard disk is available to work in. 1.3 ("" means "press the ENTER key") Type PKUNZIP FWKCS112 2_setup.bat 1.4 If your system has such control, allow creation rights for making the c:\cs and c:\csa subdirectories, and 11 additional subdirectories under c:\csa. When PKUNZIP has finished unzipping 2_SETUP.BAT, If you are only interested in .ZIP files on your drive C: (with the extension .Z*), type 2_setup C 1 C 1 OR If you are only interested in .ZIP files on your drive C: (regardless of their extension, self_extracting or not), type 2_setup C 2 C 1 OR If you are interested in all the non_directory files on your drive C:, including hidden and system files, type 2_setup C 3 C 1 thus carrying out the procedures which GO would have set up for you. The result is to make a subdirectory c:\cs, unzip the files from FWKCS112.ZIP into c:\cs, build the master CSLIST.SRT, index it, create the quick_update CSLIST1.SRT and its index; and then create the C:\CSA Contents_Signature Activity subdirectory. When it has finished, you should be in c:\csa as your default directory, with every file there write_protected. For a 32 megabyte hard drive with a mix of about half the filespace in zip and half in plain files, this should ordinarily take less than half an hour to run, including unzipping files from FWKCS112.ZIP and setting the system up. For comparison, on a first_generation IBM PC (Intel 8088), with a "PC index" = 1, it takes approximately 47 seconds to read a 1 megabyte plain file from a hard drive and generate the file's contents_signature. Let it run until it has finished. Then, at your early convenience, do cd\cs 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 SPEEDISK or equivalent. 1.5 There are many useful options. Rather than discuss them here, 2_SETUP uses CSAMACS to set up a place for you to work with them, and to install the options in FWKCS so that they refer to that place. This is for one user, not a bulletin board system. The options are installed via "macro"s, loaded into FWKCS itself, after which they are available from the command line. This is explained in FWKCS112.REF. The macros can be displayed, as part of the user_settable defaults, by typing FWKCS /d . This set up a subdirectory \CSA (Contents_ Signature Activity) with additional subdirectories under it, prepared it as a work place, and moved to there. To do this directly, the command would be csamacs C 1 Once you get there (and have perhaps had a chance to look at LOOKUP.DOC), do a DIR listing to see what's there. The on_line help menu there is CSAM.BAT. To use it, type csam Then type FWKCS /d to see the new macros, and refer to FWKCS112.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 FWKCS.COM, first you will need to unprotect it. To do this, type attrib -r fwkcs.com Then, set paths for items 5-9 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 A 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 C:\CSA subdirectory. After you have set the paths, you can protect your configuration by setting the attribute of FWKCS.COM to read_only. To do this, type attrib +r fwkcs.com If you protect FWKCS.COM in this way, remember to unprotect it (ATTRIB -r) before you try to change any entry on the /d screen. Otherwise, you will get an error message saying that access was denied. Make the copy of FWKCS.COM which is in your \csa subdirectory available on your path, by adding c:\csa to your path. >>--> Remember to add c:\csa to your PATH. >>--> Have only one copy of FWKCS.COM on your path. This setup procedure leaves copies of FWKCS.COM and FWKDG.COM behind it 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 unzip them from FWKCS112.ZIP again, one by one; or you can go to section 0, above, and follow the instructions for running 0_SETUP to do the unzipping; or you can have GO run 0_SETUP for you, by running GO in the same subdirectory with FWKCS112.ZIP and selecting from the menu. I suggest you look at the discussion re removing duplicate files, in section 4, 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. 2. Installing on system, with option to specify drives, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ non_overlapping paths, file extensions, string searches ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IBM/MS DOS 3.30 - 5.00 ("non_overlapping paths" means that each file, respectively, can be reached by only one path. This is important in preventing the same file from appearing twice.) You can do this using GO, and selecting the option from the menu. You have the option of direct access to the installation programs, if you need to take advantage of some of their special features. If you do not wish to use GO, or if you wish to read about various options before you tell GO to do it, here are some ways to proceed and some features which you may find useful: 2.1 Start with a copy of Authenticity Verification Zipfile FWKCS112.ZIP. 2.2 Allow at least 80 Megabytes of work space per Gigabyte of files on your system, more if you have mostly small files, or zipfiles which contain very many small files. 2.3 ("" means "press the ENTER key") Do either of these two: If you are only interested in non_directory files on your system on drives c: - z: , and all paths on your system are non_overlapping, then, starting where FWKCS112.ZIP is (not in c:\cs), type PKUNZIP FWKCS112 2_setup.bat then go to step 2.4 OR ~~ If you are interested in specifying which drives (a: - z:) and which file extensions (or other strings) are to be included, type PKUNZIP FWKCS112 S_setup.bat then go to step 2.4 2.4 If your system has such control, allow creation rights for making the \cs and \csa subdirectories, discussed below. When PKUNZIP has finished unzipping 2_SETUP.BAT or S_SETUP.BAT, run EITHER this .BAT: 2_SETUP d n D N where d without a ":" is a single letter for the drive on which to put the \cs subdirectory. 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. D without a ":" is a single letter for the drive on which to install the Contents_Signature Activity \CSA place. N = 1 for a single user with no BBS. 2 for a single local user, with a (multi_node) BBS. 3 for multiple local users, with a (multi_node) BBS. OR this .BAT: S_SETUP d n D N q r s t v - .Z .GIF :\UPLOADS\ x .SYS OR S_SETUP d n D N q r s t v - : x \DOS\ where d without a ":" 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). D without a ":" is drive for the Contents_Signature Activity \CSA place. N = 1 for a single user with no bulletin board system. 2 for a single local user, with a (multi_node) BBS. 3 for multiple local users, with a (multi_node) BBS. 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 :\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* . 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 catch the root_directory position. The string_search feature can be used with any substring which can be found in a (capitalized) D:\PATH\FILENAME.TXT character_string. To include all and only non_directory files which have an extension, whatever that extension may be, 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 paths), then, in S_SETUP, 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. Whichever of these .BATs you choose, the result is to make a subdirectory d:\cs, unzip the files from FWKCS112.ZIP into d:\cs, build the master CSLIST.SRT, index it, create the quick_update CSLIST1.SRT and its index, and make a Contents_Signature Activity \CSA place. When it has finished, you should be in D:\CSA as your default directory. Processing is typically disk_ or network_limited, rather than computation limited. A rough speed of 8 to 10 zipfiles per second, has been reported for a large electronic bulletin board system; and about 1 megabyte per second has been reported for operation under favorable access conditions for large, plain files. At present, WORM and CDROM access time and read speeds can make it take considerably longer to process the same amount of material. Let it run until it has finished. Then, at your early convenience, move to your d:\cs subdirectory 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 SPEEDISK or equivalent. 2.5 There are many useful options. Rather than discuss the options here, note that the above two .BAT 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 FWKCS112.REF. The macros can be displayed, as part of the user_settable defaults, by typing FWKCS /d . The program CSAMACS.BAT was used for setting up a work area for use with a multinode BBS: CSAMACS d N where d without a ":" is a single letter for the drive on which to install the Contents_Signature Activity \CSA place. N = 1 for a single user with no BBS. 2 for a single local user, with a (multi_node) BBS. 3 for multiple local users, with a (multi_node) BBS. CSAMACS sets up a \CSA Contents_Signature Activity subdirectory with 11 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), do a DIR listing to see what's there. Then type FWKCS /d to see the new macros, and refer to FWKCS112.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.COM /d screen, you will need to unprotect FWKCS.COM. To do this, type attrib -r fwkcs.com Then, set paths for items 5-9 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 A 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 A on the /d screen, by typing fwkcs d:\path\filename.ext /da 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, rather than to a central file, to help keep track of where a problem occurred. 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. After you have set the paths, you can protect your configuration by setting the attribute of FWKCS.COM to read_only (shareable read_only). To do that, type attrib +r fwkcs.com If you protect FWKCS.COM in this way, remember to unprotect it (ATTRIB -r) before you try to change any entry on the /d screen. Otherwise, you will get an error message saying that access was denied. Note: In the CSAMACS N = 1 configuration, the free work area entered in the [b] macro and in the [c] macro has d:\path, so that a single user without a BBS can work from anywhere on the system without having to have a ##CELLAR under the default directory. In the CSAMACS N = 2 configuration, the free work area entered in the [b] macro has d:\path, so that a single user can use ACCESION and ACCESZIP in directories which do not have a ##CELLAR under them. In the CSAMACS N = 3 configuration, the free work area entered in the [b] macro does not have d:\path: every directory in which a user uses ACCESZIP (Auxiliary Function /a4), PCBTEST (/a5), or /a6, must have its own separate ##CELLAR under it, because there could be multiple local users using free work areas for concurrent processing. For both CSAMACS N = 2 and CSAMACS N = 3, the work area entered in the macros used for BBS operations does not have d:\path. You must put a ##CELLAR subdirectory under the default directory for each node on your system. This is used as its free work area. By allowing each processor to default to its own, separate, free work area, the system can handle concurrent uploads. For local BBS work, you can create a configuration file to use instead of the macros used for BBS operation, by running fwkcs [cdef] [-localmac] and then use a word processor (with the wordwrap OFF) to edit LOCALMAC -- for example, you can put in d:\path for the free work area f,d:\path\##CELLAR; , so that you won't need a ##CELLAR under your local default directory. You can also 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 FWKCS112.REF. Make the copy of FWKCS.COM 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.COM on your path. If you have multiple servers with a copy of FWKCS.COM on each, make them all from the working copy of FWKCS.COM 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.COM is in your \csa subdirectory, and a write_protected backup copy is in your \cs subdirectory.) These setup procedures leave copies of FWKCS.COM 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 unzip them from FWKCS112.ZIP again, one by one, or you can go to section 0, above, and follow the instructions for running 0_SETUP to do the unzipping; or you can have GO run 0_SETUP for you, by running GO in the same subdirectory with FWKCS112.ZIP and selecting from the menu. I suggest you look at the discussion re removing duplicate files, in section 4, 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, for two reasons: First, and most important, how to set it up depends on specific details about how you installed PCBoard and whether you have the latest code installed on your system. The g option is explained in detail in FWKCS112.REF. Second, the g option is specifically for getting and revising the upload_description, UPDESC.nnn, in handling uploads to a BBS. If you are just starting to use FWKCS, if the g option were installed at first, then the supporting environment for the g option would have to be provided for certain tests as part of your experimental setup. Otherwise, you would get error messages. When you are ready, if you are running PCBoard 14.5a, the format for option g is g1,N . (This uses the value passed in %3 of PCBTEST.BAT for the upload description.) To add this option with N = 3, g1,3 , type ADD_G On completion, this displays the FWKCS /d screen. The addition is made to the right end of macro [c], where it should appear in capitalized form. To add the option "by hand", with a different value for N, you can type FWKCS [c]g1,N /dc , putting a decimal digit in place of N. (See FWKCS112.REF.) 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 /a5[cdef] 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 FWKCS112.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 right end of macro [d], where it should appear in capitalized form. Separately, you can set the macro used with /a4 to accept only zipfiles, by typing ADD_Z_4 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 program 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 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 /a3[b] to FWKCS %1 /a3[b],d:\path\virdata; ACCESZIP.BAT: change FWKCS %1 /a4[b] to FWKCS %1 /a4[b],d:\path\virdata; See FWKCS112.REF, /a3 and /a4, option v. 3. Doing it in pieces ~~~~~~~~~~~~~~~~~~~~~ IBM/MS DOS 3.30 - 5.00 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 RECIPES.112, EXAMPLES.112, and UTILS.112. After unzipping the FWKCS Contents_Signature System from FWKCS112.ZIP (see section 0., above)... 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. If you use the IBM/MS DOS FIND program for selecting or excluding material, be sure to use the "redirected input" format, for example FIND ".Z" < worktemp > worklist One result of using the "<" redirection symbol is that the FIND program does not know where its input came from; this keeps FIND from inserting the name of the source file (in this case, WORKTEMP) at the top of the output file. For instance, a "redirected input" format is used in 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. To set the drive for #1-4 on the FWKCS /d screen, you can run SETDRIVE d , where d without ":" is the drive letter. After you have made your WORKLIST, set your drive, made your \cs subdirectory, and moved there, these lines can be used to set up the FWKCS(TM) Contents_Signature System (this example uses Ben Baker's QSORT Ver. 3.20; see FWKCS112.DOC, FWKCS112.REF, and RECIPES.112): fwkcs /1cfpxz worklist cslist qsort cslist cslist1.srt del cslist fwkcs /v Those lines 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. 4. removing duplicate zipfiles and plain_files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Now that 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 step 4.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. 4.1 If you wish, rather than using CSDUPS, CS_SPLIT, and/or CSFILKIT, you can use the IBM/MS DOS FIND command to select material to process. For example, to find duplicate zipfiles, do this: FIND "z" < cslist.srt | fwkcs /1sm >multis 4.2 MULTIS produced in step 4.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 FWKCS112.DOC. The command line in 4.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 basica fwkc17d (or whichever 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 FWKCS112.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: FIND /v "z" < cslist.srt | fwkcs /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 . 5. 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 FWKCS112.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 would probably not be correct. Because the ":" is missing from those lines which were carried forward in this way, you can collect those lines by using the IBM/MS DOS FIND: find /v ":" < cslist.srt > cs_prior.srt This information is also available to a user, via Lookup. (See LOOKUP.DOC) 6. 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 FWKCS112.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. 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).