[comp.sys.apple] ShrinkIt 1.0 <NEW!!>

sschneider@pro-exchange.cts.com (The RainForest BBS) (03/05/89)

ShrinkIt 1.0 is released! The following excerpt of material is to show
you the recent changes and additions.....most notable; will unpack BLU
files.

Disk pack/unpacks REQUIRE two disks... files are different and can be
packed or unpacked as long as there is room on the device.

/steve
system manager
the rainforest bbs

----------------------/ whack it here ! /--------------------------------


          S H R I N K I T(tm)     F O R     T H E     A P P L E   I I

                           Written by Andy Nicholas

                     ShrinkIt Documentation 3/3/89 Excerpt
                <Complete documentation is in SHRINKIT1.0.BQY>


What's New?
-----------

o  Binary II is automatically recognized by the unpacker.  If you ask ShrinkIt
   to (U)nshrink from a Binary II file, the contents of that file will be
   listed like they are for NuFX files, and you can selectively extract
   what you wish.  Any bundled subdirectories are automatically created.

o  Bundled directory support.  You select the inclusion of a directory and
   *ALL* of its contents (including any subdirectories and their contents,
   up to 32 levels deep) just by pressing the space bar to place a
   check-mark beside the subdirectory.  The extractor works by creating
   the needed subdirectories for a selected file automatically.  The whole
   process is fairly fast and works very well.

o  Defeat of optimization of ProDOS disks while packing.  ShrinkIt 0.95
   always assumes that if the disk being packed is a ProDOS disk, and
   that a bitmap is available to optimize the thing -- that's not
   always true.  Some people were using ShrinkIt to archive their
   floppies, but Apple's Backup program places a prodos compatible
   header entry so that ShrinkIt 0.95 is fooled into doing the bitmap
   optimization.  1.0 will optimize a disk being packed if the Open
   Apple key is held down at the beginning of a pack, otherwise,
   <Not Optimized> will appear in the window information bar.

o  Copy files, including all the files in nested subdirectories, up to 32
   levels deep.

o  Create subdirectories.

o  Delete files is a "flat" file deleter.  I wasn't sure if making it
   recursive would pose problems for people because then if you checked
   off a subdir to delete, it would delete everything in that subdirectory.
   So, in this version, that option is left up to you.

o  Type file contents (TXT files or AppleWorks AWP files.. sorry, no
   backwards scrolling, this is an archive program :-)

o  The user-interface has been clarified and enhanced.  There is a selection
   button for the space bar, you can select multiple archives for
   unshrinking, or listing, and more file info is displayed in the list box.

o  The video driver for ShrinkIt has been completely rewritten.  0.95
   uses the apple firmware, but 1.0 uses my own routines, and as a result,
   even works on a Cortland (IIgs prototype), I am told...  Also,
   The screen displays are much faster and there is less flicker
   when something major is done to the screen.

o  If a volume is filled while (S)hrinking or (A)dding to an archive, the
   record count will be corrected.

o  More memory is available for the shrink/unshrink output buffer.  About
   18.1k total memory is available in v1.0 for the output buffer space.  Part
   of the problem with LZW is that to get any kind of speed out of it,
   you have to use a hash-table, which in my case takes up 16k of
   the same bank that the output buffer, input buffer, and executing code
   are also in.  v0.95 has about a 10k buffer, so v1.0's is about
   100% larger.  The packing/unpacking is slightly faster because of this.

o  A lot of the internal code has been rewritten, some of it almost
   from scratch.  It allows for such things as the selection of
   all 253 files in a directory for an action (packing/unpacking/
   copying/typing/etc), instead of the 64 file limit in 0.95 and previous.

o  You can just hit 'period' to abort most functions instead of OA-.

o  Pressing OA-<space> while selecting records to be extracted will place
   an inverse check-mark beside the record name, and when it comes time
   for that record to be extracted, ShrinkIt will prompt to for a new
   directory for the file to be put in.  So records can be extracted into
   multiple destination directories.  Just pressing <space> sends the record
   to the current directory.

o  There's an OA-A(all) command at a fileDialog for extracting every file in
an
   archive, or archiving every file in a directory.'

o  OA-U selects all files to be put into an archive as uncompressed files
   after choosing (S)hrink.

o  OA-P at the record selector puts an inverse checkmark beside all the
records
   indicating that you want all records extracted WITH prompting.

o  OA-G is "Go" at the fileDialog.  This is so that if there are only
   subdirectories in a directory, you can operate on those subdirectories
   without having to open them. (just like Copy II+)

o  Typing the complete pathname of a file at a fileDialog will perform an
   operation on that file.  For instance, if you type the complete pathname
   of a file after choosing (T)ype at the main menu, ShrinkIt will show the
   contents of that single file.

o  Pressing <return> while the highlighter bar is on top of a filename while
   in a fileDialog will perform the chosen function on ONLY that file.
Pressing
   the <space> bar will place a check beside a filename, ala AppleWorks
   (Thanks Morgan and Lance!).

o  I put a picture of a floppy disk done with mousetext in the error box when
   an error occurs.  I was bored one evening.. tough to imagine.

******************
As of 3/2/89, ShrinkIt will *NOT* function correctly with Glen Bredon's
CACHE.XL utility.  CACHE.XL causes some really strange behavior in ShrinkIt.
******************


Special Features
----------------

ShrinkIt is equipped with 3 forms of virus detection.  If a virus were to
ever attach itself to ShrinkIt, you will be warned by an Alert window which
will inform you of the presumed presence of a virus.  It will allow you to
exit ShrinkIt and take whatever steps are necessary to combat the virus.  I
find the commandeering of my files by viruses detestable and put the virus
detector in ShrinkIt to help others avoid them.

When unshrinking disks, a 140k disk image will fit onto an 800k disk.  The
problem is that if the disk is a ProDOS disk, after it's unshrunk, the bitmap
will not be correct and the total_blocks on the device will be set to 280
instead of 1600.  ShrinkIt allows you to unpack a 140k disk image onto an
800k disk and will fix the bitmap and total_blocks automatically as long as
the disk image in question is ProDOS.  The converse is not true.  You cannot
take an 800k disk image and fit it onto a 140k disk.

The low level volume number of a 5.25" disk is preserved by ShrinkIt when
archiving 5.25" disks.

An error-check (CRC) of the data is also kept by ShrinkIt.  In the event that
the data in an archive becomes corrupted, ShrinkIt will warn you.

Holding down the OA key as a disk is beginning to be shrunk will enable the
disk bitmap optimizer, which will automatically zero the unused blocks on
a ProDOS disk on-the-fly.  If this option is selected, "<Optimized>" will be
displayed on the window information bar; otherwise, "<Not Optimized>" will
be displayed.


About the Author
----------------

I am currently a Junior attending Moravian College in Bethlehem, Pennsylvania,
majoring in Computer Science.  I made ShrinkIt Freeware because I believe
that such a common utility program as an archiver should be able to be used
by as many people as possible.  If you use ShrinkIt and feel that it is
valuable to you, I urge you to send me something for my work.



Paper Bag Productions          CsNET: shrinkit@moravian.edu
c/o Andy Nicholas           InterNET: shrinkit%moravian.edu@relay.cs.net
Box 435, Moravian College             liberty!batman!shrinkit@sun.com
Bethlehem, PA  18018            Uucp: rutgers!lafcol!lehi3b15!mc70!shrinkit
                                      rutgers!liberty!batman!shrinkit
AppleLink PE: ShrinkIt       ProLine: andyn@pro-sol.cts.com  [619-670-5379]


"ShrinkIt" is a registered trademark of Paper Bag Productions.

Thanks!
-------

Kent Dickey, for the enormous amount of help he gave me with the algorithm.
Jerry Hewett, for the HyperFormat source code.
Morgan Davis, for showing me a good user-interface design to follow and
 providing many good suggestions along the way.
Evan Ron Aussenberg, for writing some preliminary documentation for 1.0
Ken Scrogan, for writing some preliminary documentation for 1.0
Lance Taylor-Warren and Larry Hawkins, for giving me support when I needed
 it most.

I would also like to thank the following people for their help and time in
testing ShrinkIt while it was still in the very early stages:

Vince Cooper, Steve Schneider, Dave Lyons, Jon Davidson, Joe Schober, Ron
Drum,
Jason Blochowiak, Rich Sims, John Brooks, Mike Brunsmann, Larry Virden, and
Eric Mueller

Misc Stuff and Propaganda
-------------------------

If you find a  bug  in  ShrinkIt  which  you  can  consistently  duplicate,
*PLEASE* get in contact with me about it.

In the works:

I am working on writing a 16-bit, fast as, well, just fast, IIGS version of
ShrinkIt.  This will be Freeware, or at the worst, probably Shareware.

I am beginning work on a Q&D II+/Unenhanced IIe 40-column version of ShrinkIt.
It won't have any fancy features like the IIGS or 80-column version of
ShrinkIt, but it will work.  Again, Freeware.

I also have 2 IIGS-only text-based  terminal  programs  which  vaguely
resemble United Software Industries' MouseTalk(tm)  product.  One is a
standalone terminal program and the other is a Classic Desk Accessory (CDA).
Both programs have essentially the same features: scrollback buffer, a
plethora of transfer protocols (xmodem, crc-xmodem, xmodem-1k, 4modem,
Ymodem, Ymodem-G, and a protocol developed by Paul Meiners of GT PowerComm
fame: MEGAlink), support of both the SSC and internal GS serial port,
a split-screen chat mode in which the size of the screen partition is
adjustable, an automated dialer which can rotary dial a list of systems, and
a lot of other nifty features.  These will not be Freeware, but will be
sold commercially (gee, not even Shareware -- I gotta eat somehow :) for
$40-60 bundled together.

The terminal programs will  be  available sometime... well, soon. (see, I've
learned not to promise dates :-)

----------------------------/ Whack it here ! /------------------------------

/steve
system manager


-----------------------------------------------------------------------------
| UUCP: crash!pro-exchange!sschneider                APPLELINK : sschneider |
| ARPA: crash!pro-exchange!sschneider@nosc.mil       COMPU$ERVE: 75166,2544 |
| INET: sschneider@pro-exchange.cts.com              GENIE     : sschneider |
| The RainForest @ 305-434-4927 / PO Box 841422, Pembroke Pines, Fl,  33084 |
-----------------------------------------------------------------------------