     
   ---------------------------------

        ,
       
(  , ):

   1.    -       
      (  - Idle,   - Idle)

   2.     
      ( ,   -   ,
            )

   3.     (  )

   4.    
      (,     ,
           ,  ...)
           
        "User interface"     
          user32.dll, advapi32.dll
            mfc*.*  delphi*.*
       -   kernel32.dll

   5.  8   (like UPX) .exe-

           - ...

===================================================================================================
Sync.exe - Backup program
-------------------------

1. Both Source & Destination Dirs CAN become unavailable at any time
   -----------------------------------------------------------------

   E.g. i) concentrate to Server

        \\A\Important     -> \\Server\ArchiveA  // A
        \\B\Important     -> \\Server\ArchiveB  //   B
        \\C\Important     -> \\Server\ArchiveC  //     C

        ii) distribute from Server

        \\Server\ArchiveA -> \\B\ArchiveA       // A
        \\Server\ArchiveA -> \\C\ArchiveA       // A

        \\Server\ArchiveB -> \\A\ArchiveB       //   B
        \\Server\ArchiveB -> \\C\ArchiveB       //   B

        \\Server\ArchiveC -> \\A\ArchiveC       //     C
        \\Server\ArchiveC -> \\B\ArchiveC       //     C

        iii) back on Clients

        \\A\Important     -> \\B\ArchiveA       // A
        \\A\Important     -> \\C\ArchiveA       // A

        \\B\Important     -> \\A\ArchiveB       //   B
        \\B\Important     -> \\C\ArchiveB       //   B

        \\C\Important     -> \\A\ArchiveC       //     C
        \\C\Important     -> \\B\ArchiveC       //     C

        iv) Clients update (not so symmetric)

        \\B\ArchiveA      -> \\C\ArchiveA       // A
        \\C\ArchiveB      -> \\A\ArchiveB       //   B
        \\A\ArchiveC      -> \\B\ArchiveC       //     C

        (note using all possible connections W/O CYCLES)

        maintains multiple-PC-mirrored archives, so any of Server, A, B or C
        will contain ALL Important data

   E.g. CD1:\StuffOne -> HDD:\Archive
        HDD:\Archive  -> CD2:\StuffTwo

        eventually files will be copied from CD1: both to HDD: and CD2:
        (note DIFFERENT StuffOne and StuffTwo, else CD#: are indistinguishable)

2. Both Source & Destination Dirs can TEMPORARILY become available
   ---------------------------------------------------------------

   E.g. \\Server\HotGame -> \\My\Relax

        some person (network admin) occasionally logs onto \\My\
        getting access to \HotGame, though he performs OTHER task

        after several such loggings this stuff will be copied to \Relax

   E.g. CD:\X-Pictures -> C:\Artistic

        someone sporadically works on your PC, having own CD: inserted
        that contains \X-Pictures on it

        sooner or later this contents will be duplicated on \Artistic

3. Filing
   ------

   If Destination File absent, it WILL be restored
   If Destination Dir  absent, it NOT  be created
   If Source      File absent, it NOT  be deleted in Destination

4. Limits
   ------

   File          1 G
   Sync.lst  21120 Bytes (if ChunkSize is 8192)
   FileSpec    235 chars
   FileName     63 chars
   Dir          64 levels

===================================================================================================
Sync.lst - Naming & Format
--------------------------

Sync.exe   -> Sync.lst
SyncCD.exe -> SyncCD.lst
etc.

<Source      Dir A>      // first line of file
<Destination Dir A>
<Mask Simple>            // or exact name
\<Mask Recursive>
;<Mask Commented Out>
...                      // more masks
                         // empty line
<Source Dir B>
...

D:                       // means root of D:
\\Server\D
\*.*

\\Server                 // means root of \\Server
D:\Server
\*.*
                         // last line of file is empty

===================================================================================================
Sync.exe - Tuning & Info
------------------------

* 0040 4000  [ 8 ]  ".lst"       can be like ".List" or "-List" for LFN's
* 0040 4008  [ 8 ]  ".(-)"       as above
* 0040 4010   dw        1 enum   1 == METHOD_NEWER
                                 2 == METHOD_OLDER
                                 3 == METHOD_DIFFERENT
* 0040 4014   dw     2000 ms     Time    difference that considered Equal if less
                                                    (FAT vs NTFS)
                                                    max value is 400 sec
* 0040 4018   dw     8192 Bytes  Chunk   size       Worker copies at once
* 0040 401c   dw      250 ms     Time    between    each copyings
* 0040 4020   dw      900 s      Time    sleep      at   startup
* 0040 4024   dw       10        Maximum count of   Worker threads

  <file>.(-) can be set Read-Only to manually PAUSING Sync for <file>.* (large files, etc.)

// EOF
