home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 2: Collection B / 17Bit_Collection_B.iso / files / 2224.dms / in.adf / docs / CrM.DOC.pp / CrM.DOC
Encoding:
Text File  |  1990-09-13  |  38.3 KB  |  1,031 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.                          Crunch-Mania User's Guide
  15.  
  16.                  Registered / Test Version 1.7 - 01.08.92
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30. _____________________________________________________________________________
  31. ___ _____________________________________________________________________ ___
  32. ___/_____________________________________________________________________\___
  33. ___/___                                                               ___\___
  34. ___/___\_____________________________________________________________/___\___
  35. ___/___\___ ____________ ________________ ___ _______________ ___ ___/___\___
  36. ___/___\___/____________\________________/___\_ ___________ _/___\___/___\___
  37. ___/___\___/___         \________________/_____\_ _______ _/_____\___/___\___
  38. ___/___\___/___\_________________________/___   _\_ ___ _/_   ___\___/___\___
  39. ___/___\___/___\____________ ________ ___/___\_/  _\___/_  \_/___\___/___\___
  40. ___/___\___/___\____________/________\___/___\___/  ___  \___/___\___/___\___
  41. ___/___\___/___\____________/___     \___/___\_____/   \_____/___\___/___\___
  42. ___/___\___/___\____________/___\________/___\_______________/___\___/___\___
  43. ___/___\___/___\____________/___\________/___\_______________/___\___/___\___
  44. ___/___\___/___\________ ___/___\________/___\_______________/___\___/___\___
  45. ___/___\___/____________\___/___\________/___\_______________/___\___/___\___
  46. ___/___\___/            \___/   \________/   \_______________/   \___/___\___
  47. ___/___\_____________________________________________________________/___\___
  48. ___/___\_____________________________________________________________/___\___
  49. ___/_____________________________________________________________________\___
  50. ___/                                                                     \___
  51. _____________________________________________________________________________
  52. _____________________________________________________________________________
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                           Written by Thomas Schwarz
  64.  
  65.                    Copyright (c) 1991,92 by Thomas Schwarz
  66.                              All rights reserved
  67.  
  68.  
  69.  
  70.  
  71.  
  72.                              Table Of Contents
  73.  
  74.                              Crunch-Mania V1.7
  75.  
  76.  
  77. 1 ··········· Introduction
  78.   1.1 ······· Copyright & Registration
  79.   1.2 ······· Distribution
  80.   1.3 ······· Support
  81.   1.4 ······· License
  82.   1.5 ······· Disclaimer
  83.   1.6 ······· Future Plans
  84.   1.7 ······· Why buy the registered Version?
  85.  
  86. 2 ··········· General Information
  87.   2.1 ······· Outward Appearance
  88.   2.2 ······· Numbers Input/Output
  89.   2.3 ······· System Requirements
  90.   2.4 ······· Other Information
  91.  
  92. 3 ··········· Functions, Options & Features
  93.   3.1 ······· Command Line Options
  94.     3.1.1 ··· `?' - CLI Help
  95.     3.1.2 ··· `-c' - Set Screen Colors
  96.     3.1.3 ··· `-e' - Set Extra Mem Size
  97.     3.1.4 ··· `-f' - Enable LED-Flash
  98.     3.1.5 ··· `-g' - Enable Segment-BPTR Creation
  99.     3.1.6 ··· `-h' - Set Huffman Buffer Size
  100.     3.1.7 ··· `-I' - Ignore S:CrM.cfg
  101.     3.1.8 ··· `-r' - Enable req.library
  102.     3.1.9 ··· `-u' - Enable Free Memory Updating
  103.     3.1.10 ·· `-w' - Use Window
  104.   3.2 ······· Menu Options
  105.     3.2.1 ··· <e> - Extra Mem
  106.     3.2.2 ··· <f> - LED-Flash
  107.     3.2.3 ··· <g> - Segment-Ptrs
  108.     3.2.4 ··· <h> - Huffman-Buf
  109.     3.2.5 ··· <p> - Priority
  110.     3.2.6 ··· <r> - Req.library
  111.     3.2.7 ··· <u> - Free Mem Update
  112.   3.3 ······· Gadgets
  113.     3.3.1 ··· Quit
  114.     3.3.2 ··· Abort
  115.     3.3.3 ··· Iconify
  116.     3.3.4 ··· Crunchmode
  117.     3.3.5 ··· LowMem / HighMem
  118.     3.3.6 ··· Load / Fix File to
  119.     3.3.7 ··· Load
  120.     3.3.8 ··· Crunchmode (Algorithm)
  121.     3.3.9 ··· Crunchoffset
  122.     3.3.10 ·· Crunch
  123.     3.3.11 ·· Decruncher
  124.     3.3.12 ·· Decrunch to
  125.     3.3.13 ·· Jump to
  126.     3.3.14 ·· Stack at
  127.     3.3.15 ·· Decruncher at
  128.     3.3.16 ·· Stop Drives
  129.     3.3.17 ·· SR (Status Reg)
  130.     3.3.18 ·· Move Gadgets
  131.     3.3.19 ·· Save
  132.  
  133. 4 ··········· supplied Utilities
  134.   4.1 ······· Run-time Data-Decruncher
  135.  
  136. 5 ··········· Trivialities
  137.  
  138. 6 ··········· History
  139.  
  140.  
  141. ******************************************************************************
  142.  
  143.  
  144. 1 - Introduction
  145. =================
  146.  
  147.  
  148. 1.1 - Copyright & Registration
  149. -------------------------------
  150.  
  151.    Crunch-Mania  is  Copyright  (c)  1989,90,91,92  by Thomas Schwarz.  It was
  152. released  under  the  concept  of  "Shareware".   All  versions until V1.6 are
  153. Public Domain,  but  starting with V1.7 they are Shareware.  I have released a
  154. test version  to  be spread and to give you a hint on the program's abilities.
  155. If, after a testing period of some weeks, you find this program useful, please
  156. register.   By  cooperating  with  this  concept  you help to ensure continued
  157. development of this product.
  158.  
  159.    Registered  Users  will  receive the latest release version of Crunch-Mania
  160. together  with  decrunch sourcecodes  and  my  run-time-data-decruncher (RTDD,
  161. Copyright  (c)  1991,92  Thomas  Schwarz).   The  registered  Version has more
  162. features and is faster.
  163.  
  164.    No  person(s)  or businesses other than the author are authorized to accept
  165. any  registration  or  distribution  fees  in  any  form whatsoever, except as
  166. specified  by  the  author.  Only people who have sent US 25, DM 30 or more to
  167. the  following  address  will be regarded as registered users.  Only these two
  168. currencies and only bank-notes will be accepted.
  169.  
  170.                                 Thomas Schwarz
  171.                                 Dammstrasse 12
  172.                              W-7014 Kornwestheim
  173.                                Germany / Europe
  174.  
  175.    Just  put  the  money in an envelope together with some piece of paper with
  176. your request and your address on it and then post it.
  177.  
  178.    Delivery  may  take  two  to  eight  weeks.   Usually you will be sent your
  179. registered  version  right  away,  but  if  a  new  version  is imminent to be
  180. completed, you will get that one as soon as it becomes available.
  181.  
  182.    I am still searching for somebody or a company who distributes this program
  183. as a commercial product, so I can spend my time in developing new features and
  184. not  in  pasting  stamps on envelopes.  So be free to contact me to relieve my
  185. pain!
  186.  
  187.    The  req.library this program uses is copyright 1989 by Colin Fox and Bruce
  188. Dawson.   Great  work, Men!  Why don't you develop a 2.0 style req.library?  I
  189. would greatly appreciate it.
  190.  
  191.  
  192.  
  193. 1.2 - Distribution
  194. -------------------
  195.  
  196.    Basically,  the  test  version of Crunch-Mania may be distributed freely as
  197. long as the following conditions are met:
  198.  
  199.    The  Distributor  may  only  charge  a fee up to the costs of obtaining any
  200. common  public  domain  disk.  The distributor agrees to stop distributing the
  201. programs and data involved on request of the author.  The distributor may only
  202. distribute  an  unmodified copy of the original program, with all the supplied
  203. documentation and copyright notices left intact.
  204.  
  205.  
  206.  
  207. 1.3 Support
  208. ------------
  209.  
  210.    If you have any suggestions, bug reports or questions, please contact the
  211. author at the above address.
  212.  
  213.    When  sending bug reports, please describe exactly under what circumstances
  214. the  bug occured, what equipment was used and what happened.  If possible also
  215. try  to give me enough information to reproduce the bug.  It is very difficult
  216. to  find  bugs  when  you don't know exactly what happened.  Please don't just
  217. send messages like "my machine sometimes crashes when I try to load xxx", that
  218. really  doesn't  help  me.  If possible, submit the offending file in crunched
  219. and original state to me so I can test it myself, or give me a pointer where I
  220. can find the files.
  221.  
  222.  
  223.  
  224. 1.4 License
  225. ------------
  226.  
  227. 1.   This  license  applies  to  the  product  called "Crunch-Mania", a set of
  228. programs  for  the Commodore-Amiga computer, published by Thomas Schwarz under
  229. the  concepts  of ShareWare, and the accompanying documentation, example files
  230. and  anything  else  that  comes  with  the  original distribution.  The terms
  231. "Programs"  and  "Crunch-Mania" below, refer to this product.  The licensee is
  232. addressed as "you".
  233.  
  234. 2.   You  may  copy and distribute verbatim copies of the programs' executable
  235. code  and  documentation  as  you receive it, in any medium, provided that you
  236. conspicuously   and   appropriately  publish  only  the  original,  unmodified
  237. programs,  with  all  copyright notices and disclaimers of warranty intact and
  238. including  all the accompanying documentation, example files and anything else
  239. that came with the original.
  240.  
  241. 3.  You may not copy and/or distribute these programs without the accompanying
  242. documentation and other additional files that came with the original.  You may
  243. not copy and/or distribute modified versions of these programs.
  244.  
  245. 4.   You may not copy, modify, sublicense, distribute or transfer the programs
  246. except  as  expressly  provided  under this license.  Any attempt otherwise to
  247. copy,  modify,  sublicense,  distribute  or transfer the programs is void, and
  248. will  automatically  terminate  your  rights  to  use  the programs under this
  249. license.   However, parties who have received copies, or rights to use copies,
  250. from you under this license will not have their licenses terminated so long as
  251. such parties remain in full compliance.
  252.  
  253. 5.   By  copying,  distributing  and/or  using  the programs you indicate your
  254. acceptance of this license to do so, and all its terms and conditions.
  255.  
  256. 6.   Each  time  you  redistribute  the  programs, the recipient automatically
  257. receives  a  license from the original licensor to copy, distribute and/or use
  258. the  programs  subject  to these terms and conditions.  You may not impose any
  259. further restrictions on the recipients' exercise of the rights granted herein.
  260.  
  261. 7.   You  may  not  disassemble,  decompile,  re-source  or  otherwise reverse
  262. engineer the programs.
  263.  
  264. 8.   You  may  use  the  programs  for  a  period of up to 30 days for testing
  265. purposes.  After that, you have to register.
  266.  
  267. 9.   If  you  wish  to  incorporate parts of the programs into other programs,
  268. write to the author to ask for permission.
  269.  
  270. 10.   You  agree  to  cease  distributing  the  programs  and data involved if
  271. requested to do so by author.
  272.  
  273. 11.  You may charge a fee to recover distribution costs.  The fee for diskette
  274. distribution  may not be more than the cost to obtain any common public domain
  275. disk.
  276.  
  277. 12.   Only  the  test  version  is  intended to be distributed, the registered
  278. version may only be used by registered users and nobody else.
  279.  
  280.  
  281.  
  282. 1.5 - Disclaimer
  283. -----------------
  284.  
  285.    THERE  IS  NO  WARRANTY  FOR  THE  PROGRAMS,  TO  THE  EXTENT  PERMITTED BY
  286. APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
  287. AND/OR  OTHER  PARTIES  PROVIDE  THE  PROGRAMS "AS IS" WITHOUT WARRANTY OF ANY
  288. KIND,  EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  289. WARRANTIES  OF  MERCHANTABILITY  AND  FITNESS  FOR  A PARTICULAR PURPOSE.  THE
  290. ENTIRE  RISK  AS  TO  THE QUALITY AND PERFORMANCE OF THE PROGRAMS IS WITH YOU.
  291. SHOULD  THE  PROGRAMS  PROVE  DEFECTIVE,  YOU ASSUME THE COST OF ALL NECESSARY
  292. SERVICING, REPAIR OR CORRECTION.
  293.  
  294.    IN  NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
  295. ANY  COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY REDISTRIBUTE THE PROGRAMS AS
  296. PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
  297. INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
  298. THE PROGRAMS (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
  299. INACCURATE  OR  LOSSES  SUSTAINED  BY YOU OR THIRD PARTIES OR A FAILURE OF THE
  300. PROGRAMS  TO  OPERATE  WITH  ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
  301. PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  302.  
  303. (Auf deutsch: Ich bin unschuldig!!!)
  304.  
  305.  
  306.  
  307. 1.6 - Future Plans
  308. -------------------
  309.  
  310.    The program is planned to be a real multi-talent.  So a disk archiver and a
  311. files archiver will be added as soon as I have any spare time.  But my special
  312. attention  will  be  given  to  the  development  of faster and more effective
  313. algorithms.  Another goal is to achieve full 2.0 compatibility and a fully 2.0
  314. style  user  interface.   This will lead to the use of the reqtools.library (©
  315. Nico François)
  316.  
  317.    I  also  plan  to  release  my  own  library  which  will be similar to the
  318. explode.libary  or  the PPLoadSeg patch, so you can crunch fonts and libraries
  319. and all the other shit with my cruncher (which is certainly better, hehe).
  320.  
  321.    If  you  register  and support my program, you will speed up the release of
  322. new  and  better  versions.  If there is little demand I may drop this project
  323. and start coding something else and that would be a great pity.
  324.  
  325.  
  326.  
  327. 1.7 - Why buy the registered Version?
  328. --------------------------------------
  329.  
  330.    Well,  first  of all you should buy the registered version, if you use this
  331. program  for  a  longer  time.   With  a  registration you will support future
  332. releases.   The  registered  version  is  faster  both  in  crunching  and  in
  333. decrunching.  With the registered version you can decrunch reloc files and not
  334. only  data  files.   Registered  users  get my run-time-data-decruncher (RTDD)
  335. which  is very useful e.g.  for crunching icons or include files, they will be
  336. automatically  decrunched.  The source code of the decruncher is also provided
  337. to  be  implemented  in your own releases.  A program worth using is a program
  338. worth buying!
  339.  
  340.  
  341.  
  342.  
  343.  
  344. 2 - General Information
  345. ========================
  346.  
  347.  
  348. 2.1 - Outward Appearance
  349. -------------------------
  350.  
  351.    The  program  opens a screen or a window and uses the intuition.library for
  352. full  multitasking  compatiblity.   It is self-detaching so you do not need to
  353. call it with "run".  You can either run it from CLI or from the Workbench, but
  354. you have to draw an Icon first (I hate Icons).
  355.  
  356.    The program is controlled by gadgets and menus.  On the right side there is
  357. an  area for tables and error messages and at the bottom there is a statusline
  358. which indicates what the program is just doing.
  359.  
  360.  
  361.  
  362. 2.2 - Numbers Input/Output
  363. ---------------------------
  364.  
  365. Input:   You  can  enter hex and decimal numbers where hexadecimal numbers are
  366. only  recognized with a leading "$".  To get negative numbers put a "-" at the
  367. beginning  of  the  line.   An  empty gadget has the same effect as one with a
  368. zero.   Some  extra  functions  can  be  reached  by entering chars instead of
  369. numbers.
  370.  
  371. Output:   The  output  follows the same rules as the input:  a "$" indicates a
  372. hexadecimal  number,  the rest is decimal.  But there is one exception:  while
  373. loading  executables  in  the  Address-  or  Link-Mode  the  dehunker displays
  374. hexadecimal  numbers  without  a leading "$".  This has not been forgotten but
  375. left out as a result of lack of space.
  376.  
  377.  
  378.  
  379. 2.3 - System Requirements
  380. --------------------------
  381.  
  382.    For  packing  small  files  512KB  may  suffice  but the full power of this
  383. program can only be obtained with at least 1MB memory resulting from 200-400KB
  384. of tables depending on the version, the crunchmode and the offset.  Two drives
  385. are  comfortable  but not necessary.  No problems have occured under Kickstart
  386. 1.2 and 2.0, so it should also work under 1.3 and 2.x.
  387.  
  388.  
  389.  
  390. 2.4 - Other Information
  391. ------------------------
  392.  
  393.    There  are  no known bugs.  Nevertheless the author is in no way liable for
  394. any  errors  and gurus invoked by the Program.  In most cases the user himself
  395. produces the errors by misusing the Program.
  396.  
  397.    This  document  will  only  deal  with the important things.  Understanding
  398. minor details like Filelen is expected.  These things are left out.
  399.  
  400.  
  401.  
  402.  
  403.  
  404. 3 - Functions, Options & Features
  405. =========================
  406.  
  407.  
  408. 3.1 - Command Line Options
  409. ---------------------------
  410.  
  411.    Here  is  a list of all options and parameters available and adjustable via
  412. the  CLI.  The same options can be used in the configuration file "S:CrM.cfg".
  413. This  file  is  processed  before  the  command  line,  so you can change your
  414. defaults  via the CLI.  A "+" instead of a "-" in front of the option reverses
  415. the result.
  416.  
  417.  
  418. 3.1.1 - `?' - CLI Help
  419. -----------------------
  420.  
  421.    This  option lists all currently available options in the CLI to give you a
  422. brief  overview of what you can do there and then asks for a new command line.
  423. This  option  has to be the first in the command line and no other options may
  424. be specified with it.
  425.  
  426. EXAMPLE
  427.  
  428. 1> CrM ?
  429.  
  430. Crunch-Mania V1.7r - Copyright (c) 1989,90,91,92 Thomas Schwarz
  431.  
  432. Command Line Options:
  433.        .
  434.        :
  435.  
  436. Enter Command Line:
  437.  
  438. (Well with <Esc>-codes this looks a bit nicer)
  439.  
  440.  
  441. 3.1.2 - `-c' - Set Screen Colors
  442. ---------------------------------
  443.  
  444.    With  this option followed by four hexadecimal numbers you can set your own
  445. personally  preferred screen colors fitting your needs.  The highest nibble of
  446. each number stands for the red part of the color, the mid nibble for the green
  447. part and the lowest nibble for the blue part.
  448.  
  449. EXAMPLES
  450.  
  451. 1> CrM -c$889 $2 $ccd $358                ;These are the default colors.
  452. or
  453. 1> CrM -c$0 $bbb $2a2 $137
  454.  
  455.  
  456. 3.1.3 - `-e' - Set Extra Mem Size
  457. ----------------------------------
  458.  
  459.    As  not  everybody  has  4MB  and  this  program  does not support floating
  460. compression,  the  source  and destination memory blocks overlap to reduce the
  461. memory needed.  Extra Mem specifies the distance between the two blocks.
  462.  
  463.    The  error  message  "File  not  crunchable!!!" indicates that the cruncher
  464. would  have  overwritten  some  data  not  yet  processed  with crunched data.
  465. Nevertheless  you  can  crunch  those  files  by setting extra mem to a higher
  466. value, but the files usually then become longer than the original.
  467.  
  468.    Extra  Mem  may  be set by the option `-e' directly followed by a number in
  469. the range from 100 to 10000. Default is 100.
  470.  
  471. EXAMPLES
  472.  
  473. 1> CrM -e100                           ; Sets Extra Mem to 100
  474. or
  475. 1> CrM -e$200                          ; Sets Exrta Mem to 512
  476.  
  477.  
  478. 3.1.4 - `-f' - Enable LED-Flash
  479. --------------------------------
  480.  
  481.     While  packing  the power-LED flashes to show the user that the program is
  482. working.  As you certainly know, the power-LED also steers the low-pass filter
  483. for  the  four audio channels.  As it sounds terrible when listening to a tune
  484. while crunching you may disable this with the option `+f', default is on.
  485.  
  486. EXAMPLE
  487.  
  488. 1> CrM -f                    ;Enable LED-Flash (default)
  489.  
  490.  
  491. 3.1.5 - `-g' - Segment-BPTR Creation
  492. -------------------------------------
  493.  
  494.    This  option  only  comes into effect in the address and link modes.  There
  495. you  can  relocate  executable to a certain address.  The dos.library does the
  496. same  but  it  adds  the  lenght of a hunk and the pointer to the next hunk in
  497. memory  to  all  hunks.   Normally this is only for internal DOS use, but some
  498. programs  use  these BPTRs to calculate the addresses of their hunks.  You can
  499. enable  the  creation  of  BPTRs with this option so that these programs don't
  500. crash  any more.  As you don't need this option very often the default setting
  501. is off.
  502.  
  503. EXAMPLE
  504.  
  505. 1> CrM -g            ;now BPTRs are created
  506.  
  507.  
  508. 3.1.6 - `-h' - Set Huffman Buffer Size
  509. ---------------------------------------
  510.  
  511.    This  option  can  be used to set the size of the buffer used in LZ-Huffman
  512. and  Quick-LZH  compreesion modes for collecting statistics.  The size of this
  513. buffer  affects  the  compression  ratio  in unpredictable ways.  As a general
  514. rule,  keep  this  at  the default, but if you are compressing homogenous data
  515. with  a  relatively  fixed  relative  frequency  of symbols (like text files),
  516. setting  this  to  a large value will improve compression.  Binaries generally
  517. compress best with the default setting.
  518.  
  519.    The  Huffman  buffer  may  be  of  any  size between 4K and 64K and must be
  520. specified immediately following the `-h' string, in kilobytes.
  521.  
  522. EXAMPLE
  523.  
  524. 1> CrM -h32                 ;Sets the Huffman buffer size to 32768 (32K) bytes
  525.  
  526. The default Huffman buffer size is 16K.
  527.  
  528.  
  529. 3.1.7 - `-I' - Ignore S:CrM.cfg
  530. --------------------------------
  531.  
  532.    In  the  configuration  file  "S:CrM.cfg" you may specify your own personal
  533. default  settings which are loaded immediately after the start of the program.
  534. This option disables that what may come in handy when you don't have your boot
  535. disk inserted. This option has to be the first in the command line but others
  536. may also be set there.
  537.  
  538. EXAMPLE
  539.  
  540. 1> CrM -I +r       ;don't load config file and don't load req.library
  541.  
  542.  
  543. 3.1.8 - `-r' - Enable req.library
  544. ----------------------------------
  545.  
  546.    The  req.library  is  loaded by default and is used for user communication.
  547. When  you don't have very much memory you may prevent the program from loading
  548. it  with  the  option `+r'.  But remember:  you don't have any file requesters
  549. any  more,  no  overwrite  requesters  and several other menu options are also
  550. disabled.
  551.  
  552. EXAMPLE
  553.  
  554. 1> CrM +r                              ;no req.library
  555.  
  556.  
  557. 3.1.9 - `-u' - Enable Free Memory Updating
  558. -------------------------------------------
  559.  
  560.    The  title  bar  of  the  screen  or the window displays the currently free
  561. memory.  This display is updated every 1/10 second.  You can disable this with
  562. `+u' to gain a bit more speed, but it's not very much.
  563.  
  564. EXAMPLE
  565.  
  566. 1> CrM +u                    ;no updating
  567.  
  568.  
  569. 3.1.10 - `-w' - Use Window
  570. ---------------------------
  571.  
  572.    A  screen  uses  a lot of Chip-memory.  When you don't have very much of it
  573. this option may help you to have some more.  Use `-w' to let Crunch-Mania open
  574. a window on the Workbench screen.
  575.  
  576. EXAMPLE
  577.  
  578. 1> CrM +w                    ;use Screen (default)
  579.  
  580.  
  581.  
  582. 3.2 - Menu Options
  583. -------------------
  584.  
  585.    In  the  following lines the functions of the menus are described.  Usually
  586. the  functions  and  the key shortcuts are the same as the CLI options.  Menus
  587. are accessible via the right mousebutton.
  588.  
  589.  
  590. 3.2.1 - <e> - Extra Mem
  591. ------------------------
  592.  
  593.    See  3.1.3  for detailed description.  The current value is shown after the
  594. double point.  You may change it by selecting the menu item or by pressing the
  595. shortcut  <Right  Amiga> + <u>.  The new value will be used when the next file
  596. is laoded.  Default is 100.
  597.  
  598.  
  599. 3.2.2 - <f> - LED-Flash
  600. ------------------------
  601.  
  602.    See  3.1.4  for  further information.  The shortcut is <Right Amiga> + <f>.
  603. Default is on.
  604.  
  605.  
  606. 3.2.3 - <g> - Segment-Ptrs
  607. ---------------------------
  608.  
  609.    Consult 3.1.5 for more information.  Press <Right Amiga> + <g> as shortcut.
  610. Default is off.
  611.  
  612.  
  613. 3.2.4 - <h> - Huffman-Buf
  614. --------------------------
  615.  
  616.    See  3.1.6 for more details.  Shortcut:  <Right Amiga> + <h>.  Default size
  617. is 16K.
  618.  
  619.  
  620. 3.2.5 - <p> - Priority
  621. -----------------------
  622.  
  623.    Here  you can set the task priority of Crunch-Mania.  There are three given
  624. possibilities  (-3, 0, 3) without a shortcut plus the custom option invoked by
  625. <Right  Amiga>  +  <p>.   The  current task priority is show behind the double
  626. point.   Select  your  priority wisely, because high priorities will interfere
  627. multitasking, and that's what makes this machine so powerful!
  628.  
  629.  
  630. 3.2.6 - <r> - Req.library
  631. --------------------------
  632.  
  633.    Chapter 3.1.8 gives you more information.  Shortcut is <Right Amiga> + <r>.
  634. Default is on.
  635.  
  636.  
  637. 3.2.7 - <u> - Free Mem Update
  638. ------------------------------
  639.  
  640.    See 3.1.9 for details. Press <Right Amiga> + <u> to switch. Default is on.
  641.  
  642.  
  643.  
  644. 3.3 - Gadgets
  645. --------------
  646.  
  647.  
  648. 3.3.1 - Quit
  649. -------------
  650.  
  651.    Uuh,  I  forgot  the function of this gadget.  Well, I think you should not
  652. use  it,  cause it's the end of everything.  It's the most senseless gadget of
  653. all.
  654.  
  655.  
  656. 3.3.2 - Abort
  657. --------------
  658.  
  659.    Generally you need this gadget only to stop crunching. But you also have to
  660. press this button when you e.g. loaded something in reloc mode and now want to
  661. load something in data mode. You will experience that you can't do this unless
  662. you press this gadget.
  663.  
  664.  
  665. 3.3.3 - Iconify
  666. ----------------
  667.  
  668.    This closes the main screen (or window) and opens a new small window on the
  669. workbench screen.  The new window displays the togo-counter, so you can crunch
  670. something  and see when it has finished.  You may return to the main screen by
  671. doubleclicking  on  the  gadget  or by pressing the right mousebutton when the
  672. window is active.
  673.  
  674.  
  675. 3.3.4 - Crunchmode
  676. -------------------
  677.  
  678.    Here  you  may  select between the five (four in test version) crunchmodes.
  679. These are:  (Switch), Reloc, Data, Address, Link.
  680.  
  681.    In  the  reloc  mode  you can load any executable except overlayed files (I
  682. think  there  are not too many).  The hunk structure is analysed and displayed
  683. while  loading.   Name,  Symbol  and  Debug hunks are skipped, Reloc hunks are
  684. sorted  and  precompensated.   This new reloc table format is shorter and even
  685. better crunchable than the one DOS uses!
  686.  
  687.    The data mode was designed for normal not-executable data files. They are
  688. loaded into memory, compressed and then saved with a small header.
  689.  
  690.    The address mode is a bit similar to the ByteKiller cruncher.  Here you can
  691. load  executables  and  fix them to a special address, load position-depentant
  692. code  or  just  load  pure  data.   The  decruncher  then  puts this data to a
  693. specified  memory  block  and  jumps  somewhere.   This crunchmode is not very
  694. DOS-friendly  (especially the decruncher) but very handy e.g.  for bootloading
  695. games.   The dehunker displays some hexadecimal numbers without a leading "$",
  696. so don't get confused.  In this mode the LZH algorithms are not available.
  697.  
  698.    The  link  mode  resembles  tetrapack/defpack.   In  this mode you can load
  699. several  executable  and  data  files into a precleared memory block which you
  700. have  to  define first.  Executables are relocated to certain addresses inside
  701. the  block,  data  files  are loaded to a specified position in the block.  In
  702. this mode the LZH algorithms are also not available.
  703.  
  704.    I recomend to use the last two modes only with proggies which do not return
  705. to the CLI because important system-parameters and -tables may be destroyed.
  706.  
  707.    The  switch  mode is a kind of an intelligent mode.  It detects whether the
  708. loaded  file is executable or not, and then decides which mode (reloc or data)
  709. is the right one.
  710.  
  711.  
  712. 3.3.5 - LowMem / HighMem
  713. -------------------------
  714.  
  715.    These two gadgets are only available in link mode.  They specify the memory
  716. block to which the files are loaded.  This block is buffered someplace else in
  717. memory  while  loading and crunching, so you don't have to care about crashes.
  718. LowMem and HighMem both have to be even addresses and HighMem has to be higher
  719. than  LowMem.  It is recommended to set the "Decrunch to" address to LowMem to
  720. avoid unwanted results.
  721.  
  722.  
  723. 3.3.6 - Load / Fix File to
  724. ---------------------------
  725.  
  726.    These  two  gadgets  are  active in the address and link mode.  The "Load /
  727. Fix"  gadget  determines whether an executable is loaded as a data file (Load)
  728. or  relocated to the address given in the string gadget next to it (Fix).  For
  729. data  files  this gadget has no effect.  In the address mode the string gadget
  730. is  only  important for executables, it contains the address where to fix them
  731. to.   In  the  link mode this gadget affects both executable and data files in
  732. the  same  way:   with the address in the gadget an offset to the beginning of
  733. the  memory  block  is calculated and the file is then loaded there.  The file
  734. has to fit completely in the given memory block.
  735.  
  736.  
  737. 3.3.7 - Load
  738. -------------
  739.  
  740.    With  the  "Load" gadget you may load files in all modes.  When there is no
  741. filename  given  in  the string gadget next to it, or when the filename in the
  742. string  gadget  has  not  been  changed  since  the last loading, a req.libray
  743. filerequester  apppears  (when  enabled).   After  pressing  "Load"  and  then
  744. selecting  a file the program immediatly begins to load the file.  To select a
  745. file  without  loading it use the "DIR" button on the right side of the string
  746. gadget.
  747.  
  748.    When  loading  an  executable its hunk structure is displayed in the output
  749. field  either with decimal numbers (reloc) or with hexadecimal numbers (adress
  750. and  link),  where  Range  is the part the entire hunk occupies and Len is the
  751. length of the actual data in the hunk.  The filelenght is shown below the load
  752. gadget.   In  the reloc mode the lenght after everything has been processed is
  753. shown  next  to  the "Processed Len:" string.  This is the len of the data the
  754. cruncher really crunches.
  755.  
  756.    When  you load a file that has been crunched in reloc or in data mode it is
  757. automatically   decrunched  when  you  selected  the  right  mode  (reloc  for
  758. executable  files  and data for data files) so you can recrunch it or save the
  759. original file.  After it has been decrunched the file is treated as if you had
  760. loaded it in its original form.
  761.  
  762.  
  763. 3.3.8 - Crunchmode (Algorithm)
  764. -------------------------------
  765.  
  766.    This is again a rotating gadget. You may select beween these three
  767. algorithms: LZ-Huffman, CrM-Normal and Quick-LZH.
  768.  
  769.    LZ-Huffman  is  the  best  of these algorithms, but not the fastest.  Files
  770. crunched  in  this  mode  need  1.5K  of  additional  memory to decrunch.  The
  771. decruncher  is  also  slightly slower than the one of the CrM-Normal mode.  To
  772. crunch files in this mode you need continuous memory blocks with the sizes:
  773.    128K (reg) / 256K (test)
  774.  + 5*Crunchoffset (reg) / 4*Crunchoffset (test)
  775.  + Huffman Buffer
  776. With  the  default values of $7ffe and 16K this will lead to a memory usage of
  777. 304K (reg) / 400K (test).
  778.  
  779.    The  advantage  of  the  CrM-Normal mode is its fast decruncher and its low
  780. memory  usage.  But its results are the worst of the three modes partly caused
  781. by  the Crunchoffset which is limited to $4200.  It needs no additional memory
  782. to decrunch.  The memory used while crunching is shown in the following table:
  783.    128K (reg) / 256K (test)
  784.  + 5*Crunchoffset (reg) / 4*Crunchoffset (test)
  785. With  the  default  Crunchoffset  of $4200 this will lead to a memory usage of
  786. 210K (reg) / 322K (test).
  787.  
  788.    The Quick-LZH mode has the same needs and limitations as the LZ-Huffman
  789. mode, but it is a bit faster resulting in less efficiency.
  790.  
  791.  
  792. 3.3.9 - Crunchoffset
  793. ---------------------
  794.  
  795.    This  value  specifies  the  range  in which redundant data is searched and
  796. eliminated.   Higher  values  produce better results but it takes also longer.
  797. Values range from 1 to $4200 in the CrM-Normal mode and from 1 to $7ffe in the
  798. LZH  modes.   Values  which  are too high will be automatically reduced to the
  799. maximum.
  800.  
  801.  
  802. 3.3.10 - Crunch
  803. ----------------
  804.  
  805.    Now  you  have started the real crunching process.  This will take a while,
  806. so  be  patient.  Next to this gadget is the ToGo counter which shows how much
  807. data  has  not yet been processed.  This counter is permanently updated and is
  808. also  shown in the Iconify window.  When finished the crunched len of the file
  809. is  displayed  next  to  the  counter.   This  is  not  the final length!  The
  810. decruncher or data header is not yet added.
  811.  
  812.    The  error  "File not crunchable!" indicates that there is not enough space
  813. between  the  original  and  the crunched data.  You may increase Extra Mem to
  814. avoid this message, but generally these files become longer when crunched.
  815.  
  816.    The  message  "Min Security-Distance" shows the distance between the source
  817. and  destination  memory  block which should be kept to decrunch a file in the
  818. same  memory  block  properly.   The  crunched  data has to be in front of the
  819. decrunched data.  For more information have a look at the decruncher source.
  820.  
  821.  
  822. 3.3.11 - Decruncher
  823. --------------------
  824.  
  825.    With  this  gadget you can select the decruncher you want.  Each crunchmode
  826. has  other decruncers.  By rotating this gadget some others may get ghosted or
  827. become  visible.   There  are  only  those  gadgets  active  which  are really
  828. necessary for the selected decruncher.
  829.  
  830.    First  of  all  there is the data mode.  As it is really senseless to put a
  831. decruncher before a data file there is only the data option.  This will save a
  832. 14  bytes  data  header  in  front  of the encoded data which is necessary for
  833. decrunch.  This header is described in the decruncher source.
  834.  
  835.    Then  there  is  the reloc mode.  If you choose the simple decruncher (it's
  836. the  shortest  one)  you  have a pretty low level decruncher.  When a crunched
  837. program  is  running,  the  twice  as  much  memory  is  used  as needed.  The
  838. decruncher  doesn't  free the needless memory but lets this do the dos.library
  839. after the whole program has done its job.
  840.  
  841.    The  decruncher  you  should  use  is  the normal decruncher.  It frees the
  842. unnecessary memory before running the program.  Here you can choose whether to
  843. kill the decruncher or not.  Killing it will result in a bit more free memory,
  844. a  longer  decruncher  and  the  cli_module in pr_CLI in the process structure
  845. pointing  on  the  first  hunk  of  the  program  (normally  it  points on the
  846. decruncher).  Some programs need this (e.g.  CygnusEd).
  847.  
  848.    The address and link modes have the same decrunchers. Normally it suffices
  849. to use the normal decruncher. You can tell him where to decrunch the data and
  850. where to jump.
  851.  
  852.    The  professional  decruncher has some more options.  You can set the stack
  853. as  well  as  locate  the  decruncher  somewhere  in memory.  You may stop the
  854. drives,  set the status register and init some important hardware registers or
  855. addresses.   You  may  let  out  some  options by clearing their gadget.  This
  856. packer  saves  only  the  really necessary parts and not an ultimate decuncher
  857. where only some values are changed and much senseless code is dragged along.
  858.  
  859.    Finally  you can save the files as data files.  This has the same effect as
  860. just loading them in data mode.
  861.  
  862.  
  863. 3.3.12 - Decrunch to
  864. ---------------------
  865.  
  866.    The   "Decrunch  To"-address  specifies  the  address  where  the  data  is
  867. decrunched  to.   By entering here a "p" no special address is taken.  Instead
  868. of  this some mem is allocated (in the Hunk-Header) and there the data will be
  869. decrunched to.  "c" has almost the same effect but here it will be in Chip-Mem
  870. (e.g.  for proggies with internal copperlist).
  871.  
  872.  
  873. 3.3.13 - Jump to
  874. -----------------
  875.  
  876.    "Jump  to"  is  the  address  where  the  decruncher  will  jump  to  after
  877. decrunching.   In most cases this is the same address as the Decrunch-address.
  878. Is there a "p" or "c" as the Decrunch-Address, the Jump-Address is relative to
  879. the  beginning of the data.  By entering here a "r" the decruncher will return
  880. to the calling code after decrunching.
  881.  
  882.  
  883. 3.3.14 - Stack at
  884. ------------------
  885.  
  886.    This  gadget  specifies where the stack should be put.  The Stackaddress is
  887. written into a7 (stackpointer) as the first action before decrunching.
  888.  
  889.  
  890. 3.3.15 - Decruncher at
  891. -----------------------
  892.  
  893.    The decruncher can copy itself to a safe position which is fixed by
  894. "Decruncher at". Of course this is done before decrunching.
  895.  
  896.  
  897. 3.3.16 - Stop Drives
  898. ---------------------
  899.  
  900.    You  may  stop  all floppies either before decrunching or after decrunching
  901. (or  both).  The left column is responsible for all actions before decrunching
  902. and the right one for after.  Stopping drives "lame" will switch off the motor
  903. but not the drive LED.  To put it out you have to select "pro".
  904.  
  905.  
  906. 3.3.17 - SR (Status Reg)
  907. -------------------------
  908.  
  909.    The  value  given  in  this  gadget  is  written  in  the  status  register
  910. immediately before the program is entered.
  911.  
  912.  
  913. 3.3.18 - Move Gadgets
  914. ----------------------
  915.  
  916.    These are the twenty gadgets placed in five rows with two times two columns
  917. each.  They are designed to write certain values to special addresses outa the
  918. data  range.   In  the first column there are the values which can be wordened
  919. with  a  following  ".w"  (e.g.   $0.w)  and  in  the second one there are the
  920. addresses  which  are  automatically shortened if possible (like in Ass:  e.g.
  921. move.w #0,$dff180).  The first two columns are executed before decrunching and
  922. the  second  two  after.   E.g.   you  can  change the background color before
  923. decrunching  to  red  and  when decrunching has finished to black.  Or you can
  924. turn off all interrupts and DMAs.
  925.  
  926.  
  927. 3.3.19 - Save
  928. --------------
  929.  
  930.    The  save  filerequester and filename follow the same rules as described in
  931. 3.3.7.   The  save  directory may be different to the load directory.  You can
  932. save  the original file before pressing the crunch button or save the crunched
  933. file  after  crunching  it.   NOTE:   decrunched executables are never totally
  934. equal  to  their original state, because some useless hunks are removed, reloc
  935. tables are sorted and Hunk_Ends are added.  The final file lenght is displayed
  936. below the save gadget.
  937.  
  938.  
  939.  
  940.  
  941.  
  942. 4 - Supplied Utilities
  943. =======================
  944.  
  945.    This  section describes the utilities which have to do with this packer and
  946. which are supplied with this package.
  947.  
  948.  
  949.  
  950. 4.1 - Run-time Data-Decruncher
  951. -------------------------------
  952.  
  953.    This  utility  is very powerful and useful.  It patches some (6) vectors of
  954. the  dos.library,  so  any  loaded  datafile will be automatically decrunched.
  955. When the file is loaded entirely no extra mem is needed, otherwise the program
  956. will allocate a memoryblock as large as the original file and will decrunch it
  957. there.   In  all  further  read calls the wanted data is only copied from this
  958. buffer,  so  this will also speed up disk-access.  In this The current version
  959. supports all crunch algorithms (CrM!, CrM2) and any Min Security-Len.
  960.  
  961.  
  962.  
  963.  
  964.  
  965. 5 - Trivialities
  966. =================
  967.  
  968. Many Thanx may reach:
  969.   Commodore for this fantastic Computer with Multitasking
  970.   my HD for having no head-crashs
  971.   Datel Electronics for their Action Replay helping me with debugging
  972.   E.o.L. for Beta-Testing
  973.  
  974. Greetinx and Handsheix fly over to:
  975.   The Fly
  976.   Earl of Lennox
  977.     and the Rest of the Brain-Cell-Killers
  978.   Ferris (wo isch denn dein Brett???)
  979.  
  980.  
  981.  
  982.  
  983.  
  984. 6 - History
  985. ============
  986.  
  987. ********** V1.3 **************
  988. First Release Version, with almost all Options as V1.4
  989. not bugfree (Crunch-Routine could produce Shit without a clear Stack)
  990.  
  991. ********** V1.4 **************
  992. Intuition Interface added, now callable from Workbench, self-detaching,
  993. Req-Lib FileRequester
  994. some Bugs fixed (all code was totally overworked)
  995.  
  996. ********** V1.5 **************
  997. V1.5a:    Demo Version, no Saving possible
  998. V1.5b:    Release Version
  999. Both Versions released for the Amiga '91 in Cologne!
  1000. Crunch-Routine optimized, now 0,5-2%. better Results!
  1001. Menu-Options "Priority" and "LED-Flash" added!
  1002. Program sometimes crashed when you quitted it, now fixed
  1003. V1.5c:  Auto-SetComment for run-time Data-Decruncher added
  1004.  
  1005. ********** V1.6 **************
  1006. Decruncher added
  1007. User-Communication improved
  1008. Quit-Bug finally removed
  1009.  
  1010. ********** V1.7 **************
  1011. First Release with a free Test-Version and a Registered-Version
  1012. New Crunchalgorithms: LZ-Huffman and Quick-LZH
  1013. Not available in Address and Link Modes
  1014. New Crunchmodes: Data    to crunch Datafiles easily (not via Address-Mode)
  1015.                  Switch  which detects Reloc and Data-Files and switches
  1016.                          between the Modes (only registered Version)
  1017. Speed Improvements: Crunching takes now only half the Time! (only reg.)
  1018. Data-Decruncer added
  1019. Now Source and Destination Dir can be different
  1020. Current Dir of Caller is now the CD of CrM (not df0:)
  1021. 2.0-style Intuition Interface added
  1022. More CLI-Options (including CLI-Help)
  1023. New Iconify-Window: shows now ToGo-Counter
  1024. Minor Bugfixes (various Actions caused Crashes)
  1025. RTDD now removeable, supports new crunchalgorithms
  1026.  
  1027. ·  ·   -  - -- --- --=- -=-=- -===- -==-==- -===- -=-=- -=-- --- -- -  -  ·  ·
  1028.  
  1029. Finito - May the Force be with you!!!
  1030.  
  1031.