-----BEGIN PGP SIGNED MESSAGE----- XPACK An Executable, Datafile... and DiskImage Compressor Copyright (c) 1995-1998 by JauMing Tseng WHAT IS XPACK? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ XPACK is an EXE/COM/SYS Executable file compressor. This program compresses most DOS executable files. Compressed programs use less disk space because they are much smaller, yet they run EXACTLY as before. XPACK also allows a compressed diskette image to be created for electronic transmission. The compressed diskette image can be transmitted with the use of a modem on regular phone line, or any other electronic networks. It can be used to archive diskette images on hard drives or tapes. This guarantees the contents of the diskette to be the same as the original -- including all directory structures, date and time stamps of all the files and directories. This is useful for archiving bootable diskettes, too. XPACK is also a powerful file compressor with RAM resident transparent expander(XPACK OnLine DeCompression System), which gives painless access to compressed files. This is done by intercepting DOS calls, allowing applications to read compressed files just as before. Just put a command(XPACK -z) to load XPACK into the AUTOEXEC.BAT file and forget it. The RAM resident part of XPACK OnLine DeCompression System uses 4KB of Upper memory and 32KB of EMS memory. SYSTEM REQUIREMENTS. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ XPACK works on any IBM-compatible machine with 192Kb of free DOS memory. method 4 need extra 192Kb, method 5 need extra 147kb for compression Every file compressed with XPACK can run on any IBM compatible system: XT, AT, 80286, 80386, 80486, Pentium or Pentium Pro; on Intel and non-Intel. USING XPACK. ÄÄÄÄÄÄÄÄÄÄÄÄ Enter the command: XPACK [options] filename where "filename" is the name of the Executable file to be compressed. XPACK will only work properly on Executable files, so if you do not type a file extension, ".EXE", ".COM" or ".SYS" is assumed. The filename can include drive, path specifications and wildcards (* or ?). The various "options" are explained later. XPACK will make an Executable file that: (a) is smaller than the original, and (b) works as before, without any noticeable loss of speed. The computer may take several seconds to do the compressing. If you are impatient you can interrupt the process by pressing the ESC key. Not every .EXE file can be compressed with XPACK. (e.g. .EXE with internal overlay can only be packed with option /g) That's why this program creates backups. The original FILENAME.EXE file is renamed to FILENAME.OLE. If anything goes wrong you can restore the original file by entering these 2 commands at the DOS prompt: COPY FILENAME.OLE FILENAME.EXE DEL FILENAME.OLE (.COM and .SYS files are always packed ok.) OPTIONS. ÄÄÄÄÄÄÄÄ Any "options" that you use are typed after "XPACK" and before "FILENAME". Options are all case-insensitive, separated by spaces, and begin with either the hyphen ('-') or the slash ('/') character. Here are the details of the command line options: -? This switch invokes option -h -h This switch tells XPACK to display a Help Screen to the DOS console device. You can use "XPACK /? > XPACK.HLP" to save it. -4 This switch tells XPACK to use pack method 4 best ratio -5 This switch tells XPACK to use pack method 5 (default) 2nd compression ratio fastest compression quickest extraction smallest sfx -x expand a compressed .COM or .SYS file. -f This switch tells XPACK to convert the file even if the result is bigger than the original file. (Not many users will take advantage of this option!) -o This switch tells XPACK to override the default generation of FILENAME.OLE backup files. (Use this only if you have already determined that XPACK compresses the file(s) successfully.) -g This tells XPACK to merge an overlay into packed file. (See note below concerning files that cannot be packed.) Without the -g option, XPACK does not try to compress an .EXE file that contains overlays. The -g option may not work with every .EXE that contains an overlay. It works well with .EXE files compiled from text (ASCII) with TURBOTXT (an excellent program that is supplied with the registered version of the TURBOBAT batch file compiler), overlay programs compiled by TURBO/BORLAND Pascal and Clipper 5.2 with Blink 3.0 -pd Pack files as Data those data files can be used by XPACK OnLine Decompression System which gives painless access to XPACKed-Data files -ud Unpack XPACKed-Data files -z install (stay resident) Xpack OnLine DeCompression System -zr release (uninstall TSR) Xpack OnLine DeCompression System -z- deactivate (TSR off) Xpack OnLine DeCompression System -z+ activate (turn TSR on) Xpack OnLine DeCompression System -ux Ultra eXpander for some high level language compiled progys! :) (to unpack a overlay-exe, plz remember use fullpath & extension) (this option doesn't accept wildcards! :) -v- disable Anti-Virus-Recovery-Information for EXE -c1File1 add comment:"File1" to the beginning of EXE -c2File2 add comment:"File2" to the end of EXE (þ Only 1st 512-bytes read of both comment1&2 for optimization reason) USING XPACK to create/restore compressed diskette image. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Enter the command: XPACK option drive: filename where "filename" is the name of the compressed diskette image file. If you do not type a file extension, ".XDI" is assumed. The filename can include drive and path specifications. Here are the details of the new options: -p Pack the diskette in drive: to filename -u Unpack to the diskette in drive: from filename the filename here can include wildcards (* or ?). USING XPACK to create/restore compressed archive. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Enter the command: XPACK option archive [filename] where "filename" is the name of the files to be archived If you do not type a file extension, ".XPA" is assumed. The filename can include drive, path specifications and wildcards (* or ?). Here are the details of the new options: -a Add files to archive -e Extract files from archive -l List contents of archive -t Test integrity of archive EXAMPLES. ÄÄÄÄÄÄÄÄÄ To compress all the .EXE files in the current directory just type: XPACK *.EXE To compress without backup all .EXE files in C:\PROGS, type: XPACK /O C:\PROGS\*.EXE To pack all the Executable files using method 4, enter this command: XPACK /4 * To compress BUMF.EXE (made from BUMF.TXT using TURBOTXT), enter the command: XPACK -g BUMF To create a compressed diskette image named MYDISK.XDI from drive B: type: XPACK -p b: MYDISK.XDI To unpack (restore) a compressed diskette image C:\BOOT.XDI to drive A: type: XPACK -u a: C:\BOOT To pack all the files as data in D:\MYDATA type: XPACK -Pd d:\mydata\* To unpack all the XPACKed-Data files in E:\MYfile type: XPACK -Ud e:\myfile\*.* To install (stay resident) Xpack OnLine DeCompression System type: XPACK -z To release Xpack OnLine DeCompression System type: XPACK -zr To deactivate Xpack OnLine DeCompression System type: XPACK -z- To active Xpack OnLine DeCompression System type: XPACK -z+ To compress all the .EXE files in the current directory without adding Anti-Virus-Recovery-Information just type: XPACK -v- *.EXE To compress all the .EXE files in the current directory with comment:"File1" at the beginning & comment:"File2" at the end just type: XPACK -c1File1 -c2File2 *.EXE To add files in f:\MYfile to archive type: XPACK -a archive f:\MYfile\*.* To extract all files from archive type: XPACK -e archive To list contents of archive type: XPACK -l archive To extract files '*.dox' from archive type: XPACK -e archive *.dox To test integrity of files '*.exe' in archive type: XPACK -t archive *.exe FILES THAT CAN'T BE PACKED. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Some files can't be compressed with XPACK. - Programs that check the CRC of a file - Files that store configuration data internally - Drivers that can be loaded in a config.sys file (EMM386.EXE) - Some files with "overlays" or DOS4GW overlays, etc.. Some "overlaid" files can't be compressed because when you compress such a file the overlay offset changes and the compressed program may not find an overlay. WINDOWS AND OS/2 FILES. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ XPACK currently cannot Pack Windows or OS/2 New .EXEs are because at the ends of these files there are resources, which have to be located there. (e.g. the BITMAPs, Dialog, Boxes, Buttons, and Icons) These resources are loaded not with the execution of the file, but only when needed by Windows or OS/2. Windows and OS/2 files are automatically recognized by XPACK. i'm trying to add functions to compress: Windows 3.1, Windows 95, OS/2, DOS protect mode, DOS overlay executables in near future! (plz .. wait:) DISTRIBUTING XPACK. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The XPACK utility is protected by copyright, and may be distributed only according to the following limitations: 1) NO price may be charged, other than a fee for copying and mailing the disk. 2) The utility and documentation must be included together, in unmodified form. The XPACK.COM, XPACK.DOC and XpackBg5.Doc files must stay together. XPACK can be freely uploaded to any BBS, online system or something similar, and can be freely included on any CD-ROM. You can only distribute compressed executables or DiskImages if you register XPACK. Verify Authentication ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ To verify authentication, you can use pgp to check the signatures, the correct messages should read: ... Good signature from user "JauMing Tseng ". Signature made 1998/??/?? ..... GMT using 2048-bit key, key ID 8A249D7D ... To get author's public key, send a email to xpa@pcmail.com.tw with Subject: get public key Thanks:) CREDITS & Greetings ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Optimized by http://www.xs4all.nl/~feldmann Revised documentation (XPACK.DOC) by John Kiernan, Harald Feldmann. Translated dox (XPACK.DEU) by Veit Kannegieser, Karl Loncarek. I thank the following people for testing and suggestions: Fred Lu, John Kiernan, ChengChang Liu, Harald Feldmann(Author Hamarsoft HAP archiver), Jeff Gilchrist, Henrik Haftmann, Michal Weis, Peter Hubinsky (Slovak Antivirus Center), Cristi Bradiceanu (The DOP), Tomas Hajny, Roeland Louwe Kooijmans, Keith Petersen (General Manager of Simtel), Peter Gutmann, Frank Zago, Adam Nikic, Timo Salmi, Mika Koykka, Henry Juhani Aro, Ron van Daal, Roberto Favaretti, Bulent Eren, Michael E. Webb, Stefan Raaijmakers, uNDeRWoRLD^TUW/TPiNC, Veit Kannegieser(Author DiskEMU), Marcel Blanchet, Synopsis, Suriadi Taslim. Thank you! HOW DOES XPACK WORK? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The XPACK utility works by compressing an executable file. The encoded program is written back to disk under the original file name, with a relocating decoder attached to the file. When the executable file executes, control passes to the relocating decoder, which relocates itself (and the encoded data) higher in memory. It then decodes the program into the same place it would have been loaded if it were not encoded. The XPACKed program resets the registers and flags to their original forms and starts the program just as if there had never been any encoding. If a "CRC" check failure occurs during decoding .EXE, it will display a message: "EXE corrupted!" and return the user to DOS. XPACK has a security function that prevents the .EXE program from running if it has been tampered with or accidentally corrupted. You can be pretty certain that your program will come up with all the proper screens without hanging due to unwanted modification. Your program's underlying data will not be left in the open (to any one with a hex editor or disassembler) and your code will be safer from others'eyes. HOW DOES XPACK OnLine DeCompression System WORK? ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Once loaded, XPACK OnLine DeCompression System gives automatic access on demand to compressed data files. It does this by intercepting any calls a program (including COMMAND.COM) makes to DOS. Normally, XPACK OnLine DeCompression System passes these calls straight on to DOS, but when a call is detected which opens a compressed data file, XPACK OnLine DeCompression System reads the data file and makes a full size copy on disk for the program to use. It then changes the name of the compressed data file to a name it recognizes itself and renames the new full size file to the original file name. Only then does it pass the call on to DOS. Neither DOS nor the program know that this is happening, so operation is completely automatic. When an expanded data file is closed without being modified, XPACK OnLine DeCompression System deletes the expanded copy and renames the original compressed data file to its original name. If a program modifies an expanded copy of a data file, XPACK OnLine DeCompression System deletes the compressed original and leaves the expanded new data file on disk. A Special Case to XPACK OnLine DeCompression System? :) ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ XPACK OnLine DeCompression System gives programs the illusion that small data files are big data files. It does this very successfully and almost all of the software is fooled all of the time. A special case is where a program obtains the size of a file from its directory entry and then reads that number of bytes when it opens the file. The intention is to read the whole file. This behavior has been seen with the DOS XCOPY command ( DOS Ver 6.22 at least) and PKZIP (Ver 1.01, 2.04g at least ) from PKWARE. XPACK OnLine DeCompression System still works well with those applications! :) HELP and SUGGESTED IMPROVEMENTS. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Send them to the author: Internet e-mail: xpa@pcmail.com.tw The latest version of XPACK can always be found on: Slovak Antivirus Center: ftp.elf.stuba.sk /pub/pc/pack Walnut Creek CDROM: ftp.simtel.net /pub/simtelnet/msdos/execomp Garbo archives: garbo.uwasa.fi /pc/execomp Some mirrors of Slovak Antivirus Center: ftp.vse.cz /pub/msdos/SAC/pc/pack (Czech) ftp-beer.bke.hu /vol1/pub/sac/pc/pack (Hungary) ftp.cs.tu-berlin.de /pub/msdos/mirrors/stuba/pc/pack (Germany) DISCLAIMER. ÄÄÄÄÄÄÄÄÄÄÄ Under no circumstances can I, or anyone else who assisted in writing XPACK or any of the accompanying files, be held responsible for any damage resulting out of the use or inability to use any of the files or programs in this Xpack release archive. All programs mentioned in this documentation are trademarks of their respective owners. They are used for identification purposes only. Registration ÄÄÄÄÄÄÄÄÄÄÄÄ Since the version 1.60 of XPACK it is no freeware any more, but shareware. This means that you are allowed to try out XPACK and its various features for a limited amount of time, in which you may evaluate the suitability of this software to your use. For about one year this product was completly free for everyone to copy, however in the meantime I invested much time and work in this product, so I can't release it for nothing. XPACK has not been disabled in any way in the shareware version. One is granted a 30 day period in which to evaluate the suitability of XPACK to one's needs. If you use XPACK for a period longer than this evaluation period, it is assumed that XPACK is of use to you, and that you will register it. The registration fee for Xpack 1.60+ has been set to USD 20,- for an e-mailed diskimage bonus pack. USD 30,- for an air-mailed diskette bonus pack. Add USD 15,- for cheques and bank transfers in Europe. European users please see xpack.frm for details :) Other foreign users please read the following: This program(v1.6x) can be registered via the Internet at Albert's Ambry. Please go to: http://www.alberts.com Search on: >> xpack16s.zip << Click on the "Buy It" Hotlink to register this software. Thank you for registering this program. :) Registered users will receive a bonus pack which contains utilities. (uuencoded if you have e-mail) Have you decided to register? That's very kind of you. Thanks! The more registrations i get the more improvements i will make to this program. End of the XPACK documentation file. -----BEGIN PGP SIGNATURE----- Version: 2.6.3i Charset: cp850 iQEVAwUBNX5QnGmFCPuKJJ19AQGCAQgApP6Or05i3yx64o1ZfIc7XhQfW+NsKXe+ H95B6wyTPIULtn4OdPQHeq5KlgTrIlal3EF3WJENWTz0hdduRUZAtQTZdkl6tSbk YikU4qmOPiSO0wvtse676OtO7mJYQVJ87jb7r0oefNhtAKr/RMQv6QqnRKalO/4l occlO7GP4i1MBBmxbeYINHxTXMYTBXtRLfhysiGIgnavz2p4tmktMsT07enFjSN6 GeDSg9cxaJ+HAypAS6QLFuLSQF8gpQdj4fMvZUH3EJuTMh2m3Bg8H3FQgo0UQo7K vC1hGVPozKUK+38TeFmPuwJfPl7ZmsElq5MX4G9PfmkbddoPe2qybA== =GDLh -----END PGP SIGNATURE-----