home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / BBS / XLAX_256.ZIP / XLAXDIFF.DOC < prev    next >
Text File  |  1992-07-19  |  12KB  |  322 lines

  1.                                       
  2.                                     XLAXDIFF
  3.                             Express Nodelist Update
  4.                               Copyright 1987, 1988
  5.                                  By Scott Samet
  6.                           Friends of Dorothy 1:135/990
  7.  
  8.  
  9.  
  10.      This is a program to apply the weekly update NodeDiff files to the
  11.      matrix NodeList.  It's designed to be fast and easy to use.  On my 8
  12.      Mhz XT clone, it unarchives and applies a typical update in 45
  13.      seconds.
  14.  
  15.      XlaxDiff is part of XlaxNode.  It's not a free program, and it's never
  16.      supposed to be distributed without all of the files.  If you didn't
  17.      get all of these files, you have an illegal copy:
  18.  
  19.           NODELIST.DBF, PCP.DAT, PCP.DOC, PCP.EXE, PCP.INP, PCP.S12,
  20.           PCP.S24, READ.ME., XLAXDIFF.DOC, XLAXDIFF.EXE, XLAXNODE.CTL,
  21.           XLAXNODE.DOC, XLAXNODE.EXE, XLAXNODE.OVR
  22.  
  23.  
  24.                                      NOTICE
  25.  
  26.      This version expects an IBM PC Compatible BIOS or some reasonable
  27.      facsimile.  It also expects to find a copy of ARCE somewhere in the
  28.      DOS Path.  Command line switches allow use of other unarc programs and
  29.      on non-PC-Compatibles.
  30.  
  31.                                License / Warranty
  32.  
  33.      The program and associated documentation are Copyright.  It may only
  34.      be distributed as part of the XlaxNode archive.  The full license and
  35.      warranty terms for XlaxNode and XlaxDiff are contained in the
  36.      XlaxNode.Doc file.
  37.  
  38.  
  39.                                 What does it do?
  40.  
  41.      XlaxDiff takes the most recent NodeList and applies any higher
  42.      numbered NodeDiff files, producing a new NodeList.  If it encounters
  43.      any NodeList or NodeDiff archive files along the way, it extracts the
  44.      files it needs.
  45.  
  46.  
  47.  
  48.                                    OPERATION
  49.  
  50.      If you have ARCE (the "official-un-official" Opus unarchive program)
  51.      in your DOS path, and you have NodeList and NodeDiff in your currect
  52.      path, just type XLAXDIFF and let it rip.
  53.  
  54.      If you are into all the bells and whistles, XLAXDIFF accepts arguments
  55.      on the command line:
  56.  
  57.           /G
  58.                By default, this version uses IBM PC BIOS calls for the
  59.                video display.  The /G switch on the command line will force
  60.                the use of ANSI escape sequences.  Machines without PC BIOS
  61.                support, such as the Z-100 or DEC Rainbow MUST use the /G
  62.                switch.
  63.  
  64.  
  65.      XLAXDIFF                                                        Page 1
  66.  
  67.  
  68.      XLAXDIFF                                                        Page 2
  69.  
  70.  
  71.           /O=[path\][filename]
  72.                Path and/or file name (no type) to use for the old NodeList.
  73.                The default is NodeList in the current directory.
  74.  
  75.           /E=[path\][filename]
  76.                Path and/or file name (no type) to use for the updates to
  77.                the the NodeList.  The default is NodeDiff in the current
  78.                directory.
  79.  
  80.           /N=[path\][filename]
  81.                Path and/or file name (no type) to use for the new (output)
  82.                NodeList.  The default is the path and name of the old
  83.                NodeList.  The day number of the highest update file will be
  84.                used as the file type.
  85.  
  86.           /A[=[path\][filename]]
  87.                Indicates an archive containing the new (output) Nodelist is
  88.                to be created.  A path and/or file name (no type) may be
  89.                specified.  If omitted, the path and file name of the new
  90.                nodelist will be used.  The first character of the type will
  91.                be replaced by the letter 'A'.  Using an archive program
  92.                name on the /X switch does NOT force an archive to be
  93.                created.
  94.  
  95.           /X=[[path\]progname][,[[path\]progname]]
  96.                Name of the archive programs to be used.  The first is the
  97.                program to use for unarchiving files, the second for
  98.                archiving files.  If omitted, ARCE and ARCA will be assumed.
  99.                Path and file names are significant, file type will be
  100.                ignored.  If the path is omitted, the DOS Path will be
  101.                searched.
  102.  
  103.           /L
  104.                Leave: Any files extracted from archives are to be left in
  105.                the current directory when the program is done.  Normal
  106.                action is to delete these work files.
  107.  
  108.           /C
  109.                Cleanup: The input Nodelist and Nodediff files are deleted
  110.                if the program completes and the output file passes the CRC
  111.                check.  The only file left will be the new Nodelist (and
  112.                archive, if requested).
  113.  
  114.  
  115.  
  116.                                   ERROR CODES
  117.  
  118.      XlaxDiff returns an error code to DOS.  This code can be tested by the
  119.      IF ERRORLEVEL test in a batch file.
  120.  
  121.                LEVEL    DESCRIPTION
  122.  
  123.                  0      Updates applied without error.
  124.  
  125.                  1      No work to do: No NodeDiff file present or NodeList
  126.                         later than all NodeDiffs.
  127.  
  128.  
  129.      XLAXDIFF                                                        Page 2
  130.  
  131.  
  132.      XLAXDIFF                                                        Page 3
  133.  
  134.  
  135.                  2      NodeList/NodeDiff file sequence broken by missing
  136.                         file.
  137.  
  138.                  3      Error renaming output file.
  139.  
  140.                  4      Checksum error in output NodeList.  Usual cause is
  141.                         corrupted Nodelist input file.
  142.  
  143.                  5      Other errors, including:
  144.                         o   Command line syntax error.
  145.                         o   NodeDiff file format error.
  146.                         o   Archive or Unarchive program error message.
  147.  
  148.  
  149.             BUGS, PROBLEMS, COMPLAINTS, SUGGESTIONS and COMPLIMENTS
  150.  
  151.      Hopefully there will not be a lot of the first three.  Be sure to tell
  152.      me the what version of the program you are running and the NodeList
  153.      and NodeDiff numbers causing the problem.  If you think that the error
  154.      message might be helpful, XlaxDiff output can be piped, so just say:
  155.           XlaxDiff > Bug.Rpt
  156.  
  157.      Before you send a bug report PLEASE read the list of common problems
  158.      below.  95% of the reports I receive are traced to one of the items on
  159.      the list.
  160.  
  161.      Archive (ARC, ZIP, LHA, ARJ) the stuff up, make YOUR node number part
  162.      of the file name, and send it down the net.
  163.  
  164.      Bug reports with unidentified archives, or missing program version
  165.      number or other supporting information will be sent to NUL.
  166.  
  167.  
  168.                                 Common Problems
  169.  
  170.      Nogate's PAK utility causes "Disk Read Errors".  As part of its effort
  171.      to locate the latest files, XlaxDiff looks inside everything it
  172.      suspects might be an archived NodeList or NodeDiff.   PAK creates
  173.      files that are close enough to ARCs that they confuse XlaxDiff.  If
  174.      you have files compressed with PAK, you must extract their contents
  175.      yourself, PLUS make sure the compressed files are located in a
  176.      directory where XlaxDiff will not find them.
  177.  
  178.      ZIPs, LZHs, ARJs.   Fidonet standards specify that nodelist files are
  179.      compressed by ARC.  No slight against any of these programs, but
  180.      XlaxDiff does not support them.  If your nodelist supplier is
  181.      compressing files with a non-standard utility, you will have to unpack
  182.      them yourself.
  183.  
  184.      Missing Diffs.  I'm frequently asked "I missed NodeDiff number xyz.
  185.      How do I merge the next one?"  You don't.  This has nothing to do with
  186.      XlaxDiff.  The NodeList/NodeDiff scheme only works if you have all the
  187.      parts.  If you miss a NodeDiff, you have no choice but to get a
  188.      complete copy of the current NodeList.
  189.  
  190.  
  191.  
  192.  
  193.      XLAXDIFF                                                        Page 3
  194.  
  195.  
  196.      XLAXDIFF                                                        Page 4
  197.  
  198.  
  199.      CRC errors.  Please folks, I can't emphasize this enough.  Not one CRC
  200.      error has ever been traced to a problem with XlaxDiff.  Every single
  201.      one has been traced to a problem with the NodeList or NodeDiff files.
  202.      Every blasted one.  Some problems are technical: phone lines, batch
  203.      files, archivers, mailers and the like.
  204.  
  205.      By far, the most common source of CRC errors is the computer keyboard.
  206.                NODELIST and NODEDIFF FILES MUST NEVER BE EDITED.
  207.                 NODELIST and NODEDIFF FILES MUST NEVER BE EDITED.
  208.      That's right, I said it twice, but some people will miss it.  The
  209.      NodeList/NodeDiff scheme just doesn't have any provision for making
  210.      manual changes to the files.  There are cases where NC's and even RC's
  211.      (almost always new ones!) have corrected phone numbers or flags before
  212.      passing them down the line.  As a result, an entire net or region had
  213.      CRC problems.  Before you panic, check with others in your net to see
  214.      if they had CRC problems, too.
  215.  
  216.      There's no practical treatment for the CRC-Blues.  You need to get a
  217.      good clean copy of the NodeList and start from there.
  218.  
  219.  
  220.                        NodeList/NodeDiff Selection Logic
  221.  
  222.      Here's the actual logic:  The program determines the latest files by
  223.      using the day number that is part of the file names.  For the year end
  224.      logic to work correctly, the range of day numbers should not exceed a
  225.      six month period.
  226.  
  227.      First, it determines the latest NodeList and NodeDiff files.  If the
  228.      NodeList is later than or equal to the NodeDiff, the NodeList is
  229.      unarced, if necessary.  If the /A switch is specified, the NodeList is
  230.      (re)archived.  Otherwise, if the /C switch is specified, the input
  231.      NodeList archive is deleted.
  232.  
  233.      If a later NodeDiff exists, it is opened and the first line read.
  234.      That line contains the number of the NodeList to which the updates
  235.      apply.  If no NodeList with that number exists, then a check is made
  236.      for a NodeDiff.  If a NodeDiff is found, that NodeDiff is opened and
  237.      the process is repeated until a NodeList is located.  If the program
  238.      cannot find an unbroken chain of NodeDiff files leading back to a
  239.      NodeList file, then it aborts.
  240.  
  241.      Example 1:
  242.           You have NodeList.245, NodeList.252, NodeDiff.245 and
  243.           NodeDiff.252 in the current directory.  There's no NodeDiff
  244.           higher than the higest NodeList, so the program exits.
  245.  
  246.      Example 2:
  247.           You have NodeList.238, NodeDiff.238, NodeDiff.245 and
  248.           NodeDiff.252 in the current directory.  NodeDiff.252 refers to
  249.           list #245, NodeDiff.245 refers to list #238 and NodeDiff.238
  250.           refers to list #231.  In this case, the program follows the chain
  251.           from NodeDiff.252 to NodeDiff.245 to NodeList.238 and will apply
  252.           the two NodeDiff files and create NodeList.252 in the current
  253.           directory.  NodeDiff.238 is not needed.
  254.  
  255.  
  256.  
  257.      XLAXDIFF                                                        Page 4
  258.  
  259.  
  260.      XLAXDIFF                                                        Page 5
  261.  
  262.  
  263.      Example 3:
  264.           The same as Example 2, except the NodeList file is #224.  The
  265.           program follows the chain from NodeDiff.252 to NodeDiff.245 to
  266.           NodeDiff.238.  There is no NodeList.231 or NodeDiff.231, so the
  267.           program is unable to apply the updates.
  268.  
  269.      Example 4:
  270.           You have NodeList.360 and NodeDiff.002 in the current directory.
  271.           Since the time span from 360 to 002 (seven days) is less than the
  272.           time span from 002 to 360 (358 days), NodeDiff.002 will be
  273.           considered the latest file.  If NodeDiff.002 refers to
  274.           NodeList.360, the update will be applied; otherwise the program
  275.           will issue an error message.
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.      XLAXDIFF                                                        Page 5
  322.