home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / ZDCS203.ZIP / ZDCS-REF.TXT < prev    next >
Text File  |  1994-03-28  |  134KB  |  3,258 lines

  1.  
  2.           ZIPFILE DUPLICATE CHECKING SYSTEM (ZDCS)  Ver. 2.03
  3.                 Copyright (C) 1991-1994 by Stacy Smith
  4.  ---------------------------------------------------------------------
  5.  
  6.                      The Bloom Beacon-Picayune BBS
  7.        (919) 557-3845  (USR Courier HST/V.32terbo Dual Standard)
  8.                  (919) 557-0645  (USR Courier V.32bis)
  9.                 (919) 557-0745  (Hayes Optima 288 V.FC)
  10.  
  11.  
  12.  
  13.                       Technical Reference Manual
  14.  
  15.  
  16. TABLE OF CONTENTS
  17. -----------------
  18.  
  19. ABOUT THE DOCS.................................................3
  20. PURPOSE OF ZDCS................................................3
  21. GENERAL TECHNICAL INFORMATION..................................4
  22. ZDCS OPTIONS...................................................5
  23.      Deletion of Duplicate Files...............................5
  24.      Allowed Duplicates........................................6
  25.      Privileged Users..........................................6
  26.      BBS Ads...................................................6
  27.      Pre-Testing...............................................7
  28. INSTALLATION OVERVIEW..........................................7
  29. THE ZDCS DIRECTORY.............................................8
  30. THE ZDCS CONFIGURATION FILE....................................8
  31.      Function..................................................8
  32.      Line 1....................................................9
  33.      Line 2....................................................9
  34.      Line 3....................................................9
  35.      Line 4...................................................10
  36.      Line 5...................................................10
  37.      Line 6...................................................11
  38.      Line 7...................................................12
  39.      Line 8...................................................12
  40.      Line 9...................................................13
  41.      Line 10..................................................13
  42.      Line 11..................................................13
  43.      Line 12..................................................14
  44.      Line 13..................................................14
  45.      Line 14..................................................14
  46.      Line 15..................................................14
  47. THE ZDCS DATABASE BUILD.......................................14
  48.      Purpose..................................................14
  49.      Creation of the Initial Database.........................15
  50.      The Screen Display During the Database Build.............15
  51.      Additions to an Existing ZDCS Database...................17
  52.      ZDCSDB Without a Separate File Integrity Checker.........17
  53.      The Database Build Log File ZDCS-DBB.LOG.................18
  54. THE ZDCS DUPLICATE REPORT GENERATOR...........................18
  55. THE ZDCS DATABASE PURGE.......................................20
  56. BBS ADS.......................................................21
  57.      Function.................................................21
  58.      Creation of the BBS Ads Database.........................22
  59.      Updating the BBS Ads Database............................22
  60.      Selecting Deletion or Flagging of BBS Ads................24
  61. ALLOWED DUPLICATES............................................25
  62.  
  63.           
  64.  
  65.  
  66.                                   - 1 -
  67.           
  68.           
  69.  
  70.  
  71.           
  72.           Zipfile Duplicate Checking System (ZDCS)  Ver. 2.03
  73.                Copyright (c) 1991-1994 by Stacy Smith
  74.  ---------------------------------------------------------------------
  75.  
  76.  
  77.                       Technical Reference Manual
  78.  
  79.  
  80.  
  81.  
  82. TABLE OF CONTENTS
  83. -----------------
  84.  
  85.  
  86. THE UPLOAD FILE CHECKER.......................................27
  87.      Purpose..................................................27
  88.      Function.................................................27
  89.      Maximum and Actual Percent Dupes in an Upload............28
  90.      Updating ZDCS Database(s) After an Upload................29
  91.      DOS Error Levels.........................................29
  92. CALLING THE UPLOAD FILE CHECKER...............................30
  93.      Calling ZDCSFC.EXE from EXZTEST..........................30
  94.      Calling ZDCSFC.EXE from the PCBTEST.BAT File.............30
  95.      The %1 %2 %3 Parameters..................................32
  96. PROCESSING LOCAL UPLOADS......................................32
  97. PRE-TESTING...................................................34
  98. ZIPFILES WITHIN ZIPFILES......................................35
  99. CD-ROMS AND DATABASE MERGING..................................36
  100. PKZIP AV STAMP INTEGRITY......................................37
  101. ARJ SECURITY ENVELOPE INTEGRITY...............................38
  102. ACCURACY OF THE CRC32 METHOD..................................39
  103. MEMORY USAGE..................................................41
  104. TROUBLE-SHOOTING GUIDE........................................41
  105.      Your system is crashing during the upload test...........41
  106.      ZDCSDB.EXE (the database build) is crashing..............42
  107.      ZDCS is reporting a device I/O error (in any module).....42
  108.      ZDCS reports path/file access errors.....................43
  109.      QEMM exception 13 errors occur when running ZDCS.........43
  110. REGISTRATION..................................................43
  111. SUPPORT.......................................................45
  112.      Contact Information......................................45
  113.      Goodies..................................................46
  114.           Database Merge......................................46
  115.           Pre-Built CD-ROM Databases..........................46
  116.           Local Upload Processing.............................47
  117.           Database Browser....................................47
  118.           Fixpath.............................................47
  119.           BBS Ad Tracker......................................47
  120.           Conversion from ZDCS 1.6x to ZDCS 2.01..............47
  121.      Documentation............................................48
  122. FUTURE ENHANCEMENTS...........................................48
  123. ACKNOWLEDGEMENTS..............................................48
  124. COPYRIGHTS AND LEGAL STUFF....................................49
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.                                   - 2 -
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139. ABOUT THE DOCS
  140. --------------
  141.  
  142. Welcome to the technical reference manual ZDCS-REF.TXT for ZDCS
  143. version 2.01.  This manual has been prepared to give you an easy
  144. reference guide for the various parts, functions, and options in ZDCS.
  145. It is deliberately arranged to be modular in organization so that you
  146. can look up whatever interests you without having to read the entire
  147. manual.
  148.  
  149. This manual should be the =second= doc file that you read.  We
  150. recommend that you first read the walk-through ZDCSWALK.TXT if you are
  151. new to ZDCS, or the conversion file CONVERT.TXT if you are running
  152. ZDCS 1.6x and looking to convert to version 2.01.  That will get you up
  153. and running painlessly.
  154.  
  155. The walk-through ZDCSWALK.TXT is a friendly guide that is meant to
  156. hold your hand and whisper sweet explanations in your ear as you
  157. install and first explore ZDCS.  It's arranged to take you through all
  158. the steps you need to know from beginning to end.  The walk-through is
  159. the first place that new users of ZDCS should go for guidance when
  160. installing and configuring ZDCS.
  161.  
  162. The conversion file CONVERT.TXT is written specially for the user of
  163. ZDCS 1.6x upgrading to version 2.01.  It provides instructions for
  164. quick conversion from the older versions of ZDCS to version 2.01.  If
  165. you're already familiar with ZDCS 1.6x and want to upgrade to the
  166. current version, this is the first place you should look for help in
  167. getting ZDCS 2.01 up and running on your system.  It is also the place
  168. to go for answers to questions specific to the upgrade, like how to
  169. convert your old ZDCS 1.6x database to the new database format used in
  170. ZDCS 2.01.
  171.  
  172.  
  173.  
  174.  
  175. PURPOSE OF ZDCS
  176. ---------------
  177.  
  178. ZDCS is a shareware set of utilities intended to help a PCBoard sysop
  179. deal with the problem of duplicate files, whether those files are
  180. already on the bbs or are being uploaded by a caller.  It provides
  181. specific support for looking inside archives made with PKZIP,
  182. including PKZIP version 1.93 (ZIP files),  archives made with ARJ (ARJ
  183. files), and self-extracting files made with either PKZIP or ARJ (SFX
  184. files).  ZDCS processes all of these archives so that the differences
  185. between them are transparent to the sysop and caller.  To make this
  186. walk-through easier to read, we'll refer to all of these file types as
  187. archives.  ZDCS also provides support for accepting unzipped GIFs.
  188.  
  189. ZDCS helps to manage the problem of duplicate files in two ways.
  190.  
  191. 1. It provides a method for weeding out duplicate files from an
  192.    existing collection of files, like a bbs file system or a CD-ROM
  193.    collection before mastering.
  194.  
  195.  
  196.  
  197.  
  198.                                   - 3 -
  199.  
  200.  
  201.  
  202.  
  203.  
  204. 2. It provides a duplicate checking method for any prospective
  205.    addition to the existing file base, such as uploads to a bbs or
  206.    late additions to the CD-ROM collection.
  207.  
  208. ZDCS was written by a sysop and programmer who knows that sysops never
  209. have enough time to do all the things they would like to do on their
  210. boards.  Making ZDCS friendly to use for both sysop and caller has
  211. been important since version 1.0 was first written.
  212.  
  213. Although ZDCS was developed primarily for use on PCBoard bbs's, it can
  214. also be used to look for duplicates on other systems as well, such as
  215. a shareware CD-ROM or even multiple directories on your hard drive
  216. system.  However, it's on a bbs that ZDCS really shows its stuff.
  217.  
  218. ZDCS can be told to decline an upload, to automatically remove
  219. duplicate files, to delete those pesky little bbs ads from uploads,
  220. and to recognize "allowed duplicates" - or any combination of the
  221. above.  You can tell ZDCS to accept anything that a privileged user
  222. uploads, and change your mind on who's "privileged" and who's not.
  223. There's even a pre-test capability that lets callers easily find out
  224. ahead of time whether or not their intended upload duplicates files
  225. already on your board.  All of these are discussed in this reference
  226. manual.  Setup and configuration are also described in the walk-
  227. through guide ZDCSWALK.TXT.
  228.  
  229.  
  230.  
  231.  
  232. GENERAL TECHNICAL INFORMATION
  233. -----------------------------
  234.  
  235. ZDCS handles file archives with the .ZIP extension created by PKZIP
  236. (including version PKZIP 1.93), with the .ARJ extension created by
  237. ARJ, and with the .EXE extension created by PKZIP or by ARJ (self-
  238. extracting files, also called SFX).  ZDCS is able to see inside each
  239. of these archives to deal with the individual files inside them.  For
  240. simplicity, we will refer to all of these files as zipfiles.
  241.  
  242. ZDCS also handles GIF files.  These are individual graphic files that
  243. already have their own compression.  GIFs may be uploaded to some
  244. bbs's as individual files.  They are not archives of multiple
  245. freestanding files, so ZDCS does not need to look "inside" them.  In
  246. fact, ZDCS thinks of them rather like poor zipfiles with only a single
  247. file in them.
  248.  
  249. Whenever ZDCS encounters a file that is not a ZIP or an ARJ or an SFX,
  250. it treats that file like a GIF.  Although we will continue to use the
  251. term GIF to refer to these files, ZDCS could actually handle any
  252. "other" type of file by treating it as a single file, the same as it
  253. does with GIFs.
  254.  
  255. ZDCS does not provide support for archiving methods besides ZIP and
  256. ARJ.  This means that if ZDCS encounters an LZH archive, for example,
  257. it cannot see inside the archive to look at the individual files.
  258. Instead, the entire archive would be treated as a single GIF-type
  259. file.
  260.  
  261.  
  262.  
  263.  
  264.                                   - 4 -
  265.  
  266.  
  267.  
  268.  
  269.  
  270. ZDCS makes use of the 32-bit CRC, often called the CRC32, used
  271. internally by PKZIP for ZIPs and SFXs.  When ZDCS encounters any other
  272. file, it considers that file to be a GIF and calculates the CRC value
  273. for it.
  274.  
  275. ZDCS checks files for duplicates by keeping a database of the CRC
  276. values.  When new files are added to the system (uploads), ZDCS
  277. compares the CRC values of the newcomers to those in the database to
  278. determine if there are any matches, indicating duplicate files.  This
  279. method uses the contents of the files and is independent of the names
  280. of those files.
  281.  
  282. The ZDCS database of CRC values uses a B-tree index, so there are no
  283. external sort utilities or regular file maintenance requirements of
  284. any kind.
  285.  
  286. ZDCS is compatible with any Netbios compatible lan, such as Lantastic
  287. or Novell Netware.  It has also been tested extensively with many CD-
  288. ROM devices and with Alloy slave cards.
  289.  
  290.  
  291.  
  292.  
  293. ZDCS OPTIONS
  294. ------------
  295.  
  296. ZDCS has five sets of options that can be configured independently of
  297. each other and changed at any time.  You can try out the different
  298. options and change your mind about which ones you want to use without
  299. re-installing ZDCS.
  300.  
  301. For a good guide to choosing the options to fit your system, take a
  302. look at the walk-through ZDCSWALK.TXT.  As part of the installation
  303. guide it explains what each option can mean to your bbs and what some
  304. of the possible consequences are.  Each of these options is also
  305. covered in greater technical detail in other sections of this
  306. reference manual.
  307.  
  308. Running ZDCS without any of the extra options enabled gives you a
  309. basic duplicate checking system that will not delete any files
  310. automatically.  It will still tell you about all duplicate files, but
  311. it won't be able to distinguish between files you always want to
  312. delete (like bbs ads), files that duplicate exactly ones already on
  313. your board, and files that are duplicates but still important to keep
  314. (like VALIDATE.COM from Macafee's SCAN program).
  315.  
  316. You can try out the different options and change your mind about which
  317. ones you want to use without re-installing ZDCS.  All it takes is a
  318. change to the appropriate line(s) in the configuration file.
  319.  
  320.  
  321. Deletion of Duplicate Files
  322. ---------------------------
  323.  
  324. ZDCS can be set to either flag or delete duplicate files from uploads
  325. to your bbs.  Either way, ZDCS will still recognize the files that are
  326. duplicates of ones already in the bbs file system and leaves you
  327. messages in a log file.  This deletion feature does not operate on a
  328. GIF file.
  329.  
  330.                                   - 5 -
  331.  
  332.  
  333.  
  334.  
  335.  
  336. Enabling the deletion of files is the only way that ZDCS could ever
  337. have the opportunity to change the AV stamp on a zipfile made with
  338. PKZIP, or the security envelope on a zipfile made with ARJ.  That
  339. happens only if ZDCS deletes a file that is included "inside" the AV
  340. stamp or the security envelope.  (It is possible to create a either
  341. type of archive that has additional files added outside stamp or
  342. envelope but still inside the same archive.)  ZDCS can be set to
  343. delete duplicate files and / or bbs ads, with each option being set
  344. independently of the other.
  345.  
  346.  
  347. Allowed Duplicates
  348. -----------------
  349.  
  350. You can designate certain files as allowed duplicates.  Although these
  351. files may already be present on your bbs, you can tell ZDCS not to
  352. treat them like duplicates.  This prevents ZDCS from deleting them if
  353. you have selected the option to delete duplicate files.  It also
  354. prevents the allowed duplicates from being counted in the calculation
  355. of the percentage of duplicates in an upload.
  356.  
  357. Let's look at an example to see both of these effects in action.
  358.  
  359.    A caller uploads a zipfile containing eleven files.  One of
  360.    those files is in your allowed duplicates list, and three of the
  361.    files are already present on your board.  ZDCS will report that
  362.    there is one allowed duplicate in the zipfile.  Since that one
  363.    file is not counted in the calculations, ZDCS will ignore it
  364.    when determining the percentage of dupes in the zipfile:
  365.  
  366.           Total Number of Files    10   (not eleven!)
  367.           Number of Dupes           3   (allowed dupes don't count)
  368.           Percentage of Dupes 30%  (3/10, not 3/11)
  369.  
  370. This feature does work for GIF files.  If a GIF is included among the
  371. allowed duplicates, then a repeat upload of the same GIF will not be
  372. flagged as a duplicate, and the upload will be accepted.
  373.  
  374.  
  375. Privileged Users
  376. ----------------
  377.  
  378. You can designate one or more user names as privileged users.  Any
  379. file that is uploaded by a someone on the privileged user list is
  380. never declined by ZDCS, no matter how many duplicate files there may
  381. be in it.  This provides you with the option of excluding one or more
  382. usernames from the usual dupe checking requirements you've set for the
  383. rest of your callers.
  384.  
  385.  
  386. BBS Ads
  387. -------
  388.  
  389. You can specify certain files as truly obnoxious.  These are
  390. collectively referred to as bbs ads after one of our favorites,
  391. although they could also include get-rich-quick files or any other
  392. nuisance file that you've already seen once and don't ever want to see
  393. again.  ZDCS can be told to either flag or delete these files from all
  394. uploads.
  395.  
  396.                                   - 6 -
  397.  
  398.  
  399.  
  400.  
  401.  
  402. This option is completely independent of the option to delete
  403. duplicate files.  A major distinction between the two types of files
  404. is that bbs ads are files that are known and despised ahead of time.
  405. This option provides a safe way to delete them without risking the
  406. removal of authors' unchanged files from newer shareware versions.
  407. The bbs ads option does not operate on a GIF file.
  408.  
  409. Enabling the deletion of files is the only time that ZDCS can ever
  410. change the AV stamp on a zipfile made with PKZIP, or the security
  411. envelope on a file made with ARJ.  That happens only if ZDCS deletes a
  412. file that is included "inside" the AV stamp or the security envelope.
  413. (It is possible to create either archive that has additional files
  414. added outside the stamp or envelope but still inside the same
  415. archive.)  ZDCS can be set to delete bbs ads and / or duplicate files,
  416. with each option being set independently of the other.
  417.  
  418.  
  419. Pre-Testing
  420. -----------
  421.  
  422. ZDCS offers an easy method for callers to your bbs to pre-test an
  423. upload before actually sending the full file to the board.  The pre-
  424. test is quick and simple for them to do, and gives the same
  425. information that callers would see after sending the full file.  There
  426. are no upload credits granted for using just the pre-test feature
  427. without sending up the full file.
  428.  
  429. A canned bulletin is included in this package to explain to your
  430. callers how to use the pre-test feature.  The sysop side of pre-
  431. testing is also easy to implement, and is discussed in the PRE-TESTING
  432. section of this manual.
  433.  
  434.  
  435.  
  436.  
  437. INSTALLATION OVERVIEW
  438. ---------------------
  439.  
  440. There are six basic steps to installing ZDCS to work with the bbs:
  441.  
  442. 1.   Copying the ZDCS files to a new ZDCS directory.   (required)
  443. 2.   Setting up the configuration file.           (required)
  444. 3.   Creating the initial database.               (required)
  445. 4.   Creating the bbs ads database).              (optional)
  446. 5.   Creating the list of allowed duplicates.          (optional)
  447. 6.   Setting up the check for uploaded duplicates.     (required)
  448.  
  449. There is a walk-through called ZDCSWALK.TXT included in this package
  450. to help you install ZDCS.  It's a friendly guide to understanding the
  451. functions and installing the programs on your bbs.  It is especially
  452. good for taking you through the steps slowly and in order so that
  453. installation goes smoothly on your system.
  454.  
  455. If you're already using ZDCS version 1.6x and you want to convert to
  456. version 2.01, then the file you need is CONVERT.TXT.  It guides you
  457. through the conversion so that you don't have to spend time creating a
  458. new database from scratch or reinventing the wheel.
  459.  
  460.  
  461.  
  462.                                   - 7 -
  463.  
  464.  
  465.  
  466.  
  467.  
  468. This technical reference manual has information on all the parts,
  469. functions and options of ZDCS, but it's arranged with a different
  470. purpose in mind:  to allow you to find and read only those specific
  471. sections you want to know more about.  If you want to install ZDCS, we
  472. highly recommend using the walk-through as your primary guide and all-
  473. around hand-holder.  If you want to convert from ZDCS 1.6x to ZDCS
  474. 2.01, then we recommend the conversion file as your best friend for
  475. speeding up the process.
  476.  
  477.  
  478.  
  479.  
  480. THE ZDCS DIRECTORY
  481. ------------------
  482.  
  483. All of the working files for ZDCS should be collected together in one
  484. directory.  The only possible exception to this is the ZDCS database
  485. (ZDCS.DAT and ZDCS.NDX) created for your system, which you have the
  486. option of locating elsewhere.  All of the executables in this package
  487. (*.EXE), the configuration file (ZDCS.CFG), and any additional files
  488. you create such as the bbs ads database or the list of allowed
  489. duplicates, must all be together in this one directory.  For
  490. simplicity, this directory is referred to as your ZDCS directory.
  491.  
  492. The ZDCS database is by far the biggest set of files for most bbs and
  493. CD-ROM applications.  The option to locate it somewhere else besides
  494. the ZDCS directory is a convenience, especially for sysops who may not
  495. have enough disk space where they want to put the ZDCS directory.
  496.  
  497. The ZDCS directory should be part of your PATH statement.  Remember
  498. that you'll need to reboot after changing the PATH statement in order
  499. for the changes to take effect.
  500.  
  501.  
  502.  
  503.  
  504. THE ZDCS CONFIGURATION FILE
  505. ---------------------------
  506.  
  507.  
  508. Function
  509. --------
  510.  
  511. The ZDCS configuration file ZDCS.CFG is central to the entire process.
  512. All the modules of ZDCS look for and use at least parts of this file.
  513. It's also the place where you set many of the options and all of the
  514. parameters of ZDCS.
  515.  
  516. For such a powerful component, the ZDCS.CFG is surprisingly simple:
  517. just thirteen short lines of ASCII that you can create with any text
  518. editor.  A sample configuration file is included with this package.
  519. The contents of each line are discussed in excruciating detail further
  520. on in this section.
  521.  
  522. Under most circumstances, ZDCS.CFG should be in the same directory as
  523. the rest of the ZDCS files.  This is always true if you are running
  524. DOS version 3.x or higher.
  525.  
  526.  
  527.  
  528.                                   - 8 -
  529.  
  530.  
  531.  
  532.  
  533.  
  534. The one time that the configuration should be located elsewhere is for
  535. those poor lost souls still running DOS 2.x.  In this unusual case,
  536. ZDCS.CFG belongs in whichever directory will be the current directory
  537. when the ZDCS program modules are run.
  538.  
  539.  
  540. Line 1
  541. ------
  542.  
  543. This line is the complete drive, path and filename of an ASCII text
  544. file.  This file is one that you create listing all the pathnames, one
  545. on each line, for all the directories containing the zipfiles / GIFs
  546. to be included in the database.
  547.  
  548. PCBoard refers to this as the download path list and defaults to
  549. DLPATH.LST as the file name in PCB setup.  You can use that file to
  550. point to the complete bbs file directory only if you are =not= using
  551. the index file feature in PCBoard 14.5a.
  552.  
  553. You can also use the freeware utility DIRTREE (by Mike Cocke,
  554. available on The Central Core BBS) to create a text file of all
  555. directories on a specified drive.  Depending on how your system is
  556. arranged, you might be able to use the resulting text file directly,
  557. or you might need to delete a set of lines from the file.  In any
  558. case, you won't have to wonder whether you've remembered to include
  559. all the pathnames.
  560.  
  561. There is no upper limit on the number of pathnames that can be
  562. processed.  It does not matter whether or not you've included the
  563. trailing backslash for each pathname.
  564.  
  565. To process a new collection of files into the ZDCS database, like
  566. those on a CD-ROM, just change either this line or the contents of the
  567. file to which it points.
  568.  
  569.  
  570. Line 2
  571. ------
  572.  
  573. This line is the complete drive, path and filename where you want the
  574. finished ZDCS database (ZDCS.NDX and ZDCS.DAT) to be located.  It
  575. makes no difference if you include the trailing backslash here or not.
  576.  
  577. You can put the ZDCS database in the same directory as the rest of the
  578. ZDCS files and programs, or you can decide to put it on a different
  579. drive or even across the network.  This was made possible because the
  580. database is the largest pair of files, and some sysops needed the
  581. flexibility of locating them on a drive with more spare room.  All the
  582. rest of the ZDCS files (such as the bbs ads, the allowed duplicates,
  583. and whatnot) should be grouped together in the same directory with the
  584. executables.
  585.  
  586.  
  587. Line 3
  588. ------
  589.  
  590. This line is the complete drive, path and filename giving the location of
  591. the privileged user list file.  If you don't want to have any privileged
  592. users on your system, simply leave this line blank.
  593.  
  594.                                   - 9 -
  595.  
  596.  
  597.  
  598.  
  599.  
  600. A privileged user is someone who can upload no wrong.  Whenever a file is
  601. uploaded by a user named on the privileged user list, the file is
  602. explicitly passed by ZDCS, no matter how many duplicates there might be
  603. in it.  Even if you have enabled deletion of duplicate files and / or bbs
  604. ads, ZDCS still will not delete them if the original zipfile was uploaded
  605. by a privileged user.  The privileged user status takes precedence.
  606.  
  607. The format of the file containing the privileged user list is
  608. straightforward.  Put one username on each line and end each line with a
  609. CR/LF.  It makes no difference if you use upper case, lower case, or a
  610. mixture of the two.  There is no maximum number of names you may put in
  611. the privileged user list, but remember that if you make this a long list,
  612. ZDCS will take longer to check new uploads because it will have to check
  613. every name in this list.
  614.  
  615. This feature was added for a couple of sysops who wanted to pass specific
  616. files (beta code) to each other as part of unattended mail runs, and
  617. wanted those files automatically posted for public access instead of
  618. possibly held for later sysop review.
  619.  
  620.  
  621. Line 4
  622. ------
  623.  
  624. This line is either the letter Y or the letter N.  It controls whether
  625. you want ZDCS to add the disposition line to the end of the upload
  626. description.  The disposition line shows the total number of files in an
  627. upload and the number of those that were duplicate files.  It is used
  628. when ZDCS declines an upload.  Here is a sample disposition line:
  629.  
  630.                ZDCS:  12  Duplicates /  12  files
  631.  
  632. The actual numbers will change depending on the file.
  633.  
  634. ZDCS has to be running in standalone mode for this, not with any of the
  635. current gateways to file integrity checkers, such as with Extest.  When
  636. ZDCS is running with a gateway, then the actual contents of this line are
  637. ignored by the program.  Technically, it's the use of the OMP parameter
  638. in the gateweay connection and not the existence of the gateway itself
  639. that is the controlling factor.  If you're really interested in the
  640. abstruse technical details, take a look at the third party interface file
  641. ZDCS-TPI.ZIP on The Bloom Beacon-Picayune BBS.
  642.  
  643. You still need to have this line present in the configuration file so the
  644. total line count doesn't fall off, but the line can contain anything as a
  645. placeholder.
  646.  
  647. This new feature was added by request.  Please note that you must be
  648. running PCBoard 14.5a in order to make use of it, and that the third
  649. command line parameter must be specified (ZDCSFC %1 %2 %3) in your
  650. PCBTEST.BAT file.  Otherwise, leave this fourth line of the config set
  651. to the letter N.
  652.  
  653.  
  654. Line 5
  655. ------
  656.  
  657. This line is either the letter Y or the letter N.  It controls whether
  658. you want ZDCS to truncate nulls from the end of GIFs (or "other" type
  659.  
  660.                                   - 10 -
  661.  
  662.  
  663.  
  664.  
  665.  
  666. files) before performing any operations on them.  The truncation is
  667. actually done on a copy of the file and the original is left intact.
  668. Any AV stamp that is present is not disturbed.
  669.  
  670. Nulls (ASCII 0) can be added to the end of a file by some transfer
  671. protocols (such as Ymodem) in order to make the entire file come out
  672. on a block segment.  Other protocols (such as Zmodem) do not add the
  673. null characters.  That would make the identical file uploaded by the
  674. two different protocols slightly different files by the time they
  675. arrived on your system.  If the nulls were included in the file
  676. contents when any calculation or comparison was done, it would look
  677. like two different files instead of the same file transferred by two
  678. different protocols.  Setting this line to the letter Y enables ZDCS
  679. to ignore those extra nulls.
  680.  
  681. The advantage of using this feature is increased accuracy when the
  682. same file is uploaded by different transfer protocols.  The
  683. disadvantage is that it adds a bit of time to the upload checking and
  684. database build operations.  The time is needed for ZDCS to create a
  685. temporary copy of the file in order to remove the exrta nulls, and
  686. again to delete that temporary file, leaving the original upload
  687. intact.  Use of the option to truncate nulls also requires enough
  688. additional disk space to hold a temporary copy of the file so that the
  689. original one is not disturbed.
  690.  
  691.  
  692. Line 6
  693. ------
  694.  
  695. This line is an integer - that's a whole number, no decimals - between
  696. 0 and 100.  It sets the maximum percentage of dupes that your bbs will
  697. accept in an upload.
  698.  
  699. ZDCS will calculate the actual percentage of duplicates in the upload
  700. and compare it to your maximum percentage.  If the actual percentage
  701. is lower, the upload is accepted.  If the actual percentage is equal
  702. to or higher than the maximum you specified, the upload is declined
  703. and kept in your private upload directory for your review.
  704.  
  705. Setting the percentage to 100 effectively bypasses this filter, since
  706. it permits a duplicated GIF or a zipfile with nothing but duplicates
  707. to pass.  At the other extreme, setting the percentage to 0
  708. effectively requires that the uploaded GIFs and zipfiles have no
  709. duplicates at all.
  710.  
  711. If you make a mistake and enter a decimal on line 6, ZDCS will not
  712. crash.  It will simply truncate your number (lop off everything after
  713. the decimal point) and use the resulting integer as the maximum
  714. percentage of dupes.
  715.  
  716. This works out quite well in actual practice.  Uploads that are a
  717. fraction of a percent under the maximum percentage of duplicates are
  718. the only files where this makes any difference, and the use of
  719. truncating instead of rounding means that they will always be passed.
  720. IF ZDCS rounded the decimal points instead, there would be some
  721. uploads that would round up, making their actual percentage of dupes
  722. the same as the maximum value.  Such files are declined by ZDCS.
  723.  
  724.  
  725.  
  726.                                   - 11 -
  727.  
  728.  
  729.  
  730.  
  731.  
  732. Line 7
  733. ------
  734.  
  735. This line is the complete drive, path and filename you want ZDCS to
  736. use for the log file created by the upload file checker ZDCSFC.  This
  737. log is an ASCII text file that contains information from the upload
  738. file checker ZDCSFC for each upload it has processed.  Each message
  739. about a specific upload includes the following:
  740.  
  741.   name of the uploaded zipfile or GIF
  742.   list of all component files inside a zipfile
  743.   which files are flagged as bbs ads
  744.   which files are marked as duplicates
  745.   reference to the file already in the database which is duped by the
  746.      UL
  747.   which files are marked as allowed duplicates
  748.   actual percentage of dupes in the upload
  749.   whether the upload was accepted or declined
  750.  
  751. The fifth line in the list above is new in ZDCS 2.01.  It means that
  752. when a duplicate file is found in an upload, ZDCS will provide the
  753. reference to the zipfile or GIF containing the copy of that file which
  754. was already on the bbs.  It happened that callers who had uploaded
  755. files with lots of dupes were not always able to find where those
  756. files already existed on the system, often because files had been
  757. renamed.  Those callers sometimes pestered the sysop for this
  758. information, which wasn't always easy for the sysops to locate,
  759. either.  Now this reference is written directly to the upload checker
  760. log file The information includes the name of the zipfile or GIF and
  761. its pathnumber in the system.
  762.  
  763. If PCBOARD.SYS is in the current directory when the upload file
  764. checker is run, then the name of the currently logged caller is also
  765. included in the log file.
  766.  
  767.  
  768. Line 8
  769. ------
  770.  
  771. This line is either the letter Y or the letter N.  It controls the
  772. switch to tell ZDCS whether to delete bbs ads (Y) in an uploaded
  773. zipfile or to just flag them (N).  If you've decided not to enable any
  774. checking for bbs ads at all, just set this to N.
  775.  
  776. This is not the place where you decide if you want to check for bbs
  777. ads.  You do that by creating the bbs ads database.  If that database
  778. is found, then ZDCS will check files against the database of known bbs
  779. ads looking for a match.  If there is no bbs ads database, ZDCS won't
  780. be able to check for them.
  781.  
  782. The choice you are making here is whether to remove those known bbs
  783. ads from zipfiles, when they are encountered.  This decision is
  784. separate from the choosing whether to delete duplicate files in
  785. general, which is set in line 9.  You may configure these two options
  786. independently of each other.
  787.  
  788.  
  789.  
  790.  
  791.  
  792.                                   - 12 -
  793.  
  794.  
  795.  
  796.  
  797.  
  798. Line 9
  799. ------
  800.  
  801. This line is either the letter Y or the letter N.  It controls whether
  802. you want ZDCS to delete all duplicate files from an upload (Y) or just
  803. flag them and leave them intact (N).
  804.  
  805. If you choose to delete all duplicate files, then any duplicate file
  806. that ZDCS finds that is not specifically listed as either an allowed
  807. duplicate or a bbs ad will be deleted from the zipfile ZDCS is
  808. processing.  The bbs ads are handled by a separate option, determined
  809. by the existence of the bbs ads database ZDCS-BBA.NDX and configured
  810. in line 8.
  811.  
  812.  
  813. Line 10
  814. -------
  815. This line is reserved for a single line of text by the sysop.  The
  816. contents of this line are appended to the PCBFAIL.TXT file created by
  817. ZDCS whenever an upload is declined.  The caller who has just uploaded
  818. the declined file sees this line of text as a message on the screen.
  819.  
  820. This line is where you can express from 1 to 72 characters' worth of
  821. creativity.  Some callers have become quite fixated on the idea that
  822. "declined" is the same as "thrown out" - which is of course not true.
  823. You can use this line to tell the caller what has happened or will
  824. happpen with the upload.  One possible line to use is:
  825.  
  826.      Too many duplicate files - upload must be reviewed by sysop.
  827.  
  828. If you don't want to display any message to the caller, just place
  829. something innocuous like a period or even a blank space on this line.
  830. Just don't leave the line completely blank!  You also shouldn't use
  831. any quotation marks in this line.  You can make use of PCBoard
  832. @variables and &filespec to your heart's content;  both are fully
  833. supported here.
  834.  
  835. If your file integrity checker overwrites the PCBFAIL.TXT file, your
  836. callers won't see this line of text unless you choose to use ZPEND.
  837. This is another free utility available on The Bloom Beacon-Picayune BBS.
  838. By using ZPEND with such an integrity checker, you will make sure that
  839. this line of text is displayed to the caller.  Also displayed will be
  840. a complete ZDCS breakdown of the upload, showing which files are bbs
  841. ads, dupes, allowed duplicates, and so on.
  842.  
  843.  
  844. Line 11
  845. -------
  846. This line contains the filename ZDCSFC.OUT and nothing else.  For all
  847. practical purposes, this line is planning for the future.
  848.  
  849. Technically, this line points to the name of an ASCII text file that
  850. will be created every time an upload is processed.  It's a spare copy
  851. of the ZDCS summary information that most upload checkers overwrite.
  852. ZPEND and some utilities-in-progress use it.
  853.  
  854. Leave this line set to ZDCSFC.OUT until further notice or features.
  855.  
  856.  
  857.  
  858.                                   - 13 -
  859.  
  860.  
  861.  
  862.  
  863.  
  864. Line 12
  865. -------
  866.  
  867. This line is the complete drive and pathname of a RAM drive that is
  868. available to ZDCS for certain types of processing work.
  869.  
  870. ZDCS can make use of a RAM drive to speed up the processing of
  871. embedded archives (referred to as zipfiles within zipfiles).  It can
  872. also use the RAM drive to process GIFs ("other" files) if you set
  873. config line 5 to Y in order to truncate nulls.
  874.  
  875. The existence of the RAM drive is verified by ZDCS, but the amount of
  876. space available on it is not checked.  If you run out of space on the
  877. RAM drive while ZDCS is processing an upload, the upload will be
  878. declined.
  879.  
  880. If you do not want to use a RAM drive, leave this line blank.
  881.  
  882.  
  883. Line 13
  884. -------
  885.  
  886. The complete drive, path, and file specification for PKUNZIP.EXE -
  887. INCLUDING the extension (EXE)!  If you omit this or enter it
  888. incorrectly, you'll see a warning message in your ZDCSFC.LOG file
  889. explaining that embedded archives will not be processed.  Don't say
  890. I didn't warn you...
  891.  
  892.  
  893. Line 14
  894. -------
  895.  
  896. The complete drive, path, and file specification for ARJ.EXE -
  897. INCLUDING the extension (EXE)!  If you omit this or enter it
  898. incorrectly, you'll see a warning message in your ZDCSFC.LOG file
  899. explaining that embedded archives will not be processed.
  900.  
  901.  
  902. Line 15
  903. -------
  904.  
  905. This line consists of the single letter Y or N.  It controls whether
  906. ZDCS displays the one line "Registered to..." message after the board
  907. receives an upload (Y) or turns off the display of this message (N).
  908. Either way, the caller still sees the file by file breakdown of the
  909. upload and the status (duplicate, bbs ads, etc.) of each file.
  910.  
  911. This feature is only recognized by the registered version of ZDCS.  It
  912. has no effect on the three line message displayed by the unregistered
  913. version.  It is also the only line of the configuration file that you
  914. can forget to include without causing major problems.  If the line is
  915. missing, ZDCS defaults to (Y) and displays the three line message.
  916.  
  917. This would probably be a fine time to wax poetical about the
  918. advantages of registration.  Instead, we'll just direct you to the
  919. section in this manual on registration for more information about
  920. that, and to the section on support for some of the reasons why.
  921. (Actions speak louder than words.)
  922.  
  923.  
  924.  
  925.  
  926. THE ZDCS DATABASE BUILD
  927. -----------------------
  928.  
  929.  
  930. Purpose
  931. -------
  932.  
  933. In order for ZDCS to process new uploads, it must first have created a
  934. database for the existing files to serve as a standard of comparison.
  935. This is referred to as the duplicate file database, the ZDCS database,
  936. or the CRC database.  For simplicity, we will also refer to it as
  937. "the" database.  Information stored in this database includes pathname
  938. information, the file name of every zipfile and GIF examined by ZDCS,
  939. and the names and CRC values of every individual file.
  940.  
  941.  
  942.  
  943.                                   - 14 -
  944.  
  945.  
  946.  
  947.  
  948.  
  949. There is another purpose to building the ZDCS database besides
  950. enabling ZDCS to check uploads.  It also serves as a tool to help you
  951. weed out duplicate files from the existing collection.
  952.  
  953.  
  954. Creation of the Initial Database
  955. --------------------------------
  956.  
  957. THE ZDCS database of duplicate files is created with the database
  958. build program ZDCSDB.  The finished database consists of two files:
  959. ZDCS.NDX and ZDCS.DAT.  A  third file is also created during this
  960. process:  ZDCS-DBB.LOG, which is an ASCII text file logging messages
  961. from the database creation process.
  962.  
  963. There is no limit to the number of component files within a zipfile.
  964. ZDCS will "see" and process all the member files.  The more files in
  965. the zipfile, however, the longer the processing of that archive will
  966. take.
  967.  
  968. To create the database, you simply run ZDCSDB.  This program looks for
  969. the ZDCS configuration file to tell it which files you want to
  970. process.  These can be in multiple directories, on different drives,
  971. or across a network.  Once you start the build process, there is
  972. nothing more to do until it is complete.  Everything will run
  973. automatically with no need for additional input from you.  While the
  974. program is running, there is a screen display that gives you the
  975. current status of operations and one very important piece of
  976. information:  use the escape key if you wish to abort the process.
  977. Additional explanation of the screen display is covered in the next
  978. section of this manual.
  979.  
  980.  
  981. The Screen Display During the Database Build
  982. --------------------------------------------
  983.  
  984. The ZDCSDB status summary contains both useful and esoteric
  985. information.  The most important of these is the notice that the
  986. escape key is the one to use in order to abort the database build.
  987. Aborting the process any other way will almost certainly lead to lost
  988. clusters on your hard disk, not to mention a very unhappy sysop.
  989.  
  990. In general, ZDCS treats an SFX file made with either PKZIP or ARJ just
  991. like a ZIP or ARJ file, and this documentation has reflected that fact
  992. by using the term "zipfile" to refer to all of these archives.  For
  993. the purposes of this section, however, we will use the individual
  994. terms SFX and ZIP, since the screen display does distinguish between
  995. them.
  996.  
  997. One line in the middle of the screen will change frequently as ZDCSDB
  998. is processing files.  Besides letting you know that the system is
  999. working, this line tells you something about the processing steps as
  1000. they take place, just in case you were curious.
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.                                   - 15 -
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015. The possibilities are:
  1016.  
  1017. Initializing. ZDCSDB is pulling its act together and gearing up for
  1018.                work
  1019. Directory C1.. ZDCS has just begun processing a new directory
  1020. Directory C2.. ZDCS has just retrieved the next ZIP / ARJ / SFX / GIF
  1021.                file within the same directory
  1022. ZIP Directry.. ZDCS is retrieving information from within an
  1023.                individual zipfile
  1024. SFXID......... ZDCS is testing whether the file being procesed is a
  1025.                self-extracting file, and if so which archive method
  1026.                (PKZIP or ARJ) was used to make it
  1027. SFX(A)........ ZDCS is retrieving information from within an
  1028.                individual SFX file made with ARJ
  1029. SFX(Z)........ ZDCS is retrieving information from within an
  1030.                individual SFX file made with PKZIP
  1031. ZIZ........... ZDCS is processing a zipfile (ZIP or ARJ) within a
  1032.                zipfile (ZIP) or ARJ) - often called an embedded archive
  1033. CRC........... ZDCS is calculating the CRC value for a GIF file
  1034. Fast Forward.. ZDCS has already encountered and processed this exact
  1035.                same file  (It takes good eyes and a slow computer to catch
  1036.                this indicator, which may come up when an aborted
  1037.                database build is resumed.)
  1038. Indexing...... ZDCS is writing the index and data to the Btree files
  1039.  
  1040. Underneath this changing line is a line that tells you which ZIP, ARJ,
  1041. SFX or GIF file is currently being processed, with the full pathname
  1042. included.  Below that is the phrase "Share" or "NoShare" to indicate
  1043. the type of "file opens" being used.  "Share" capability is detected
  1044. by all ZDCS programs to permit automatic use of the appropriate type
  1045. of file access.
  1046.  
  1047. Just to the right of that is the word "Archives" followed by the
  1048. number of ZIPs, ARJs, SFXs and GIFs that have been processed so far.
  1049. And to the right of that (no political statements implied) is the word
  1050. "Members" followed by a number.  That number counts all the individual
  1051. files (those within the ZIP, ARJ, SFX or GIF files) that have been
  1052. processed so far during this session.  (Remember, a GIF shows up as
  1053. having only one member file.)
  1054.  
  1055. And all the way to the right of that same line, way out in right
  1056. field, is the phrase "DB Total" followed by the number of member files
  1057. that are already in the database.
  1058.  
  1059. The next line down starts with "$:" (a dollar sign and a colon)
  1060. followed by a five digit number.  This is arcane internal status
  1061. information that will not be explained here.  (Consider yourself
  1062. lucky.)  The only time you are likely to need this is if there is a
  1063. problem with your system during the database build and we ask you to
  1064. read the screen display to us.
  1065.  
  1066. To the right of that esoterica is the start time.  The end time will
  1067. display immediately to the right of that as soon as the database build
  1068. is complete.  If you leave the room for a peanut butter and pickle
  1069. sandwich while the database is building, this provides a simple way to
  1070. tell if and when the process has finished.
  1071.  
  1072.  
  1073.  
  1074.  
  1075.                                   - 16 -
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081. All the way to the right, in fact in the lower right hand corner of
  1082. the display, is the word "Stack:" followed by a four digit number.
  1083. This is more arcane status information.
  1084.  
  1085.  
  1086. Additions to an Existing ZDCS Database
  1087. --------------------------------------
  1088.  
  1089. Adding new files to the existing ZDCS database is very simple.  If you
  1090. run the database build ZDCSDB when there already is an existing ZDCS
  1091. database, the records for the new files will be added to those already
  1092. in the database.  (If you temporarily rename or move the database
  1093. files mentioned in the database creation section, then ZDCS will not
  1094. recognize them until you restore them.)
  1095.  
  1096. This provides a very simple method for adding large or small file
  1097. collections to an existing database.  All you have to do is edit the
  1098. first line of the configuration file to point to the new files, and
  1099. you're ready to go.  Issue the command ZDCSDB and from here on the
  1100. process will proceed just the same way as it does for creating the
  1101. initial database.
  1102.  
  1103. There is a second way to add files to the ZDCS database.  Available
  1104. free on The Bloom Beacon-Picayune BBS is a merge utility that lets you
  1105. combine two ZDCS databases into one.  This allows you to create
  1106. smaller databases at a time and then merge them together, which can be
  1107. an advantage if you have a very large collection to process.
  1108.  
  1109. The main advantage of the database merge option is that it allows
  1110. sysops to use pre-built ZDCS databases for common file collections,
  1111. like the popular CD-ROMs of shareware programs.  Pre-built databases
  1112. are also available on The Bloom Beacon-Picayune BBS and are mentioned
  1113. in more detail in the section in this manual on support.
  1114.  
  1115. We recommend that you copy the necessary files over to a temporary
  1116. working directory and perform database merging there.  This has two
  1117. advantages:  it minimizes the chances that you'll get confused and
  1118. rearrange part of your "live" system;  and it doesn't interfere with
  1119. the operation of the bbs.  Pick your fastest available processor to
  1120. speed up the operation, and make sure you have enough disk space for
  1121. the new files, too.
  1122.  
  1123. The merge utility ZDCSDBMG.EXE, available in Z2-DBMG.ZIP on The Bloom
  1124. Beacon-Picayune BBS, comes with a text file explaining step by step how
  1125. to perform a database merge using a temporary working directory.  The
  1126. same kind of instructions are also included with every pre-built CD-
  1127. ROM database available on The Bloom Beacon-Picayune BBS.
  1128.  
  1129.  
  1130. ZDCSDB Without a Separate File Integrity Checker
  1131. ------------------------------------------------
  1132.  
  1133. ZDCS is not a file integrity checker and does not intend to replace
  1134. the fine checkers that are already available.  Normal operation of
  1135. ZDCS assumes that you have already processed your files with a file
  1136. integrity checker.
  1137.  
  1138.  
  1139.  
  1140.  
  1141.                                   - 17 -
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147. Human nature and circumstances being what they are, a special switch
  1148. has been included with the database build module to permit some simple
  1149. file integrity checking to be done.  This method has ZDCS call in
  1150. PKZIP or ARJ, whichever is appropriate, to test the zipfiles.  There
  1151. is no checking performed on GIFs at all.
  1152.  
  1153. To use this feature, you issue the database build command as ZDCSDB T
  1154. instead of ZDCSDB.  Because ZDCS now calls PKZIP or ARJ for the file
  1155. integrity checking in addition to the usual functions of the database
  1156. build, the processing time is greatly increased.  If you are only
  1157. processing a small collection of files, such as a batch of local
  1158. uploads, the difference in time is probably unimportant in practice.
  1159. But if you are processing a large set of files, you'll be better off
  1160. making your first pass with a file integrity checker and then using
  1161. the regular ZDCSDB command to build the database.
  1162.  
  1163. If you run ZDCSDB on a collection of files that includes a corrupt
  1164. zipfile, the database build may crash.  While you can find out after
  1165. the fact about the damaged zipfile by reading the log, it's still far
  1166. preferable to avoid the problem entirely by using file integrity
  1167. checking first.
  1168.  
  1169.  
  1170. The Database Build Log File ZDCS-DBB.LOG
  1171. ----------------------------------------
  1172.  
  1173. There is a log file called ZDCS-DBB.LOG created by the database build
  1174. operation.  This is an ASCII text file that logs messages from the
  1175. database creation process.
  1176.  
  1177. If ZDCSDB encountered damaged zipfiles while trying to build the
  1178. database, there would be messages alerting you to that fact in the log
  1179. file.
  1180.  
  1181. If you have any problems while running ZDCSDB, look in this log file
  1182. for help in understanding what happened.
  1183.  
  1184.  
  1185.  
  1186.  
  1187. THE ZDCS DUPLICATE REPORT GENERATOR
  1188. -----------------------------------
  1189.  
  1190. The primary purpose of the duplicate report generator ZDCSDR.EXE is to
  1191. use the information in your ZDCS database to give you a report of all
  1192. duplicate files in your file collection.  The usual time to do this is
  1193. after you have created the initial ZDCS database.
  1194.  
  1195. It is entirely likely that when you first create the initial database
  1196. you will already have some duplicate files in your collection of
  1197. zipfiles and GIFs.  To find out about them you need to run ZDCSDR.EXE.
  1198.  
  1199. First, make sure that your CONFIG.SYS file contains the following
  1200. line:
  1201.  
  1202.           FCBS=32,32
  1203.  
  1204.  
  1205.  
  1206.  
  1207.                                   - 18 -
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213. This is absolutely essential for the database report generator (and
  1214. the merge utility).  No fooling around.  If you have to add this line
  1215. to your CONFIG.SYS, remember to reboot afterwards so that the change
  1216. takes effect.
  1217.  
  1218. Second, switch to a directory (any directory will do) that has enough
  1219. space available to handle the temporary files that will be created
  1220. during the duplicate report generation.  These files are normally
  1221. deleted again when the report is completed, but you need to have
  1222. enough room to store them while the operation is in progress.  If you
  1223. have less space available than ZDCSDR.EXE =estimates= it will need,
  1224. you'll be given the bad news and the opportunity to cancel the report
  1225. generation.
  1226.  
  1227. Third, run ZDCSDR.EXE.  This program is part of the ZDCS package and
  1228. should be in your ZDCS directory with all the rest of the executables.
  1229. (Your ZDCS directory should be in your path.)  This will create an
  1230. ASCII text file containing a three part report that is ready for
  1231. viewing or printing.
  1232.  
  1233. Part one is a list of zipfiles or GIFs that are 100% duplicates of
  1234. other files in the database.  Part two is a list of zipfiles that have
  1235. some level of duplication, but also contain at least one non-
  1236. duplicated file.  Part three is the complete list of all duplicate
  1237. files in the database, including the name and CRC value of the
  1238. duplicated file and the identity with full drive and pathname of the
  1239. zipfile or GIF containing the dupe.
  1240.  
  1241. Note that no duplicate files are deleted by ZDCSDR.EXE when you create
  1242. the initial database.  The list of duplicates, ZDCS-DUP.LST, can be
  1243. used by the sysop to remove any duplicate files in the system.
  1244.  
  1245. Once you have the list of duplicates ZDCS-DUP.LST in hand, you are
  1246. ready to clean out your file system.  Use the information to remove
  1247. any duplicate files from the file collection.  On some of the larger
  1248. bbs file systems, this step alone has freed up megabytes of hard drive
  1249. space.
  1250.  
  1251. After you are sure you have finished cleaning up the file system, it
  1252. is possible to purge duplicate entries from the ZDCS database in order
  1253. to reduce its size.  The command to do this is ZDCSDR P and it should
  1254. =not= be used until you have read the next section in this manual, THE
  1255. ZDCS DATABASE PURGE.
  1256.  
  1257. There are two other switches that can be used to change the operation
  1258. of ZDCSDR.EXE - L and S.
  1259.  
  1260. Issuing the command ZDCSDR L will cause the usual database report to
  1261. be generated, but all those temporary work files will not be deleted.
  1262. This requires a lot of extra disk space to use.  The main reason for
  1263. this switch is debugging purposes.
  1264.  
  1265. Issuing the command ZDCSDR S will sort the database and regenerate the
  1266. ZDCS.NDX file from the existing ZDCS.DAT file.  This has a couple of
  1267. uses:
  1268.  
  1269. 1. If your ZDCS.NDX file has become corrupted or destroyed (we won't
  1270.    ask how, stranger things have happened on computers before), then
  1271.    
  1272.  
  1273.                                   - 19 -
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.    this feature will let you recreate the ZDCS.NDX file without
  1280.    having to recreate the entire ZDCS database from scratch.  If you
  1281.    had a ZDCS.NDX file in the directory before using this feature, it
  1282.    will be overwritten by the fresh index file.
  1283.  
  1284. 2. If you have obtained the *.DAT file for a ZDCS 2.01 database and
  1285.    you want to recreate the *.NDX file, this feature will let you do
  1286.    that.  You'll notice that all the pre-built CD-ROM databases
  1287.    available on The Bloom Beacon-Picayune BBS only have the .DAT file
  1288.    and no .NDX file.  (The *.NDX file isn't needed for the database merge
  1289.    and not including it saves on disk space and transfer time.)  Each
  1290.    of these pre-built databases comes with step by step instructions
  1291.    for using this feature to recreate the index file.  The
  1292.    instructions include the creation of a temporary working directory
  1293.    so that you won't interfere with the "live" installation of ZDCS
  1294.    on your bbs.
  1295.  
  1296. 3. If you've added many new files to your ZDCS database (either with
  1297.    lots of uploads, lucky you, or with database merges), then you
  1298.    might want to investigate this feature.  Running ZDCSDR S on your
  1299.    system will sort your ZDCS.DAT file and will rebuild the ZDCS.NDX
  1300.    file to correspond to the newly reorganized ZDCS.DAT.  This makes
  1301.    for a slightly more efficient operation.  The time you regain in
  1302.    faster processing speed will depend on how badly out of sorts the
  1303.    database had become.  (no pun intended, of course)
  1304.  
  1305.    We recommend running ZDCSDR S to sort the database and regenerate
  1306.    the index file once a year.  Unless you process an unusually high
  1307.    number of files, there's not much need to do it more frequently
  1308.    than that.  Certainly you should =not= put this into your daily
  1309.    event on the board, or it will eat up more time than you'll save.
  1310.    While this operation is much faster than the database creation
  1311.    step, it can still take from 20 minutes to 2 hours to complete
  1312.    (depending on the size of your system).  If you run ZDCSDR S once
  1313.    an average year, your gain in processing speed for upload checking
  1314.    will probably be somewhere between 1% and 10%.
  1315.  
  1316. If you forget which switch does what, you can always issue the command
  1317. ZDCSDR ? and the question mark will tell ZDCS to list the various
  1318. options for you:
  1319.  
  1320.        = Generate the duplicate report.
  1321.          (default choice, no command line parameters needed)
  1322.      P = Purge duplicate records from your ZDCS database.
  1323.      S = Sort and re-index the ZDCS database without purging.
  1324.      L = Perform the standard duplicate report without purging the
  1325.          database, but leave all temporary work files in place.
  1326.  
  1327.  
  1328.  
  1329.  
  1330. THE ZDCS DATABASE PURGE
  1331. -----------------------
  1332.  
  1333. Every duplicate file in your initial collection of files on the bbs
  1334. will be reflected by a duplicate entry in the CRC32 database, which
  1335. ZDCS uses as its standard of comparison for checking new uploads.
  1336.  
  1337.  
  1338.  
  1339.                                   - 20 -
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345. Only one entry for each unique file is needed in order to recognize
  1346. future uploads of the same file.  You can reduce the size of this ZDCS
  1347. database by purging duplicate entries from it.  This leaves just one
  1348. single reference to each individual CRC32 in the database.
  1349.  
  1350. Before you make any changes to the ZDCS database at all, please read
  1351. the section in this manual on the duplicate report generator ZDCSDR.
  1352. The reporting function of this module will supply you with an accurate
  1353. list of all your duplicate files, including the necessary path
  1354. information - but only if you run it =before= you purge the database.
  1355. Without this list, you'll be hard pressed to find and remove the
  1356. duplicate files from your system.  We strongly recommend that you not
  1357. only generate this report but also finish cleaning out the file system
  1358. before you purge anything.
  1359.  
  1360. When you feel you are ready to purge the database, start by making a
  1361. backup copy of it first.  This is very important.  =Please= make a
  1362. copy of the database and put it away somewhere safe before you start
  1363. purging info from the original.  Once you purge this information, the
  1364. only way to restore it is to rebuild the database.  While it is always
  1365. possible to rebuild the database, this takes a fair bit of time,
  1366. especially for larger systems.  And what sysop has enough time?
  1367.  
  1368. By now you are probably really ready to get on with it.  To purge the
  1369. database of duplicates, you use the duplicate report generator module
  1370. ZDCSDR.EXE with the P (for Purge) switch.  All you have to do is type
  1371. ZDCSDR P and hit the enter key.  The P will redirect the program to
  1372. purging the duplicates instead of creating a report on them.  There is
  1373. nothing else to do until the purge is complete.  This is not a fast
  1374. process, but it will pay you back with a smaller database.
  1375.  
  1376.  
  1377.  
  1378.  
  1379. BBS ADS
  1380. -------
  1381.  
  1382.  
  1383. Function
  1384. --------
  1385.  
  1386. There are some files that you really and truly don't want on your bbs
  1387. at all, ever, period.  These could be illegal cracks that make the
  1388. rounds every now and then, or part of the endless succession of
  1389. pyramid schemes and scam files, or our own favorites, those rude bbs
  1390. ads some boards feel compelled to include in every one of their files.
  1391. This whole group of junk files is collectively and affectionately
  1392. known as bbs ads.
  1393.  
  1394. ZDCS offers a way to recognize the reappearance of these files.  ZDCS
  1395. will let you target them for deletion or simply flag them for manual
  1396. removal, independent of whether or not you have enabled the deletion
  1397. of duplicate files.  The distinction here is that the bbs ads are
  1398. =known= files that you have given ZDCS specific orders to deal with.
  1399.  
  1400. In order to recognize a file as a bbs ad, you must first tell ZDCS
  1401. about it.  This is done by setting up the bbs ads database.  After
  1402. that, every time ZDCS sees the same file again it knows that it's a
  1403. bbs ad.
  1404.  
  1405.                                   - 21 -
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411. Since this option is completely independent of the option to delete
  1412. duplicate files, you don't have to take a chance on removing authors'
  1413. unchanged files from newer shareware versions.  The bbs ads option
  1414. does not operate on a GIF file.
  1415.  
  1416.  
  1417. Creation of the BBS Ads Database
  1418. --------------------------------
  1419.  
  1420. All you need to create the bbs ads database is the program ZDCSBA.EXE
  1421. and a collection of bbs ads, pyramid schemes, chain letters or other
  1422. obnoxious files.
  1423.  
  1424. Once created, the bbs ads database will consist of a single file, ZDCS-
  1425. BBA.NDX, which will be located in the ZDCS directory along with the
  1426. rest of the ZDCS files.  You can delete this file at any time if you
  1427. want to start over again with a fresh collection of files.
  1428.  
  1429. The easiest way to create the bbs ads database involves grouping all
  1430. those nasty bbs ads together and collecting them into one zipfile.
  1431. You can use either PKZIP or ARJ and select whatever name you like for
  1432. the archive.  Then you run the program ZDCSBA.EXE from your ZDCS
  1433. directory.
  1434.  
  1435. This is easy to see with an example.  If your collection of files to
  1436. be added is called BBS-ADS (.ZIP if created with PKZIP, .ARJ if made
  1437. with ARJ), then the command you issue to create the bbs ads database
  1438. with these files is:
  1439.  
  1440.      ZDCSBA BBS-ADS.ZIP       or        ZDCSBA BBS-ADS.ARJ
  1441.  
  1442. You don't have to do anything else.  The program handles everything
  1443. for the creation of the bbs ads database.
  1444.  
  1445. If you want to create a new bbs ads database in the future, just
  1446. delete the old database file (ZDCS-BBA.NDX) and follow the steps for
  1447. creating a new bbs ads database.  If you don't delete the old
  1448. database, then the new ads will be added to the old ones in the
  1449. database, which is an easy way to add new bbs ads.  There are many
  1450. other ways to add bbs ads, which are described in the next section.
  1451.  
  1452.  
  1453. Updating the BBS Ads Database
  1454. -----------------------------
  1455.  
  1456. There are four easy ways to add new bbs ads as they are foisted off on
  1457. the bbs community.
  1458.  
  1459. 1. You can run ZDCSBA.EXE on a new collection of bbs ads when you
  1460.    already have an existing bbs ads database.  This is good even if
  1461.    the archived collection only has a single file in it, and it
  1462.    doesn't matter whether you use PKZIP or ARJ to create that
  1463.    archive.  ZDCSBA.EXE works just the same way here as it does for
  1464.    creating a new database, with one exception:  the files being
  1465.    processed are added to the existing database.  That's all there is
  1466.    to it.
  1467.  
  1468.  
  1469.  
  1470.  
  1471.                                   - 22 -
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.    Example. Let's say that you've collected some bbs ads from your
  1478.             board, your own downloads, and even from friends.  You zip
  1479.             the entire set together and call it JUNK.ZIP.  To include
  1480.             these files in the bbs ads database, just issue the
  1481.             command:
  1482.  
  1483.                          ZDCSBA JUNK.ZIP
  1484.  
  1485. 2. You can run ZDCSBA.EXE on an individual bbs ad without bothering
  1486.    to archive it first.  This is a quick way to catch a new bbs ad as
  1487.    soon as you are lucky enough to get it.
  1488.  
  1489.    Example. You've just come across an obnoxious get-rich-quick scheme
  1490.             called MOOLAH.TXT.  To put this file in the bbs ads
  1491.             database, just issue the command:
  1492.  
  1493.                          ZDCSBA MOOLAH.TXT
  1494.  
  1495. 3. You can even run ZDCSBA to include a file in the bbs ads database
  1496.    when you don't have the original file, as long as you have the
  1497.    CRC32 value for it.  Just run ZDCSBA on the CRC32 value
  1498.    immediately preceded by a dollar sign $, instead of on the file
  1499.    itself.
  1500.  
  1501.    Example. You don't have the original ad anymore, but you have a
  1502.             record that the CRC32 of a new bbs ad is 12345678.  To put
  1503.             this file in the bbs ads database, just issue the command:
  1504.  
  1505.                          ZDCSBA $12345678
  1506.  
  1507. 4. You can also run ZDCSBA.EXE on an ASCII list of CRC values.  This
  1508.    feature was added because lists of the CRC values for bbs ads have
  1509.    now been assembled by some sysops and have started appearing on
  1510.    boards like Salt Air.  Instead of processing each CRC value
  1511.    individually, you can process the whole list at once.  In the
  1512.    example immediately above, you would replace the dollar sign by
  1513.    the at symbol @ followed immediately by the complete filename
  1514.    (with path if not located in the current directory) of the list of
  1515.    CRC values.
  1516.  
  1517.    Example. You just picked up a list of CRC32s for a new crop of bbs
  1518.             ads.  The filename of the list is MORE-SOM.TXT.  To add
  1519.             all the CRC values in this file to the bbs ads database,
  1520.             just issue the command:
  1521.  
  1522.                          ZDCSBA @MORE-SOM.TXT
  1523.  
  1524. You can use any or all of these methods to add new records to the bbs
  1525. ads database.  If you have an assortment of ZIP and ARJ collections, a
  1526. *.COM program that generates a flashing ANSI bbs ad, a couple of plain
  1527. text chain letters, a few files known only by CRC32, and a list of
  1528. pyramid scam file CRCs, the essential data can all be entered into the
  1529. same database without having to use the same technique for each case.
  1530.  
  1531. In fact, there's even a way to dump the contents of the bbs ads
  1532. database to a flat ASCII file.  The result is a text file with one CRC
  1533. value on each line, the same format as the input file for method
  1534.  
  1535.  
  1536.  
  1537.                                   - 23 -
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543. number four above.  This means that you can "spit back" the
  1544. information in your bbs ads database in a format that another ZDCS
  1545. user can easily incorporate into his or her bbs ads database.  The
  1546. command to regurgitate these CRC values is ZDCSBA #<filename>.
  1547.  
  1548. Example. You'd like to share your accumulated bbs ads information with
  1549.          another sysop, and you want to call the file CRC-DUMP.TXT.
  1550.          Just issue the command:
  1551.  
  1552.                ZDCSBA #CRC-DUMP.TXT
  1553.  
  1554. The variety of ways you can add new bbs ads to the database makes it
  1555. easy to share information with other sysops and to catch new
  1556. annoyances as they are let loose on us.
  1557.  
  1558.  
  1559. Selecting Deletion or Flagging of BBS Ads
  1560. -----------------------------------------
  1561.  
  1562. If you have built the bbs ads database, ZDCS will automatically detect
  1563. its presence and will compare uploads against the records in the bbs
  1564. ads database.  What ZDCS does with any matches it finds depends on how
  1565. you set up the configuration file.
  1566.  
  1567. In line 8 of the ZDCS configuration file ZDCS.CFG, you typed one of
  1568. two letters:  Y or N.  The letter Y tells ZDCS to delete the offending
  1569. bbs ad.  The letter N tells ZDCS not to delete it, but just to flag it
  1570. as a bbs ad.
  1571.  
  1572. When a bbs ad in an upload is merely flagged, that information is
  1573. still displayed to the caller and recorded in the log for the upload
  1574. file checker.  If you wish, you can go back and manually delete such
  1575. files later on.
  1576.  
  1577. Whether or not the bbs ad is flagged, as soon as it is identified as a
  1578. bbs ad it is not counted in the calculation for the percentage of
  1579. dupes in the upload.  Once you know it's a bbs ad, you really don't
  1580. care if it's a duplicate of one that's managed to get into your
  1581. database.  By definition, a bbs ad is something you don't want and
  1582. would rather not have.
  1583.  
  1584. It is possible for this option to disturb an AV stamp on an uploaded
  1585. ZIP file, but only under the following rather narrow set of
  1586. circumstances:
  1587.  
  1588. 1.   The upload was created with PKZIP and contains an AV stamp =and=
  1589.  
  1590. 2.   one or more of the files in the ZIP is flagged as a bbs ad =and=
  1591.  
  1592. 3.   the bbs ad file is located =inside= the AV stamp =and=
  1593.  
  1594. 4.   you have enabled deletion of bbs ads.
  1595.  
  1596. If any of these four steps are missing, then there is no disturbing of
  1597. an AV stamp as a result of bbs ad processing.
  1598.  
  1599. You can change your mind about using deletion or flagging to deal with
  1600. bbs ads at any time.  All you have to do is edit line 8 in the
  1601.  
  1602.  
  1603.                                   - 24 -
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609. configuration file.  No other changes need to be made to run with the
  1610. new option.
  1611.  
  1612.  
  1613.  
  1614. ALLOWED DUPLICATES
  1615. ------------------
  1616.  
  1617. Allowed dupes are a special case.  They are not flagged as dupes when
  1618. they are encountered by ZDCS;  they are also not considered "original"
  1619. or non-dupe files.  Whether or not these files are already present on
  1620. your system, you specifically don't want ZDCS to treat any future
  1621. occurrences of them as dupes.  By identifying these files as allowed
  1622. duplicates, you are protecting them from deletion, even if you have
  1623. configured ZDCS to delete duplicate files.
  1624.  
  1625. Furthermore, when ZDCS evaluates the actual percentage of duplicates
  1626. in an upload, all files that are allowed duplicates are not counted.
  1627. They are transparent in any calculations, completely and utterly
  1628. ignored.  They aren't even counted when reporting the number of files
  1629. in the archive.
  1630.  
  1631. The reason behind the concept of allowed duplicates is that there are
  1632. some files that reappear frequently as critical components of more
  1633. than one major shareware package or upgrade version.  These might be
  1634. order forms, registration guides, general text files, small utilities
  1635. or other files.  Two common examples are the OMBUDSMN.ASP file found
  1636. in all ASP-ware and the VALIDATE.COM program included in every
  1637. revision of McAfee's SCAN package.  Both files turn up unchanged in
  1638. many zipfiles.  It would be misleading to treat these files as
  1639. ordinary duplicates.
  1640.  
  1641. There are two functional advantages to using allowed duplicates.
  1642. First, by not counting allowed duplicates in the actual percentage of
  1643. dupes calculation for new uploads, your system does not "penalize" a
  1644. zipfile for having one or more of these files when it comes to
  1645. deciding whether to accept or decline the file.  This is especially
  1646. significant if you have set a pretty high standard for the
  1647. "uniqueness" of uploads that your bbs will accept.  This is easier to
  1648. see with a real example.
  1649.  
  1650. Example.  Suppose a zipfile had a total of 24 files.  Four of those
  1651. were allowed dupes and eight were regular dupes.  ZDCS would calculate
  1652. the following information:
  1653.  
  1654.           20   files in the archive
  1655.            8   dupes
  1656.           40%  dupes
  1657.  
  1658. The number of files in the archive would be 20 and not 24 because the
  1659. four allowed dupes are excluded from all the calculations.  The
  1660. percentage of dupes would be 40% (100% * 8/20).
  1661.  
  1662. If those allowed duplicates had been counted in as dupes, then the
  1663. percentage of dupes would have been reported as 50% instead of 40%.
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.                                   - 25 -
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675. (The total number of files would have been 24 instead of 20 and the
  1676. number of dupes would have risen to 12.)  If you had set the maximum
  1677. percentage of dupes for your system to 45%, then counting in the
  1678. allowed duplicates as dupes would have caused this upload to be
  1679. declined.  (That maximum percentage is set in line 6 of the
  1680. configuration file and can be changed without needing to reinstall
  1681. ZDCS.)
  1682.  
  1683. The second advantage is for those systems that configure ZDCS to
  1684. delete duplicate files.  The use of allowed duplicates can protect
  1685. popular shareware packages from being stripped of important files.
  1686. Not only does the deletion of such files alter the content of the
  1687. author's shareware package, but it also destroys any AV stamp the
  1688. author placed on the work.
  1689.  
  1690. Whether or not the option to recognize allowed dupes is enabled is
  1691. controlled by the presence or absence of an ASCII text file called
  1692. ZDCS.ADN in the ZDCS directory on your system.  This file is one that
  1693. you create with any text editor to list all the files, one per line,
  1694. that are allowed duplicates.  You can designate an allowed duplicate
  1695. by either its file name or its CRC value.  You can even mix the two
  1696. styles in the same file if you want to specify some files by name
  1697. (like VALIDATE.DOC) and others by CRC value.
  1698.  
  1699. To specify an allowed duplicate by name, just type the dollar sign $
  1700. followed immediately by the name of the file with its extension.
  1701. Don't leave any blank spaces in between.  This preserves a file with a
  1702. distinctive name (like OMBUDSMN.ASP) even if it undergoes some
  1703. revisions.
  1704.  
  1705. To specify an allowed file by its CRC32 value, type the pound sign #
  1706. followed by the CRC32 for the file.  Again, don't leave any blank
  1707. spaces in between.  If you don't know the CRC32 offhand, you can get
  1708. this information from PKZIP or ARJ.  For an archive made by PKZIP, use
  1709. the command
  1710.  
  1711.           PKZIP -V <archive name>
  1712.  
  1713. to give you the CRC values for each individual file inside the
  1714. zipfile.  For an archive made by ARJ, the corresponding command is
  1715.  
  1716.           ARJ L <archive name>
  1717.  
  1718. The ZDCS.ADN file may be up to 256 lines long, but must contain no
  1719. blank lines and no blank spaces.  You can edit, delete or recreate
  1720. this file at any time without having to set any other switches, alter
  1721. the configuration file, or make any other changes to the setup of
  1722. ZDCS.
  1723.  
  1724. While the expected application of the allowed duplicates concept is
  1725. with zipfiles, the feature does work for GIF files too.  If a GIF is
  1726. included among the allowed duplicates, then a repeat upload of the
  1727. same GIF will not be flagged as a duplicate, and the upload will be
  1728. accepted.
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.                                   - 26 -
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741. THE UPLOAD FILE CHECKER
  1742. -----------------------
  1743.  
  1744.  
  1745. Purpose
  1746. -------
  1747.  
  1748. Once you have created the initial ZDCS duplicate file database, you
  1749. can get the bbs to check all uploaded zipfiles and GIFs against it
  1750. from then on.  This is done by processing the uploaded zipfiles and
  1751. GIFs with the upload file checker ZDCSFC.EXE as the files are
  1752. received.  The primary purpose is to catch uploaded files that
  1753. duplicate ones already on the bbs.
  1754.  
  1755. ZDCSFC.EXE can also flag bbs ads, as described in that section of this
  1756. manual.  Depending on whether you have enabled any deletion options in
  1757. the configuration file, ZDCSFC.EXE can also perform deletions of
  1758. duplicate files and / or bbs ads.  With the use of a list of allowed
  1759. duplicates, also described in a separate section in this manual, the
  1760. file checking performed by ZDCSFC.EXE can be made even more
  1761. sophisticated.
  1762.  
  1763.  
  1764. Function
  1765. --------
  1766.  
  1767. ZDCSFC.EXE works with the CRC value for each file in an upload.  If
  1768. the uploaded file is a GIF, it first calculates the CRC value for that
  1769. file.  If the uploaded file is a zipfile, ZDCSFC.EXE reads the CRC
  1770. value for each individual file in the zipfile.
  1771.  
  1772. Then ZDCSFC.EXE compares the CRC for each file in the upload against
  1773. the ZDCS database.  If you have created the bbs ads database, which
  1774. you would have left in the ZDCS directory on your system, ZDCSFC.EXE
  1775. also compares the files in the upload against the bbs ads database.
  1776. And if you have created the allowed duplicates list, also located in
  1777. the ZDCS directory, ZDSCFC.EXE will check the upload against that,
  1778. too.
  1779.  
  1780. The results are displayed file by file for the caller after the upload
  1781. has been received and processed, providing real time feedback.  The
  1782. same information is also available to the sysop on screen and as part
  1783. of the ZDCSFC.EXE log file.  The complete path and file name for this
  1784. log were specified in line 7 of the configuration file.
  1785.  
  1786. ZDCSFC.EXE also calculates the actual percentage of duplicates in any
  1787. upload and compares this against the maximum percentage you have set
  1788. for the board.  On the basis of this comparison, an upload may be
  1789. accepted or declined.  Declined uploads are not deleted from the
  1790. system.  PCBoard keeps a declined upload in your private directory for
  1791. sysop review.
  1792.  
  1793. The calculation of percent duplicates is covered in more detail in the
  1794. next section of this manual.
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.                                   - 27 -
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807. Maximum and Actual Percent Dupes in an Upload
  1808. ---------------------------------------------
  1809.  
  1810. ZDCSFC.EXE calculates the actual percentage of duplicate files in the
  1811. upload.  Since a GIF is a single file, it will either be 0% (not a
  1812. dupe) or 100% (a dupe).  For zipfiles, this actual percentage can vary
  1813. anywhere between 0 and 100.  ZDCSFC.EXE compares this actual
  1814. percentage against the maximum percentage you set in line 6 of the
  1815. configuration file.
  1816.  
  1817. If the actual percentage is lower than the maximum, the upload is
  1818. accepted.   If the actual percentage is equal to or higher than the
  1819. maximum you specified, the upload is declined.  PCBoard keeps these
  1820. declined files in your private upload directory, where you can review
  1821. them.  Some callers have become frantic at the idea that a "declined"
  1822. file is thrown out.  This does =not= happen with ZDCS.
  1823.  
  1824. If you want to bypass this filter, set the percentage to 100.  This
  1825. permits a duplicated GIF or a zipfile with nothing but duplicates to
  1826. pass the filter and never be declined.  At the other extreme, you can
  1827. set the percentage to 0.  This effectively requires that the uploaded
  1828. GIFs and zipfiles have no duplicates at all, or they will be declined.
  1829.  
  1830. When you are deciding how high to set the maximum percentage of dupes,
  1831. it helps to understand how the dupe calculation works when a file is
  1832. uploaded.
  1833.  
  1834. If any allowed duplicates are found, they are excluded from =all=
  1835. calculations.  Once it identifies an allowed duplicate, ZDCS will not
  1836. figure it into the math, not even into the total number of files.
  1837. Allowed duplicates are explained in more detail in an earlier section
  1838. of this manual.
  1839.  
  1840. If any bbs ads are found, they are not part of the calculation of
  1841. original and duplicate files.  You already know you don't want any
  1842. file that you've specified as a bbs ad, so it doesn't matter to you
  1843. whether this one is "original" on your system or one that's found its
  1844. way into the ZDCS database already.  What does matter is that the file
  1845. is unwelcome either way, and so it isn't figured into this
  1846. calculation.
  1847.  
  1848. To see how this works out in real life, let's look at two examples.
  1849.  
  1850. Example 1.
  1851.  
  1852.    ICONS-HO!.ZIP is uploaded to your system.  There are 61 files in
  1853.    the archive.  Of these, four are in your bbs ads database (the
  1854.    file got around) and one is in the allowed duplicates list.  Of
  1855.    the remaining 56 files (61-4-1=56), fourteen are already present
  1856.    on your system.  ZDCS will figure the results like this:
  1857.  
  1858.       60  member files   (61 minus the one allowed duplicate)
  1859.        4  bbs ads
  1860.       14  dupes
  1861.       25% percent dupes  (14 dupes divided by 56 files, not by 60 or
  1862.                          61)
  1863.  
  1864.  
  1865.  
  1866.  
  1867.                                   - 28 -
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873. Example 2.
  1874.  
  1875.    CORNDOG.ARJ is uploaded to your system.  There are 14 files in the
  1876.    archive.  Of these, one is a bbs ad and five are allowed
  1877.    duplicates.  Of the remaining 8 files (14-1-5=8), all eight are
  1878.    dupes.  Here's how ZDCS would figure the numbers:
  1879.  
  1880.        9  member files   (14 minus the 5 allowed duplicates)
  1881.        1  bbs ad
  1882.        8  dupes
  1883.      100% percent dupes  (8 dupes divided by 8 files, not by 9 or 14)
  1884.  
  1885. The configuration file section in this manual points out that the
  1886. maximum percentage of dupes in line 6 must be a whole number, not a
  1887. decimal.  This is because ZDCS deliberately truncates any decimal from
  1888. this value.  ZDCS does not round up or down but performs a
  1889. straightforward truncation on both the actual and the maximum
  1890. percentage of dupes.  This was done for reasons of memory management.
  1891. An example may make it clearer how this approach works in actual
  1892. practice.
  1893.  
  1894. Suppose that the maximum percentage of duplicates is set to 20.  An
  1895. upload with an actual percentage of 19.9 would be truncated down to
  1896. 19.  ZDCS would see that 19 is less than 20 and would accept this
  1897. upload.  If the actual percentage were rounded instead of truncated,
  1898. it would be 20 instead of 19.  ZDCS would then decline this upload
  1899. because the actual percentage would not be less than the maximum
  1900. percentage of dupes.
  1901.  
  1902.  
  1903. Updating ZDCS Database(s) After an Upload
  1904. -----------------------------------------
  1905.  
  1906. ZDCSFC.EXE automatically updates the duplicate files database with the
  1907. CRC values of all uploads.  You do not have to do anything special to
  1908. include this information in the database for comparison with future
  1909. uploads.
  1910.  
  1911. ZDCSFC.EXE does not modify the bbs ads database at all.  It's still
  1912. not smart enough to recognize a bbs ad until you've pointed it out
  1913. first - but it does remember them next time it sees them.  Please see
  1914. the section in this manual on the bbs ads database if you want to know
  1915. more about how the bbs ads database can be updated.
  1916.  
  1917.  
  1918. DOS Error Levels
  1919. ----------------
  1920.  
  1921. In addition to creating the required PCBPASS.TXT and PCBFAIL.TXT
  1922. files, ZDCSFC.EXE also sets the DOS error level when it exits.  These
  1923. levels are:
  1924.  
  1925.  
  1926. 0    No duplicate files were found within the upload.
  1927.  
  1928. 1    Some duplicates were found, but the upload passed the
  1929.      percentage test.
  1930.  
  1931.  
  1932.  
  1933.                                   - 29 -
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939. 2    Too many duplicates were found, and the upload failed the
  1940.      percentage test.
  1941.  
  1942. 3    Every file within the upload was a duplicate.
  1943.  
  1944. 4    There is still no number 4.  (Reserved for future expansion.)
  1945.  
  1946. 5    Upload checking by ZDCSFC was aborted.  Please see log file
  1947.      for error message.
  1948.  
  1949.  
  1950.  
  1951.  
  1952. CALLING THE UPLOAD FILE CHECKER
  1953. -------------------------------
  1954.  
  1955. ZDCS is not a replacement for using a file integrity checker on your
  1956. uploads.  You should always use some kind of integrity testing on
  1957. files before they are added to the system.  ZDCS is called after that
  1958. integrity checking is performed, so how you call ZDCS may be affected
  1959. by which integrity checker you are using.
  1960.  
  1961.  
  1962. Calling ZDCSULP.EXE from UpLoadProcessor (ULP)
  1963. ----------------------------------------------
  1964.  
  1965. All that is required to implement ZDCS within UpLoadProcessor is to
  1966. configure ULPSM in the Duplicate Checking menu:
  1967.  
  1968.     ┌──────────────────────────────────────────────────────────────┐
  1969.     │  Duplication checking  (None/Internal/Zdcs)  Z               │
  1970.     │  Total duplication limit  (%)                55              │
  1971.     │  Executable dupe limit  (%)                  80              │
  1972.     │  Duplication database                                        │
  1973.     │  Duplication database index                                  │
  1974.     │  ZDCS subdirectory                           C:\ZDCS\        │
  1975.     └──────────────────────────────────── [F10] Keep  [ESC] Abort ─┘
  1976.  
  1977. Note that ULP controls the duplication ratio, not ZDCS, so be sure to
  1978. enter the appropriate values in ULPSM.
  1979.  
  1980.  
  1981. Calling ZDCSFC.EXE from EXZTEST
  1982. -----------------------------
  1983.  
  1984. If you have decided to use EXZTEST as your file integrity checker,
  1985. please stop by Central Core BBS and pick up a copy of EXZTEST version
  1986. 2.23 beta 7MWC (or higher).  This is a freeware version of the program
  1987. that contains some bug fixes not available in any earlier versions.
  1988.  
  1989. EXZTEST version 2.23 beta 7MWC provides a seamless integration with
  1990. ZDCS that takes care of calling the ZDCSFC.EXE program, feeding it the
  1991. information it needs, and completing any file deletions that you have
  1992. enabled.  This is not necessarily true of earlier versions of EXZTEST.
  1993.  
  1994. A sample PCBTEST.BAT file that calls the version 2.23 of EXZTEST is
  1995. included with this package.  For more information on the ZDCS
  1996. integration implemented in EXZTEST 2.23, please see the documentation
  1997. for EXZTEST.
  1998.  
  1999. More detailed information can be found in this manual in the section
  2000. on calling ZDCSFC.EXE from the PCBTEST.BAT file.  This section is more
  2001. general and addresses the use of any file integrity checker.
  2002.  
  2003.  
  2004. Calling ZDCSFC.EXE from the PCBTEST.BAT File
  2005. --------------------------------------------
  2006.  
  2007. ZDCS should always be used in conjunction with a file integrity
  2008. checker.  When processing new uploads, the file integrity checker
  2009. should be called from the PCBTEST.BAT file before ZDCSFC.EXE.  If you
  2010. are using the PCBDescribe feature in PCBoard 14.5a, that command
  2011. should be used first of all.
  2012.  
  2013. To use ZDCS with the file integrity checker of your choice (even if
  2014. it's just PKZIP -T), there are four basic pieces you need to include
  2015. in the PCBTEST.BAT file.
  2016.  
  2017.                                   - 30 -
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023. 1. Include the following three lines to clean out old copies of
  2024.    these files left over from processing other uploads:
  2025.  
  2026.                @IF EXIST PCBFAIL.TXT DEL PCBFAIL.TXT
  2027.                @IF EXIST PCBPASS.TXT DEL PCBPASS.TXT
  2028.                @IF EXIST ZDCS-DEL.LST DEL ZDCS-DEL.LST
  2029.  
  2030.    PCBFAIL.TXT contains information displayed to the caller when an
  2031.    upload is declined.  PCBPASS.TXT contains the information
  2032.    displayed when the upload is accepted.
  2033.  
  2034.    ZDCS-DEL.LST is a list of files targeted by ZDCS for deletion from
  2035.    an upload.  These might be duplicate files, bbs ads, or both.  If
  2036.    you haven't enabled any deletion options in the configuration
  2037.    file, or if there were no files meeting the criteria for deletion,
  2038.    ZDCS would not generate the ZDCS-DEL.LST file for that upload.  By
  2039.    deleting the files here, you make sure that no old deletion
  2040.    instructions are hanging around when a new file is processed.
  2041.  
  2042. 2. Call your file integrity tester to process the upload.  The exact
  2043.    command to do this will depend on which integrity checker you are
  2044.    using.  The most basic and rudimentary one of all is to make use
  2045.    of this ability in your chosen archiver.  In PKZIP you would use
  2046.    the -T switch and in ARJ you would use the T switch.  Or you can
  2047.    use a file integrity tester designed to check for file damage,
  2048.    viruses, and much more.
  2049.  
  2050. 3. Call ZDCSFC.EXE to check the upload.  The appropriate command is:
  2051.  
  2052.                ZDCSFC %1 %2 %3
  2053.  
  2054.    If you are running a version of PCBoard older than the May 22,
  2055.    1991 version 14.5a, PCBoard will provide only two parameters.
  2056.    Since the third one is absolutely necessary for pre-testing, that
  2057.    means you must disable the pre-testing feature.
  2058.  
  2059.    If you are using a newer version of PCBoard but you don't want to
  2060.    use the pre-testing right now, it is still strongly recommended
  2061.    that you leave the third parameter in place.  It does no harm and
  2062.    could save you some grief if you change your mind in the future.
  2063.  
  2064.    At the end of processing by ZDCSFC.EXE, you might have a new file
  2065.    called ZDCS-DEL.LST.  This depends on whether you have enabled any
  2066.    deletions and on whether there were any files in the upload that
  2067.    met your criteria for deletion.  If no files are to be deleted,
  2068.    this control file won't be created.
  2069.  
  2070. 4. Perform the deletion of files specified by ZDCSFC.EXE.
  2071.  
  2072.           IF EXIST ZDCS-DEL.LST PKZIP -D %1 @ZDCS-DEL.LST
  2073.           IF EXIST ZDCS-DEL.LST ARJ D %1 !ZDCS-DEL.LST
  2074.  
  2075.    Both the PKZIP-specific and ARJ-specific commands can be included.
  2076.    The system will return an error message when the "wrong" one is
  2077.    encountered, but this error message will not hang the system or
  2078.    cause any problems with the processing.
  2079.  
  2080.  
  2081.  
  2082.  
  2083.                                   - 31 -
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.    Note that the actual deletion is done by PKZIP or ARJ.  ZDCSFC.EXE
  2090.    creates the control file ZDCS-DEL.LST to specify the deletions and
  2091.    PCBTEST.BAT passes this file to PKZIP or ARJ at this point.  This
  2092.    is also the only time an existing PKZIP AV stamp or an ARJ
  2093.    security envelope on an upload is affected by ZDCS.  More
  2094.    information on these is available in two separate sections of this
  2095.    manual:  PKZIP AV STAMP INTEGRITY and ARJ SECURITY ENVELOPE
  2096.    INTEGRITY.
  2097.  
  2098.  
  2099. The %1 %2 %3 Parameters
  2100. -----------------------
  2101.  
  2102. These three variables %1, %2 and %3, are parameters used by PCBoard.
  2103. They are passed to ZDCS when the upload checking program is being
  2104. used.  That's the only module of ZDCS that actually runs from inside
  2105. PCBoard, and it's the only one where these parameters are important.
  2106.  
  2107. The first parameter, %1, can be one of two words in PCBoard:  UPLOAD
  2108. or TEST.  For operation of ZDCS, this variable is set to UPLOAD, by
  2109. the very fact that a caller has just uploaded either a file for the
  2110. board, or the test file ZDCSTEST.CHK.  If ZDCS should ever be passed
  2111. the word TEST here instead, it will quietly and neatly halt its
  2112. processing and control will pass on.
  2113.  
  2114. The second parameter, %2, is the name of the file that needs to be
  2115. processed by the upload checker.  Under normal circumstances this is
  2116. the name of the file the caller just uploaded.  With a few file
  2117. integrity checkers, the information in this parameter becomes invalid
  2118. after their processing because they have moved or modified the
  2119. uploaded file right out from under this parameter.  In that case, the
  2120. FIXPATH.EXE utility will smooth over things.  (In the SUPPORT section
  2121. of this manual there is a list of goodies, including this utility,
  2122. that are available free on The Bloom Beacon-Picayune BBS.)
  2123.  
  2124. The third parameter, %3, is the name of the file that is holding the
  2125. description of the upload.  When callers upload files to a PCBoard
  2126. BBS, they are asked for the file name and for a description of the
  2127. file.  The description is held in a separate text file which is then
  2128. appended to the file directory with the upload file name and other
  2129. information.
  2130.  
  2131. If you are running a version of PCBoard older than the May 22, 1991
  2132. version 14.5a, PCBoard will provide only two parameters.  Since there
  2133. are two features that require the use of the third parameter, you must
  2134. not enable those features until you are running a more recent version
  2135. of the board code that supplies all three parameters.  The two
  2136. features in question are upload pre-testing and the use of the
  2137. disposition line (set in line 4 of the configuration file).
  2138.  
  2139.  
  2140.  
  2141.  
  2142. PROCESSING LOCAL UPLOADS
  2143. ------------------------
  2144.  
  2145. There probably isn't a sysop alive who hasn't scavenged new files for
  2146. the board and uploaded them locally.  ZDCS offers two ways of
  2147.  
  2148.  
  2149.                                   - 32 -
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155. processing these local uploads.  The first method is to use the
  2156. database builder ZDCSDB.EXE;  the second method is to use the upload
  2157. file checker ZDCSFC.EXE that processes all the regular uploads from
  2158. callers.
  2159.  
  2160. In the first case, ZDCSDB.EXE can be used to add all the new files to
  2161. the database.  Just like the initial creation of the ZDCS database or
  2162. subsequent database merges, ZDCSDB.EXE adds the CRC values of the new
  2163. files to the database.  The duplicate report generator ZDCSDR.EXE can
  2164. still be used to tell you about duplicates in the database.  A
  2165. disadvantage to this method is that it does not give the sysop the
  2166. same kind of immediate feedback for a local upload as the sysop and
  2167. caller get for a regular upload.  It also does not delete bbs ads or
  2168. duplicate files (if you have those options enabled).
  2169.  
  2170. To use ZDCSDB.EXE to process local uploads, you only have to change
  2171. the first line of the ZDCS configuration file.  This line points to
  2172. the paths of the files to be processed when running the database
  2173. builder.  (The line contains the full path / name of the text file
  2174. that lists all the directories whose files are to be processed.)
  2175. Change this to point to the uploads directory, a holding directory, or
  2176. whichever directory will hold the local uploads to be processed.  Now
  2177. just run ZDCSDB.EXE and the files will be added to the existing
  2178. database.
  2179.  
  2180. This method does not interfere with the realtime upload checking
  2181. performed by ZDCSFC on regular uploads, because the path information
  2182. in line 1 of the configuration file is not used by ZDCSFC.EXE.  If
  2183. you've decided on a permanent holding directory, you won't even have
  2184. to touch the configuration file again to process any future uploads.
  2185. Just remember to run ZDCSDB.EXE before posting new files on the board.
  2186.  
  2187. This is a good time to repeat one note of caution:  ZDCS does not do
  2188. any integrity testing.  ZDCS is intended to work with your choice of
  2189. integrity tester, not to replace it.  If you have not used an
  2190. integrity checker on the local upload files (Why not?), then you need
  2191. to use the T (for Test) switch.  Instead of using the command ZDCSDB
  2192. to run the database build, use the ZDCSDB T command.
  2193.  
  2194. This calls either PKZIP or ARJ, whichever is appropriate, to do an
  2195. integrity check on the zipfiles.  Any file that fails this test is not
  2196. processed by the database builder.  There will be a message in the
  2197. database building log file ZDCS-DBB.LOG for each such damaged file.
  2198.  
  2199. Don't use the T switch without reason - it adds another step and slows
  2200. the processing down tremendously.  But if you have a small collection
  2201. of files that haven't passed through an integrity checker, like
  2202. prospective local uploads, ZDCSDB T is one way to deal with them.  If
  2203. ZDCSDB.EXE has to skip a file because it's flagged as damaged, that
  2204. information will show up in ZDCS-DBB.LOG.
  2205.  
  2206. The second method mimics regular uploading to get the local uploads
  2207. processed by the upload file checker ZDCSFC.EXE.  This is handled via
  2208. a small utility and batch file combination available free on The
  2209. Bloom Beacon-Picayune BBS as LOCALUP.ZIP.  You'll have to modify the
  2210. batch file for your own system, of course.
  2211.  
  2212.  
  2213.  
  2214.  
  2215.                                   - 33 -
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221. The result is that the local uploads will see the same processing that
  2222. a regular caller's upload does on your board - including your usual
  2223. file integrity checker, bbs ad deletion (if enabled), duplicate file
  2224. deletion (if enabled), and all the rest.  This has the additional
  2225. advantage of giving you the ZDCSFC.EXE log file entries for the local
  2226. uploads, which gives the status of the files inside the zipfiles:
  2227. duplicates, bbs ads, allowed duplicates, and so on.
  2228.  
  2229.  
  2230.  
  2231.  
  2232. PRE-TESTING
  2233. -----------
  2234.  
  2235. Callers can pre-test an upload to find out how it compares to files
  2236. already on the bbs in terms of duplicates and bbs ads.  The idea is to
  2237. see how the prospective upload compares to existing files in terms of
  2238. duplicates, bbs ads, etc. before actually uploading the full file to
  2239. the bbs.  It can save both caller and sysop a certain amount of
  2240. frustration.
  2241.  
  2242. The procedure is wonderfully simple from a caller's point of view and
  2243. requires nothing that might tax a relatively novice uploader's skills.
  2244. There are no special files to download, no complicated operations to
  2245. get right, no arcane rituals to perform.  This makes it more likely
  2246. that callers will take advantage of the pre-test feature.
  2247.  
  2248. At the time of this release, ARJ is still in a beta cycle.  The pre-
  2249. testing feature has been implemented for PKZIP only, and a maintenance
  2250. release of ZDCS is planned to incorporate an ARJ pre-testing feature
  2251. after the new production version of ARJ is released.
  2252.  
  2253. Included in this the ZDCS 2.01 package is a sample bulletin that can be
  2254. posted by the sysop on the bbs to explain to callers the ZDCS pre-
  2255. testing feature for ZIP files.  The bulletin holds the caller's hands,
  2256. figuratively speaking, through the whole process.  If your bbs permits
  2257. the uploading of SFX files, you might want to add those initials where
  2258. you see ZIP in the bulletin.  The pre-test can recognize both ZIP
  2259. files and self-extractive archives made with PKZIP.  A ZIP-only bbs
  2260. can use the canned bulletin right from the package.
  2261.  
  2262. To pre-test an upload called GOODSTUF.ZIP, the caller simply issues
  2263. the DOS command:
  2264.  
  2265.           PKZIP -V GOODSTUF.ZIP > ZDCSTEST.CHK
  2266.  
  2267. This command is not case sensitive, so it's pretty hard to make a
  2268. mistake with it.  The result of this operation is a new file called
  2269. ZDCSTEST.CHK.
  2270.  
  2271. The caller then uploads the file ZDCSTEST.CHK directly to the bbs.
  2272. ZDCS will read the information in it and will give the caller a
  2273. breakdown of the zipfile's contents, noting which individual files are
  2274. duplicates or bbs ads.  This output looks just like the response a
  2275. caller gets after actually uploading the zipfile, with one exception:
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.                                   - 34 -
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287. instead of telling the caller whether the file is accepted or
  2288. declined, ZDCS tells the caller what percentage of files in the upload
  2289. are duplicates, and also gives the maximum percent duplicates which
  2290. the sysop has allowed for the board.  Now it's up to the caller to
  2291. decide whether to upload or not.
  2292.  
  2293. Enabling the pre-test capability is not tough on the sysop, either.
  2294. The key to whether or not pre-testing is permitted on your bbs lies in
  2295. the UPSEC file.  If you want to prevent callers from using pre-
  2296. testing, just disallow uploads that have the .CHK extension.  On the
  2297. other hand, if you want callers to have the option to pre-test, make
  2298. sure that .CHK files may be uploaded to the system.
  2299.  
  2300. There's one more thing to check before letting your callers use the
  2301. pre-testing feature.  If you are not using EXZTEST version 2.23 or
  2302. higher, remember to make sure that the PCBTEST.BAT file contains the
  2303. following line:
  2304.  
  2305.      ZDCSFC %1 %2 %3
  2306.  
  2307. This is already discussed elsewhere in this manual as part of the ZDCS
  2308. installation.  That third parameter is necessary to let the pre-
  2309. testing work for more than just the first caller.  If you leave it
  2310. out, the first ZDCSTEST.CHK file uploaded to your system will work
  2311. just fine, but all subsequent attempts to pre-test will be told that
  2312. the ZDCSTEST.CHK file is a duplicate!  And that means they won't be
  2313. recognized as attempts at pre-testing.
  2314.  
  2315. If you are using EXZTEST version 2.23 and up as your file integrity
  2316. checker, you won't have a ZDCS line in the PCBTEST.BAT file.  That's
  2317. because EXZTEST has a seamless interface to ZDCS and calls it
  2318. directly.
  2319.  
  2320. Since this third parameter is critical to the proper functioning of
  2321. the pre-test option, you must have a recent enough version of PCBoard
  2322. that supports the third parameter.  The earliest version of the board
  2323. code that satisfies this requirement is PCBoard 14.5a from May 22,
  2324. 1991.  This version and anything after it can handle ZDCS pre-testing.
  2325.  
  2326. If you track your callers' uploads and downloads, you might like to
  2327. know that the ZDCSTEST.CHK will not count as an upload.  According to
  2328. ZDCS and PCBoard, the ZDCSTEST.CHK file always "fails" validation and
  2329. is not credited to the caller as an upload.  The bulletin does mention
  2330. that pre-testing doesn't count as an upload, just in case some of your
  2331. callers are too enthusiastic about getting upload credits.
  2332.  
  2333.  
  2334.  
  2335.  
  2336. ZIPFILES WITHIN ZIPFILES
  2337. ------------------------
  2338.  
  2339. Processing of zipfiles contained within zipfiles is accomplished with
  2340. some caveats.  Zipfiles within a zipfile are only checked one level
  2341. deep.  Remember that we are using the word zipfile to refer to an
  2342. archive made with PKZIP or ARJ.  In fact, you can even have an ARJ
  2343. within a ZIP or the other way around and ZDCS can still handle it.
  2344. The simplest explanation is to look at an example.
  2345.  
  2346.  
  2347.                                   - 35 -
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353. Zipfile A contains assorted files and zipfile B.  In turn, zipfile B
  2354. contains more files and another zipfile, C.  Zipfile C contains still
  2355. more files.  How does the whole melange get processed?
  2356.  
  2357. All the individual files in zipfile A and in zipfile B have their
  2358. CRC32 values entered into the duplicate files database.  If you have
  2359. configured ZDCS to delete any files (dupes or bbs ads), then those
  2360. deletions are done automatically only for the individual member files
  2361. inside zipfile A.  No files are deleted from inside zipfile B.  Of
  2362. course, all the duplicates in zipfile B are still listed in the log,
  2363. so you do know about them and you can decide whether to remove them
  2364. manually from your file system.
  2365.  
  2366. What about zipfile C?  That's easy:  any zipfile embedded more than
  2367. one level deep in the uploaded zipfile (and C is two levels deep) is
  2368. not processed as a zipfile at all.  No file deletions, no CRCs,
  2369. nothing.
  2370.  
  2371. In fact, *any* file that has either the .ZIP or .ARJ extension will
  2372. not be treated as an individual file in the database or the log file.
  2373. The reason is simple:  it's the individual files inside the zipfiles
  2374. and not the zipfile itself that are important when looking at
  2375. duplicates.  (Besides, it plays havoc with the percentages.)
  2376.  
  2377.  
  2378.  
  2379.  
  2380. CD-ROMS AND DATABASE MERGING
  2381. ----------------------------
  2382.  
  2383. CD-ROMs have been growing in popularity among bbs's because they
  2384. enable a large, static collection of files (such as shareware
  2385. programs) to be available for downloading.  ZDCS works just fine with
  2386. CD-ROM drives on a bbs, but the sheer size of these disks means that
  2387. it can take quite a while to build the ZDCS database for a CD-ROM.
  2388.  
  2389. To make life easier, you can use the database merge utility to combine
  2390. two or more databases into one integrated ZDCS database.  By merging
  2391. databases, it is possible to take advantage of the existence of pre-
  2392. built ZDCS databases for the more popular CD-ROMS.  This lets you
  2393. merge a pre-built database with your own bbs's ZDCS database in a
  2394. fraction of the time it would take to add all the CD-ROM information
  2395. from scratch.
  2396.  
  2397. The ZDCS database merge utility ZDCSDBMG.EXE is available on The
  2398. Bloom Beacon-Picayune BBS for downloading as Z2-DBMG.ZIP.  Included in
  2399. that package are clear, detailed directions for merging two databases.
  2400. You will need the utility program ZDCSDBMG.EXE and the *.DAT files from
  2401. the two ZDCS 2.01 databases you want to merge together.
  2402.  
  2403. All you really need to do is:
  2404.  
  2405. 1. Put copies of all three files into a temporary working directory.
  2406.  
  2407. 2. Make sure one of the *.DAT files is specifically named ZDCS.DAT
  2408.    (doesn't matter which one).  The other one can by ANYNAME.DAT.
  2409.  
  2410. 3. Check your CONFIG.SYS file and make sure that you have FCBS=32,32.
  2411.  
  2412.  
  2413.                                   - 36 -
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419. 4. Run the merge program on the new database by typing
  2420.  
  2421.           ZDCSDBMG <ANYNAME>
  2422.  
  2423. That's it.  Out the other end of the process you'll get your complete
  2424. new database, N-ZDCS.DAT and N-ZDCS.NDX.  The files are ready to be
  2425. renamed and used.
  2426.  
  2427. The improved database merge program ZDCSDBMG.EXE eliminates the need
  2428. for the *.NDX files when you merge a database.  The new N-ZDCS.NDX
  2429. file is generated right from the newly merged database.  This means
  2430. that the pre-built databases available on The Bloom Beacon-Picayune can
  2431. now be smaller, which cuts down on storage requirements and transfer time,
  2432. saving us all a little money.
  2433.  
  2434. Prebuilt ZDCS 2.01 databases for many CD-ROMs are available free on The
  2435. Bloom Beacon-Picayune BBS.  If you have a CD-ROM that doesn't already have
  2436. a prebuilt ZDCS database, please consider creating a ZDCS database for
  2437. the individual CD-ROM and sharing it with other ZDCS users by uploading
  2438. it to The Bloom Beacon-Picayune.
  2439.  
  2440.  
  2441.  
  2442.  
  2443. PKZIP AV STAMP INTEGRITY
  2444. ------------------------
  2445.  
  2446. Registered versions of PKZIP can "brand" a ZIP with the unique AV
  2447. (authenticity verification) number of the registered owner.  The AV
  2448. stamp is used by some shareware authors for their official
  2449. distribution packages.  It is also abused by some people, including a
  2450. few bbs sysops, sad to say.  Whether ZDCS will always leave that AV
  2451. stamp intact is determined by the configuration of ZDCS.
  2452.  
  2453. The first possibility is that ZDCS is configured never to delete any
  2454. files, whether duplicate files or bbs ads.  In this case, the original
  2455. AV stamp is always retained.
  2456.  
  2457. The second possibility is that ZDCS is configured to delete files, but
  2458. no files need to be deleted from a particular zipfile.  In that case,
  2459. any AV on the original zipfile is left intact.
  2460.  
  2461. The third possibility is that ZDCS deletes one or more bbs ads.
  2462. Whether the AV stamp is left intact depends on whether the bbs ad was
  2463. included in the zipfile inside or outside the AV branding.  If the
  2464. offending bbs just added their advertising to the outside of an AV
  2465. stamped zipfile and left the original author's AV stamp in place, ZDCS
  2466. will do the same.  If that bbs added their overhead file and then
  2467. rezipped the entire package with their own AV stamp (don't laugh,
  2468. there's at least one large bbs that's done this), then they have
  2469. destroyed any original AV stamp.  ZDCS does not preserve the AV stamp
  2470. in this case.  This is in keeping with the ideal that the stamp should
  2471. represent an authenticity verification from the =original= author.
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.                                   - 37 -
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485. The fourth possibility is that ZDCS deletes one or more duplicate
  2486. files.  If any deleted file was included in the AV branding, then the
  2487. AV stamp is not preserved.  If all deleted files were outside the
  2488. original AV stamp, then the AV stamp is intact.  (This could happen
  2489. with some advertising file that you've already been hit with but which
  2490. doesn't appear in your bbs ads database.)
  2491.  
  2492. This last possibility deserves a little thought from the shareware
  2493. author's point of view.  It is not uncommon for a new version to
  2494. contain some files that are unchanged from the previous version.  If
  2495. these files haven't been flagged as allowed duplicates, it is possible
  2496. to choose to configure ZDCS so that these files are removed.  If that
  2497. happens, the AV stamp is also removed.
  2498.  
  2499. ZDCS is quite capable of handling and retaining all AV stamps.  This
  2500. is a matter of choice on the part of the sysop and is the direct
  2501. result of the simple configuration options.  In order to disturb an AV
  2502. stamp, the following conditions must =all= be met:
  2503.  
  2504. 1. ZDCS must be configured to delete dupes, bbs ads, or both.
  2505.  
  2506. 2. The uploaded file must be a ZIP file bearing an AV stamp.
  2507.  
  2508. 3. One or more files in the ZIP must be targeted by ZDCS for
  2509.    deletion.
  2510.  
  2511. 4. At least one file to be deleted is located "inside" the AV
  2512.    stamping.
  2513.  
  2514.  
  2515.  
  2516.  
  2517. ARJ SECURITY ENVELOPE INTEGRITY
  2518. -------------------------------
  2519.  
  2520. Registered versions of ARJ can "brand" an ARJ with a security
  2521. envelope.  This envelope is used by some shareware authors for their
  2522. official distribution packages.  It is also abused by some people,
  2523. including a few bbs sysops, sad to say.  Whether ZDCS will always
  2524. leave that security envelope intact is determined by the configuration
  2525. of ZDCS.
  2526.  
  2527. The first possibility is that ZDCS is configured never to delete any
  2528. files, whether duplicate files or bbs ads.  In this case, the original
  2529. security envelope is always retained.
  2530.  
  2531. The second possibility is that ZDCS is configured to delete files, but
  2532. no files need to be deleted from a particular zipfile.  In that case,
  2533. any security envelope around the original ARJ is left intact.
  2534.  
  2535. The third possibility is that ZDCS deletes one or more bbs ads.
  2536. Whether the security envelope is left intact depends on whether the
  2537. bbs ad was included in the ARJ inside or outside the envelope.  If the
  2538. offending bbs just added their advertising to the outside of an
  2539. enveloped ARJ and left the original author's security envelope in
  2540. place, ZDCS will do the same.  If that bbs added their overhead file
  2541. and then rearchived the entire package with a new security envelope
  2542.  
  2543.  
  2544.  
  2545.                                   - 38 -
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551. (don't laugh, there's at least one large bbs that's done this, too),
  2552. then they have destroyed any original envelope.  ZDCS does not
  2553. preserve the security envelope in this case.  This is in keeping with
  2554. the ideal that the envelope should represent a tamper-evident seal
  2555. from the =original= author.
  2556.  
  2557. The fourth possibility is that ZDCS deletes one or more duplicate
  2558. files.  If any deleted file was included in the security envelope,
  2559. then the envelope is not preserved.  If all deleted files were outside
  2560. the original envelope, then the security envelope is intact.  (This
  2561. could happen with some advertising file that you've already been hit
  2562. with but which doesn't appear in your bbs ads database.)
  2563.  
  2564. This last possibility deserves a little thought from the shareware
  2565. author's point of view.  It is not uncommon for a new version to
  2566. contain some files that are unchanged from the previous version.  If
  2567. these files haven't been flagged as allowed duplicates, it is possible
  2568. to choose to configure ZDCS so that these files are removed.  If that
  2569. happens, the ARJ security envelope is also removed.
  2570.  
  2571. ZDCS is quite capable of handling and retaining all security
  2572. envelopes.  This is a matter of choice on the part of the sysop and is
  2573. the direct result of the simple configuration options.  In order to
  2574. disturb a security envelope, the following conditions must =all= be
  2575. met:
  2576.  
  2577. 1. ZDCS must be configured to delete dupes, bbs ads, or both.
  2578.  
  2579. 2. The uploaded file must be an ARJ file having a security envelope.
  2580.  
  2581. 3. One or more files in the ARJ must be targeted by ZDCS for
  2582.    deletion.
  2583.  
  2584. 4. At least one file to be deleted is located "inside" the security
  2585.    envelope.
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  ACCURACY OF THE CRC32 METHOD
  2591. ----------------------------
  2592.  
  2593. In order to detect duplicates, some unique signature is needed for
  2594. each file.  While the only guaranteed truly unique signature is by
  2595. definition as long and cumbersome as the file itself, there are more
  2596. manageable alternatives that make use of formulas called algorithms to
  2597. generate a signature.  Any algorithm is a trade-off between these two
  2598. factors:  manageability and accuracy.  The more unique signatures a
  2599. method can generate, the smaller the possibility that two different
  2600. files might generate the same signature.
  2601.  
  2602. ZDCS makes use of the CRC32 used by PKZIP and ARJ.  This signature has
  2603. a total of eight "places", each filled by =independent= assortment
  2604. with one of sixteen different values.  (It doesn't matter how many
  2605. places you have if they aren't each filled independently of the
  2606. others.)  That makes for a total of 16*16*16*16*16*16*16*16 (16 to the
  2607. 8th power) unique signatures.  With over four and a quarter billion
  2608. possible signatures, this method has good accuracy.
  2609.  
  2610.  
  2611.                                   - 39 -
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617. It is possible to use other methods to create an even greater number
  2618. of unique signatures.  These longer signatures and different
  2619. calculation methods carry a corresponding cost in complexity, disk
  2620. space and processing speed.  But no signature that is shorter than the
  2621. original file can ever provide an absolute guarantee of uniqueness.
  2622.  
  2623. When an algorithm produces the same signature for two different files,
  2624. and eventually every algorithm will, there is a possibility for
  2625. misidentification =if= you also have both of those files.  This is
  2626. because the heart of misidentification is in the comparison of
  2627. signatures from different files.  If you have only one of the two
  2628. files generating the same signature, then the comparison step will
  2629. still show it to be unique on your system.
  2630.  
  2631. But suppose that you do beat the odds enough to have on your system
  2632. both of these files that generate the same signature.  What effect
  2633. would that have?  The second file you encounter would be flagged as a
  2634. duplicate of the first one.
  2635.  
  2636. If a caller uploads a file that contains this second, "misidentified"
  2637. file, then that upload will show one more dupe.  If you have set the
  2638. percentage of maximum dupes very low and the upload contains few
  2639. files, then this might be enough to decline the upload.  If your
  2640. percentage is set high and / or there are many files in the upload,
  2641. this one "extra" dupe will not tip the scale in deciding whether the
  2642. upload is declined or not.
  2643.  
  2644. For example, suppose the upload contained only four files.  Every one
  2645. of them that was flagged as a dupe would contribute a value of 25% to
  2646. the level of duplication in the file.  If your maximum percentage of
  2647. dupes acceptable in an upload were set to 10%, then a single
  2648. misidentified dupe in this upload is enough to have ZDCS decline the
  2649. file.
  2650.  
  2651. Most sysops, however, use a higher maximum percentage.  And most files
  2652. (excluding GIFs) contain a higher number of files on average.  So
  2653. let's change the example to a maximum percentage of 50% and an upload
  2654. containing 10 files.  A single misidentified dupe in this upload would
  2655. only contribute a value of 10% to the level of duplication in the
  2656. file.  That wouldn't be enough to have ZDCS decline the file.  So even
  2657. though there was a long-shot misidentification, the net effect is that
  2658. ZDCS still accepts the file.
  2659.  
  2660. But what about GIFs?  A GIF upload is a single file to ZDCS.  There
  2661. are only two possible outcomes for the dupe check:  0% and 100%.  To
  2662. provide extra protection against misidentification in this situation,
  2663. ZDCS has implemented a =second= algorithm, one completely independent
  2664. of the CRC32 method, as a cross check.  In order for a GIF to be
  2665. flagged as a dupe, it must be identified as a duplicate first by the
  2666. CRC32 method, and then again by the second, independent method.
  2667.  
  2668. ZDCS protects against harmful consequences of misidentification by
  2669. making use of a well-tested signature algorithm that generates over
  2670. four and a quarter billion signatures, by implementing a percentage
  2671. system that lets the sysop adjust the odds even further, by providing
  2672. independent cross-checking for GIFs, and by never deleting a failed
  2673. upload from your system.  So even if a misidentification does occur
  2674. and does cause an otherwise original upload to be declined, that
  2675. upload is still available on your system in your private uploads
  2676. directory for your review.
  2677.                                   - 40 -
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683. ZDCS provides you with good accuracy while still being manageable.
  2684. After all, the most accurate method in the world does no good if you
  2685. can't implement it, right?
  2686.  
  2687.  
  2688.  
  2689.  
  2690. MEMORY USAGE
  2691. ------------
  2692.  
  2693. The ZDCS upload file checker ZDCSFC.EXE, the bbs ads database builder
  2694. ZDCSBA.EXE, and the ZDCS 1.6x to 2.01 conversion program Z1TO2.EXE each
  2695. require a minimum of 384K of free memory (RAM).  The database build
  2696. program ZDCSDB.EXE and the duplicate report generator ZDCSDR.EXE each
  2697. require a minimum of 512K of free memory (RAM).
  2698.  
  2699. If your system has at least one megabyte of available EMS (expanded
  2700. memory), ZDCS can make good use of it when running any of the
  2701. following programs:
  2702.  
  2703.      ZDCSDB.EXE          the database builder
  2704.      ZDCSDR.EXE          the duplicate report generator
  2705.      ZDCSFC.EXE          the upload file checker
  2706.      ZDCSDBMG.EXE   the database merge utility
  2707.  
  2708.  
  2709. There are no internal limits on the number of member files within a
  2710. zipfile that can be processed by both the upload file checker
  2711. ZDCSFC.EXE and the database creator ZDCSDB.EXE.
  2712.  
  2713.  
  2714.  
  2715.  
  2716. TROUBLE-SHOOTING GUIDE
  2717. ----------------------
  2718.  
  2719. There is no better help for solving problems than experience,
  2720. especially someone else's experience with the same problems.
  2721.  
  2722.  
  2723. Your system is crashing during the upload test.
  2724. -----------------------------------------------
  2725.  
  2726. We have tracked this problem down to the following set of
  2727. circumstances so far:  you are using EXZTEST to call ZDCS, =and= you
  2728. have QEMM installed on a 386 computer with an Adaptec SCSI device.
  2729.  
  2730. This problem goes back to memory management.  Your system is trying to
  2731. juggle PCBoard, EXZTEST, ZDCS, and PKZIP or ARJ - all in memory.  To
  2732. add to the confusion, QEMM is trying to help out and not always
  2733. managing that.
  2734.  
  2735. PCBoard has the /SWAP parameter and ZDCS has the SuperShell.  When
  2736. ZDCS needs to call PKUNZIP or ARJ to deal with an embedded archive
  2737. (which, by the way, is the ONLY time that ZDCS needs to call an
  2738. external program), ZDCS swaps itself out of memory to EMS (if
  2739. available) or to disk.  Under certain very specific circumstances on
  2740. certain hardware configurations,  QEMM seems to have a problem with
  2741. this (to put it very politely).
  2742.  
  2743.                                   - 41 -
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749. Right now your best solution to this is to get a copy of SHROOM (Shell
  2750. Headroom).  This is an excellent shareware product from
  2751.  
  2752.           Davis Augustine (Shroom Shareware)
  2753.           P.O. Box 610
  2754.           Sausalito, CA. 94966-0610
  2755.  
  2756. With SHROOM on your system, you can modify the line in your
  2757. PCBTEST.BAT file that calls EXZTEST to call SHROOM first.  Look for
  2758. this line:
  2759.  
  2760.           EXZTEST %1 %2
  2761.  
  2762. and change it to this:
  2763.  
  2764.           SHROOM EXZTEST %1 %2
  2765.  
  2766. That should take care of the memory management problem and prevent the
  2767. system crashes.
  2768.  
  2769.  
  2770. ZDCSDB.EXE (the database build) is crashing.
  2771. ---------------------------------------
  2772.  
  2773. There is a log file ZDCS-BBA.LOG that collects messages when ZDCSDB is
  2774. used to create a new ZDCS database or to add to an existing one.  Read
  2775. the messages in the log file to find out why the database build
  2776. program is crashing.
  2777.  
  2778. Most of the time, the culprit is a damaged zipfile.  ZDCS normally
  2779. depends on the fact that most sysops use a separate integrity file
  2780. checker on their boards.  If a corrupted zipfile gets into the
  2781. collection of files being processed into the database, it can bring
  2782. things to a sudden halt.
  2783.  
  2784. The recommended solution is to process all files with a file integrity
  2785. checker first.  However, there is a second alternative using just
  2786. ZDCS.  You can use the T (for Test) switch to tell ZDCSDB to call
  2787. PKZIP or ARJ, whichever is appropriate, and perform a file check
  2788. first.  Only those files passed by this check are processed by the
  2789. database builder.  The syntax is simple:  ZDCSDB T instead of ZDCSDB.
  2790. The penalty in speed for doing it this way is very significant, which
  2791. is why it is not the usually preferred solution.  Unless you have only
  2792. a small handful of files to process, it's worthwhile to use a real
  2793. file integrity testing program instead.
  2794.  
  2795.  
  2796. ZDCS is reporting a device I/O error (in any module).
  2797. ----------------------------------------------------
  2798.  
  2799. So far, we have seen this happen thrice.  Each time, ZDCS was running
  2800. on a LAN.  In all three cases, the problem was traced back to bad
  2801. spots on the hard drives.
  2802.  
  2803. The best medicine for this error message is to run Norton Disk Doctor,
  2804. Spinrite, or something similar on your hard drive system.
  2805.  
  2806.  
  2807.  
  2808.  
  2809.                                   - 42 -
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815. ZDCS reports path/file access errors.
  2816. ------------------------------------
  2817.  
  2818. One possibility is that you might have loaded SHARE high under DOS
  2819. 5.0.  There seems to be a problem with loading SHARE high;  it's not
  2820. anything specifically to do with ZDCS.  Try loading SHARE low instead.
  2821.  
  2822. Another possibility is that you haven't specified enough files in your
  2823. CONFIG.SYS file.  Because ZDCS makes such heavy use of disk I/O, you
  2824. should make sure that at least 30 files are specified in your
  2825. CONFIG.SYS (FILES=30).
  2826.  
  2827.  
  2828. QEMM exception 13 errors occur when running ZDCS.
  2829. ------------------------------------------------
  2830.  
  2831. There are four possible reasons for this error message.
  2832.  
  2833. 1. Your QEMM command line is incorrect.  The problem isn't with ZDCS
  2834.    itself, but ZDCS is likely to be the first program to notice this
  2835.    QEMM error because of the amount of data ZDCS needs to juggle. The
  2836.    result is that ZDCS is able to write its data someplace it
  2837.    shouldn't.
  2838.  
  2839.    To solve this problem, check that all areas of memory that should
  2840.    be excluded from QEMM are being properly excluded.  Be especially
  2841.    careful if your system has super VGA, SCSI devices or a LAN;  all
  2842.    of these devices usually require specific areas of memory to be
  2843.    excluded from remapping by QEMM.
  2844.  
  2845. 2. You have one or more "mis-behaved" device drivers.  You can check
  2846.    out this possibility by removing all drivers from your CONFIG.SYS
  2847.    file, rebooting the system, and trying ZDCS again.  One example of
  2848.    this type of problem was with an older version of the Hyperdisk
  2849.    cache.
  2850.  
  2851. 3. You believed the QEMM optimize program when it told you to get rid
  2852.    of DOS stack space.  Put it back!  QEMM is egocentric enough to
  2853.    believe it can handle all types of stack requirements for any
  2854.    application properly.  Let's just say that putting back the DOS
  2855.    stack space solves this problem nicely.
  2856.  
  2857. 4. You are trying to use the "stealth technology" feature of QEMM
  2858.    6.x.  There have been persistent reports of problems traced to
  2859.    interactions between stealth and various applications from other
  2860.    vendors.  It wouldn't be at all surprising if ZDCS experienced the
  2861.    same trouble with stealth.  This is not a bug in ZDCS.  Contact
  2862.    Quarterdeck tech support.  In the meantime, disable stealth by
  2863.    removing the ST:F or ST:M from the DEVICE=QEMM.SYS line in the
  2864.    CONFIG.SYS file.
  2865.  
  2866.  
  2867.  
  2868.  
  2869. REGISTRATION
  2870. ------------
  2871.  
  2872. ZDCS is a fully functional shareware package.  There are no critical
  2873. limits, crippled features or "drop dead" dates.  The only difference
  2874.  
  2875.                                   - 43 -
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881. in the unregistered version is a brief message to sysop and caller
  2882. that the version is unregistered.
  2883.  
  2884. A customized ZDCS.KEY file is available to registered users to change
  2885. the "unregistered" message to show registration in the name of <BBS
  2886. Name> or to eliminate the display of any message at all.
  2887.  
  2888. For sysops, registration entitles the user to a license for use of the
  2889. Zipfile Duplicate Checking System on one bbs, no matter how many nodes
  2890. it has.  For CD-ROM mastering, registration entitles the user to a
  2891. license for use of one copy of the Zipfile Duplicate Checking System,
  2892. no matter how many CD-ROM collections are processed.  There are no
  2893. additional fees based on the number of CD-ROMs, the gross revenue, the
  2894. phase of the moon, or any other factors.
  2895.  
  2896. Please take a look at the accompanying text file on CD-ROM uses of
  2897. ZDCS.  It describes special registration offers for CD-ROM mastering
  2898. operations.  In brief, you can include a ZDCS 2.01 pre-built CD-ROM
  2899. database on your mastered CD-ROM in exchange for a full registration.
  2900. More details are given in ZDCS-CD.TXT.
  2901.  
  2902. If you try ZDCS out on your system and decide that you want to
  2903. continue using it, please register your copy by sending a check for
  2904. $25.00 (US).  Include the name of your bbs (up to 25 characters) as
  2905. you want it to appear to your callers.  A registration form
  2906. (REGISTER.FRM) is included in this release for your convenience.  We
  2907. will prepare a key file for your copy of ZDCS with this information in
  2908. it to replace the "unregistered version" line in the display.  This
  2909. keyfile will be mailed to you on diskette upon receipt of your
  2910. registration.
  2911.  
  2912. As of 1991, first time callers to The Central Core BBS (201-575-8991
  2913. and 8950) have been able to register ZDCS online with a valid Visa or
  2914. Mastercard...call using the "ULP REGISTER" account with the password
  2915. of "GUEST"; this will place you in the registration script for my
  2916. software.  Processing usually takes from one to three days.
  2917.  
  2918. If you prefer to register by check or money order, please make your
  2919. registration check payable to Stacy Smith and mail it along with
  2920. the necessary information (like a completed order form) to:
  2921.  
  2922.           Stacy Smith
  2923.           305 Cottonwood Lane
  2924.           Holly Springs, NC 27540
  2925.  
  2926.  
  2927.                                   - 44 -
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933. Please be assured that ZDCS will continue to receive support through
  2934. future revisions.  For over two years now it has been in use on its
  2935. original home board, The Central Core BBS, and will soom be implemeted
  2936. on The Bloom Beacon-Picayune.  When the programmer is also a sysop
  2937. and has to live with the results of that programming work every day,
  2938. you can be sure that the support will be there!
  2939.  
  2940.  
  2941.  
  2942.  
  2943. SUPPORT
  2944. -------
  2945.  
  2946. Support is a critical part of ZDCS.  It's nice to have a program
  2947. that's easy to install and use, but we all know that there is nothing
  2948. to beat direct, involved author support of a product.  We are
  2949. committed to providing that kind of support for ZDCS.  Many of the
  2950. improvements in ZDCS 2.03 grew directly out of providing that kind of
  2951. support to users of earlier versions of ZDCS.  This is also true of
  2952. the utilities and accessories, which you will find described a little
  2953. later on in the section called GOODIES.
  2954.  
  2955. Part of good support is also a willingness to listen to suggestions
  2956. and requests.  If you have any ideas for new features or ways to make
  2957. existing features better, please let us hear from you.
  2958.  
  2959.  
  2960. Contact Information
  2961. -------------------
  2962.  
  2963. ZDCS product support is handled on the ZDCS home board and via echoed
  2964. email conferences.  Questions, comments and discussion of ZDCS are
  2965. welcome in the following conferences:
  2966.  
  2967.      ZDCS-Support   (on the ILink BBS network)
  2968.      ZDCS-Support   (on the Intelec BBS network)
  2969.  
  2970. Both conferences are of course available on the ZDCS home board, The
  2971. Bloom Beacon-Picayune BBS.  For PCBoard sysops on Salt Air BBS, Stacy
  2972. Smith and Mike Cocke are available there in the ZDCS-Support conference.
  2973.  
  2974. Additional product support in the form of downloadable files is
  2975. available on The Bloom Beacon-Picayune BBS.  These are described in the
  2976. next section of this manual, appropriately entitled GOODIES.
  2977.  
  2978. First time access to The Central Core BBS must be done via the
  2979. public node.  After completing the new user and visiting sysop
  2980. scripts, sysops and ZDCS users (whether or not they have registered
  2981. ZDCS yet) will be upgraded in security level, usually handled in a day
  2982. or two.  This will give you access to the two private nodes, both of
  2983. which are high speed lines.  The Hacker Central phone numbers are:
  2984.  
  2985.      Node 1    201-575-8991   Public    V.32bis
  2986.      Node 2    201-575-8950   Private   HST / Dual Standard
  2987.  
  2988. You can join the ZDCS support conferences on your first call.  All the
  2989. pre-built CD-ROM databases, utilities, and other goodies are available
  2990. for download =only= from inside one of the ZDCS-Support conferences.
  2991.  
  2992.  
  2993.                                   - 45 -
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999. If you should get confused or need a reminder, there is a bulletin on
  3000. the board addressed to those interested in ZDCS.  You'll find it
  3001. listed with the rest of the bulletins.
  3002.  
  3003.  
  3004. Goodies
  3005. -------
  3006.  
  3007. Another aspect of ZDCS product support is the collection of utilities
  3008. and pre-built CD-ROM databases available for download from The Bloom
  3009. Beacon-Picayune BBS for all ZDCS users.  This collection is constantly
  3010. growing in response to suggestions, requests and cries for customized
  3011. help.  A few of the special goodies are described below.
  3012.  
  3013. This is not necessarily the complete list of goodies.  New CD-ROM
  3014. databases are constantly being added, and development work on various
  3015. accessories is an ongoing process.  Suggestions for other new
  3016. utilities are always welcome, of course.
  3017.  
  3018. All ZDCS utilities to date are free but are only available on The
  3019. Bloom Beacon-Picayune BBS.  Please do not upload these modules to other
  3020. bbs's or distribute them as part of the shareware ZDCS package.
  3021.  
  3022.  
  3023. Database Merge
  3024. --------------
  3025.  
  3026. The database merge program ZDCSDBMG.EXE lets you combine more than one
  3027. ZDCS database into a single database.  This has the tremendous
  3028. advantage of permitting pre-built ZDCS databases to be created for the
  3029. more popular CD-ROMS.  Once a single CD-ROM database has been created,
  3030. can be merged into any bbs's ZDCS database in a fraction of the time
  3031. it would take to create the CD-ROM database from scratch.
  3032.  
  3033. The existence of the merge utility also makes it possible for you to
  3034. build your own ZDCS database a section at a time if that's easier for
  3035. you, and then merge the different pieces together for your complete
  3036. system.  It gives you a little more flexibility that way.
  3037.  
  3038. The merge utility is available in a little package called Z2-DBMG.ZIP
  3039. that includes step by step instructions so you can't get lost.
  3040.  
  3041.  
  3042. Pre-Built CD-ROM Databases
  3043. --------------------------
  3044.  
  3045. Many pre-built CD-ROM databases are available on The Bloom Beacon-
  3046. Picayune BBS.  These are easy to incorporate into your ZDCS database with
  3047. the database merge utility described above.
  3048.  
  3049. If you have a CD-ROM that doesn't already have a pre-built database
  3050. (either on disk or in the collection of databases on The Bloom Beacon-
  3051. Picayune BBS), then we'd like to encourage you to create the ZDCS 2.01
  3052. database for that CD-ROM and upload it to share with other sysops.
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.                                   - 46 -
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065. Local Upload Processing
  3066. -----------------------
  3067.  
  3068. A small local uploads package has been put together to make processing
  3069. local uploads easier for the sysop who also scavenges files for the
  3070. board.  This package was revised for ZDCS 2.01 to make it easier for
  3071. the sysop to use it "out of the box".  Changes to the docs and the
  3072. sample batch file take more of the load off the sysop when processing
  3073. local uploads.  The package is available for download as LOCALUP.ZIP.
  3074.  
  3075.  
  3076. Database Browser
  3077. ----------------
  3078.  
  3079. There is another small program that permits you to look through the
  3080. records in a ZDCS database.  This database browse utility originally
  3081. started as a debugging tool and is still intended primarily for
  3082. debugging purposes.  The program name is ZDCSED2.EXE and it is
  3083. available for download as ZDCSED2.ZIP.
  3084.  
  3085.  
  3086. Fixpath
  3087. -------
  3088.  
  3089. Some upload file integrity testers move or rename the uploaded file.
  3090. There is now available a small utility called FIXPATH.EXE for use with
  3091. these testers.  This program acts as a small shell for ZDCS, and
  3092. adjusts the %1 parameter originally passed from PCBoard to reflect
  3093. whatever the file integrity tester has done.  This utility is
  3094. available for download as FIXPATH.ZIP.
  3095.  
  3096.  
  3097. BBS Ad Tracker
  3098. -------------
  3099.  
  3100. This is a new utility to help you track down bbs ads that might have
  3101. made it into your ZDCS database before they were recognized as bbs
  3102. ads.  The way some bbs's change their ads frequently, it's possible to
  3103. receive one of these little joys as part of an upload or even to have
  3104. it in your original collection of files for some time before you
  3105. discover that it's another bbs ad.  The bbs ad tracker ZDCSBAT.EXE can
  3106. compare your ZDCS database with your bbs ads database and let you know
  3107. if any of those bbs ads appear in teh database.  Armed with that
  3108. report, you can hunt the ads down and exterminate them.  This program
  3109. is available for download as ZDCSBAT.ZIP.
  3110.  
  3111.  
  3112. Conversion from ZDCS 1.6x to ZDCS 2.01
  3113. -------------------------------------
  3114.  
  3115. If you have already installed one of the earlier versions of ZDCS
  3116. (1.6x), there is a straightforward upgrade path to the smaller and
  3117. faster version 2.01.  But you won't find a separate upgrade kit on The
  3118. Bloom Beacon-Picayune BBS;  all you need is already included in this
  3119. package. And since you are reading this file, you must have the rest of
  3120. the package, too.  Right?  However, you =will= need to make sure that
  3121. any utility programs you are using, such as the database merge, are up
  3122. to date for ZDCS 2.01 and are not older version intended for ZDCS 1.6x.
  3123.  
  3124.  
  3125.                                   - 47 -
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131. Documentation
  3132. -------------
  3133.  
  3134. A final note about ZDCS support concerns documentation.  We feel that
  3135. clear and helpful documentation is an important part of a sysop
  3136. utility package like ZDCS.  The documentation for ZDCS 2.01 has been
  3137. revised to answer more questions and give more examples.  Of course
  3138. we've kept the friendly walk-through ZDCSWALK.TXT and the technical
  3139. reference manual ZDCS-REF.TXT, just improved them a little.
  3140.  
  3141. In addition to the plain text files included in this package, we also
  3142. have the documentation available in WinWord 2.01 (also known as MS Word
  3143. for Windows 2.01) with full use of styles, footers, outline processing
  3144. and other features.  This makes for some really nifty output if you
  3145. want to print copies of any of the docs.  If you are interested in a
  3146. copy of the documentation files in Winword 2.01 format or in discussing
  3147. conversion to other formats such as WordPerfect, please contact us on
  3148. The Bloom Beacon-Picayune BBS.
  3149.  
  3150. In fact, if you have any questions, comments or suggestions concerning
  3151. the documentation, we would like to hear from you.
  3152.  
  3153.  
  3154.  
  3155.  
  3156. FUTURE ENHANCEMENTS
  3157. -------------------
  3158.  
  3159. ZDCS is a dynamic product.  In response to suggestions, comments and
  3160. the changing bbs scene, ZDCS has seen a lot of improvements since
  3161. version 1.5 was first released to the public.  And we haven't reached
  3162. the end of the road yet.
  3163.  
  3164. Future enhancements under consideration or in progress include support
  3165. for other archive formats besides PKZIP and ARJ, further improvements
  3166. to local upload handling, and database path updating for bbs types
  3167. besides PCBoard.  (Support for PCBoard systems was added in version
  3168. 2.01.)
  3169.  
  3170.  
  3171.  
  3172.  
  3173. ACKNOWLEDGEMENTS
  3174. ----------------
  3175.  
  3176. Thanks to all the beta testers who have helped to make ZDCS a better
  3177. and smoother program, from version 1.5 through versions 1.6x and
  3178. culminating in version 2.01.  Their patience and input through all the
  3179. steps along the way are definitely reflected in the quality of the
  3180. final product.
  3181.  
  3182. Thanks to Dave Klein for allowing me to bounce off him everything from
  3183. data reduction approaches to curses at Quarterdeck.
  3184.  
  3185. Thanks to Rich Hackney, Greg Wilson, Bob Jacobson, and Michael Leavitt
  3186. for their help in tracking down the QEMM / Supershell memory
  3187. incompatability problem.
  3188.  
  3189.  
  3190.  
  3191.                                   - 48 -
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197. Special thanks to Andy Keeves for ExzTest.  Come to think of it,
  3198. special curses to Andy for the same thing.
  3199.  
  3200. Thanks to Roy Timberman for his help with some CD-ROM related errors.
  3201.  
  3202. Finally, thanks to everyone who had the patience to wait while version
  3203. 2.01 went through six intense months of beta bashing and feature
  3204. testing.
  3205.  
  3206.  
  3207.  
  3208.  
  3209. COPYRIGHTS AND LEGAL STUFF
  3210. --------------------------
  3211.  
  3212. ZDCS (ZIPfile Duplicate Checking System) is copyright (c) 1991-1994
  3213. by Stacy Smith.  ZDCS 2.03 is fully functional shareware.  It may
  3214. be freely copied and distributed, provided that no files in this
  3215. package are removed or altered in any way.
  3216.  
  3217. The individual documentation files ZDCS-REF.TXT, ZDCS.BLT and
  3218. ZDCSWALK.TXT are copyright (c) 1991-1994 by Stacy Smith.
  3219. Permission is granted to distribute these files as part of the
  3220. complete ZDCS shareware package.  Permission is also granted to bbs
  3221. sysops to modify ZDCS.BLT for use as needed, including as a bulletin,
  3222. message or downloadable help file.
  3223.  
  3224. ZDCS.KEY is the individual registration key file and may not be
  3225. reverse engineered, copied, distributed or otherwise shared with
  3226. individuals beyond the registered user.
  3227.  
  3228. Stacy Smith will not accept responsibility for the function, failure
  3229. to function, or side effects of any function of the ZIPfile Duplicate
  3230. Checking System (ZDCS).  ZDCS is provided in good faith, but its
  3231. use is solely at the risk of the operator.
  3232.  
  3233. ARJ is copyright Robert Jung.
  3234. EXZTEST and EXZIP are copyright Andy Keeves.
  3235. FWKCS is trademark and copyright Fred Kantor.
  3236. Lantastic is trademark of ArtiSoft Inc.
  3237. MS-DOS is trademark and copyright Microsoft Corp.
  3238. Netware is trademark of Novell Inc.
  3239. PCBoard is trademark and copyright Clark Development Company.
  3240. PKZIP and PKUNZIP are trademark and copyright PKWARE, Inc.
  3241. QEMM/386 is trademark and copyright Quarterdeck Office Systems.
  3242. Word for Windows is copyright Microsoft Corp.
  3243. ZDCS and UpLoadProcessor are copyright Stacy Smith.
  3244.  
  3245.  
  3246.  
  3247.  
  3248.  
  3249.  
  3250.  
  3251.  
  3252.  
  3253.  
  3254.  
  3255.  
  3256.  
  3257.                                   - 49 -
  3258.