home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-12-09 | 59.2 KB | 2,111 lines |
-
-
- Z i p B a s e 1 . 1
-
-
- Table of Contents
-
- 1. Introduction......................................3
- Who are 32-Bit Systems?...........................3
- What is ZipBase...................................3
- Who is ZipBase....................................4
- 2. Quick Start.......................................5
- Up and Running....................................5
- 3. ZipBase...........................................6
- Database..........................................6
- Adding Records to ZipBase...................6
- Renaming a ZipBase................................6
- Merging ZipBase...................................7
- Shelling to Dos ..................................7
- Quitting ZipBase..................................7
- 4. Query.............................................8
- Asking a Question ................................8
- Description of Field Names.................11
- Processing the Question .........................13
- Printing the Answer .............................13
- Loading and Saving Queries ......................13
- 5. Options..........................................14
- Printer Options .................................14
- 6. Software License.................................15
- 7. Registration.....................................16
- 8. How is a ZipFile Scanned.........................20
- 9. Technical Information............................25
- Format of a ZipBase..............................25
- Sorting Techniques...............................26
- 10. Future Enhancements.............................28
- 11. Known Faults and Bugs...........................29
- 12. Revision History................................31
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page i
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3333333 2222222 3 2 - B i t S y s t e m
- 333333333 222222222
- 33 33 22 22 Programmer: Dean A Richardson
- 33 22
- 33 222 Studio 3, 2 Cavendish Road,
- 3333333 222 West Didsbury,
- 33 222 Manchester, M20 8JG,
- 33 222 United Kingdom.
- 33 33 222
- 333333333 22222222222
- 3333333 222222222 [44] (061) 434-6746
-
-
-
-
-
-
- Z i p B a s e
- Version 1.1ß
- a
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 1
-
-
-
- Z i p B a s e 1 . 1
-
-
- N O T I C E !
- ~~~~~~~~~~~~~~~~~~~
-
- The "Try-Before-You-Buy" version of ZipBase contains modified code of the
- original ZipBase. It is a fully working version with no code left out of the
- version you will receive when you register. You will have 10 minutes of use each
- time you load ZipBase. After this time a chime will sound 3 times. Then your
- computer will slow down dramatically making it very difficult to use ZipBase.
-
- This protection will cause no physical damage to you computer, however, the
- slowing down is caused by attaching ZipBase to your timer. If you have any
- programs loaded (TSR or Multi-Tasking) which rely on a constant 18.2 ticks per
- second be warned that these programs will be affected also.
-
- This protection will be disabled when you select [DATABASE/EXIT].
-
- You may load ZipBase again for another 10 minutes of trial.
-
- Upon Registration you will receive a version of ZipBase without this protection.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 2
-
-
-
- Z i p B a s e 1 . 1
-
-
- 1. Introduction.
-
- Who are 32-Bit Systems?
-
- Greetings! I am Dean A. Richardson, and I am currently operating
- commercially under the name of 32-Bit Systems which is based in
- Manchester, UK.
-
- I work as Computer Systems' Analyst & Programmer at C H
- Johnson & Sons Limited (JWI Group [UK]). I've been there for 3 years since
- being released from the Polytechnic of Manchester with qualifications in
- Computer Science. My employment is to develop a business computer system from
- nothing. To provide applications for order, accounting, sales, productions
- stats, and to network these systems. CHJ is a PC based company, 500 employees
- and 1 computer personelle ......... me! The system at CHJ is being developed
- by me soley, and through this I have set my own standards and methods of
- programming. The computer system is constructed using:
-
- Borland Paradox Version 3,
- Microsoft Optimising C Ver 5P,
- Microsoft Quick C Ver 2.00
- Microsoft Quick Basic Ver 4.00
- Microsoft Excel Spreadsheet,
- Novell Network Ver 2.??,
-
-
- Through 32-Bit Systems I hope to be able to increase my programming skills by
- providing software which is needed by competant computer users like yourself.
-
- I also hope that, through this project, I can project the idea of TECHNOWARE.
- In short, TECHNOWARE is a concept where you release parts of your source
- code into the public domain with no thoughts of being paid for it! The source
- code must show a specific technique for a specific procedure (i.e. a sort
- routine). Along with the code should be a declaration that this is TECHNWARE,
- your name & contact address/number/BBS, and a list of credits to other people
- from whom you came about this particular skill through TECHNOWARE.
-
-
- I am available for serious employment / consultation if the price is right.
-
-
-
-
- What is ZipBase(TM)?
-
- ZipBase(TM) is a customised database. It is designed specifically to hold
- data on files created using Phil Katz Compression Programs PKZIP ver 1.
- ZipBase(TM) does its own data-entry by scanning all zipfiles in all
- directories on the drive specified. ZipBase(TM) will store:
-
- Volume name
- Zipfile name
- Zipfile path
- All filename in the zipfile
-
-
-
- ZipBase(TM) 1.1 User Manual Page 3
-
-
-
- Z i p B a s e 1 . 1
-
-
- All paths in the zipfile
- All comments for each filename
- Version of PKZIP used to create zipfile
- Version of PKZIP needed to extract files from zipfile
- Method of compression used for each file
- Compressed size
- Uncompressed size
- Date & Time of each file.
-
-
- ZipBase(TM) also offers you a Query Procedure. Using the query form you can
- tell ZipBase(TM) to find records which match a specific criterior. When
- you process the query a new ZipBase(TM) is created (called ANSWER).
- Answer contains all records from the source ZipBase(TM) which match the Query
- criterior. You can even query Answer as long as Answer is renamed beforehand.
-
-
-
- Who is ZipBase(TM) Intended For?
-
- ZipBase(TM) is intended for people who own a substantial number of Zip files
- and who need to keep a record of what they have and where it is. Sysops of
- BBSs are one section of people. Business accounts departments who archive
- year to date information into zipfiles is another.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 4
-
-
-
- Z i p B a s e 1 . 1
-
-
- 2. Quick Start.
-
- Up and Running.
-
- Get a blank diskette and place a couple of zipfiles onto it. Make sure
- that you know the contents of each zipfile.
- Next, run ZipBase(TM). Goto the Database Menu (press [enter]) and
- select ADD. Accept the ZipBase(TM) name as default. Enter the drive
- letter (i.e. A or B) of the diskette you have just prepared.
- If the diskette has not got a volume name then ZipBase(TM) will
- ask you for one. ZipBase(TM) will now extract information.
-
- A word of advice: make sure that one of the files in the ZipFiles is a
- .COM file as this will make more sense of the following instructions.
-
- Now that you have created a small ZipBase(TM) its time to create a simple
- question. Read this:
-
- "Print a list of all .COM files in the ZipBase(TM). The list should be
- sorted by filename and should show filename and the name of the ZipFile in
- which it is held."
-
- We shall now ask this question. Goto the query menu (press [enter]) and
- select ASK. The query form will now light up. Use the cursor keys move
- around.
-
- First, we must ask for which fields we want to be printed out:
- 1. Move to the line which says FILENAME. Put a 1 in the INC column.
- 2. Move to the line which says ZIPNAME. Put a 2 in the INC column.
-
- Secondly, we must ask for a sort to be performed:
- 3. Move to the line which says FILENAME. Put a 1 in the SORT column.
-
- Thirdly, we must ask only for .COM files to be printed.
- 4. Move to the line which says EXTENSION. Put COM in the CRITERIOR
- column.
-
- Now we have created our question. Move to the line which says UNCOMP SIZE and
- move to the CRITERIOR column. Press [enter]. This is how you exit a query.
- You will be asked is the query is correct. Take a moment to check that
- you have done everything correctly. Then press Y.
-
- OK. Now lets put ZipBase(TM) to work. Go to the Query menu and select
- Process. Accept the ZipBase(TM) name as default. ZipBase(TM) will
- now search through all records those which match out question. You
- can see the progress in the ANSWER window.
-
- When processing has finished its time to print our answer. Goto the Query
- menu and select PRINT. ZipBase(TM) will now read, sort and print the answer.
- Make sure that the printer is on!
-
- CONGRATULATIONS! You have just performed a Query of you ZipBase(TM).
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 5
-
-
-
- Z i p B a s e 1 . 1
-
-
- 3. ZipBase(TM) - User Instructions.
-
- This section describes in more detail how to make use of your ZipBase(TM)
- program.
-
- Database.
- Adding Records to ZipBase(TM) [DATABASE/ADD]
-
- ZipBase(TM) will scan a whole volume for ZipFiles. That is, all directories
- on the volume. To add a diskette worth of zipfile information to the
- ZipBase(TM), goto the DATABASE menu and select ADD.
-
- You will be asked for the full path name of the ZipBase(TM) to which
- forcoming data will be added. You will always be offered the default of
- ZipBase(TM).ZDB preceded by the current pathname.
-
- Now you will be prompted for the volume letter to read. Any letter from A to
- Z will be accepted. If you are running on a system which allows other
- charactes for device names then let me know & hold your breath for version 2!
-
- If the volume has no label then you will be promted for one. It is important
- that this label be unique. When a label is accepted by ZipBase(TM) it
- will go away and scan through all volume names in the current ZipBase(TM). If
- the name is found then this volume will not be accepted.
-
- ZipBase(TM) will now scan like crazy.
-
- What ZipBase(TM) is actually doing is firstly creating a linked list in
- memory of all the directory names on the volume. The size of the list is
- only limited to the amount of heap memory available. If memory runs out
- then you will be told. Chances are that ZipBase(TM) will try to carry on
- with the directories it has managed to store.
-
- ZipBase(TM) will always append new records to the end of the ZipBase(TM)
- file. No Sorting is done as this would take too much time. No indexes
- are created because I couldn't possible predict everyone's queries.
-
-
-
- Renaming a ZipBase(TM) [DATABASE/RENAME]
- Use this option to rename a ZipBase(TM). It is quite important to use this
- option rather than renaming at the dos command line because each ZipBase(TM)
- contains header information. Part of this information is the name of the
- ZipBase(TM). Although it dosnt matter in this version, using a ZipBase(TM)
- when the header name dosnt match the actual ZipBase(TM) name could cause
- problems. This option ammends the header as well as renaming the ZipBase(TM).
-
- When you select this option you will be asked for the name of the ZipBase(TM)
- you wish to rename. If this file exists on disk you will be asked for the new
- name. This name must not already be used in the current directory. You must
- not specify pathnames, i.e.
-
- Rename C:\ZipBase\A.ZDB C:\FRED\B.ZDB
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 6
-
-
-
- Z i p B a s e 1 . 1
-
-
- is illeagal and may cause ZipBase(TM) to crash.
-
-
- Merging ZipBase(TM)s [DATABASE/MERGE]
- You can merge two ZipBase(TM)s into one. You may wish to do this if you are
- performing an 'OR' query (see Query section). Because of the structure of
- each ZipBase(TM) performing 'COPY /B A.ZDB+B.ZDB C.ZDB' at the dos command
- line will destroy the ZipBase(TM)'s credibility. The merge option will ask
- for the names of 2 ZipBase(TM)s to merge and a name for the two ZipBase(TM)s
- to be merged into. The 2 source files must exists. The destination name must
- not exist.
-
- Merge takes care of the header information of the new ZipBase(TM). It uses
- header information from the two source ZipBase(TM)s so if these are corrupt
- the new ZipBase(TM) will also be corrupt.
-
-
- Shelling to Dos [DATABASE/SHELL]
- You may load another copy of your command processor. In most cases this will
- be COMMAND.COM but for users of other processors (I myself use 4DOS.COM)
- ZipBase(TM) will load what ever is specified in your COMSPEC environment
- variable. Please make sure that this variable is correct, otherwise
- ZipBase(TM) may crash.
-
-
- Quitting ZipBase(TM) [DATABASE/EXIT]
- To exit out of ZipBase(TM) select this option. All files are closed, all
- temporary files are removed from the directory, all memory allocated by
- ZipBase(TM) will be deallocated and ZipBase(TM) is terminated.
-
- WARNING: The answer file created from processing a query is temporary
- file. It will be deleted when you exit from ZipBase(TM). If you
- wish to keep you answer then use the Rename option.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 7
-
-
-
- Z i p B a s e 1 . 1
-
-
- 4. Query.
-
- Using the Query facilities you can ask questions of your ZipBase(TM). You could
- ask for all files which have the extension .EXE to be listed, or ask for a list
- of volumes in the ZipBase(TM).
-
- READ THIS!
- Because of the limited code segment available (64K) the query facility is very
- basic. For example,
-
- * You cannot specify more than 1 criterior for each field.
- i.e. you cannot ask for a list of files with the extension .COM or .EXE.
-
- * You cannot specify ranges to be matched. i.e finding all files whose
- compressed sizes is less than 1000 bytes. Only exact values will be
- accepted.
-
- * Sorting DOES NOT remove duplicates in this version. Thus if you have 100
- records, all with the same volume name, and ask for a list of volume
- names in the ZipBase(TM) you will receive a list of 100 volume names all
- the same. This is due to lack of code space and is deliberate.
-
- However:
- * You may specify as many sort orders as you need (up to twelve), but see
- the note in the Known Faults & Bugs section.
-
- * You can specify up to twelve (max) fields to be printed, and in any
- order.
-
- * You do not need to include a field to be printed if you wish to sort by
- that field or wish to define a criterior for that field. All sort numbers
- and criterior are valid for a field and will be taken into consideration
- whether the field is included for printing or not.
-
-
-
- Now I shall describe how to use the Query facility.
-
-
- Asking a Question [QUERY/ASK]
- When you select this option, the Query form will light up and the cursor will
- be placed in the first field. The query form consist of three sections:
-
- INC : Include field for printing.
- This column defines which fields are to be printed
- out. You place a number here from 1 to 12. The order
- of the numbers determine the order of the printing. 0
- means that this field will not be printed.
-
- SORT : Sort the answer.
- When a created answer is going to be printed, it is
- sorted according to the order you define in this
- column. You place a number here from 1 to 12. 1 will
- be the first sort, 2 will be the second and so on. 0
-
-
-
- ZipBase(TM) 1.1 User Manual Page 8
-
-
-
- Z i p B a s e 1 . 1
-
-
- means that a sort will not take place on this field.
-
- CRITERIOR : Matching criterior.
- This column specifies any matches you want to make.
- For example if you placed FRED in the Zipname column,
- then ZipBase(TM) would find any Zipfiles which
- contained the name FRED. Note that FRED.ZIP AFRED.ZIP
- ALFREDY.ZIP are all valid matches because they all
- contain the word FRED.
-
- Here is an example question :
-
- "List all Zipfiles which are on the 'IMPORTANT' disk."
-
- ┌────────────────────────────────────────┐
- │ Inc Sort Criterior │
- │ Volume [ ][ ] [IMPORTANT ]│
- And here is the │ Zipname [ 1][ ] [ ]│
- Query Form which │ Path [ ][ ] [ ]│
- will processs this │ Filename [ ][ ] [ ]│
- question. │ Extension[ ][ ] [ ]│
- │ Path [ ][ ] [ ]│
- │ Comment [ ][ ] [ ]│
- │ Ver Made [ ][ ] [ ]│
- │ Ver Needed [ ][ ] [ ]│
- │ Method [ ][ ] [ ]│
- │ Comp Size [ ][ ] [ ]│
- │ UnComp Size[ ][ ] [ ]│
- └────────────────────────────────────────┘
- Note, that we havn't placed a number in the Inc column for Volume. We dont
- really need it as we know that the list is going to be only of the IMPORTANT
- disk.
-
- Let's modify the question:
-
- "List all Zipfiles which are on the 'IMPORTANT' disk. I am only interested
- in a list of batch files in each Zipfile."
-
- ┌────────────────────────────────────────┐
- │ Inc Sort Criterior │
- │ Volume [ ][ ] [IMPORTANT ]│
- And here is the │ Zipname [ 1][ ] [ ]│
- modified query │ Path [ ][ ] [ ]│
- form. │ Filename [ 2][ ] [ ]│
- │ Extension[ ][ ] [.BAT ]│
- │ Path [ ][ ] [ ]│
- │ Comment [ ][ ] [ ]│
- │ Ver Made [ ][ ] [ ]│
- │ Ver Needed [ ][ ] [ ]│
- │ Method [ ][ ] [ ]│
- │ Comp Size [ ][ ] [ ]│
- │ UnComp Size[ ][ ] [ ]│
- └────────────────────────────────────────┘
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 9
-
-
-
- Z i p B a s e 1 . 1
-
-
- We have placed BAT into the Extension column (note: we dont need to type the
- '.' as ZipBase(TM) does that for us). Because it is the filenames we want to
- list we have placed a 2 in the Inc column. Filenames contain the extension so
- we dont need to include Extension in our list.
-
- Now, although this list would be correct, it may well be in a random order.
- We need to sort:
-
- "List all Zipfiles which are on the 'IMPORTANT' disk. I am only interested
- in a list of batch files in each Zipfile. The list must be in ZipFile order.
- All filenames for each Zipfile must also be sorted."
-
- ┌────────────────────────────────────────┐
- │ Inc Sort Criterior │
- │ Volume [ ][ ] [IMPORTANT ]│
- │ Zipname [ 1][ 1] [ ]│
- │ Path [ ][ ] [ ]│
- │ Filename [ 2][ 2] [ ]│
- │ Extension[ ][ ] [.BAT ]│
- │ Path [ ][ ] [ ]│
- │ Comment [ ][ ] [ ]│
- │ Ver Made [ ][ ] [ ]│
- │ Ver Needed [ ][ ] [ ]│
- │ Method [ ][ ] [ ]│
- │ Comp Size [ ][ ] [ ]│
- │ UnComp Size[ ][ ] [ ]│
- └────────────────────────────────────────┘
-
- The Zipfile names will be sorted in ascending order, then for every zipfile
- all filenames will be sorted.
-
-
- Here is another query:
-
- ┌────────────────────────────────────────┐
- │ Inc Sort Criterior │
- │ Volume [ 1][ ] [Fred ]│
- │ Zipname [ 2][ 1] [ ]│
- │ Path [ ][ ] [ ]│
- │ Filename [ 3][ 2] [ ]│
- │ Extension[ ][ ] [ ]│
- │ Path [ 4][ ] [ ]│
- │ Comment [ ][ ] [ ]│
- │ Ver Made [ 5][ ] [ ]│
- │ Ver Needed [ ][ ] [ ]│
- │ Method [ ][ ] [ ]│
- │ Comp Size [ ][ ] [ ]│
- │ UnComp Size[ ][ ] [ ]│
- └────────────────────────────────────────┘
-
- Translated into English, this query will:
-
- 1) Find all records where the Volume name containes the word "Fred"
- (Note VOLUME is the only field in which you can use mixed case
-
-
-
- ZipBase(TM) 1.1 User Manual Page 10
-
-
-
- Z i p B a s e 1 . 1
-
-
- letters).
-
- 2) Sort by Zipname, then by filename.
-
- 3) List the Volume, Zipname, Filename, File path and Version of PKWARE
- use to make the zipfile, for each record.
-
-
- Description of Field Names.
-
- Here, the field names are detailed for you.
-
- Volume : This is the label name of each disk store in the
- ZipBase(TM). There can only be one disk which contains
- this name. If a disk to be scanned does not have a label,
- you will be promted for one. This name will be written
- onto the disk before continuing.
-
- Zipname : This is the filename of each .ZIP file. You don't need to
- explicitely state '.ZIP' in the criterior section.
-
- Path : This is the pathname of the zipfile. i.e. B:FRED\ANSWER.
- Note that the first '\' is not included but is always
- assumed.
-
- Filename : This is the filename of each file found withing the Zip
- file. It also contains the extension: "FREDW C". Note
- that the extension is not taken into consideration in the
- criterior column. i.e. if you place .COM in the filename
- criterior, the query will NOT find .COM files.
-
- Extension : This is the extension of the filename: ".DOC"
-
- Path : This is the path of the file when it was archived into
- the zipfile. Note that this is different from the
- previous path which is the path of the Zipfile.
-
- Comment : This is the comment, if any, attached to the filename
- when it was archived.
-
- Ver Made : This is the version of PKZIP used to archive the
- filename. The format of this number is the same as used
- in the actual zipfile - i.e. not translated. The format
- is 10 (for version 1.0).
-
- Ver Needed : This is the lowest version of PKUNZIP needed if you want
- to extract this file from the Zipfile. Its format is the
- same as Ver Made i.e. 10.
-
- Method : This is the method used to archive the file, e.g. Stored,
- Imploded, Reduced #3 etc etc. A number is required
- (0:Stored, 1:Squeezed etc) but I have provided a
- automatic popup list when you move the cursor into the
- criterior column of Method. Select which method you want
-
-
-
- ZipBase(TM) 1.1 User Manual Page 11
-
-
-
- Z i p B a s e 1 . 1
-
-
- to scan for, else select NONE if you dont want to scan
- for any particular method.
-
- Comp Size : This is the size (in bytes) of the file after it has been
- compressed.
-
- UnComp Size : This is the size (in bytes) of the file before it was
- compressed.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 12
-
-
-
- Z i p B a s e 1 . 1
-
-
- Processing the Question [QUERY/PROCESS]
- Once you have defined the query, you must set ZipBase(TM) into scanning to
- find all matching records. All records which do match the criterior are
- placed into a new ZipBase(TM) which is called ANSWER. The Answer window shows
- you the progress of the processing.
-
-
- Printing the Answer [QUERY/PRINT]
- Once an answer has been created, you may print the answer on the printer.
- Make sure your printer is on and working.
-
-
- Loading and Saving Queries [QUERY/LOAD or QUERY/SAVE]
- Once you are satisfied with the query, you may save it to a file on disk.
- Selecting SAVE will prompt you for a filename. Do not use an extension, as
- ZipBase(TM) will provide '.ZQU' automatically. If the file already exists
- then ZipBase(TM) WILL OVERWRITE THE FILE without giving a warning. This will
- be corrected in a future version.
-
- To load a query previously saved on disk select LOAD and give the name
- without using an extension. If the file does not exist then you will be told.
- Once a query has been loaded it will be displayed in the Query Window.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 13
-
-
-
- Z i p B a s e 1 . 1
-
-
- 5. Options
-
- The only options available in this version of ZipBase(TM) is PRINTER start and
- end strings.
-
- Printer Options [OPTIONS/PRINT]
- When you select this option a window will be opened and two lines will be
- available for editing. The first line is a string which will be set to the
- printer before a query is printed. The second string will be sent when the
- query has been printed.
-
- Note: due to a glitch (still being investigated) characters such as ASC 27
- and ASC 15 etc cannot be included. This is being ammeded.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 14
-
-
-
- Z i p B a s e 1 . 1
-
-
- 6. Software License.
-
- ZipBase(TM) Version 1.1 : 'The ZipFile's Companion'
-
- You are free to use, copy and distribute ZipBase(TM) for non-commercial use ONLY
- if:
-
- * Absolutley NO FEE is charged for use, copying or distribution.
-
- * The executable file is not modified in any way by any means.
-
- * BBSs, Clubs, User Groups and similar organisations may charge a
- handling fee for distribution BUT ONLY IF 32-BIT SYSTEMS IS NOTIFIED
- BY POST 10 WORKING DAYS (20 WORKING DAYS FOR NON-UK
- ORGANISATIONS) BEFORE DISTRIBUTION TAKES PLACE. This fee must not
- exceed the total cost of the diskette on which it is distributed plus
- postage & packing.
-
- The license covers the use of one copy of the executable file & dependant
- operations files for every-day use and one backup copy of said files.
-
- The executable file and dependant operations files may be used on a network BUT
- ONLY AS A SINGLE USER APPLICATION - i.e. only one user may use the program at
- any one time. Network Site Licenses are available through negotiation with
- 32-BIT SYSTEMS.
-
- DECLARATION
-
- 32-Bit Systems and all personel working for, through or with 32-Bit Systems
- hereby disclaim all warranties relating to this software. 32-Bit Systems does
- not offer any guarantee whether expressed or implied by 32-Bit Systems or any
- other organisation connected with or not connected with 32-Bit Systems or with
- any personel working for, through or with 32-Bit Systems, including with no
- limitation any implied guarantees of merchantability of fitness for a particular
- putpose. 32-Bit Systems will not be liable for any damages whatsoever due to
- loss of data or any other reason even if 32-Bit Systems have been advised of of
- the possibility of such damages. Under no circumstances and at no time will
- 32-Bit Systems be liable for any damages exceeding the price paid directly or
- indirectly to 32-Bit Systems for the license to use the software, regardless of
- the form of the claim. Any unregistered use of the software is the decisional
- responsibility of the user. The person useing the software will bear all risks
- as to the quality and performance of the software.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 15
-
-
-
- Z i p B a s e 1 . 1
-
-
- 7. Registration.
-
- If you find that ZipBase(TM) is useful to you, then you must register. There are
- two forms of registration:
-
- Normal Registration will get you:
-
- * The latest version of ZipBase for 8086/8080 processors.
- (This will not have any of the restrictions found in the "Try
- Before You Buy" version.)
-
- * In addition to the above you will receive a version compiled to
- take advantage of an 80?86 processor.
-
-
- Extended Registration will get you:
-
- * All the above PLUS, when available,
- PLUS a diskette and manual for the next version of the software,
- PLUS an UnRegistered copy of CXL (The C Programmers Extended
- Function Library) as used in ZipBase to create windows & data entry
- forms. NOTE: I am not charging for CXL, that must go directly to
- Mike Smedley, but its an incentive for you to go for the Extended
- Registration fee!!
-
- The executable programs use Microsoft's Emulated Floating Point Libraries. These
- programs can be used on a computer with or without a mathematics co-processor.
- If you would like the version specially compiled to make use of the mathematics
- co-processor, then please state your choice on the order form.
-
- Note: Emulated Floating Point Library version can be used on a computer with or
- without a mathematics co-processor.
-
- Non-emulated Floating Point Library version can only be used on a computer
- with a mathematics co-processor.
-
- ╔═════════════════════════════════════════════════════╗
- ║┌───────────────────────────────────────────────────┐║
- ║│ │║
- ║│ C O S T S │║
- ║│ ~~~~~~~~~ │║
- ║│ │║
- ║│ Normal Registration £ 15.00 │║
- ║│ │║
- ║│ Extended Registration £ 27.00 │║
- ║│ │║
- ║└───────────────────────────────────────────────────┘║
- ╚═════════════════════════════════════════════════════╝
-
-
-
- You can order or register ZipBase(TM) directly from 32-Bit Systems.
-
- **** Payments cannot, as yet, be accepted by credit card****
-
-
-
- ZipBase(TM) 1.1 User Manual Page 16
-
-
-
- Z i p B a s e 1 . 1
-
-
- Payments must be made to: 32 BIT COMPUTER SYSTEMS
- Payments must be made in United Kindom Sterling Funds (i.e. Pounds!)
-
- The order form appears over the page.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 17
-
-
-
- Z i p B a s e 1 . 1
-
-
- ZipBase Order/Registration Form
-
- Your Name [Mr/Mrs/Miss][ ]
- Job Title [ ]
- Company [ ]
- Address [ ]
- [ ]
- [ ]
- [ ]
- City [ ] State (if applic) [ ]
- Country [ ]
- Postcode/ [ ]
- Zipcode
- Telephone [( ) - ]
-
- Where did you hear about ZipBase? [ ]
- [ ]
- [ ]
- [ ]
-
- Comments [ ]
- [ ]
- [ ]
- [ ]
-
- (Please tick one box)
- Normal Registration [ ]
- * 1 diskette containing ZipBase V1.1 plus manual.
- Extended Registration [ ]
- * 1 diskette containing ZipBase V1.1 plus manual PLUS one
- automatic delivery of the next version of ZipBase PLUS one
- copy of UnRegistered CXL (The C Programmer's Extended Function
- Library) by Mike Smedley.
-
- Emulated Maths [ ] Maths Chip [ ]
- (please tick one)
- 3½" disk format[ ] 5¼" disk format[ ]
- (please tick one)
-
- [ ] copies @ £ 15.00 each = £ .00
- ------------
- Plus VAT @ 15% £ .
- Plus P&P £ 1.50
- (Plus Overseas Non-UK shipping £ 5.00)
- ============
- TOTAL STERLING ENCLOSED £ .
- ============
-
- Cheques, money orders, postal orders etc should be made in UK Sterling (£) to
- 32 BIT COMPUTER SYSTEMS
-
- Send this form with payment to:
- Mr. Dean A. Richardson,
- 32 Bit Computer Systems,
- Studio 3,
-
-
- ZipBase(TM) 1.1 User Manual Page 18
-
-
-
- Z i p B a s e 1 . 1
-
-
- 2 Cavendish Road,
- West Didsbury,
- Manchester,
- M20 8JG,
- United Kingdom.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 19
-
-
-
- Z i p B a s e 1 . 1
-
-
- 8. How is a ZipFile Scanned.
-
- The following is reproduced from Phil Katz product PKZIP/PKUNZIP.
-
-
- Disclaimer
- ----------
-
- Although PKWARE will attempt to supply current and accurate
- information relating to its file formats, algorithms, and the
- subject programs, the possibility of error can not be eliminated.
- PKWARE therefore expressly disclaims any warranty that the
- information contained in the associated materials relating to the
- subject programs and/or the format of the files created or
- accessed by the subject programs and/or the algorithms used by
- the subject programs, or any other matter, is current, correct or
- accurate as delivered. Any risk of damage due to any possible
- inaccurate information is assumed by the user of the information.
- Furthermore, the information relating to the subject programs
- and/or the file formats created or accessed by the subject
- programs and/or the algorithms used by the subject programs is
- subject to change without notice.
-
-
- General Format of a ZIP file
- ----------------------------
-
- Files stored in arbitrary order. Large zipfiles can span multiple
- diskette media.
-
- Overall zipfile format:
-
- [local file header+file data] . . .
- [central directory] end of central directory record
-
-
- A. Local file header:
-
- local file header signature 4 bytes (0x04034b50)
- version needed to extract 2 bytes
- general purpose bit flag 2 bytes
- compression method 2 bytes
- last mod file time 2 bytes
- last mod file date 2 bytes
- crc-32 4 bytes
- compressed size 4 bytes
- uncompressed size 4 bytes
- filename length 2 bytes
- extra field length 2 bytes
-
- filename (variable size)
- extra field (variable size)
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 20
-
-
-
- Z i p B a s e 1 . 1
-
-
- B. Central directory structure:
-
- [file header] . . . end of central dir record
-
- File header:
-
- central file header signature 4 bytes (0x02014b50)
- version made by 2 bytes
- version needed to extract 2 bytes
- general purpose bit flag 2 bytes
- compression method 2 bytes
- last mod file time 2 bytes
- last mod file date 2 bytes
- crc-32 4 bytes
- compressed size 4 bytes
- uncompressed size 4 bytes
- filename length 2 bytes
- extra field length 2 bytes
- file comment length 2 bytes
- disk number start 2 bytes
- internal file attributes 2 bytes
- external file attributes 4 bytes
- relative offset of local header 4 bytes
-
- filename (variable size)
- extra field (variable size)
- file comment (variable size)
-
- End of central dir record:
-
- end of central dir signature 4 bytes (0x06054b50)
- number of this disk 2 bytes
- number of the disk with the
- start of the central directory 2 bytes
- total number of entries in
- the central dir on this disk 2 bytes
- total number of entries in
- the central dir 2 bytes
- size of the central directory 4 bytes
- offset of start of central
- directory with respect to
- the starting disk number 4 bytes
- zipfile comment length 2 bytes
- zipfile comment (variable size)
-
-
-
-
- C. Explanation of fields:
-
- version made by
-
- The upper byte indicates the host system (OS) for the
- file. Software can use this information to determine
-
-
-
- ZipBase(TM) 1.1 User Manual Page 21
-
-
-
- Z i p B a s e 1 . 1
-
-
- the line record format for text files etc. The current
- mappings are:
-
- 0 - MS-DOS and OS/2 (F.A.T. file systems)
- 1 - Amiga 2 - VMS 3 - *nix 4 - VM/CMS
- 5 - Atari ST 6 - OS/2 1.2 extended file systems
- 7 - Macintosh 8 thru 255 - unused
-
- The lower byte indicates the version number of the
- software used to encode the file. The value/10
- indicates the major version number, and the value
- mod 10 is the minor version number.
-
- version needed to extract
-
- The minimum software version needed to extract the
- file, mapped as above.
-
- general purpose bit flag:
-
- bit 0: If set, indicates that the file is encrypted.
- bit 1: If the compression method used was type 6,
- Imploding, then this bit, if set, indicates
- an 8K sliding dictionary was used. If clear,
- then a 4K sliding dictionary was used.
- bit 2: If the compression method used was type 6,
- Imploding, then this bit, if set, indicates
- an 3 Shannon-Fano trees were used to encode the
- sliding dictionary output. If clear, then 2
- Shannon-Fano trees were used.
- Note: Bits 1 and 2 are undefined if the compression
- method is other than type 6 (Imploding).
-
- The upper three bits are reserved and used internally
- by the software when processing the zipfile. The
- remaining bits are unused in version 1.0.
-
- compression method:
-
- (see accompanying documentation for algorithm
- descriptions)
-
- 0 - The file is stored (no compression)
- 1 - The file is Shrunk
- 2 - The file is Reduced with compression factor 1
- 3 - The file is Reduced with compression factor 2
- 4 - The file is Reduced with compression factor 3
- 5 - The file is Reduced with compression factor 4
- 6 - The file is Imploded
-
- date and time fields:
-
- The date and time are encoded in standard MS-DOS
- format.
-
-
-
- ZipBase(TM) 1.1 User Manual Page 22
-
-
-
- Z i p B a s e 1 . 1
-
-
- CRC-32:
-
- The CRC-32 algorithm was generously contributed by
- David Schwaderer and can be found in his excellent
- book "C Programmers Guide to NetBIOS" published by
- Howard W. Sams & Co. Inc. The 'magic number' for
- the CRC is 0xdebb20e3. The proper CRC pre and post
- conditioning is used, meaning that the CRC register
- is pre-conditioned with all ones (a starting value
- of 0xffffffff) and the value is post-conditioned by
- taking the one's complement of the CRC residual.
-
- compressed size:
- uncompressed size:
-
- The size of the file compressed and uncompressed,
- respectively.
-
- filename length:
- extra field length:
- file comment length:
-
- The length of the filename, extra field, and comment
- fields respectively. The combined length of any
- directory record and these three fields should not
- generally exceed 65,535 bytes.
-
- disk number start:
-
- The number of the disk on which this file begins.
-
- internal file attributes:
-
- The lowest bit of this field indicates, if set, that
- the file is apparently an ASCII or text file. If not
- set, that the file apparently contains binary data.
- The remaining bits are unused in version 1.0.
-
- external file attributes:
-
- The mapping of the external attributes is
- host-system dependent (see 'version made by'). For
- MS-DOS, the low order byte is the MS-DOS directory
- attribute byte.
-
- relative offset of local header:
-
- This is the offset from the start of the first disk on
- which this file appears, to where the local header should
- be found.
-
- filename:
-
- The name of the file, with optional relative path.
-
-
-
- ZipBase(TM) 1.1 User Manual Page 23
-
-
-
- Z i p B a s e 1 . 1
-
-
- The path stored should not contain a drive or
- device letter, or a leading slash. All slashes
- should be forward slashes '/' as opposed to
- backwards slashes '\' for compatibility with Amiga
- and Unix file systems etc.
-
- extra field:
-
- This is for future expansion. If additional information
- needs to be stored in the future, it should be stored
- here. Earlier versions of the software can then safely
- skip this file, and find the next file or header. This
- field will be 0 length in version 1.0.
-
-
-
-
- Thus, the fastest way I found to scan a Zipfile is to read it backwards. You may
- notice that the contents of a ZipBase are in opposite order to the way
- they are actually stored in the Zipfile. For the information contained in the
- ZipBase, I could have easily scanned from the start of a zipfile and then get
- the comments from the end of each local header. This was ok for small Zipfile
- but as soon as the files grew larger then ZipBase slowed down.
-
- Once the local file header has been found, a note is made of the file pointer's
- current position in the file. The local header is then read, deciphered and
- stored in the ZipBase. The file pointer is then set back to its original
- position and scanning continues backwards.
-
- If a local file header cannot be found, the the ZipFile is corrupt. ZipBase will
- probably ignore this Zipfile, though there are always chances that the local
- header has been randomly created by files stored in the zipfile. ZipBase, as
- yet, will not notice this, and as a result you will have a record of garbage in
- the ZipBase.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 24
-
-
-
- Z i p B a s e 1 . 1
-
-
- 9. Technical Information.
-
- Format of a ZipBase
-
- The ZipBase is made up of a header record (known as the Magic record) followed
- by the data. The header record is the same length as all other records in the
- database, however its format is different to normal data records.
-
- #define FILENAME_LENGTH 13
- #define PATH_LENGTH 40
-
- struct MAGIC_RECORD
- {
- char file_identification[34];
- char signature[10];
- char zipbase[PATH_LENGTH];
- unsigned long volumes;
- unsigned long zipfiles;
- unsigned long files;
- char unused[161-PATH_LENGTH];
- };
-
-
-
- All data records are of the following format:
-
- struct ZIPDATA
- {
- char volume[FILENAME_LENGTH];
- char zipname[FILENAME_LENGTH];
- char zippath[PATH_LENGTH];
- char filename[FILENAME_LENGTH];
- char path[PATH_LENGTH];
- char comment[80];
- unsigned int version_made_by;
- unsigned int version_needed_to_extract;
- int compression_method;
- long int compressed_size;
- long int uncompressed_size;
- unsigned int file_date;
- unsigned int file_time;
- };
-
-
-
-
- Detection of the files in the Zip File:
-
- struct CENTRAL_FILE_HEADER
- {
- char central_file_header_signature[4];
- unsigned int version_made_by;
- unsigned int version_needed_to_extract;
- struct GENERAL_PURPOSE_BIT_FLAG general_purpose_bit_flag;
-
-
-
- ZipBase(TM) 1.1 User Manual Page 25
-
-
-
- Z i p B a s e 1 . 1
-
-
- int compression_method;
- unsigned int last_mod_file_time;
- unsigned int last_mod_file_date;
- long int crc_32;
- long int compressed_size;
- long int uncompressed_size;
- unsigned int filename_length;
- unsigned int extra_field_length;
- unsigned int file_comment_length;
- unsigned int disk_number_start;
- struct INTERNAL_FILE_ATTRIBUTES internal_file_attributes;
- struct EXTERNAL_FILE_ATTRIBUTES external_file_attributes;
- long int relative_offset_of_local_header;
- };
-
-
- struct END_OF_CENTRAL_DIR_RECORD
- {
- char end_of_central_dir_signature[4];
- unsigned int number_of_this_disk;
- unsigned int disk_number;
- unsigned int this_disk_total_entries;
- unsigned int total_entries;
- long int size_of_central_dir;
- long int offset_from_header;
- unsigned int zipfile_comment;
- };
-
-
- struct INTERNAL_FILE_ATTRIBUTES
- {
- unsigned int ascii : 1;
- unsigned int unused : 15;
- };
-
- struct EXTERNAL_FILE_ATTRIBUTES
- {
- unsigned int msdos_dir_attribute : 8;
- unsigned int unused : 8;
- unsigned int unused2 : 16;
- };
-
-
-
- Sorting Techniques
-
- ZipBase uses a slight variation on QuickSort. The idea of QuickSort is to pick a
- pivot in the centre of the array to be sorted. Then, every element in the array
- which is larger than the pivot is swap to the right of the pivot with an element
- which is smaller than the pivot. This continues until no more swapping can be
- done. Then the QuickSort function is called from within the present QuickSort
- function, first with one half of the array (smallest to pivot) and then with the
- other half of the array (pivot to largest). This continues until the array is
- sorted.
-
-
-
- ZipBase(TM) 1.1 User Manual Page 26
-
-
-
- Z i p B a s e 1 . 1
-
-
- The advantage of QuickSort is that it is very fast - as I was keeping in mind
- people who use 8086 processors. The disadvantage is that it requires a huge
- stack to allow this recursion. ZipBase is distributed with a 20K stack. Any
- more would reduce the heap required for temporary list storage. This should
- allow a large amount of records to be sorted.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 27
-
-
-
- Z i p B a s e 1 . 1
-
-
- 10. Future Enhancements.
-
- * Larger memory module.
- This version of ZipBase(TM) is compiled using the Small Memory Module of
- Microsoft C. This means that I only have 64K maximum available for all of
- the ZipBase(TM) code. The 3rd party windowing package is used is as yet
- unregistered and so I only have the small memory module version. If
- ZipBase(TM) takes off and people register then I shall invest the
- registration fees into registering the windowing package.
-
- * Disk based operations.
- Currently, only Query/Process uses the disk for operations. All other operations
- such as SORT & LOAD DIRECTORY are memory based. This can be very limiting but
- is essential due to the small-module coding of this version of ZipBase(TM).
- The next version will be able to use a larger memory-module and thus
- will be able to hold the extra code neccessary for disk-based operations.
-
- * Ability to create 'OR' queries.
- With this version of ZipBase(TM) you can only create limited 'AND' queries. That
- is, you cant ask for all filenames to be printed out of filenames which match
- FRED or pathnames which match \DOCS. You could only ask for records in which
- filename matches FRED AND pathname matches \DOCS.
-
- * UnLimited queries.
- In this version of ZipBase(TM) you can only match one extension at a time i.e.
- you cant find all .EXE and .COM files (see section on Merging for a way
- around this). Neither are wildcards allowed. Nor relational operators allowed
- e.g. all files which compressed size is < (less than) 4000 bytes.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 28
-
-
-
- Z i p B a s e 1 . 1
-
-
- 11. Known Faults and Bugs.
-
- * The answer created can be of any size, but the whole of it must be loaded in
- order to sort and to print. Thus, an answer over several hundred records will
- not be able to be printed. The exact number of records is dependant upon the
- conventional memory you have left when ZipBase(TM) is loaded.
-
- * The sort function has a bug. Assume the sort sequence was field-1, field-2,
- field-3. Note the following:
-
- field-1 field-2 field-3
- ARCHIVE1.ZIP FILE1 C:\PCTOOLS (1)
- ARCHIVE1.ZIP FILE2 C:\PCTOOLS (2)
- ARCHIVE1.ZIP FILE3 C:\ABC (3)
- ARCHIVE1.ZIP FILE3 C:\FRED (4)
- ARCHIVE2.ZIP FILE3 C:\DEFINED (5)
- ARCHIVE2.ZIP FILE4 C:\DOS (6)
- ARCHIVE2.ZIP FILE5 C:\SYSTEM (7)
-
- Field-1 has been sorted, as has field-2. The sort function is about to sort
- field-3. The algorithm will look at the last sorted field for duplicates. In
- this case records 3-5 are the record to be sorted. This is fine EXCEPT these
- duplicates fall on the boundary of field-1 (record 4-5). This is ignored by
- the present coding. The final sort will produce:
-
- field-1 field-2 field-3
- ARCHIVE1.ZIP FILE1 C:\PCTOOLS (1)
- ARCHIVE1.ZIP FILE2 C:\PCTOOLS (2)
- ┌─ARCHIVE1.ZIP FILE3 C:\ABC (3)
- ┌┤ ARCHIVE2.ZIP FILE3 C:\DEFINED (4)
- │└─ARCHIVE1.ZIP FILE3 C:\FRED (5)
- │ ARCHIVE2.ZIP FILE4 C:\DOS (6)
- │ ARCHIVE2.ZIP FILE5 C:\SYSTEM (7)
- │
- └─ which is clearly incorrect.
-
- * Duplication
- Sorting does not remove duplicate records. i.e if you have 100 records, all of
- the same volume name, and perform a query to ask for the names of volumes in the
- ZipBase(TM) you will receive a list of 100 volume names, all the same. This will
- be corrected in the next version of ZipBase(TM) (i.e. when I have more code
- space to write the correction!)
-
- * Error Checking
- This is very limited. I chose to dedicate the 64K I had to providing as much
- application as I could, with as little code taken up by error checking as
- possible. WARNING! If you deliberately try to confuse ZipBase(TM), chances are
- you will succeed with little effort.
-
- * Printer Options
- For some reason I cannot get the CXL 3rd party add-in to accept non-printable
- characters i.e. ESC or ASC(15).
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 29
-
-
-
- Z i p B a s e 1 . 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 30
-
-
-
- Z i p B a s e 1 . 1
-
-
- 12. Revision History.
-
- 1.00 September, '89 Initial development of modules required to create
- ZipBase(TM). Unreleased
-
- 1Pß October, '89 Output interface changed to use functions provided in
- the unregistered version of CXL. Version goes under Beta
- testing.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 31
-
-
-
- Z i p B a s e 1 . 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ZipBase(TM) 1.1 User Manual Page 32
-