home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR13 / ZCHECK30.ZIP / ZCHECK.DOC < prev    next >
Text File  |  1993-10-22  |  28KB  |  573 lines

  1.  
  2.  
  3.          ZZZZZZ       CCCCCC   HH    HH   EEEEEE      CCCCCC   KK   KK
  4.              ZZ      CC        HH    HH   EE         CC        KK  KK
  5.             ZZ      CC         HH    HH   EE        CC         KK KK
  6.            ZZ      CC          HHHHHHHH   EEEE     CC          KKKK
  7.           ZZ        CC         HH    HH   EE        CC         KK KK
  8.          ZZ          CC        HH    HH   EE         CC        KK  KK
  9.          ZZZZZZ       CCCCCC   HH    HH   EEEEEE      CCCCCC   KK   KK
  10.  
  11.                                                            Version 3.0
  12.                   AUTOMATED VIRUS CHECKING BATCH FILE
  13.  
  14.  
  15.  
  16.  
  17.  
  18.                               ZCHECK.DOC
  19.                                   and
  20.                                 ZCHECK
  21.  
  22.                                   by
  23.  
  24.                                John Sims
  25.                              274 MacNab St.
  26.                         Dundas, Ontario, Canada
  27.                                 L9H 2K6
  28.  
  29.  
  30.  
  31.                            Table of Contents
  32.  
  33.         Disclaimer .......................................... Page 2
  34.         Description ......................................... Page 2
  35.         Syntax .............................................. Page 2
  36.         Files List .......................................... Page 2
  37.         Requirements ........................................ Page 2
  38.         Command Line ........................................ Page 2
  39.         Examples ............................................ Page 3
  40.         Installing ZCHECK ................................... Page 4
  41.         Using ZCHECK ........................................ Page 4
  42.         Error codes ......................................... Page 6
  43.         Zcheck.cfg .......................................... Page 7
  44.         If ZCHECK Crashes ( includes ZCLEAN ) ............... Page 7
  45.         Zscreen ............................................. Page 8
  46.         Modifying ZCHECK .................................... Page 8
  47.         Manual .............................................. Page 9
  48.         Registration ........................................ Page 10
  49.  
  50.  
  51.  
  52.                                                                Page  2
  53.         Disclaimer
  54.  
  55.         I accept no responsibility for anything ZCHECK.BTM does or
  56.         anything you may think it does, to your computer hardware or
  57.         software. You use ZCHECK at your own risk. ZCHECK has been
  58.         produced without the consent or request of J.P.Software.
  59.  
  60.         Description
  61.  
  62.         ZCHECK is a fully automated batch file that will scan any
  63.         number of ZIP files for viruses , if a virus is found it will
  64.         assist you in finding the ZIP file containing that infected
  65.         file.  Whether or not a virus is found ZCHECK will delete all
  66.         the files and subdirectories it created. ZCHECK provides full
  67.         color screens to inform you of its findings.
  68.  
  69.         Syntax zcheck [c|z|?|h|H|error] [d:][path1] [d:][path2]
  70.  
  71.         ZCHECK is distributed for your evaluation if after a period of
  72.         21 days you find ZCHECK to be of value you should register
  73.         ZCHECK. Information concerning registration and the benefits are
  74.         included in this document.
  75.  
  76.         Files List
  77.  
  78.         ZCHECK.BTM ...................... Zcheck
  79.         ZSCREEN.BTM ..................... Zcheck opening screen
  80.         ZCHECK.CFG ...................... Sample configuration file
  81.         ZCHECK.DOC ...................... This document
  82.         ZCLEAN.BAT ...................... Cleanup if ZCHECK crashes
  83.         REGFORM.TXT ..................... Zcheck registration form
  84.  
  85.         Please include all these files if you redistribute ZCHECK.
  86.  
  87.         Requirements
  88.  
  89.         Zcheck will need approximately 150 bytes of free environment
  90.         space. This will vary according to the length of the paths to
  91.         the drive and directories used for ZCHECK, zip file location
  92.         and extraction.
  93.  
  94.         Zcheck will only run under 4DOS. It has only been tested under
  95.         4DOS version 4.00 and newer. If ZCHECK runs under an earlier
  96.         version there may at some point be problems with its operation.
  97.  
  98.         You must have PKUNZIP and SCAN, both registered trade marks of
  99.         their respective owners, and these utilities must either be in
  100.         the same directory with ZCHECK or on your path.
  101.  
  102.         You must have a color monitor and the associated video card.
  103.  
  104.         Command Line
  105.  
  106.         Syntax zcheck [c|z|?|h|H|error] [d:][path1] [d:][path2]
  107.  
  108.         The c, z, ?, h, H, error switches are optional and mutually
  109.         exclusive.  ( They cannot be used at the same time. )
  110.  
  111.                                                                Page  3
  112.  
  113.         The c switch causes ZCHECK to write the drive and path
  114.         information that is on that command line to the file
  115.         ZCHECK.CFG. This switch works with both paths, one path or no
  116.         paths.
  117.  
  118.         The z switch causes ZCHECK to read the path information from
  119.         the file ZCHECK.CFG. No further information on the command
  120.         line is needed or used by ZCHECK.
  121.  
  122.         The ? h or H switch will provide you with command line help.
  123.  
  124.         The error switch will provide a list of ZCHECK's error codes.
  125.  
  126.         [d:] Is the drive. If the drive is the current drive it is not
  127.         needed.
  128.  
  129.         [path1] This is the full DOS path not including drive to the
  130.         location of the ZIP files. If you wish to extract the zip files
  131.         into the same directory as this, you do not need [path2].
  132.         ZCHECK creates a subdirectory in which all the ZIP files are
  133.         extracted. If ZCHECK is located in the same directory with the
  134.         ZIP files and you wish to extract the ZIP in that directory
  135.         neither [path1] or [path2] is required.  If ZCHECK is in the
  136.         directory with the zip files and you wish to extract to a
  137.         different directory you must include both [path1] and [path2].
  138.  
  139.         [path2] This is the directory in which ZCHECK will create an
  140.         extraction directory. ZCHECK will extract the ZIP file into a
  141.         subdirectory which it creates, scan the files in that
  142.         subdirectory and any recursive subdirectories, then delete all
  143.         the files and the associated directories. The original ZIP file
  144.         will remain where it was. If you need to provide ZCHECK with an
  145.         extraction directory you must also supply the location of the
  146.         ZIP files even if they are located in the same directory or in
  147.         the directory with ZCHECK.
  148.  
  149.         Examples
  150.  
  151.         zcheck
  152.         This will cause ZCHECK to look for the zip files in the current
  153.         directory and if found create the extraction directory in the
  154.         same place.
  155.  
  156.         zcheck c:\arc
  157.         This will cause ZCHECK to look for the ZIP files in the drive
  158.         and directory c:\arc. If found ZCHECK will create the
  159.         extraction directory in c:\arc.
  160.  
  161.         zcheck a:\ c:\arc
  162.         This will cause ZCHECK to look for the ZIP files in the root
  163.         directory of the A drive. If found ZCHECK will create the
  164.         extraction directory in c:\arc.
  165.  
  166.                                                                Page  4
  167.  
  168.         zcheck ?
  169.         a brief help list will be provided just enough to help remind
  170.         you of the order of switches and path entries. This is not
  171.         intended to replace this document in any way. The lower case h
  172.         and upper case H will also get you to the same list. This will
  173.         not start ZCHECK.
  174.  
  175.         zcheck error
  176.         A list of ZCHECK error codes and definition will be provided.
  177.         ZCHECK can be run from another batch file and will return error
  178.         codes to that batch file. This will allow you to call ZCHECK a
  179.         number of times to check ZIP files located in different
  180.         directories.
  181.  
  182.         zcheck c a:\ c:\arc
  183.         This will cause ZCHECK to write the ZIP file directory and
  184.         extraction directory location to the file ZCHECK.CFG and then
  185.         proceed as in the previous example.
  186.  
  187.         zcheck z
  188.         This will cause ZCHECK to read the drive and directory
  189.         information from the file ZCHECK.CFG.
  190.  
  191.         Installing ZCHECK
  192.  
  193.         Copy the files to a directory of your choice. The only file
  194.         absolutely needed to use ZCHECK is ZCHECK.BTM. ZCLEAN.BAT
  195.         should be in the directory with ZCHECK.BTM in case of problems,
  196.         at least until you are familiar with ZCHECK.
  197.  
  198.         ZCHECK.CFG as supplied is only a sample file. If it is in the
  199.         directory with ZCHECK.BTM and you use the z switch, ZCHECK will
  200.         attempt to use the directories listed in this file. If you use
  201.         the c switch ZCHECK will overwrite the existing file with the
  202.         new information you supply.
  203.  
  204.         You do not need ZSCREEN. See the section Zscreen. Take a look
  205.         however it is cute.
  206.  
  207.         This file does not need to be in the same directory with
  208.         ZCHECK.BTM and can be stored any place you wish.
  209.  
  210.         Using ZCHECK
  211.  
  212.         ZCHECK will allow you to check ZIP files on a floppy drive by
  213.         extracting those files to a hard drive. The extraction and
  214.         scanning will be much faster using a hard drive then trying to
  215.         do everything on the floppy. Many ZIP files today cannot be
  216.         extracted onto the floppy they are found on or even ont another
  217.         floppy. You will be able to check as many ZIP files as ZCHECK
  218.         finds in the designated directory. This cross drive checking
  219.         also means you can work around a compressed drive. If you only
  220.         have just enough space on your uncompressed area to handle the
  221.         extraction and not the storage, this will save fragmenting your
  222.         compressed drive and also speed up the whole process.
  223.  
  224.                                                                Page  5
  225.  
  226.         ZCHECK will work on you path just like any other utility. When
  227.         ZCHECK ends you will be restored to the directory that you were
  228.         originally in.
  229.  
  230.         ZCHECK will create a file named CHECK.LZT. This file is
  231.         actually created at the request of ZCHECK but by SCAN. It will
  232.         contain a list of all the files scanned and the results. A
  233.         short sample is shown below.
  234.  
  235.  
  236.  
  237. SCAN 9.19 V1.08       1993/10/20   20:11
  238. Options: c:\work\CHECK /NOMEM /SUB /A /HISTORY SCAN.LZT
  239.  
  240.  
  241. Scanning Volume: C_DRIVE
  242.  
  243.  No viruses found.
  244. --------------------------------------------------
  245.  
  246.  
  247.             If you have done one or more checks with no virus found CHECK.LZT
  248.             will start with that number of screens that will look something
  249.             like this.The entry below is a sample of what you will find
  250.             in SCAN.LZT if scan should find a virus.
  251.  
  252.  
  253. --------------------------------------------------
  254.  
  255. SCAN 9.19 V1.08       1993/10/20   20:12
  256. Options: c:\work\CHECK /NOMEM /SUB /A /HISTORY SCAN.LZT
  257.  
  258.  
  259. Scanning Volume: C_DRIVE
  260.  
  261. The virus [Saturday 14th] has been found
  262.  
  263.                    c:\work\CHECK\$$$~Z\INFECTED.EXE
  264.           ________________________________________________________________
  265.  
  266.  
  267.         When SCAN finds a virus the file name is written to the file
  268.         SCAN.LZT as shown. ZCHECK writes the name of the ZIP file which
  269.         contains this infected file to a file named SCUM.LZT. The order
  270.         of the files that contain viruses in SCAN.LZT is the same order
  271.         as the ZIP file list in SCUM.LZT. There for the first file
  272.         listing of a virus in SCAN.LZT will be the first ZIP file
  273.         listed in SCUM.LZT.
  274.  
  275.         ZCHECK will not stop when it finds a virus but it will display
  276.         a temporary red screen to inform you that a virus has been
  277.         found. The number of files checked and the number of ZIP files
  278.         that contain infected files will be displayed when ZCHECK has
  279.         completed checking all the ZIP files. This screen will remain
  280.         until you press a key to quit ZCHECK.
  281.  
  282.                                                                Page  6
  283.  
  284.         Each time SCAN competes checking the extracted files and if no
  285.         virus was found in that check, ZCHECK will provide you with a
  286.         green progress screen. This screen informs you that SCAN did
  287.         not find any viruses in the last group of files checked, how
  288.         many ZIP files have been checked and the total number of files
  289.         zcheck is checking. This screen does not mean that no virus has
  290.         been found in previous scans of the ZIP files being processed.
  291.         it only refers to the last extraction and scan.
  292.  
  293.         If ZCHECK encounters any problems along the way you will be
  294.         informed with a blue screen. Some of these screens allow you to
  295.         exit ZCHECK but most are automatic screens that either continue
  296.         or quit.
  297.  
  298.         If ZCHECK finds insufficient environment in which to work it
  299.         will quit and tell you how much environment you need to operate
  300.         ZCHECK. The environment is the only place that ZCHECK has to
  301.         store the variables needed to do its job. You can set your
  302.         environment size either in your config.sys file or your
  303.         4DOS.INI file. in config.sys you add the E: switch to your
  304.         SHELL= command. The default is 512 bytes. to increase this to
  305.         1024 bytes for example, use E:1024. In your 4DOS.INI you set
  306.         the environment with  environment = 1024. This again would set
  307.         your environment to 1024 bytes. For more information on this
  308.         check your 4DOS manual. You should increase your environment if
  309.         necessary by much more than ZCHECK states is the minimum.
  310.         Otherwise if you enter a longer path the next time you start
  311.         ZCHECK you will get the same error.
  312.  
  313.         Error codes
  314.  
  315.         ZCHECK returns error codes to allow you to run ZCHECK in
  316.         another batch file and determine what you wish to do depending
  317.         on how ZCHECK quits. The term ERRORLEVEL is used since this
  318.         is how you check for error codes in a 4DOS batch file. The
  319.         error codes are listed and explained below.
  320.  
  321.         ERRORLEVEL 0 Normal Termination NO virus found
  322.         ERRORLEVEL 1 Normal Termination VIRUS found
  323.         ERRORLEVEL 2 Terminated by user
  324.         ERRORLEVEL 3 Terminated by ZCHECK
  325.         ERRORLEVEL 4 Terminated with an internal failure
  326.         ERRORLEVEL 5 Insufficient environment to start
  327.         ERRORLEVEL 6 Normal Termination Help or Error list accessed
  328.  
  329.         ERRORLEVEL 0 Normal Termination NO virus found
  330.  
  331.         This simply means that ZCHECK has indeed terminated through a
  332.         normal way and has not been forced to quit in any way. If you
  333.         exit ZCHECK using Ctrl-C or Ctrl-Break it will not return an
  334.         error code. As this code states it also indicates that no virus
  335.         was found.
  336.  
  337.         ERRORLEVEL 1 Normal Termination VIRUS found
  338.  
  339.         This is the same as the error code above except it indicates
  340.         that at least one virus was found.
  341.  
  342.                                                                Page  7
  343.  
  344.         ERRORLEVEL 2 Terminated by user
  345.  
  346.         There are exit screens in ZCHECK which allow you to either
  347.         continue or quit. If you choose to quit ZCHECK will generate
  348.         this error code.
  349.  
  350.         ERRORLEVEL 3 Terminated by ZCHECK
  351.  
  352.         ZCHECK provides for quitting if certain conditions are not met,
  353.         such as the programs PKUNZIP or SCAN have not been found by
  354.         ZCHECK. Under these type of conditions ZCHECK will return this
  355.         error code.
  356.  
  357.         ERRORLEVEL 4 Terminated with an internal failure
  358.  
  359.         If ZCHECK is able to determine that it cannot function due to an
  360.         internal variable missing or corrupt it will return this error
  361.         code. Under some conditions if things go beyond the control of
  362.         ZCHECK it may just crash and return no error code. Should this
  363.         happen there is information in the section  If ZCHECK Crashes.
  364.  
  365.         ERRORLEVEL 5 Insufficient environment to start
  366.  
  367.         If ZCHECK finds insufficient environment to operate it will not
  368.         only inform you of this with a screen but it will also return
  369.         this error code.
  370.  
  371.         ERRORLEVEL 6 Normal Termination Help or Error list accessed
  372.  
  373.         This is exactly what it states.
  374.  
  375.         Zcheck.cfg
  376.  
  377.         The option of file ZCHECK.CFG is provided, if you more often
  378.         than not use the same drive and directory configuration. If for
  379.         example you always check all zip files from drive A before
  380.         allowing them on your hard drive, an excellent idea, and always
  381.         extract them on drive C in the same directory. All you will
  382.         need to do, once your configuration file is made is to type
  383.         zcheck z  and ZCHECK will use the information it finds in
  384.         ZCHECK.CFG. You do not have to use ZCHECK with the c switch to
  385.         write ZCHECK.CFG, you can use any editor as long as you keep to
  386.         the format as shown in the sample file. The first line of the
  387.         file must contain the full DOS path including the drive, if
  388.         needed, to the location of the ZIP files. The second line must
  389.         contain the full DOS path including the drive, if needed, to
  390.         the extraction directory. Even if both are the same they must
  391.         both be included.
  392.  
  393.         If ZCHECK Crashes
  394.  
  395.         If you terminate ZCHECK with Ctrl-C or Ctrl-Break or if ZCHECK
  396.         crashes, which happens very seldom under normal use, you will
  397.         be left with a number of temporary files that ZCHECK uses. You
  398.         may also be left with the extraction directory that ZCHECK
  399.         creates, with the extracted ZIP file fully expanded. You will
  400.  
  401.                                                                Page  8
  402.  
  403.         know if this has happened since you will be left with a black
  404.         on cyan screen. This will also normally leave you in the
  405.         directory that ZCHECK is in.  Simply type ZCLEAN and the batch
  406.         file ZCLEAN.BAT will clean up the mess.  If you get the error
  407.         message UNKNOWN COMMAND "zclean" you either do not have ZCLEAN
  408.         in the correct directory with ZCHECK or you have been returned
  409.         to the directory you were originally in.  If ZCHECK has
  410.         returned you to your original directory it most likely cleaned
  411.         up it's own mess. ZCLEAN ends with the set command.  This
  412.         allows you to inspect your environment to see if any variables
  413.         created by ZCHECK have been left laying around.  4DOS almost
  414.         always cleans this up no matter how bad ZCHECK is abused.
  415.         However it is possible to defeat 4DOS and leave you environment
  416.         cluttered with unwanted variables. If you are not sufficiently
  417.         familiar with your environment to recognize what you want and
  418.         what you don't want simply use Ctrl-Alt-Del to reboot your
  419.         computer and your environment will be reset to normal.
  420.  
  421.         Zscreen
  422.  
  423.         ZSCREEN.BAT is not a beg screen. It is simply a cute screen and
  424.         serves no other purpose. It does however have a side effect. It
  425.         is a pain to some. You do not need to modify ZCHECK.BTM to stop
  426.         ZSCREEN. If you remove ZSCREEN from the directory where you
  427.         store ZCHECK.BTM or rename ZSCREEN.BAT ZCHECK will not call
  428.         ZSCREEN or go looking for ZSCREEN. This will put an end to this
  429.         screen.
  430.  
  431.         Modifying ZCHECK
  432.  
  433.         Since ZCHECK is a batch file you can, if you so choose, make
  434.         any changes you like. If you make any changes to ZCHECK with or
  435.         without registering ZCHECK do not contact me to help you debug
  436.         the modified version. It is not necessary to modify ZCHECK to
  437.         get rid of ZSCREEN. See the section Zscreen.
  438.  
  439.         If you decide to make modifications to ZCHECK please be very
  440.         careful with the line sampled below.
  441.  
  442.         %@exec[pkunzip %[wd]\%@line[ext.lzt,%[v]] -d %[exd]\$$$~Z]
  443.  
  444.         This calls PKUNZIP through a 4DOS back door and in itself can
  445.         get you into trouble if you are not careful. This line was
  446.         necessary in the form you see in order to overcome the problem
  447.         of PKUNZIP crashing ZCHECK whenever it found an error. When
  448.         PKUNZIP finds an error it shuts down.  Without calling PKUNZIP
  449.         through the "@exec[]" function PKUNZIP also crashed ZCHECK.
  450.         PKUNZIP also in the older versions, which are still in use, and
  451.         some of the varieties of the newer versions does not return
  452.         error codes to a batch file in a way that can be made use of
  453.         when it is called through the "@exec[]" function. For this
  454.         reason there is only one error screen for PKUNZIP. It states
  455.         PKUNZIP has returned and error of unknown type. SCAN can run
  456.         directly from the batch file and returns all its error codes
  457.         just perfect, so there are lots of SCAN error screens, but just
  458.         one for PKUNZIP.
  459.  
  460.                                                                Page  9
  461.  
  462.         The line just discussed can also be used as an example. If this
  463.         seems very straight forward and basic to you, then you should
  464.         have no trouble modifying ZCHECK to suit your own needs. If it
  465.         seems at all baffling you should understand that there are far
  466.         more complex areas within ZCHECK and perhaps you should learn
  467.         4DOS a little better before you tinker too much. ZCHECK is not
  468.         really a very complex batch file. It is actually quite simple,
  469.         but compared to the average six line batch file it might appear
  470.         to be maze.
  471.  
  472.         See the section Registration for information on acquiring a
  473.         fully remarked version of ZCHECK. This will make it much easier
  474.         for you to modify. The remarks are left out not to make the
  475.         workings a mystery but to allow ZCHECK to run as fast as a
  476.         batch file can.
  477.  
  478.         If ZCHECK were not a batch file it would not be necessary to
  479.         discuss modification. An executable file cannot be easily
  480.         modified without the source code. But a batch file has no such
  481.         privilege. It does however have a very big advantage over many
  482.         executable files on the market that do this kind of thing.
  483.         ZCHECK uses far less memory than many of the executable files.
  484.         All the executable files are larger than ZCHECK but some will
  485.         swap to extended, expanded memory or disk when running
  486.         utilities like PKUNZIP and SCAN. Most however simply shell to
  487.         DOS. This leaves less memory for the other utility. In some
  488.         cases this is a problem. ZCHECK presently uses less than 10K of
  489.         ram. The rest of the program is 4DOS. 4DOS  looks after all the
  490.         swapping very well and you will have a lot more room for the
  491.         other utility. If certain configurations of your system leave
  492.         you with very little ram and you must reboot to a different
  493.         configuration to run a similar type of utility, ZCHECK is the
  494.         answer.
  495.  
  496.         I have tried to make ZCHECK as friendly and useable as I can.
  497.         Keeping in mind that batch files have certain peculiarities
  498.         which create their own set of restrictions. You will see that I
  499.         have tried to keep the program flow as structured as is
  500.         possible in a batch file without sacrificing a great deal of
  501.         speed. If you decide to modify ZCHECK you should not have any
  502.         difficulty following the flow. Especially if you register and
  503.         receive a remarked version.
  504.  
  505.         Manual
  506.  
  507.         This document is already formatted for printing. It can be
  508.         successfully printed with two sided print utilities or book
  509.         print utilities. Registration has been deliberately placed on
  510.         the last page. It can easily be removed with any editor
  511.         including the page break. The page break is that funny looking
  512.         little symbol that is at the extreme right side of this
  513.         document. There are many of them and they are located on the
  514.         line above the line containing the page number at the extreme
  515.         right side. Remove the last one along with the last page if you
  516.         do not want to retain the registration with the manual. If you
  517.         fail to remove this your printer will simply produce an extra
  518.         page which will be blank.
  519.  
  520.                                                                Page 10
  521.  
  522.         Registration
  523.  
  524.         ZCHECK is not free. You have 21 days to try ZCHECK if after
  525.         that time you find ZCHECK to be of value you should register
  526.         your copy of ZCHECK. If you find ZCHECK is not of value you are
  527.         expected to discontinue using ZCHECK.  Just because ZCHECK is a
  528.         batch file does not lessen the principals involved.  This is
  529.         the standard this ain't free stuff. As much as I feel you
  530.         should register ZCHECK if you continue to use it this is all
  531.         you get about this.
  532.  
  533.         The actual registration form is in a file named REGFORM.TXT.
  534.         Simply copy this to your printer port or use print or what ever
  535.         you like. Fill it out include the funds, send it off and you
  536.         will be registered. So what does it cost and why register?
  537.  
  538.         Why then how much. I already gave you the standard stuff, here 
  539.         is the usual stuff. I do plan upgrades to ZCHECK and another 
  540.         similar utility called VCHECK.  VCHECK will handle ZIP's, ARJ's 
  541.         PAK's PKARC's and anything else I find room for. It will also 
  542.         be fully menu driven and retain far more in configuration. It 
  543.         will be much easier to use since it is menu driven. Most of the 
  544.         front end is completed. This will be made available to ZCHECK 
  545.         registered users for an appropriate discount. Any and all 
  546.         upgrades will be made available for only the cost of 
  547.         shipping. You will also receive with registration a fully 
  548.         remarked version of ZCHECK.  It actually runs but is incredibly 
  549.         slow.  You also get free support for one year. Why one year?  
  550.         Because I simply do not wish to promise something that I will 
  551.         regret. If you are not a pest you will probably get free 
  552.         support for much longer than that, at least that is the way I 
  553.         feel. It may however become impractical to supply support 
  554.         for ZCHECK beyond on year. but I will do what I promise. I 
  555.         promise one year.
  556.  
  557.         The cost of ZCHECK is US $10.00 plus the cost of delivery if
  558.         you live outside of Canada or the US. The additional shipping
  559.         charge is US $2.00 . This total cost includes the disk,
  560.         suitable mailing container, postage and of course ZCHECK with
  561.         your registration information. This is the fairest arrangement I
  562.         can arrive at. Otherwise it gets into all kinds of you supply,
  563.         I supply, except, unless, but only and so forth. You may if you
  564.         wish send the funds drawn on a Canadian bank, but you must
  565.         calculate the exchange rate and include the full amount. If you
  566.         do not send the full amount you will not receive your disk or
  567.         registration information, however you will be registered.
  568.  
  569.         Anyone who for any reason does not send the full amount and
  570.         later forwards the balance will receive their disk and
  571.         registration at that time.
  572.  
  573.