[comp.binaries.ibm.pc.d] EXEPACK

rmpinchback@crocus.waterloo.edu (Reid M. Pinchback) (08/08/88)

>
>By the way, the documentation mentions that it is possible to reduce the
>size of the MSVIBM.EXE file by 15K using a program called EXEPACK.  Is
>EXEPACK a public-domain program?  I would like to reduce the size of the
>file to shorten its loading time.
>
>
>-Ed L

    Along the same lines, I remember at various times in the MS-DOS history
seeing references to techniques for modifying .COM and .EXE files so that
they would load faster (apart from making them smaller so that they load
faster due to reduced file size).  Does anybody out there in netland know
anything about this?


    Reid

16012_3045@uwovax.uwo.ca (Paul Gomme) (08/08/88)

In article <6240@chinet.chi.il.us>, edlee@chinet.chi.il.us (Edward Lee) writes:
> By the way, the documentation mentions that it is possible to reduce the
> size of the MSVIBM.EXE file by 15K using a program called EXEPACK.  Is
> EXEPACK a public-domain program?  I would like to reduce the size of the
> file to shorten its loading time.

	I have a program called EXEPACK which came with MASM 5.1.  I suspect
that it's a Microsoft program which comes with all of their (major) compilers.
-------------------------------------------------------------------------
Paul Gomme                             E-Mail:
Department of Economics
University of Western Ontario          Bitnet:  p.gomme@uwovax.bitnet
London, Ontario, Canada                         p.gomme@uwovax.uwo.ca
N6A 5B7                                ARPA:    p.gomme@uwo.ca
(519) 679-2111 ext. 6418

wew@naucse.UUCP (Bill Wilson) (08/09/88)

Exepack is a program that is supplied with all of the languages
that I have seen from Microsoft.  It is a compression utility
that deletes sequences of identical characters from an executable 
file.  It also optimizes the relocation table that can also make
execution time faster.  I have tried it out on a number of large
programs (200 K range) and it has worked just fine (and saved up
to 15 K per file).  If you can get a copy try it out.

-- 
Bill Wilson                          (Bitnet: ucc2wew@nauvm)
Northern AZ Univ
Flagstaff, AZ 86011
{These views are mine and do not necessarily reflect those of my employer}

edlee@chinet.chi.il.us (Edward Lee) (08/10/88)

In article <548@uwovax.uwo.ca> 16012_3045@uwovax.uwo.ca (Paul Gomme) writes:
>
>	I have a program called EXEPACK which came with MASM 5.1.  I suspect
>that it's a Microsoft program which comes with all of their (major) compilers.

Okay, so I suppose that EXEPACK is not a public-domain program.  Does anyone
out there have a compressed version of MSVIBM.EXE, the IBM-specific version of
Kermit, that they could mail to me?  Better yet, is there a public-domain
program that creates working, compressed *.EXE files that can be mailed to me
or to comp.binaries.ibm.pc? 


-Ed L

schuster@dasys1.UUCP (Michael Schuster) (08/10/88)

In article <8159@watdragon.waterloo.edu> writes:
>
>By the way, the documentation mentions that it is possible to reduce the
>size of the MSVIBM.EXE file by 15K using a program called EXEPACK.  Is
>EXEPACK a public-domain program?  I would like to reduce the size of the
>file to shorten its loading time.

EXEPACK is copyrighted software from Microsoft. It is included in their
Macro Assembler package, and may be bundled with other products
too; I'm not sure. There is a shareware cruncher called SCRNCH
which is available on CompuServe and GEnie. It will do EXE to COM
conversions and back, as well as pretty impressive packing using a
proprietary algorithm. It's very slow tho (10 minutes to pack a 32K
file, running on a hard disk and 20 mHz 386 machine with math chip).
-- 
l\  /l'   _  Mike Schuster          {sun!hoptoad,cmcl2!phri}!dasys1!schuster
l \/ lll/(_  Big Electric Cat       schuster@dasys1.UUCP
l    lll\(_  New York, NY USA       DELPHI,GEnie:MSCHUSTER  CIS:70346,1745 

simcha@humming.UUCP (Simcha Lerner) (08/10/88)

In article <830@naucse.UUCP> wew@naucse.UUCP (Bill Wilson) writes:
>Exepack is a program that is supplied with all of the languages
>that I have seen from Microsoft.  It is a compression utility
>that deletes sequences of identical characters from an executable 
>file.  It also optimizes the relocation table that can also make
>execution time faster. 
>-- 
>Bill Wilson                          (Bitnet: ucc2wew@nauvm)
>Northern AZ Univ
>Flagstaff, AZ 86011
>{These views are mine and do not necessarily reflect those of my employer}


Sorry,  but  there  is  nothing  that will make your program execute faster
except compiling with a better compiler or running on a faster computer.

The main saving of exepack is to save _disk_space_ by making the disk image
smaller.  As  mentioned  before,  this  is  done by compressing out runs of
uninitiated data space and the like.

There  is  controversy  on whether this speeds up load time or not. EXEPACK
inserts  a  unpacker  that  becomes  the  entry  point of the program. This
unpacking  process  takes a finite amount of time that otherwise would not
take  place  in  an  unpacked version of the program. The ratio of the time
saved  from  loading  a  smaller  file vs. unpacking to original offsets is
quite variable from my experience.

By  the  way  -  some versions of exepack (maybe all?) seem to count on the
8086  1MB  memory  wrap-around  behaviour  (which  is  emulated on AT class
machines  by  gating the A20 line in real mode) for unpacking, and complain
loudly  (about  a "corrupted packed file") if the wrap-around is not taking
place.

In my opinion, don't bother with exepack unless you really need to save the
disk space (eg: it's going onto a floppy).


Simcha Lerner

...harvard!humming!simcha

All opinions are my own...although you are welcome to share them.
 

toma@tekgvs.GVS.TEK.COM (Tom Almy) (08/10/88)

In article <830@naucse.UUCP> wew@naucse.UUCP (Bill Wilson) writes:
>Exepack is a program that is supplied with all of the languages
>that I have seen from Microsoft.  [...]
>I have tried it out on a number of large
>programs (200 K range) and it has worked just fine (and saved up
>to 15 K per file).

I would like to point out three things:

1. Exepack is not guarenteed to work with all programs (especially non
   Microsoft compiled languages), and can, in fact, produce an exe file
   that will not execute!

2. Once you pack the file, you cannot use a debugger on it.

3. The linkers supplied with Microsoft languages have an option switch
   to do the packing, which eliminates the separate exepack step.


Tom Almy
toma@tekgvs.TEK.COM

Standard disclaimers apply...