home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / COMPRESS / ZIPBASE.ZIP / ZIPBASE.DOC < prev    next >
Encoding:
Text File  |  1989-12-09  |  59.2 KB  |  2,111 lines

  1.  
  2.  
  3.                              Z i p B a s e 1 . 1
  4.  
  5.  
  6.                               Table of Contents
  7.  
  8.           1. Introduction......................................3
  9.              Who are 32-Bit Systems?...........................3
  10.              What is ZipBase...................................3
  11.              Who is ZipBase....................................4
  12.           2. Quick Start.......................................5
  13.              Up and Running....................................5
  14.           3. ZipBase...........................................6
  15.              Database..........................................6
  16.                    Adding Records to ZipBase...................6
  17.              Renaming a ZipBase................................6
  18.              Merging ZipBase...................................7
  19.              Shelling to Dos ..................................7
  20.              Quitting ZipBase..................................7
  21.           4. Query.............................................8
  22.              Asking a Question ................................8
  23.                    Description of Field Names.................11
  24.              Processing the Question .........................13
  25.              Printing the Answer .............................13
  26.              Loading and Saving Queries ......................13
  27.           5. Options..........................................14
  28.              Printer Options .................................14
  29.           6. Software License.................................15
  30.           7. Registration.....................................16
  31.           8. How is a ZipFile Scanned.........................20
  32.           9. Technical Information............................25
  33.              Format of a ZipBase..............................25
  34.              Sorting Techniques...............................26
  35.           10. Future Enhancements.............................28
  36.           11. Known Faults and Bugs...........................29
  37.           12. Revision History................................31
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. ZipBase(TM) 1.1                      User Manual                  Page i
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.            3333333        2222222         3 2 - B i t   S y s t e m
  78.           333333333      222222222
  79.          33       33    22       22     Programmer: Dean A Richardson
  80.                   33             22
  81.                   33            222      Studio 3, 2 Cavendish Road,
  82.              3333333          222              West Didsbury,
  83.                   33        222             Manchester, M20 8JG,
  84.                   33      222                 United Kingdom.
  85.          33       33    222
  86.           333333333     22222222222
  87.            3333333       222222222          [44] (061) 434-6746
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.                                 Z i p B a s e
  95.                                  Version 1.1ß
  96. a
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129. ZipBase(TM) 1.1                      User Manual                  Page 1
  130.  
  131.  
  132.  
  133.                              Z i p B a s e 1 . 1
  134.  
  135.  
  136.                              N  O  T  I  C  E  !
  137.                              ~~~~~~~~~~~~~~~~~~~
  138.  
  139. The  "Try-Before-You-Buy"  version  of  ZipBase  contains  modified  code of the
  140. original ZipBase. It  is a fully  working version with  no code left  out of the
  141. version you will receive when you register. You will have 10 minutes of use each
  142. time you load  ZipBase. After this  time a chime  will sound 3  times. Then your
  143. computer will slow down dramatically making it very difficult to use ZipBase.
  144.  
  145. This protection  will cause  no physical  damage to  you computer,  however, the
  146. slowing down  is caused  by attaching  ZipBase to  your timer.  If you  have any
  147. programs loaded (TSR or Multi-Tasking) which  rely on a constant 18.2 ticks  per
  148. second be warned that these programs will be affected also.
  149.  
  150. This protection will be disabled when you select [DATABASE/EXIT].
  151.  
  152. You may load ZipBase again for another 10 minutes of trial.
  153.  
  154. Upon Registration you will receive a version of ZipBase without this protection.
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193. ZipBase(TM) 1.1                      User Manual                  Page 2
  194.  
  195.  
  196.  
  197.                              Z i p B a s e 1 . 1
  198.  
  199.  
  200. 1.  Introduction.
  201.  
  202.     Who are 32-Bit Systems?
  203.  
  204.    Greetings!  I  am   Dean  A.  Richardson,   and  I  am   currently  operating
  205.    commercially  under  the   name  of  32-Bit   Systems  which  is   based   in
  206.    Manchester, UK.
  207.  
  208.    I   work   as   Computer   Systems'    Analyst   &   Programmer   at   C    H
  209.    Johnson & Sons Limited (JWI Group [UK]).   I've been there for 3 years  since
  210.    being  released  from  the  Polytechnic  of Manchester with qualifications in
  211.    Computer Science. My employment is to develop a business computer system from
  212.    nothing. To  provide applications  for order,  accounting, sales, productions
  213.    stats, and to network these systems. CHJ is a PC based company, 500 employees
  214.    and 1 computer personelle ......... me! The system at CHJ is being  developed
  215.    by me  soley, and  through this  I have  set my  own standards and methods of
  216.    programming. The computer system is constructed using:
  217.  
  218.                    Borland Paradox Version 3,
  219.                    Microsoft Optimising C Ver 5P,
  220.                    Microsoft Quick C Ver 2.00
  221.                    Microsoft Quick Basic Ver 4.00
  222.                    Microsoft Excel Spreadsheet,
  223.                    Novell Network Ver 2.??,
  224.  
  225.  
  226.    Through 32-Bit Systems I hope to be able to increase my programming skills by
  227.    providing software which is needed by competant computer users like yourself.
  228.  
  229.    I also hope that, through this project, I can project the idea of TECHNOWARE.
  230.    In short, TECHNOWARE is a concept  where  you release  parts of  your  source
  231.    code into the public domain with no thoughts of being paid for it! The source
  232.    code must show  a specific technique  for a specific  procedure (i.e. a  sort
  233.    routine). Along with the code should be a declaration that this is TECHNWARE,
  234.    your name & contact address/number/BBS, and a list of credits to other people
  235.    from whom you came about this particular skill through TECHNOWARE.
  236.  
  237.  
  238.    I am available for serious employment / consultation if the price is right.
  239.  
  240.  
  241.  
  242.  
  243.     What is ZipBase(TM)?
  244.  
  245.    ZipBase(TM) is  a customised  database. It  is designed  specifically to hold
  246.    data  on  files  created  using  Phil  Katz Compression Programs PKZIP ver 1.
  247.    ZipBase(TM)  does  its  own  data-entry  by  scanning  all   zipfiles  in all
  248.    directories on the  drive specified. ZipBase(TM) will store:
  249.  
  250.                            Volume name
  251.                            Zipfile name
  252.                            Zipfile path
  253.                            All filename in the zipfile
  254.  
  255.  
  256.  
  257. ZipBase(TM) 1.1                      User Manual                  Page 3
  258.  
  259.  
  260.  
  261.                              Z i p B a s e 1 . 1
  262.  
  263.  
  264.                            All paths in the zipfile
  265.                            All comments for each filename
  266.                            Version of PKZIP used to create zipfile
  267.                            Version of PKZIP needed to extract files from zipfile
  268.                            Method of compression used for each file
  269.                            Compressed size
  270.                            Uncompressed size
  271.                            Date & Time of each file.
  272.  
  273.  
  274.    ZipBase(TM) also offers you a Query  Procedure. Using the query form you  can
  275.    tell ZipBase(TM) to find   records which match   a specific criterior.   When
  276.    you process the   query  a   new  ZipBase(TM)   is  created (called  ANSWER).
  277.    Answer contains all records from the source ZipBase(TM) which match the Query
  278.    criterior. You can even query Answer as long as Answer is renamed beforehand.
  279.  
  280.  
  281.  
  282.     Who is ZipBase(TM) Intended For?
  283.  
  284.    ZipBase(TM) is intended for people who own a substantial number of Zip  files
  285.    and who need to keep a record of  what  they have and where it is.  Sysops of
  286.    BBSs are  one section  of people.  Business accounts  departments who archive
  287.    year  to date information into zipfiles is another.
  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. ZipBase(TM) 1.1                      User Manual                  Page 4
  322.  
  323.  
  324.  
  325.                              Z i p B a s e 1 . 1
  326.  
  327.  
  328. 2.  Quick Start.
  329.  
  330.     Up and Running.
  331.  
  332.    Get a  blank diskette  and place  a   couple of  zipfiles onto  it. Make sure
  333.    that      you      know      the      contents      of      each     zipfile.
  334.    Next,  run   ZipBase(TM).  Goto   the  Database   Menu (press [enter])    and
  335.    select ADD. Accept the  ZipBase(TM)  name   as  default.   Enter  the   drive
  336.    letter (i.e. A  or B)   of the  diskette     you   have     just    prepared.
  337.    If   the diskette  has   not   got    a volume name   then ZipBase(TM)   will
  338.    ask  you  for one. ZipBase(TM)  will now  extract information.
  339.  
  340.     A word of advice: make sure that one of the files in the ZipFiles is a
  341.    .COM file as this will make more sense of the following instructions.
  342.  
  343.    Now that you  have created a  small ZipBase(TM) its  time to create  a simple
  344.    question.  Read this:
  345.  
  346.    "Print a list  of  all .COM  files in  the  ZipBase(TM). The list   should be
  347.    sorted by filename and  should show filename and  the name of the  ZipFile in
  348.    which  it is held."
  349.  
  350.    We shall  now ask  this question.  Goto the  query menu  (press [enter])  and
  351.    select  ASK.  The  query  form  will  now  light up. Use the cursor keys move
  352.    around.
  353.  
  354.    First, we must ask for which fields we want to be printed out:
  355.        1. Move to the line which says FILENAME. Put a 1 in the INC column.
  356.        2. Move to the line which says ZIPNAME. Put a 2 in the INC column.
  357.  
  358.    Secondly, we must ask for a sort to be performed:
  359.        3. Move to the line which says FILENAME. Put a 1 in the SORT column.
  360.  
  361.    Thirdly, we must ask only for .COM files to be printed.
  362.        4. Move to the line which says EXTENSION. Put COM in the CRITERIOR
  363.           column.
  364.  
  365.    Now we have created our question. Move to the line which says UNCOMP SIZE and
  366.    move to the CRITERIOR  column. Press [enter]. This  is how you exit  a query.
  367.    You will  be asked  is the  query is  correct. Take  a moment  to check  that
  368.    you have done everything correctly. Then press Y.
  369.  
  370.    OK. Now lets  put  ZipBase(TM)  to work. Go   to the Query  menu  and  select
  371.    Process.  Accept  the  ZipBase(TM)    name  as  default.   ZipBase(TM)   will
  372.    now  search through all  records  those   which  match   out  question.   You
  373.    can see  the progress in the ANSWER window.
  374.  
  375.    When processing has  finished its time  to print our  answer. Goto the  Query
  376.    menu and select PRINT. ZipBase(TM) will now read, sort and print the  answer.
  377.    Make sure that the printer is on!
  378.  
  379.    CONGRATULATIONS! You have just performed a Query of you ZipBase(TM).
  380.  
  381.  
  382.  
  383.  
  384.  
  385. ZipBase(TM) 1.1                      User Manual                  Page 5
  386.  
  387.  
  388.  
  389.                              Z i p B a s e 1 . 1
  390.  
  391.  
  392. 3.  ZipBase(TM) - User Instructions.
  393.  
  394. This  section  describes  in  more  detail  how  to make use of your ZipBase(TM)
  395.    program.
  396.  
  397.  Database.
  398.     Adding Records to ZipBase(TM) [DATABASE/ADD]
  399.  
  400.    ZipBase(TM) will scan a  whole volume for ZipFiles.  That is, all directories
  401.    on the  volume. To  add   a diskette  worth of   zipfile information  to  the
  402.    ZipBase(TM), goto the DATABASE menu and select ADD.
  403.  
  404.    You will  be asked   for the  full path   name of  the ZipBase(TM)   to which
  405.    forcoming data will be   added. You will  always  be offered  the default  of
  406.    ZipBase(TM).ZDB preceded by the current pathname.
  407.  
  408.    Now you will be prompted for the volume letter to read. Any letter from A  to
  409.    Z  will  be  accepted.  If  you  are  running  on a system which allows other
  410.    charactes for device names then let me know & hold your breath for version 2!
  411.  
  412.    If the volume has no label then you will be promted for one. It is  important
  413.    that this label   be unique. When   a label is   accepted by ZipBase(TM)   it
  414.    will go away and scan through all volume names in the current ZipBase(TM). If
  415.    the name is found then this volume will not be accepted.
  416.  
  417.    ZipBase(TM) will now scan like crazy.
  418.  
  419.    What  ZipBase(TM)  is  actually  doing  is  firstly creating a linked list in
  420.    memory of all  the directory names  on the volume.   The size of  the list is
  421.    only  limited  to the amount  of heap memory  available.  If  memory runs out
  422.    then you will  be  told. Chances are that ZipBase(TM)  will  try to carry  on
  423.    with the  directories it has managed to store.
  424.  
  425.    ZipBase(TM) will always  append new records   to the end  of the  ZipBase(TM)
  426.    file. No Sorting is  done  as  this would  take  too  much time.  No  indexes
  427.    are created because I couldn't possible predict everyone's queries.
  428.  
  429.  
  430.  
  431.     Renaming a ZipBase(TM) [DATABASE/RENAME]
  432.    Use this option to  rename a ZipBase(TM). It  is quite important to  use this
  433.    option rather than renaming at the dos command line because each  ZipBase(TM)
  434.    contains header  information. Part  of this  information is  the name  of the
  435.    ZipBase(TM).  Although it dosnt  matter in this version, using  a ZipBase(TM)
  436.    when the  header name  dosnt match  the actual  ZipBase(TM) name  could cause
  437.    problems. This option ammends the header as well as renaming the ZipBase(TM).
  438.  
  439.    When you select this option you will be asked for the name of the ZipBase(TM)
  440.    you wish to rename. If this file exists on disk you will be asked for the new
  441.    name. This name must not already  be used in the current directory.  You must
  442.    not specify pathnames, i.e.
  443.  
  444.        Rename   C:\ZipBase\A.ZDB            C:\FRED\B.ZDB
  445.  
  446.  
  447.  
  448.  
  449. ZipBase(TM) 1.1                      User Manual                  Page 6
  450.  
  451.  
  452.  
  453.                              Z i p B a s e 1 . 1
  454.  
  455.  
  456.        is illeagal and may cause ZipBase(TM) to crash.
  457.  
  458.  
  459.     Merging ZipBase(TM)s [DATABASE/MERGE]
  460.    You can merge two ZipBase(TM)s into one.  You may wish to do this if  you are
  461.    performing an  'OR' query  (see Query  section). Because  of the structure of
  462.    each ZipBase(TM) performing  'COPY /B A.ZDB+B.ZDB  C.ZDB' at the  dos command
  463.    line will destroy  the ZipBase(TM)'s credibility.  The merge option  will ask
  464.    for the names of 2 ZipBase(TM)s to merge and a name for the two  ZipBase(TM)s
  465.    to be merged into. The 2 source files must exists. The destination name  must
  466.    not exist.
  467.  
  468.    Merge takes care of  the header information of  the new ZipBase(TM). It  uses
  469.    header information from the two  source ZipBase(TM)s so if these  are corrupt
  470.    the new ZipBase(TM) will also be corrupt.
  471.  
  472.  
  473.     Shelling to Dos [DATABASE/SHELL]
  474.    You may load another copy of your command processor. In most cases this  will
  475.    be COMMAND.COM  but for  users of  other processors  (I myself  use 4DOS.COM)
  476.    ZipBase(TM) will  load what  ever is  specified in  your COMSPEC  environment
  477.    variable.  Please  make  sure  that  this  variable  is  correct,   otherwise
  478.    ZipBase(TM) may crash.
  479.  
  480.  
  481.     Quitting ZipBase(TM) [DATABASE/EXIT]
  482.    To exit  out of  ZipBase(TM) select  this option.  All files  are closed, all
  483.    temporary  files  are  removed  from  the  directory, all memory allocated by
  484.    ZipBase(TM) will be deallocated and ZipBase(TM) is terminated.
  485.  
  486.    WARNING:    The  answer file  created from  processing a  query is  temporary
  487.                file. It will be deleted  when you exit from ZipBase(TM).  If you
  488.                wish to keep you answer then use the Rename option.
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513. ZipBase(TM) 1.1                      User Manual                  Page 7
  514.  
  515.  
  516.  
  517.                              Z i p B a s e 1 . 1
  518.  
  519.  
  520. 4.  Query.
  521.  
  522. Using the Query facilities you can ask questions of your ZipBase(TM). You  could
  523. ask for all files which have the extension .EXE to be listed, or ask for a  list
  524. of volumes in the ZipBase(TM).
  525.  
  526. READ THIS!
  527. Because of the limited code segment  available (64K) the query facility is  very
  528. basic. For example,
  529.  
  530.    *   You   cannot   specify   more   than   1   criterior   for   each  field.
  531.        i.e. you cannot ask for a list of files with the extension .COM or .EXE.
  532.  
  533.    *   You cannot  specify ranges  to be  matched. i.e  finding all files  whose
  534.        compressed  sizes  is  less  than  1000  bytes. Only exact values will be
  535.        accepted.
  536.  
  537.    *   Sorting DOES NOT remove duplicates in this version. Thus if you have  100
  538.        records, all  with the  same volume  name, and  ask for  a list of volume
  539.        names in the ZipBase(TM) you will receive a list of 100 volume names  all
  540.        the same. This is due to lack of code space and is deliberate.
  541.  
  542. However:
  543.    *   You may specify as many  sort orders as you need (up to twelve),  but see
  544.        the note in the Known Faults & Bugs section.
  545.  
  546.    *    You can  specify up  to twelve  (max) fields  to be  printed, and in any
  547.        order.
  548.  
  549.    *   You do not need to include  a field to be printed if you wish to  sort by
  550.        that field or wish to define a criterior for that field. All sort numbers
  551.        and criterior are valid for a field and will be taken into  consideration
  552.        whether the field is included for printing or not.
  553.  
  554.  
  555.  
  556. Now I shall describe how to use the Query facility.
  557.  
  558.  
  559.     Asking a Question [QUERY/ASK]
  560.    When you select this option, the Query form will light up and the cursor will
  561.    be placed in the first field. The query form consist of three sections:
  562.  
  563.            INC         :   Include field for printing.
  564.                            This column  defines which  fields are  to be printed
  565.                            out. You place a number here from 1 to 12. The  order
  566.                            of the numbers determine the order of the printing. 0
  567.                            means that this field will not be printed.
  568.  
  569.            SORT        :   Sort the answer.
  570.                            When a created answer is  going to be printed, it  is
  571.                            sorted  according  to  the  order  you define in this
  572.                            column. You place a number here from 1 to 12. 1  will
  573.                            be the first sort, 2 will be the second and so on.  0
  574.  
  575.  
  576.  
  577. ZipBase(TM) 1.1                      User Manual                  Page 8
  578.  
  579.  
  580.  
  581.                              Z i p B a s e 1 . 1
  582.  
  583.  
  584.                            means that a sort will not take place on this field.
  585.  
  586.            CRITERIOR   :   Matching criterior.
  587.                            This column specifies any  matches you want to  make.
  588.                            For example if you placed FRED in the Zipname column,
  589.                            then  ZipBase(TM)  would  find  any  Zipfiles   which
  590.                            contained the name FRED. Note that FRED.ZIP AFRED.ZIP
  591.                            ALFREDY.ZIP are  all valid  matches because  they all
  592.                            contain the word FRED.
  593.  
  594.    Here is an example question :
  595.  
  596.    "List all Zipfiles which are on the 'IMPORTANT' disk."
  597.  
  598.                                 ┌────────────────────────────────────────┐
  599.                                 │            Inc Sort     Criterior      │
  600.                                 │ Volume     [  ][  ] [IMPORTANT        ]│
  601.        And here is the          │ Zipname    [ 1][  ] [                 ]│
  602.        Query Form which         │   Path     [  ][  ] [                 ]│
  603.        will processs this       │ Filename   [  ][  ] [                 ]│
  604.        question.                │   Extension[  ][  ] [                 ]│
  605.                                 │   Path     [  ][  ] [                 ]│
  606.                                 │   Comment  [  ][  ] [                 ]│
  607.                                 │ Ver Made   [  ][  ] [                 ]│
  608.                                 │ Ver Needed [  ][  ] [                 ]│
  609.                                 │ Method     [  ][  ] [                 ]│
  610.                                 │ Comp Size  [  ][  ] [                 ]│
  611.                                 │ UnComp Size[  ][  ] [                 ]│
  612.                                 └────────────────────────────────────────┘
  613.    Note, that we havn't placed a number in the Inc column for Volume. We dont
  614.    really need it as we know that the list is going to be only of the IMPORTANT
  615.    disk.
  616.  
  617.    Let's modify the question:
  618.  
  619.    "List all Zipfiles which are on the 'IMPORTANT' disk. I am only interested
  620.    in a list of batch files in each Zipfile."
  621.  
  622.                                 ┌────────────────────────────────────────┐
  623.                                 │            Inc Sort     Criterior      │
  624.                                 │ Volume     [  ][  ] [IMPORTANT        ]│
  625.        And here is the          │ Zipname    [ 1][  ] [                 ]│
  626.        modified query           │   Path     [  ][  ] [                 ]│
  627.        form.                    │ Filename   [ 2][  ] [                 ]│
  628.                                 │   Extension[  ][  ] [.BAT             ]│
  629.                                 │   Path     [  ][  ] [                 ]│
  630.                                 │   Comment  [  ][  ] [                 ]│
  631.                                 │ Ver Made   [  ][  ] [                 ]│
  632.                                 │ Ver Needed [  ][  ] [                 ]│
  633.                                 │ Method     [  ][  ] [                 ]│
  634.                                 │ Comp Size  [  ][  ] [                 ]│
  635.                                 │ UnComp Size[  ][  ] [                 ]│
  636.                                 └────────────────────────────────────────┘
  637.  
  638.  
  639.  
  640.  
  641. ZipBase(TM) 1.1                      User Manual                  Page 9
  642.  
  643.  
  644.  
  645.                              Z i p B a s e 1 . 1
  646.  
  647.  
  648.    We have placed BAT into the Extension column (note: we dont need to type  the
  649.    '.' as ZipBase(TM) does that for us). Because it is the filenames we want  to
  650.    list we have placed a 2 in the Inc column. Filenames contain the extension so
  651.    we dont need to include Extension in our list.
  652.  
  653.    Now, although this list would be correct,  it may well be in a random  order.
  654.    We need to sort:
  655.  
  656.    "List all Zipfiles which  are on the 'IMPORTANT'  disk. I am only  interested
  657.    in a list of batch files in each Zipfile. The list must be in ZipFile  order.
  658.    All filenames for each Zipfile must also be sorted."
  659.  
  660.                                 ┌────────────────────────────────────────┐
  661.                                 │            Inc Sort     Criterior      │
  662.                                 │ Volume     [  ][  ] [IMPORTANT        ]│
  663.                                 │ Zipname    [ 1][ 1] [                 ]│
  664.                                 │   Path     [  ][  ] [                 ]│
  665.                                 │ Filename   [ 2][ 2] [                 ]│
  666.                                 │   Extension[  ][  ] [.BAT             ]│
  667.                                 │   Path     [  ][  ] [                 ]│
  668.                                 │   Comment  [  ][  ] [                 ]│
  669.                                 │ Ver Made   [  ][  ] [                 ]│
  670.                                 │ Ver Needed [  ][  ] [                 ]│
  671.                                 │ Method     [  ][  ] [                 ]│
  672.                                 │ Comp Size  [  ][  ] [                 ]│
  673.                                 │ UnComp Size[  ][  ] [                 ]│
  674.                                 └────────────────────────────────────────┘
  675.  
  676.    The Zipfile names will be sorted in ascending order, then for every zipfile
  677.    all filenames will be sorted.
  678.  
  679.  
  680.    Here is another query:
  681.  
  682.                                 ┌────────────────────────────────────────┐
  683.                                 │            Inc Sort     Criterior      │
  684.                                 │ Volume     [ 1][  ] [Fred             ]│
  685.                                 │ Zipname    [ 2][ 1] [                 ]│
  686.                                 │   Path     [  ][  ] [                 ]│
  687.                                 │ Filename   [ 3][ 2] [                 ]│
  688.                                 │   Extension[  ][  ] [                 ]│
  689.                                 │   Path     [ 4][  ] [                 ]│
  690.                                 │   Comment  [  ][  ] [                 ]│
  691.                                 │ Ver Made   [ 5][  ] [                 ]│
  692.                                 │ Ver Needed [  ][  ] [                 ]│
  693.                                 │ Method     [  ][  ] [                 ]│
  694.                                 │ Comp Size  [  ][  ] [                 ]│
  695.                                 │ UnComp Size[  ][  ] [                 ]│
  696.                                 └────────────────────────────────────────┘
  697.  
  698.    Translated into English, this query will:
  699.  
  700.        1)  Find all  records where  the Volume  name containes  the word  "Fred"
  701.            (Note VOLUME  is the  only   field in  which you   can use mixed case
  702.  
  703.  
  704.  
  705. ZipBase(TM) 1.1                      User Manual                  Page 10
  706.  
  707.  
  708.  
  709.                              Z i p B a s e 1 . 1
  710.  
  711.  
  712.            letters).
  713.  
  714.        2)  Sort by Zipname, then by filename.
  715.  
  716.        3)  List the Volume, Zipname,  Filename, File path and Version of  PKWARE
  717.            use to make the zipfile, for each record.
  718.  
  719.  
  720.     Description of Field Names.
  721.  
  722.       Here, the field names are detailed for you.
  723.  
  724.        Volume      :   This is  the label  name of  each disk  store in   the
  725.                        ZipBase(TM).  There can  only be one disk  which contains
  726.                        this name. If a disk to be scanned does not have a label,
  727.                        you will be  promted for one.  This name will  be written
  728.                        onto the disk before continuing.
  729.  
  730.        Zipname     :   This is the filename of each .ZIP file. You don't need to
  731.                        explicitely state '.ZIP' in the criterior section.
  732.  
  733.        Path        :   This is the pathname of the zipfile. i.e.  B:FRED\ANSWER.
  734.                        Note that  the first  '\' is  not included  but is always
  735.                        assumed.
  736.  
  737.        Filename    :   This is the filename of each file found withing the Zip
  738.                        file. It  also contains  the extension:  "FREDWC". Note
  739.                        that the extension is not taken into consideration in the
  740.                        criterior column. i.e. if you place .COM in the  filename
  741.                        criterior, the query will NOT find .COM files.
  742.  
  743.        Extension   :   This is the extension of the filename: ".DOC"
  744.  
  745.        Path        :   This is the path  of the file when it was  archived  into
  746.                        the  zipfile.  Note  that  this  is  different  from  the
  747.                        previous path which is the path of the Zipfile.
  748.  
  749.        Comment     :   This is the comment, if any, attached to the filename
  750.                        when it was archived.
  751.  
  752.        Ver Made    :   This is the version of PKZIP used to archive the
  753.                        filename. The format of this  number is the same as  used
  754.                        in the actual zipfile  - i.e. not translated.  The format
  755.                        is 10 (for version 1.0).
  756.  
  757.        Ver Needed  :   This is the lowest version of PKUNZIP needed if you want
  758.                        to extract this file from the Zipfile. Its format is the
  759.                        same as Ver Made i.e. 10.
  760.  
  761.        Method      :   This is the method used to archive the file, e.g. Stored,
  762.                        Imploded,  Reduced  #3  etc  etc.  A  number  is required
  763.                        (0:Stored,  1:Squeezed  etc)  but   I  have  provided   a
  764.                        automatic popup list  when you move  the cursor into  the
  765.                        criterior column of Method. Select which method you  want
  766.  
  767.  
  768.  
  769. ZipBase(TM) 1.1                      User Manual                  Page 11
  770.  
  771.  
  772.  
  773.                              Z i p B a s e 1 . 1
  774.  
  775.  
  776.                        to scan for,  else select NONE  if you dont  want to scan
  777.                        for any particular method.
  778.  
  779.        Comp Size   :   This is the size (in bytes) of the file after it has been
  780.                        compressed.
  781.  
  782.        UnComp Size :   This is the size (in bytes) of the file before it was
  783.                        compressed.
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833. ZipBase(TM) 1.1                      User Manual                  Page 12
  834.  
  835.  
  836.  
  837.                              Z i p B a s e 1 . 1
  838.  
  839.  
  840.     Processing the Question [QUERY/PROCESS]
  841.    Once you have defined  the query, you must  set ZipBase(TM) into scanning  to
  842.    find  all  matching  records.  All  records  which do match the criterior are
  843.    placed into a new ZipBase(TM) which is called ANSWER. The Answer window shows
  844.    you the progress of the processing.
  845.  
  846.  
  847.     Printing the Answer [QUERY/PRINT]
  848.    Once an answer has been created, you may print the answer on the printer.
  849.    Make sure your printer is on and working.
  850.  
  851.  
  852.     Loading and Saving Queries [QUERY/LOAD  or  QUERY/SAVE]
  853.    Once you are  satisfied with the  query, you may  save it to  a file on disk.
  854.    Selecting SAVE will prompt  you for a filename.  Do not use an  extension, as
  855.    ZipBase(TM) will  provide '.ZQU'  automatically. If  the file  already exists
  856.    then ZipBase(TM) WILL OVERWRITE THE FILE without giving a warning. This  will
  857.    be corrected in a future version.
  858.  
  859.    To  load  a  query  previously  saved  on  disk select LOAD and give the name
  860.    without using an extension. If the file does not exist then you will be told.
  861.    Once a query has been loaded it will be displayed in the Query Window.
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897. ZipBase(TM) 1.1                      User Manual                  Page 13
  898.  
  899.  
  900.  
  901.                              Z i p B a s e 1 . 1
  902.  
  903.  
  904. 5.  Options
  905.  
  906. The only options available in this  version of ZipBase(TM) is PRINTER start  and
  907. end strings.
  908.  
  909.     Printer Options [OPTIONS/PRINT]
  910.    When you select  this option a  window will be  opened and two  lines will be
  911.    available for editing. The  first line is a  string which will be  set to the
  912.    printer before a query  is printed. The second  string will be sent  when the
  913.    query has been printed.
  914.  
  915.    Note: due to a  glitch (still being investigated)  characters such as ASC  27
  916.    and ASC 15 etc cannot be included. This is being ammeded.
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961. ZipBase(TM) 1.1                      User Manual                  Page 14
  962.  
  963.  
  964.  
  965.                              Z i p B a s e 1 . 1
  966.  
  967.  
  968. 6.  Software License.
  969.  
  970.    ZipBase(TM) Version 1.1 : 'The ZipFile's Companion'
  971.  
  972. You are free to use, copy and distribute ZipBase(TM) for non-commercial use ONLY
  973.    if:
  974.  
  975.        *   Absolutley NO FEE is charged for use, copying or distribution.
  976.  
  977.        *   The executable file is not modified in any way by any means.
  978.  
  979.        *   BBSs, Clubs,  User  Groups  and similar  organisations may  charge  a
  980.            handling fee for distribution BUT ONLY IF 32-BIT SYSTEMS IS  NOTIFIED
  981.            BY   POST   10   WORKING   DAYS   (20   WORKING   DAYS   FOR   NON-UK
  982.            ORGANISATIONS) BEFORE  DISTRIBUTION TAKES  PLACE. This  fee must  not
  983.            exceed the total cost of the diskette on which it is distributed plus
  984.            postage & packing.
  985.  
  986. The  license  covers  the  use  of  one  copy of the executable file & dependant
  987. operations files for every-day use and one backup copy of said files.
  988.  
  989. The executable file and dependant operations files may be used on a network  BUT
  990. ONLY AS A SINGLE USER  APPLICATION - i.e. only one  user may use the program  at
  991. any  one  time.  Network  Site  Licenses  are available through negotiation with
  992. 32-BIT SYSTEMS.
  993.  
  994.                                  DECLARATION
  995.  
  996. 32-Bit Systems  and all  personel working  for, through  or with  32-Bit Systems
  997. hereby disclaim all  warranties relating to  this software. 32-Bit  Systems does
  998. not offer any guarantee  whether expressed or implied  by 32-Bit Systems or  any
  999. other organisation connected with or  not connected with 32-Bit Systems  or with
  1000. any personel  working for,  through or  with 32-Bit  Systems, including  with no
  1001. limitation any implied guarantees of merchantability of fitness for a particular
  1002. putpose. 32-Bit Systems  will not be  liable for any  damages whatsoever due  to
  1003. loss of data or any other reason even if 32-Bit Systems have been advised of  of
  1004. the possibility  of such  damages. Under  no circumstances  and at  no time will
  1005. 32-Bit Systems be liable  for any damages exceeding  the price paid directly  or
  1006. indirectly to 32-Bit Systems for the license to use the software, regardless  of
  1007. the form of the  claim. Any unregistered use  of the software is  the decisional
  1008. responsibility of the user. The person  useing the software will bear all  risks
  1009. as to the quality and performance of the software.
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025. ZipBase(TM) 1.1                      User Manual                  Page 15
  1026.  
  1027.  
  1028.  
  1029.                              Z i p B a s e 1 . 1
  1030.  
  1031.  
  1032. 7.  Registration.
  1033.  
  1034. If you find that ZipBase(TM) is useful to you, then you must register. There are
  1035. two forms of registration:
  1036.  
  1037. Normal Registration will get you:
  1038.  
  1039.            * The latest version of ZipBase for 8086/8080 processors.
  1040.              (This will not have any of the restrictions found in the "Try
  1041.              Before You Buy" version.)
  1042.  
  1043.            * In addition to the above you will receive a version compiled to
  1044.              take advantage of an 80?86 processor.
  1045.  
  1046.  
  1047. Extended Registration will get you:
  1048.  
  1049.            * All the above PLUS, when available,
  1050.              PLUS a diskette  and manual for  the next version  of the software,
  1051.              PLUS  an  UnRegistered  copy  of  CXL  (The  C Programmers Extended
  1052.              Function Library) as used in ZipBase to create windows & data entry
  1053.              forms. NOTE: I am  not charging for CXL,  that must go directly  to
  1054.              Mike Smedley, but its an incentive  for you to go for the  Extended
  1055.              Registration fee!!
  1056.  
  1057. The executable programs use Microsoft's Emulated Floating Point Libraries. These
  1058. programs can be used on a  computer with or without a mathematics  co-processor.
  1059. If you would like the version specially compiled to make use of the  mathematics
  1060. co-processor, then please state your choice on the order form.
  1061.  
  1062. Note: Emulated Floating Point Library version can be used on a computer with  or
  1063.       without a mathematics co-processor.
  1064.  
  1065.       Non-emulated Floating Point Library version can only be used on a computer
  1066.       with a mathematics co-processor.
  1067.  
  1068.            ╔═════════════════════════════════════════════════════╗
  1069.            ║┌───────────────────────────────────────────────────┐║
  1070.            ║│                                                   │║
  1071.            ║│                     C O S T S                     │║
  1072.            ║│                     ~~~~~~~~~                     │║
  1073.            ║│                                                   │║
  1074.            ║│      Normal Registration             £ 15.00      │║
  1075.            ║│                                                   │║
  1076.            ║│      Extended Registration           £ 27.00      │║
  1077.            ║│                                                   │║
  1078.            ║└───────────────────────────────────────────────────┘║
  1079.            ╚═════════════════════════════════════════════════════╝
  1080.  
  1081.  
  1082.  
  1083. You can order or register ZipBase(TM) directly from 32-Bit Systems.
  1084.  
  1085.          **** Payments cannot, as yet, be accepted by credit card****
  1086.  
  1087.  
  1088.  
  1089. ZipBase(TM) 1.1                      User Manual                  Page 16
  1090.  
  1091.  
  1092.  
  1093.                              Z i p B a s e 1 . 1
  1094.  
  1095.  
  1096. Payments must be made to:  32 BIT COMPUTER SYSTEMS
  1097. Payments must be made in United Kindom Sterling Funds (i.e. Pounds!)
  1098.  
  1099. The order form appears over the page.
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153. ZipBase(TM) 1.1                      User Manual                  Page 17
  1154.  
  1155.  
  1156.  
  1157.                              Z i p B a s e 1 . 1
  1158.  
  1159.  
  1160.                        ZipBase Order/Registration Form
  1161.  
  1162.    Your Name [Mr/Mrs/Miss][                                                 ]
  1163.    Job Title [                                                              ]
  1164.    Company   [                                                              ]
  1165.    Address   [                                                              ]
  1166.              [                                                              ]
  1167.              [                                                              ]
  1168.              [                                                              ]
  1169.    City      [                              ] State (if applic) [   ]
  1170.    Country   [                              ]
  1171.    Postcode/ [           ]
  1172.     Zipcode
  1173.    Telephone [(    )     -        ]
  1174.  
  1175.    Where did you hear about ZipBase? [                                      ]
  1176.    [                                                                        ]
  1177.    [                                                                        ]
  1178.    [                                                                        ]
  1179.  
  1180.    Comments [                                                               ]
  1181.    [                                                                        ]
  1182.    [                                                                        ]
  1183.    [                                                                        ]
  1184.  
  1185.    (Please tick one box)
  1186.    Normal Registration   [ ]
  1187.        * 1 diskette containing ZipBase V1.1 plus manual.
  1188.    Extended Registration [ ]
  1189.        * 1 diskette containing ZipBase V1.1 plus manual PLUS one
  1190.          automatic delivery of the next version of ZipBase PLUS one
  1191.          copy of UnRegistered CXL (The C Programmer's Extended Function
  1192.          Library) by Mike Smedley.
  1193.  
  1194.            Emulated Maths [ ]  Maths Chip     [ ]
  1195.            (please tick one)
  1196.            3½" disk format[ ]  5¼" disk format[ ]
  1197.            (please tick one)
  1198.  
  1199.        [       ] copies     @ £ 15.00 each      = £        .00
  1200.                                                   ------------
  1201.                                 Plus VAT @ 15%    £        .
  1202.                                 Plus P&P          £       1.50
  1203.                 (Plus Overseas Non-UK shipping    £       5.00)
  1204.                                                   ============
  1205.                        TOTAL STERLING ENCLOSED    £        .
  1206.                                                   ============
  1207.  
  1208.    Cheques, money orders, postal orders etc should be made in UK Sterling (£) to
  1209.                          32 BIT COMPUTER SYSTEMS
  1210.  
  1211.    Send this form with payment to:
  1212.                           Mr. Dean A. Richardson,
  1213.                           32 Bit Computer Systems,
  1214.                           Studio 3,
  1215.  
  1216.  
  1217. ZipBase(TM) 1.1                      User Manual                  Page 18
  1218.  
  1219.  
  1220.  
  1221.                              Z i p B a s e 1 . 1
  1222.  
  1223.  
  1224.                           2 Cavendish Road,
  1225.                           West Didsbury,
  1226.                           Manchester,
  1227.                           M20 8JG,
  1228.                           United Kingdom.
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281. ZipBase(TM) 1.1                      User Manual                  Page 19
  1282.  
  1283.  
  1284.  
  1285.                              Z i p B a s e 1 . 1
  1286.  
  1287.  
  1288. 8.  How is a ZipFile Scanned.
  1289.  
  1290. The following is reproduced from Phil Katz product PKZIP/PKUNZIP.
  1291.  
  1292.  
  1293. Disclaimer
  1294. ----------
  1295.  
  1296. Although PKWARE will attempt to supply current and accurate
  1297. information relating to its file formats, algorithms, and the
  1298. subject programs, the possibility of error can not be eliminated.
  1299. PKWARE therefore expressly disclaims any warranty that the
  1300. information contained in the associated materials relating to the
  1301. subject programs and/or the format of the files created or
  1302. accessed by the subject programs and/or the algorithms used by
  1303. the subject programs, or any other matter, is current, correct or
  1304. accurate as delivered.  Any risk of damage due to any possible
  1305. inaccurate information is assumed by the user of the information.
  1306. Furthermore, the information relating to the subject programs
  1307. and/or the file formats created or accessed by the subject
  1308. programs and/or the algorithms used by the subject programs is
  1309. subject to change without notice.
  1310.  
  1311.  
  1312. General Format of a ZIP file
  1313. ----------------------------
  1314.  
  1315.   Files stored in arbitrary order.  Large zipfiles can span multiple
  1316.   diskette media.
  1317.  
  1318.   Overall zipfile format:
  1319.  
  1320.     [local file header+file data] . . .
  1321.     [central directory] end of central directory record
  1322.  
  1323.  
  1324.   A.  Local file header:
  1325.  
  1326.    local file header signature 4 bytes  (0x04034b50)
  1327.    version needed to extract   2 bytes
  1328.    general purpose bit flag    2 bytes
  1329.    compression method      2 bytes
  1330.    last mod file time      2 bytes
  1331.    last mod file date      2 bytes
  1332.    crc-32              4 bytes
  1333.    compressed size         4 bytes
  1334.    uncompressed size       4 bytes
  1335.    filename length         2 bytes
  1336.    extra field length      2 bytes
  1337.  
  1338.    filename (variable size)
  1339.    extra field (variable size)
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345. ZipBase(TM) 1.1                      User Manual                  Page 20
  1346.  
  1347.  
  1348.  
  1349.                              Z i p B a s e 1 . 1
  1350.  
  1351.  
  1352.   B.  Central directory structure:
  1353.  
  1354.       [file header] . . .  end of central dir record
  1355.  
  1356.       File header:
  1357.  
  1358.    central file header signature   4 bytes  (0x02014b50)
  1359.    version made by         2 bytes
  1360.    version needed to extract   2 bytes
  1361.    general purpose bit flag    2 bytes
  1362.    compression method      2 bytes
  1363.    last mod file time      2 bytes
  1364.    last mod file date      2 bytes
  1365.    crc-32              4 bytes
  1366.    compressed size         4 bytes
  1367.    uncompressed size       4 bytes
  1368.    filename length         2 bytes
  1369.    extra field length      2 bytes
  1370.    file comment length     2 bytes
  1371.    disk number start       2 bytes
  1372.    internal file attributes    2 bytes
  1373.    external file attributes    4 bytes
  1374.    relative offset of local header 4 bytes
  1375.  
  1376.    filename (variable size)
  1377.    extra field (variable size)
  1378.    file comment (variable size)
  1379.  
  1380.       End of central dir record:
  1381.  
  1382.    end of central dir signature    4 bytes  (0x06054b50)
  1383.    number of this disk     2 bytes
  1384.    number of the disk with the
  1385.    start of the central directory  2 bytes
  1386.    total number of entries in
  1387.    the central dir on this disk    2 bytes
  1388.    total number of entries in
  1389.    the central dir         2 bytes
  1390.    size of the central directory   4 bytes
  1391.    offset of start of central
  1392.    directory with respect to
  1393.    the starting disk number    4 bytes
  1394.    zipfile comment length      2 bytes
  1395.    zipfile comment (variable size)
  1396.  
  1397.  
  1398.  
  1399.  
  1400.   C.  Explanation of fields:
  1401.  
  1402.       version made by
  1403.  
  1404.      The upper byte indicates the host system (OS) for the
  1405.      file.  Software can use this information to determine
  1406.  
  1407.  
  1408.  
  1409. ZipBase(TM) 1.1                      User Manual                  Page 21
  1410.  
  1411.  
  1412.  
  1413.                              Z i p B a s e 1 . 1
  1414.  
  1415.  
  1416.      the line record format for text files etc.  The current
  1417.      mappings are:
  1418.  
  1419.      0 - MS-DOS and OS/2 (F.A.T. file systems)
  1420.      1 - Amiga 2 - VMS     3 - *nix    4 - VM/CMS
  1421.      5 - Atari ST                  6 - OS/2 1.2 extended file systems
  1422.      7 - Macintosh         8 thru 255 - unused
  1423.  
  1424.      The lower byte indicates the version number of the
  1425.      software used to encode the file.  The value/10
  1426.      indicates the major version number, and the value
  1427.      mod 10 is the minor version number.
  1428.  
  1429.       version needed to extract
  1430.  
  1431.      The minimum software version needed to extract the
  1432.      file, mapped as above.
  1433.  
  1434.       general purpose bit flag:
  1435.  
  1436.           bit 0: If set, indicates that the file is encrypted.
  1437.           bit 1: If the compression method used was type 6,
  1438.         Imploding, then this bit, if set, indicates
  1439.         an 8K sliding dictionary was used.  If clear,
  1440.         then a 4K sliding dictionary was used.
  1441.           bit 2: If the compression method used was type 6,
  1442.         Imploding, then this bit, if set, indicates
  1443.         an 3 Shannon-Fano trees were used to encode the
  1444.         sliding dictionary output.  If clear, then 2
  1445.         Shannon-Fano trees were used.
  1446.      Note:  Bits 1 and 2 are undefined if the compression
  1447.         method is other than type 6 (Imploding).
  1448.  
  1449.           The upper three bits are reserved and used internally
  1450.      by the software when processing the zipfile.  The
  1451.      remaining bits are unused in version 1.0.
  1452.  
  1453.       compression method:
  1454.  
  1455.      (see accompanying documentation for algorithm
  1456.      descriptions)
  1457.  
  1458.      0 - The file is stored (no compression)
  1459.      1 - The file is Shrunk
  1460.      2 - The file is Reduced with compression factor 1
  1461.      3 - The file is Reduced with compression factor 2
  1462.      4 - The file is Reduced with compression factor 3
  1463.      5 - The file is Reduced with compression factor 4
  1464.           6 - The file is Imploded
  1465.  
  1466.       date and time fields:
  1467.  
  1468.      The date and time are encoded in standard MS-DOS
  1469.      format.
  1470.  
  1471.  
  1472.  
  1473. ZipBase(TM) 1.1                      User Manual                  Page 22
  1474.  
  1475.  
  1476.  
  1477.                              Z i p B a s e 1 . 1
  1478.  
  1479.  
  1480.       CRC-32:
  1481.  
  1482.      The CRC-32 algorithm was generously contributed by
  1483.      David Schwaderer and can be found in his excellent
  1484.      book "C Programmers Guide to NetBIOS" published by
  1485.      Howard W. Sams & Co. Inc.  The 'magic number' for
  1486.      the CRC is 0xdebb20e3.  The proper CRC pre and post
  1487.      conditioning is used, meaning that the CRC register
  1488.      is pre-conditioned with all ones (a starting value
  1489.      of 0xffffffff) and the value is post-conditioned by
  1490.      taking the one's complement of the CRC residual.
  1491.  
  1492.       compressed size:
  1493.       uncompressed size:
  1494.  
  1495.      The size of the file compressed and uncompressed,
  1496.      respectively.
  1497.  
  1498.       filename length:
  1499.       extra field length:
  1500.       file comment length:
  1501.  
  1502.      The length of the filename, extra field, and comment
  1503.      fields respectively.  The combined length of any
  1504.      directory record and these three fields should not
  1505.      generally exceed 65,535 bytes.
  1506.  
  1507.       disk number start:
  1508.  
  1509.      The number of the disk on which this file begins.
  1510.  
  1511.       internal file attributes:
  1512.  
  1513.      The lowest bit of this field indicates, if set, that
  1514.      the file is apparently an ASCII or text file.  If not
  1515.      set, that the file apparently contains binary data.
  1516.      The remaining bits are unused in version 1.0.
  1517.  
  1518.       external file attributes:
  1519.  
  1520.      The mapping of the external attributes is
  1521.      host-system dependent (see 'version made by').  For
  1522.      MS-DOS, the low order byte is the MS-DOS directory
  1523.      attribute byte.
  1524.  
  1525.       relative offset of local header:
  1526.  
  1527.      This is the offset from the start of the first disk on
  1528.      which this file appears, to where the local header should
  1529.      be found.
  1530.  
  1531.       filename:
  1532.  
  1533.      The name of the file, with optional relative path.
  1534.  
  1535.  
  1536.  
  1537. ZipBase(TM) 1.1                      User Manual                  Page 23
  1538.  
  1539.  
  1540.  
  1541.                              Z i p B a s e 1 . 1
  1542.  
  1543.  
  1544.      The path stored should not contain a drive or
  1545.      device letter, or a leading slash.  All slashes
  1546.      should be forward slashes '/' as opposed to
  1547.      backwards slashes '\' for compatibility with Amiga
  1548.      and Unix file systems etc.
  1549.  
  1550.       extra field:
  1551.  
  1552.      This is for future expansion.  If additional information
  1553.      needs to be stored in the future, it should be stored
  1554.      here.  Earlier versions of the software can then safely
  1555.      skip this file, and find the next file or header.  This
  1556.      field will be 0 length in version 1.0.
  1557.  
  1558.  
  1559.  
  1560.  
  1561. Thus, the fastest way I found to scan a Zipfile is to read it backwards. You may
  1562. notice  that  the  contents  of  a  ZipBase  are  in  opposite  order to the way
  1563. they are actually stored  in the Zipfile. For  the information contained in  the
  1564. ZipBase, I could have  easily scanned from the  start of a zipfile  and then get
  1565. the comments from the  end of each local  header. This was ok  for small Zipfile
  1566. but as soon as the files grew larger then ZipBase slowed down.
  1567.  
  1568. Once the local file header has been found, a note is made of the file  pointer's
  1569. current position  in the  file. The  local header  is then  read, deciphered and
  1570. stored  in  the  ZipBase.  The  file  pointer  is  then set back to its original
  1571. position and scanning continues backwards.
  1572.  
  1573. If a local file header cannot be found, the the ZipFile is corrupt. ZipBase will
  1574. probably ignore  this Zipfile,  though there  are always  chances that the local
  1575. header has been  randomly created by  files stored in  the zipfile. ZipBase,  as
  1576. yet, will not notice this, and as a result you will have a record of garbage  in
  1577. the ZipBase.
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601. ZipBase(TM) 1.1                      User Manual                  Page 24
  1602.  
  1603.  
  1604.  
  1605.                              Z i p B a s e 1 . 1
  1606.  
  1607.  
  1608. 9.  Technical Information.
  1609.  
  1610.  Format of a ZipBase
  1611.  
  1612. The ZipBase is made up of a  header record (known as the Magic record)  followed
  1613. by the data. The header  record is the same length  as all other records in  the
  1614. database, however its format is different to normal data records.
  1615.  
  1616.        #define FILENAME_LENGTH 13
  1617.        #define PATH_LENGTH 40
  1618.  
  1619.        struct MAGIC_RECORD
  1620.           {
  1621.           char   file_identification[34];
  1622.           char   signature[10];
  1623.           char   zipbase[PATH_LENGTH];
  1624.           unsigned long volumes;
  1625.           unsigned long zipfiles;
  1626.           unsigned long files;
  1627.           char unused[161-PATH_LENGTH];
  1628.           };
  1629.  
  1630.  
  1631.  
  1632. All data records are of the following format:
  1633.  
  1634.        struct ZIPDATA
  1635.           {
  1636.           char                      volume[FILENAME_LENGTH];
  1637.           char                      zipname[FILENAME_LENGTH];
  1638.           char                      zippath[PATH_LENGTH];
  1639.           char                      filename[FILENAME_LENGTH];
  1640.           char                      path[PATH_LENGTH];
  1641.           char                      comment[80];
  1642.           unsigned int              version_made_by;
  1643.           unsigned int              version_needed_to_extract;
  1644.           int                       compression_method;
  1645.           long int                  compressed_size;
  1646.           long int                  uncompressed_size;
  1647.           unsigned int              file_date;
  1648.           unsigned int              file_time;
  1649.           };
  1650.  
  1651.  
  1652.  
  1653.  
  1654. Detection of the files in the Zip File:
  1655.  
  1656.    struct CENTRAL_FILE_HEADER
  1657.       {
  1658.       char                            central_file_header_signature[4];
  1659.       unsigned int                    version_made_by;
  1660.       unsigned int                    version_needed_to_extract;
  1661.       struct GENERAL_PURPOSE_BIT_FLAG general_purpose_bit_flag;
  1662.  
  1663.  
  1664.  
  1665. ZipBase(TM) 1.1                      User Manual                  Page 25
  1666.  
  1667.  
  1668.  
  1669.                              Z i p B a s e 1 . 1
  1670.  
  1671.  
  1672.       int                             compression_method;
  1673.       unsigned int                    last_mod_file_time;
  1674.       unsigned int                    last_mod_file_date;
  1675.       long int                        crc_32;
  1676.       long int                        compressed_size;
  1677.       long int                        uncompressed_size;
  1678.       unsigned int                    filename_length;
  1679.       unsigned int                    extra_field_length;
  1680.       unsigned int                    file_comment_length;
  1681.       unsigned int                    disk_number_start;
  1682.       struct INTERNAL_FILE_ATTRIBUTES internal_file_attributes;
  1683.       struct EXTERNAL_FILE_ATTRIBUTES external_file_attributes;
  1684.       long int                        relative_offset_of_local_header;
  1685.       };
  1686.  
  1687.  
  1688.    struct END_OF_CENTRAL_DIR_RECORD
  1689.       {
  1690.       char         end_of_central_dir_signature[4];
  1691.       unsigned int number_of_this_disk;
  1692.       unsigned int disk_number;
  1693.       unsigned int this_disk_total_entries;
  1694.       unsigned int total_entries;
  1695.       long int     size_of_central_dir;
  1696.       long int     offset_from_header;
  1697.       unsigned int zipfile_comment;
  1698.       };
  1699.  
  1700.  
  1701.    struct INTERNAL_FILE_ATTRIBUTES
  1702.       {
  1703.       unsigned int ascii     : 1;
  1704.       unsigned int unused    : 15;
  1705.       };
  1706.  
  1707.    struct EXTERNAL_FILE_ATTRIBUTES
  1708.       {
  1709.       unsigned int msdos_dir_attribute : 8;
  1710.       unsigned int unused              : 8;
  1711.       unsigned int unused2             : 16;
  1712.       };
  1713.  
  1714.  
  1715.  
  1716.  Sorting Techniques
  1717.  
  1718. ZipBase uses a slight variation on QuickSort. The idea of QuickSort is to pick a
  1719. pivot in the centre of the array to be sorted. Then, every element in the  array
  1720. which is larger than the pivot is swap to the right of the pivot with an element
  1721. which is smaller than  the pivot. This continues  until no more swapping  can be
  1722. done. Then the  QuickSort function is  called from within  the present QuickSort
  1723. function, first with one half of the array (smallest to pivot) and then with the
  1724. other half of the  array (pivot to largest).  This continues until the  array is
  1725. sorted.
  1726.  
  1727.  
  1728.  
  1729. ZipBase(TM) 1.1                      User Manual                  Page 26
  1730.  
  1731.  
  1732.  
  1733.                              Z i p B a s e 1 . 1
  1734.  
  1735.  
  1736. The advantage of QuickSort is  that it is very fast  - as I was keeping  in mind
  1737. people who  use 8086  processors. The  disadvantage is  that it  requires a huge
  1738. stack to allow this recursion. ZipBase  is  distributed with  a 20K  stack.  Any
  1739. more would reduce the heap required  for temporary  list  storage.  This  should
  1740. allow  a large amount of records to be sorted.
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793. ZipBase(TM) 1.1                      User Manual                  Page 27
  1794.  
  1795.  
  1796.  
  1797.                              Z i p B a s e 1 . 1
  1798.  
  1799.  
  1800. 10.  Future Enhancements.
  1801.  
  1802. * Larger memory module.
  1803. This  version  of  ZipBase(TM)  is  compiled   using  the Small Memory Module of
  1804. Microsoft C. This  means that  I only   have 64K  maximum available  for all  of
  1805. the ZipBase(TM)  code. The  3rd party   windowing package  is used   is as   yet
  1806. unregistered   and  so  I  only  have   the  small   memory  module  version. If
  1807. ZipBase(TM) takes   off and   people register   then   I   shall   invest    the
  1808. registration  fees  into  registering the windowing package.
  1809.  
  1810. * Disk based operations.
  1811. Currently, only Query/Process uses the disk for operations. All other operations
  1812. such as SORT & LOAD DIRECTORY are memory based.  This can be  very limiting  but
  1813. is essential due  to the small-module  coding of this  version  of  ZipBase(TM).
  1814. The  next  version   will  be  able   to use a larger memory-module   and   thus
  1815. will  be  able  to  hold the extra code neccessary for disk-based operations.
  1816.  
  1817. * Ability to create 'OR' queries.
  1818. With this version of ZipBase(TM) you can only create limited 'AND' queries. That
  1819. is, you cant ask for all filenames  to  be printed out of filenames  which match
  1820. FRED or pathnames  which match \DOCS.  You could only  ask for records  in which
  1821. filename matches FRED AND pathname matches \DOCS.
  1822.  
  1823. * UnLimited queries.
  1824. In this version of ZipBase(TM) you can  only match one extension at a time  i.e.
  1825. you cant find  all .EXE   and .COM  files (see   section on  Merging for   a way
  1826. around this). Neither  are wildcards allowed.  Nor relational operators  allowed
  1827. e.g.  all files which compressed size is < (less than) 4000 bytes.
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857. ZipBase(TM) 1.1                      User Manual                  Page 28
  1858.  
  1859.  
  1860.  
  1861.                              Z i p B a s e 1 . 1
  1862.  
  1863.  
  1864. 11.  Known Faults and Bugs.
  1865.  
  1866. * The answer created can be of any  size, but the whole of it must be  loaded in
  1867. order to sort and  to print. Thus, an  answer over several hundred  records will
  1868. not be able  to be printed.  The exact number  of records is  dependant upon the
  1869. conventional memory you have left when ZipBase(TM) is loaded.
  1870.  
  1871. * The sort function  has a bug. Assume  the sort sequence was  field-1, field-2,
  1872. field-3. Note the following:
  1873.  
  1874.           field-1     field-2   field-3
  1875.        ARCHIVE1.ZIP    FILE1   C:\PCTOOLS                      (1)
  1876.        ARCHIVE1.ZIP    FILE2   C:\PCTOOLS                      (2)
  1877.        ARCHIVE1.ZIP    FILE3   C:\ABC                          (3)
  1878.        ARCHIVE1.ZIP    FILE3   C:\FRED                         (4)
  1879.        ARCHIVE2.ZIP    FILE3   C:\DEFINED                      (5)
  1880.        ARCHIVE2.ZIP    FILE4   C:\DOS                          (6)
  1881.        ARCHIVE2.ZIP    FILE5   C:\SYSTEM                       (7)
  1882.  
  1883. Field-1 has  been sorted,  as has  field-2. The  sort function  is about to sort
  1884. field-3. The algorithm  will look at  the last sorted  field for duplicates.  In
  1885. this case records  3-5 are the  record to be  sorted. This is  fine EXCEPT these
  1886. duplicates fall  on the  boundary of  field-1 (record  4-5). This  is ignored by
  1887. the present coding. The final sort will produce:
  1888.  
  1889.           field-1     field-2   field-3
  1890.        ARCHIVE1.ZIP    FILE1   C:\PCTOOLS                      (1)
  1891.        ARCHIVE1.ZIP    FILE2   C:\PCTOOLS                      (2)
  1892.      ┌─ARCHIVE1.ZIP    FILE3   C:\ABC                          (3)
  1893.     ┌┤ ARCHIVE2.ZIP    FILE3   C:\DEFINED                      (4)
  1894.     │└─ARCHIVE1.ZIP    FILE3   C:\FRED                         (5)
  1895.     │  ARCHIVE2.ZIP    FILE4   C:\DOS                          (6)
  1896.     │  ARCHIVE2.ZIP    FILE5   C:\SYSTEM                       (7)
  1897.     │
  1898.     └─ which is clearly incorrect.
  1899.  
  1900. * Duplication
  1901. Sorting does not remove duplicate records.  i.e if you have 100 records,  all of
  1902. the same volume name, and perform a query to ask for the names of volumes in the
  1903. ZipBase(TM) you will receive a list of 100 volume names, all the same. This will
  1904. be corrected  in the  next version  of ZipBase(TM)  (i.e. when  I have more code
  1905. space to write the correction!)
  1906.  
  1907. * Error Checking
  1908. This is very  limited. I chose  to dedicate the  64K I had  to providing as much
  1909. application  as  I  could,  with  as  little  code taken up by error checking as
  1910. possible. WARNING! If you deliberately  try to confuse ZipBase(TM), chances  are
  1911. you will succeed with little effort.
  1912.  
  1913. * Printer Options
  1914. For some reason I  cannot get the CXL  3rd party add-in to  accept non-printable
  1915. characters i.e. ESC or ASC(15).
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921. ZipBase(TM) 1.1                      User Manual                  Page 29
  1922.  
  1923.  
  1924.  
  1925.                              Z i p B a s e 1 . 1
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985. ZipBase(TM) 1.1                      User Manual                  Page 30
  1986.  
  1987.  
  1988.  
  1989.                              Z i p B a s e 1 . 1
  1990.  
  1991.  
  1992. 12.  Revision History.
  1993.  
  1994. 1.00   September, '89  Initial development of modules required to create
  1995.                        ZipBase(TM). Unreleased
  1996.  
  1997. 1Pß  October, '89    Output interface changed to use functions provided in
  1998.                        the unregistered version of CXL. Version goes under Beta
  1999.                        testing.
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049. ZipBase(TM) 1.1                      User Manual                  Page 31
  2050.  
  2051.  
  2052.  
  2053.                              Z i p B a s e 1 . 1
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110. ZipBase(TM) 1.1                      User Manual                  Page 32
  2111.