PACK/UNPACK

From Atari Wiki
Jump to navigation Jump to search
                  DOCUMENTATION FOR "PACK" AND "UNPACK"
                  -------------------------------------

PACK is an amazing program from Europe which will take almost any executable
program, pack it, and create a new runnable program which is much smaller
than the original.  PACK will usually create a new file which is on average
about 50% of its original size, although file size will vary depending upon
the program being packed and its original size.  This utility is great for
anyone short on disk space (who isn't!) and will also greatly shorten the
load time of large programs run from floppy disk.  Beware, some files
(especially small files or previously packed programs) can become larger in
size when packed, so keep an eye on the resulting file size.  Almost any    
program can be packed, but there are a few which might not work if packed so
you should be sure to test your packed programs before removing the original.
Pack only files with the following extensions: .PRG, .TOS, .TTP, .APP.
Following a successful packing, the original file size, the new file size,
and the packed program size as a percentage of the original size is shown.

UNPACK, the companion to PACK, will unpack any file which has been previously
packed.

Language translation of PACK and UNPACK into English by Gordon W. Moore.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

When contemplating the PACKing of my entire database, there were two
pitfalls to consider.  The remembering and typing of all of my program
names, (as PACK did not use the GEM file selector), and the several
programs I had run across that wouldn't PACK.

The solution to the first one was simple.  Add a selector box to the PACK
program.  This has been done, and is included in this ARC file.  Every
effort was made to avoid possible compatibility problems.  The PACK
program was not reassembled, but simply patched with a GEM call at the
lowest level where the program was doing keyboard input.  The PACK program
is also exactly the same size.

A partial solution to unpackable programs is REMOVSYM.PRG.  Most of the
PACKing errors are caused by either having a Symbol Table embedded in the
program, or by having data in the 'Reserved' part of the header.  (PACK
will give an 'Error in Header' message in these cases.)  If a Symbol Table
exists, REMOVSYM will delete it, its associated relocation entries, and
move the fixup table up into its correct place.

In the cases of data in the Reserved area, it will give a warning prompt,
and allow you to erase that data also.  At this time, I don't know what
this reserved area is, or what the data in it can be used for.  So far,
the programs where I have erased this data and PACKed them have run just
fine.  Until I find out more information, I suggest keeping the original
file backed up, and thoroughly testing the PACKed version before relying
on it.

These other messages cause REMOVSYM to skip the file:
File Header OK - There is no Symbol Table or Reserved Data to fix.
Not Program File - The file requested does not have a program file header.
Not Enough Memory - There is not enough memory to load the selected file.

I hope this program helps you in PACKing files.  I don't even save the
originals, because you can always UNPACK to get them back!

John Harris
45346 Graceway Dr.
Ahwahnee, CA 93601
(209)683-6540
GEnie: JHARRIS32


Back to Packer/Depacker