home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 December
/
simtel1292_SIMTEL_1292_Walnut_Creek.iso
/
msdos
/
arc_lbr
/
sqz1082e.exe
/
SQZ.ENG
< prev
next >
Wrap
Text File
|
1992-09-11
|
15KB
|
710 lines
Program: SQZ - Squeeze.
Function: Combined file compresser and archiver.
Version: 1.08.2
Datum: 1992/09/10
Copyright: Jonas I Hammarberg
By: Jonas I Hammarberg
-------------------------------------------------------------------------------
Overview.............................. I
Getting started....................... II
Commands.............................. III
Switches.............................. IV
Future................................ V
BAT files............................. VI
Register/order/payment................ VII
By the way, I'm sorry to have to say that my english is rather poor,
so please don't be too upset by my misuse of the language that
Shakespeare used with such elegance...
When is a door not a door?
SQZ - Squeeze : 1.08.2 : Jonas I Hammarberg : Overview I
-------------------------------------------------------------------------------
Squeeze is a combined file compressor and archiver, like PKZip/LHArc etc.
But why should you use SQZ instead....
* Better compression ratio.
* Supports directories.
* Support of ÅÄÖ and other obscure chars.
* A much smaller archive-file.
* (the chance for a coffe-break during packing) (not as long).
* I, the developer, live in the country of "Honour and Heros".
(Check out Donald Duck in the Andes (* == egg...)
* Payment in SEK or US$, but preferable SEK.
* Doesn't support MOVE.
* Versions (will be) developed for
+ Amiga
+ VAX VMS
+ UNIX / Coherent / *NIX / XENIX
+ MacIntosh
+ MS Windows
+ OS/2 HPSF
SQZ - Squeeze : 1.08.2 : Jonas I Hammarberg : Getting started II
-------------------------------------------------------------------------------
* To pack a directory and it's subdirectories...
Move up a level, i.e. so that the directory will become subdirectory.
SQZ A directory /SP1 directory\*.*
Ex: To pack \DATA\AUTOGRAF
+ CD \DATA
+ SQZ A AUTOGRAF /SP1 AUTOGRAF\*.*
To recreate:
SQZ X directory directory\
Ex: Unpack AUTOGRAF.SQZ
+ CD \DATA
+ SQZ X AUTOGRAF AUTOGRAF\
* To pack a directory and expand path...
SQZ A archive /SP2 \path\*.*
Ex: Pack \DATA\AUTOGRAF
+ SQZ A \ARKIV\DATA_AG /SP2 \DATA\AUTOGRAF\*.*
To recreate:
SQZ X archive
Ex: To unpack \ARKIV\DATA_AG.SQZ
+ SQZ X \ARKIV\DATA_AG
* To recreate an archive in a subdirectory...
SQZ X archive subdirectory\
Ex: Recreate AUTOGRAF with \DATA\AUTOGRAF\ANNAT as base.
+ SQZ X AUTOGRAF \DATA\AUTOGRAF\ANNAT\
SQZ - Squeeze : 1.08.2 : Jonas I Hammarberg : Getting started II.2
-------------------------------------------------------------------------------
* To look inside an archive...
SQZ L archive
Ex:
+ SQZ L AUTOGRAF
+ SQZ L \ARKIV\DATA_AG
* To look for specific files...
SQZ L archive spec1 spec2
Ex:
+ SQZ L AUTOGRAF *.STP *.NLG
+ SQZ L \ARKIV\DATA_AG *.?A?
* Check that the files are ok (just CRC check, sorry)...
SQZ T archive
Ex:
+ SQZ T AUTOGRAF
SQZ - Squeeze : 1.08.2 : Jonas I Hammarberg : Commands III
-------------------------------------------------------------------------------
You can do the following;
* Add files to an archive.
* Update files in an archive.
* Remove files from an archive.
* Create a SFX.
* List contents of an archive.
* Test the content of it.
* Recreate files from an archive.
N.B! Both '-' and '/' can be used as leading char for switches.
Are '/' used then must '\' be uses as seperator in path, eg:
sqz a a /sp1z01 a\*.*
sqz a a -sp1z01 a/*.*
* Add files to an archive...
SQZ A archive spec
Adds files to given archive. If the files already exist will they
be overwritten.
* Updates files in an archive...
SQZ U archive spec
Adds files to given archive. If the files already exist will they
be overwritten if they are have an earlier date.
* Remove files from archive...
SQZ D archive spec
Removes given files from archive.
* Create SFX...
Sometimes it might be useful to send just one file, and not two.
(they might not own SQZ or have an old version or just don't want
to give their hard-earned cash to me).
Solution: Create a SFX (SelF eXtracting archive).
The result will be an EXE-file. When it's executed it will start
unpacking itself. Some commands can be used in SFX, but SFXjr
just knows how to unpack.
Both SFX and SFXjr can create directories.
* List content of archive...
You can list the contents through L or V.
L will give a shorter listing, not including path, where V will
display the whole path.
SQZ - Squeeze : 1.08.2 : Jonas I Hammarberg : Commands III.2
-------------------------------------------------------------------------------
* Test the content of archive...
Sometimes it might be a lousy day when you shouldn't have stepped out
of bed and everything goes wrong, eg. phone lines and floppies.
Therefore you have the possibility to test for errors in your
archive, but there's a catch (there's always one...) the CRC-check
might pass, unlikely, but...
* Recreate files from archive...
You can recreate with path or without.
E ignores stored path information but X will recreate the whole path.
Both understand base-path, eg. place the files in a another
directory. Default is current working directory (CWD).
And, at last but not least...
+ Display file...
Prints a file in the archive to standard output.
- SQZ P archive spec
+ Comment archive...
Gives you the possiblity to add a comment describing the content
of this specific archive, or just some ads.
The comment will be displayed when Listing/Extracting(/Help).
- SQZ C archive commentfile to read from file
- SQZ C archive CON to read from stdin
+ Proctect archive (REAL SOON NOW)
Close the archive, so that files can't be added/removed.
You can do it now by creating a SFX.
SQZ - Squeeze : 1.08.2 : Jonas I Hammarberg : Switches IV
-------------------------------------------------------------------------------
The following functions can be controlled through switches;
* Include sub-directory/-directories.
* How to store path
* Date selection
* File attribute during selection
* Overwrite existing files during unpacking
* Files to exclude during packing
* Copy versus squeezing
* Speed versus squeezing
* Method for squeezing
* Others
* Include subdirectory
/s Include sub-directories during file scanning.
Directories will be included even if given
files-specification doesn't give any match.
* How to store path
/p 0 - As given
DATA\PAS\T.INF --> DATA\PAS\T.INF
1 - Skip first directory
DATA\PAS\T.INF --> PAS\T.INF
Useful if you wish to store a complete
directory with sub-directories. While the
base directory wan't be saved will you save some
bytes ($crooge).
The example would be called DATA.sqz containing
PAS\T.INF instead of XXXXX.SQZ containing
DATA\PAS\T.INF.
2 - Expand from root
DATA\PAS\T.INF --> \DIV\DATA\PAS\T.INF
3 - Only name, no path.
DATA\PAS\T.INF --> T.INF
* Date selection
da Date after YYMMDDHHMMSS
From YYMMDDHHMMSS and onwards.
If not completely specified zeros will be appended.
920402 --> 920402000000
db Date before YYMMDDHHMMSS
Before given, otherwise as above.
SQZ - Squeeze : 1.08.2 : Jonas I Hammarberg : Switches IV.2
-------------------------------------------------------------------------------
* File attributes during selection
a Archive flag, will be set by DOS when written to.
This flag gives you a easy way just to include those files
that have been changed since last pack/backup.
a1 Include only those with A flag set, ie. changed ones.
a? Don't care about its state, include it eitherway.
a0 Include only those with A flag not set, ie unchanged ones.
a 1 Force it high after packing.
a = Leave it unchanged in its previous state.
a 0 Drop it, so that it will be raised when next updated.
a10 Include files with flag high and drop it afterwards.
a?0 Ignore when including, but clear it afterwards.
* Overwrite when unpacking
o Overwrite
Overwrite files during unpacking.
o0 Only older files.
o1 Always overwrite.
o2 Prompt first.
* Files to exclude during packing
x Exclude
Don't include the following file(s).
/xGAMMAL.FIL /x*.BAK
Don't include GAMMAL.FIL, or any file with the extension .BAK
Handles file redirection, ie. @fil
* Copy versus squeezing
c Copy files with the following extensions.
Sometimes the result is not worth the time it takes to
squeeze files that already are compressed.
eeh... I just wish to state that SQZ will be able to squeeze
some more bytes from the most archives.
As default the following files will be copied;
.ARC .ARJ .LZH .PAK .SQZ .ZIP .ZOO
If option used you must include all extensions, ie. it will
not add to it's existing list, just replace it.
/c.GIF -> Copy only *.GIF, but squeeze *.ARC etc.
Don't know how to handle file redirection.
SQZ - Squeeze : 1.08.2 : Jonas I Hammarberg : Switches IV.3
-------------------------------------------------------------------------------
* Speed versus squeezing
q Speed: The higher speed the less compressing will occurr (mostly)
/q0../q9 och /q∞ (ASCII 236d)
Default: /q5.
N.B. /q∞ WILL take it's time... zzzzzzzzz....
* Method for squeezing
m 0 - Copy, se /c above
1 - Squeezing using metod 1
2 - "- metod 2, often better, but...
3 - Even better...
4 - Even better yet, mostly...
Default: /m4
* Others
z 0 - How long time did it take?
1 - Only total.
2 - Use SFXJR.exe, not SFX.exe
3 - Better compression ratio for doc's.
Can be combined: /z0 /z1 /z2 == /z0z1z2 == z012
All switches can be grouped together, depending on their arguments.
Ex: /s /p1 /z0 /z1 /x*.BAK /x*.$$$ --> /sp1z01x*.BAK /x*.$$$
SQZ - Squeeze : 1.08.2 : Jonas I Hammarberg : Future VII
-------------------------------------------------------------------------------
* More assembly
* Shrink SFX/SFXjr (19 and 16kB are just to MUCH)
* Just don't return to DOS when there's a error.
* Change Huffman encoding for another encoding.
This other one is a little more effective but needs more gas.
* Support more operating-/file-systems
* For the moment each SQZ only support its native format, so why
not an extended SQZ that understands all of them.
* Specific method for different types of files.
Packing voice/noise is different from packing graphics etc.
* Add some form of verification, so that you can have a guarantee of its
integrity.
* SFX are already locked, but wouldn't it be nice to lock ordinary
ones to?
* Exploit 286/386/486(/586), not just 8086.
SQZ - Squeeze : 1.08.2 : Jonas I Hammarberg : BAT files VIII
-------------------------------------------------------------------------------
* U.BAT Save new files, should be run once each day.
All new files/changed ones in given directory will be saved in
REV\YYMMDD, including sub-directories.n.
The archive will be call by the name of the given directory.
Ex.: If DATE=920508 and you enter U SQZ and are in \DEV\C
then \DEV\C\REV\920508\SQZ.SQZ will be created.
Needs: Environment variable DATE must exist. It gives the date
of the files to include and also in which REV directory
the archive will be placed.
Result: If no REV directory exists it will be created.
If no %DATE% directory exists it will be
created.
The archive will be placed in this directory.
+ I've written a small program which takes the date and places
it in the environment variable DATE. Source and exe included.
N.B! The program uses the method given by ENVEDT from
"Undocumented DOS" Schulman et al.
As some composer said:
«Mediocre composers borrow ... Great composers steals»
* Q.BAT/QD.BAT
Will pack a whole directory tree and create an archive with the
same name.
QD.bat tests the archive before removing the directory.
A way of supporting MOVE.
SQZ - Squeeze : 1.08.2 : Jonas I Hammarberg : Register/Order/Payment IX
-------------------------------------------------------------------------------
Register: By registering at the address below you will have the right
to support and one free upgrade. Please state version.
The registration fee is for the moment 150SEK/30US$.
Smaller fees will be accepted, but don't entitle you to a free
upgrade.
Licence: A rebate is given when buying five ore more copies.
Error: None...
Well, but I can't say that there are a lot of them.
If you run into them please contact me, PPPLLLEEEAAASSSEEE
Disclaimer: This software (SQZ, SFX and SFXJR) is provided on an "as is"
basis without warranty of any kind, expressed or implied,
including but not limited to the implied warranties of
merchantability and fitness for a particular purpose. The
person using the software bears all risk as to the quality
and performance of the software. The author will not be
liable for any special, incidental, consequential, indirect
or similar damages due to loss of data or any other reason,
even if the author or an agent of the author has been advised
of the possibility of such damages.
Contact: I can be reached at home (telecommuter...) and through this
BBS, which I contact more or less once a week.
Programmers BBS: (+46)40 188 945
HST DS 1200-14400 baud N-8-1
FidoNet 2:200/107
Lars Ridstrom, SysOp
Jonas I Hammarberg (+46)46 730 088
Pl 529. St. Harrie 10:2 pg. 490 68 64-6
S-244 91 Kaevlinge bk. 5635-00 213 53
Sverige/Sweden
rgds Jonas, <HL>
Eh, by the way, feel free to send me a postcard or EMAIL
just to tell me what a lousy/excellent program I've made,
and giving me a clue how far SQZ has reached. HAND Jonas
When it's a-jar.