26 August 1995 - Hans Wessels
 9.96 rev. 3.008 (release)
 GENERAL
 * New e-mail adresses:
   Hans Wessels (that's me!): MR_NI@MST.TN.UTWENTE.NL
                          or: MR_NI@MBH.ORG
   Ger Hobbelt (Insh_Allah) : I_A@MBH.ORG

 ARJBETA
 * Improved sliding dictionay code, it is quite fast now! No problem
   with Degas pictures anymore.
 * Added mode 7, a compression method incompatible with ARJ from Mr 
   R. Jung, but better compression, especially on test files. This
   mode uses a 32k dictionary instead of a 26k dictionary.
 * Added mode 1-7 support, added -jm support:
   -m7 -jm : best compression, incompatible with ARJ from Mr R. Jung
   -m7     : good compression, incompatible with ARJ from Mr R. Jung
   -m1 -jm : best compression, compatible with ARJ from Mr R. Jung
   -m1     : good compression, compatible with ARJ
   -m6 -jm : lesser, but faster compression, incompatible
   -m6     : lesser, but faster compression, incompatible
   -m2 -jm : lesser, but faster compression, compatible
   -m2     : lesser, but faster compression, ARJ Jung compression ratio
   -m5 -jm : medium, but fast compression, incompatible
   -m5     : medium, but fast compression, incompatible
   -m3 -jm : medium, but fast compression, compatible
   -m3     : medium, but fast compression, LZH compression ratio
   -m4 -jm : low, but fast compression, compatible
   -m4     : low, but fast compression, compatible
   -m0     : no compression, store files, compatible

 UNARJ:
 * Unarj is prepared for mode 8, an improved mode 1 packing algorithm 
   with a bigger sliding dictionary (64k). This mode 8 is incompatible 
   with the original ARJ by R. Jung.
 * Unarj is compatible with ARJZ, a Russian ARJ packer using a 64k
   sliding dictionary.

3 Juni 1995 - Hans Wessels
 9.95 rev. 3.007 (internal revision)
 ARJBETA:
 * New sliding dictionary code, faster on textfiles, still slow on 
   Degas picture files.
 
 UNARJ:
 * Unarj is prepared for mode 7, an improved mode 1 packing algorithm 
   with a bigger sliding dictionary (32k). This mode 7 is incompatible 
   with the original ARJ by R. Jung.

7 May 1995 - Hans Wessels
 9.95 rev. 3.006 (internal revision)
 ARJBETA:
 * Improved packing algorithm a little bit, slightly better compression.
 * -v without a number: use free diskspace as volume size.

23 April 1995 - Hans Wessels
 9.95 rev. 3.005 (internal revision)
 ARJBETA:
 * Implemented new Huffman calculation routines, 20 times faster as
   the original routines! Overall speed improvement: c.a. 10%.

12 March 1995 - Hans Wessels
 9.95 rev. 3.004 (release)
 ARJBETA:
 * Improved packing ratio. ARJBETA has proven to pack better than:
   -LHArc 3.10 on the ST           230KB better on 27.5MB
   -STZIP 2.5 on the ST            134KB better on 27.5MB
   -ARJ 2.41a on MS DOS using -jm  195KB better on 152MB
   -PKZIP on MS DOS                159KB better on 152MB
 * fixed bug in sliding dictionary code
 GENERAL:
 * added the ARJBETA.FAQ file: the answers to frequently asked questions.

 9.94 rev. 3.003 (internal revision)
 ARJBETA:
 * Fixed dictionary length, the sliding dictionary was 1 byte too long, 
   causing an incompatibility with ARJ on MS DOS (not with UNARJ ST).
 * Multiple volume support. You can use the switch -v<number> to enable
   packing in multiple volume archives. The number has the following
   meaning:
   -v180  volume size is 177152 bytes  (single sided 40 x 9 disk)
   -v200  volume size is 197632 bytes  (single sided 40 x 10 disk)
   -v205  volume size is 202752 bytes  (single sided 42 x 10 disk)
   -v360  volume size is 360448 bytes  (single sided 80 x 9 or 
                                        dual sided 40 x 9 disk)
   -v400  volume size is 401408 bytes  (single sided 80 x 10 or
                                        dual sided 40 x 10 disk)
   -v405  volume size is 406528 bytes  (single sided 82 x 10 disk)
   -v410  volume size is 411648 bytes  (dual sided 42 x 10 disk)
   -v720  volume size is 728064 bytes  (dual sided 80 x 9 disk)
   -v800  volume size is 809984 bytes  (dual sided 80 x 10 disk)
   -v820  volume size is 830464 bytes  (dual sided 82 x 10 disk)
   -v1440 volume size is 1456640 bytes (dual side 80 x 18 (hd)disk)
   -v1600 volume size is 1623040 bytes (dual sided 80 x 20 (hd)disk)
   -v1620 volume size is 1664000 bytes (dual sided 82 x 20 (hd)disk)
   -v2880 volume size is 2913280 bytes (dual sided 80 x 36 (ed)disk)
   -v3200 volume size is 3246080 bytes (dual sided 80 x 40 (ed)disk)
   -v3240 volume size is 3328000 bytes (dual sided 82 x 40 (ed)disk)

   -v<(number > 8192)> volume size is specified <number> of bytes
   -v<all other cases> volume size is 1456640 bytes
                                       (dual side 80 x 18 (hd)disk)
 UNARJ:
 * Fixed some default options, most important, the default for -~g is now off,
   when switched on -~g extracts the file <filename>.ARJ in the folder
   <filename>.
 * Fixed bug in multiple volume handling: split volumes without a split
   file on the volume break are recognized too.

18-01-1995 Hans Wessels
 9.94 rev. 3.002 (release)
 ARJBETA:
 * ARJBETA doesn't try to pack 2^32 bytes when it's only supposed to pack
   1 byte.

 UNARJ:
 * Fixed some bugs in the e-command structures, causing the JR versions
   always to use the e command.

15-01-1995 Hans Wessels
 9.94 rev. 3.001 (release)
UNARJ_JR:
 * The e command now works in the UNARJ junior versions too!

9.94 rev. 3.000 (internal revision)
General:
 * Switched from my alias (Mr Ni! (the Great)) to my real name:
   Hans Wessels. Hello everyone! My name is Hans Wessels, nice
   you read this document comming with my ARJBETA and UNARJ by
   the TOS-crew.

New and improved in ARJBETA:
 * Mode 1 improved a lot! It's now better than the mode 1 of ARJ by 
   R. Jung! Only the -jm switch of ARJ by R.J. might beat this ARJ 
   implementation. ARJ is now the best packer on the ST platform!

 * Recursive file search implemented by Wout Klaren (many thanks Wout!).

 * File date, time and attributes are now stored too in the ARJ archive.
 
 * Implemented all ARJ modes but still no user interface, so you can
   only use the default mode 1.
 
 * Implemented the special cases, in theory (that means if there are
   no bugs in the program) all files are packed and depacked correctly.
   In the previous version the special cases weren't implemented, but
   files that trigger a special case are _VERY_ rare. (I didn't get any
   complaints of packing errors so I assume till now no one tried to 
   pack such a special case file.)
   
 * Set file spec position in filename to the right value

 * Removed division by zero exception on empty files. (Has no visible 
   effects on normal ST's with standard division by zero handler.)

New and improved in UNARJ:

 * Fixed bug in commandline parsing, -jpxx now works correctly

 * Options e and -e are now working as they supposed to; extract archives
   without paths. (Bug reported by Albi Rebmann, thanks a lot for the bug 
   report!)

30-10-1994 Mr Ni! (the Great)
9.93 rev. 2.030 (Release)

 * Mode 1 implemented, but there is still a lot of work to do on the
   algorithm

 * I have got a new e-mail address: mr_ni@mbh.org
                                    mr_ni@mst.tn.utwente.nl

   Insh_Allah's new address is:     i_a@mbh.org

 * Most of the code was written at the SiliConvention in Delmenhorst.
   Hi Avena, Great party!

rev. 2.025 - rev. 2.030 internal revisions

05-10-1994 Mr Ni! (the Great)
9.92 rev. 2.024 (Release)

 * Bug removed from ARJ_BETA code. Files that can't be packed are now
   stored correctly

 * Unarj Junior versions bit smaller and faster code

18/09/1994 Mr Ni! (the Great)
9.92 rev. 2.023 (Release)

 * Mode 4 packing 3 to 5 times faster :-) Packing speed is roughly
   the same as LZH 3.xx. Pack ratio is less. Expected future speed 
   improvements are:
     -usage of Chaos CRC-routines (30% faster as the currently 
      used routine)
     -conversion to assembly of the whole pack routine (now only the
      dictionary search and update is optimized)
     -usage of the UNARJ file buffering routines
     -usage of again another tree structure????
   Expected speed reductions are:
     -mode 1 packing (bigger sliding dictionary, huffman tree building)
     -support of all ARJ commands and some TOS-crew additions (to be
      recognized with -~)

 * Added wildcards to ARJ_BETA, not the sophisticated I_A wildcards
   but standard OS controlled wildcards (user request from 
   Chipswinger). For recursive packing of subdirectories please
   wait for the user interface by Insh_Allah.

 * Removed file load bug from ARJ_BETA, modulo 32678 files don't
   result in an error message anymore.

 * Changed IRA support to terrorists support: as long as the treaty
   in Northern Ireland holds IRA support is removed. We are looking
   for another terrorist organisation to be supported by -~b ;-)

 * even smaller depack routines to include into your own programs:
   mode 1-3 depack: 1012 bytes
   mode   4 depack:  144 bytes
   mode   0 depack: trivial
   Use UNARJ_PR to dump packed data in a file, see for usage of
   -~d the documentation of UNARJ_PR

 * Added the TOS-crew ARJ icons (for use with TeraDesk, I've heard
   that the normal Atari desktop won't work with icons bigger 
   than 32x32. Well, these icons are bigger, so get TeraDesk 1.40A
   (that's the newest version now (about 5 days old now))

 * the TOS-crew now can be contacted by e-mail! Write to:
   i_a@mbh.org to contact Insh_Allah or
   mr_ni@mbh.org to contact me (Mr Ni! (the Great))

 * For easy use of ARJ_BETA install the program on your desktop
   (TeraDesk is the best)(use menu item 'Install Application')
   and enter at the command line:

   d:\result.arj %f

   Now you can drop the file(s) to be packed on the ARJ_BETA icon 
   and the files will be packed in the file d:\result.arj.
   If the file result.arj already existed the file will be deleted
   destroying all previously packed files and a new file will be
   created.

rev 2.018 - 2.022 internal development revisions
  * Tried to improve packing speed by using the following tree
    structures:
      -simple sorted list with insertion sort updating (far to slow)
       (don't say I should have used quicksort, each byte has to be
       inserted in a sorted list followed by a tree search. Trying to
       quicksort a sorted list is deadly, in this case insertion sort
       is really the fastest (and of order n))
      -linked trie structure (memory efficient but slow)
      -sequential trie structure (please insert 8MB)
      -own developed statistical dictionary search (best yet)

30/08/1994 Mr Ni! (the Great)

  rev. 2.017 (Release)

 * Even faster decrunching in UNARJ and UNARJ_PR

 * Bug in dump-mode fixed (UNARJ_PR)

 * Added depack and CRC sources, free to include in your programs

 * Smaller Junior versions

 * ARJBETA included, I am still working on it but here is a first
   sample of things to come. Next version will be faster (I hope)
   and will include a userinterface by Insh_Allah (he coded the 
   user interface of all the UNARJ versions too!)

rev 2.004 - 2.016 (Internal ARJ development versions)

04/07/1994 Mr Ni! (the Great)

  rev. 2.003 (Release)

 *  Fixed bug in environment handling, all works now as promised (I do
    hope so).

 *  Further optimized CRC and depack routines.

 *  Changed to a new, faster, printf routine, converted some string
    routines to assembley.

 *  Total speed improvement compared to previous release about 2%.


??/05/1994

  rev. 2.002 (internal revision)

 *  Fixed bug in decode routine, very rare arj files could trigger
    this bug; one of the over 10000 files (over 1GB packed data) we
    tested trigered this bug.


05/04/1994

  rev. 2.001 (internal revision)

 *  Fixed bug in short usage.


06/03/1994 Insh_Allah

  rev. 2.000 (release)

  * Changed to version 9.90á: prelude to ARJ (which will start at version
    10.00)

    We chose rev 2.000 as the documentation talks about rev. 1.0xx and
    upwards. We didn't want to change that so we updated the 'revision'
    number too!
    
  * filecount display bug removed

  * problem with startup-code from Pure C/Turbo C removed: all filenames
    (including the ones containing characters > ASCII 127) are recognized
    correctly now. (Pure C startup-code treated commandline input as array
    of 'signed char' and compared (*p <= ' ') to cut commandline into
    argv[] list!

  * most texts have been changed to German for UNARJJRG.TTP (some
    error-messages are still in English though!)

  * UNARJ Junior versions now can 'test' archives as was listed in the
    documentation long ago. (The first Junior Versions were targeted NOT to
    be able to TEST, only to VIEW and EXTRACT!)

  * Configuration-structs have changed, which results in over 32 KILOBYTE
    less DATA-space in de executable on disk!

  * repaired 'broken archive' handling which seemed to be broken long time
    ago.

  * removed pointer-related bug in short-usage()

  * removed bug related to newly introduced dump-mode and 'UPDATE/FRESHEN'
    setting: warning was issued for every (UN)ARJ version, even the ones
    that don't carry the dumpmode along...

30/01/1994 rev. 1.101 (Internal Revision) alpha

  * commandline parser bug (SERIOUS ONE!) removed: previous versions
    COULDN'T handle the promissed option-concatenation as far as constructs
    like

        -auvjr1jx

    which is meant to be decoded as

        -a -u -v -jr1 -x

    were concerned: switching back to 'normal' (read as: 'non-shifted')
    options would force an errormessage due to some bug in the parser-code.
    Oops!

    Well, to be honest is went something like this: I adapted the option-
    lists without changing the parser-code accordingly, so it went a teeny
    wheeny bit wrong at this particular point. Now that I didn't get any
    furious user on the phone about this one means:

    1) users didn't yet concatenate options that fanatically, or

    2) users didn't think it was worth the paper their anger would be
       spilled on, or

    3) otherwise, in fact ...............................

    (*) mark the number of your choice and, where required, please do write
    something on the dotted lines...  ;-]
	  																		
  * Now we are 100%% ARJ compatible as far as commandline parsing is
    concerned as we can mix various shifted options (see the on-line
    manual, to be shown when executing

      (UN)ARJ -?

    for details)

  * We decreased usage information when an error occurs, so users can still
    read the line(s) listing the error, even if they have option '-jp'
    switched off. The usage() can be viewed using '-? -jp' anyway!

  * 'presumes_curdir': bug fixed which caused routines NEVER to find
    trailing '\\' when it DID exist at the end!


06/01/1994 21:29 rev. 1.092 (Internal Revision) alpha

  * bug with CRC calculus for 1-byte, 2-byte, 64KByte+1 byte, 64KByte +
    2-bytes, etc... filelengths. Run that test properly now (When intro-
    ducing Chaos CRC routine, we did change some things to fit the routine
    into the rest of the code, but we unfortunately DIDN'T check these
    special filesizes. (oops 8-[ )

  * bug when displaying introductionary usage() fixed: when that text was
    displayed, settings would be such that it would allways be printed as
    if '-ss' option was enabled, even when it wasn't -> unreadable text
    flashing along on a single line, useless to the novice, for which the
    text is meant...
	  
26/12/1993 ??:?? rev. 1.091 (Internal Revision) alpha

  * 'bugs' fixed concerning BACKUP flagged files: now (UN)ARJ listens to
    -jg and -jg1 switches correctly: -jg1 lists BACKUP files only with 'v'
    or 'l' commands; unless '-jg' or '-jg1' specified, you cannot extract
    any BACKUP flagged files (before, BACKUP flagged files were extracted,
    thus blocking their non-BACKUP flagged equivalents unless file
    overwrite was enabled. (boo :-((( ))

  * 'dump' mode introduced: very handy for those among you want to use
    ARJ-packed files for demo's or include it in their own source. 'dump'
    can be done in 'binary' or 'source' form; 'header-files' can be created
    on the way in Assembley or C-language. 'source'-dump can be either ASM
    or C-style.

  * once more ;-)) we reorganized our sources. BTW, we are now heading for
    the 100K executable. (unpacked!) Estimates are we can gain 40% with
    complete packed executable, but since I personally HATE ice! and other
    style packed executables...

  * included options (tested):

   -~ss (no screen scrolling) (user request)

    -~fb[nnn] specify amount of file-buffering. (handy in Multitasking
              Environments, negative values specify amount of mem still
              free when running (UN)ARJ)

    -~crc[n] CRC speed (and memory usage)

    -~* no CRC checking (unsafe but faster extracting)

12/12/1993 11:00 rev. 1.09 (Internal Revision) alpha

  * we keep 'alpha' in our version number as long as we don't have packing
    implemented...

  * depacking has been speeded up again (again!).

  * bugs removed concerning non-ARJ files:

    if you would do something like this

      UNARJ.TTP t -ray+ -v+ k:\*.*

    all files, including modules, texts, etc. are looked upon as possible
    ARJ files and, as you might have guessed, a lot of error-messages
    result from this action. However, we might expect to have the innocent
    user to issue such a command once in a while. (.ARJ extension is
    automatically added when you do this:

      UNARJ.TTP t -ray+ v+ k:\*                           )

    Things went WRONG ('Internal Error', crash(!), etc.) when you did this:

      UNARJ.TTP x -ray+ -v+ k:\*.*

    (really depack the shit you'll find) Now finally this problem has been
    fixed: UNARJ is made more butthead-proof...

22/09/1993 ??:?? rev. 1.03 alpha (intern)

  * Again speed up for mode 4 extracting.

09/09/1993 @ 00:44:?? rev. 1.02 alpha:

  * total files count fixes (was allways displayed as ZERO

  * total size etc. when viewing fixed.

  * redirection with stderr included ( >& ) fixed (we hope)

  * error-count report fixed: broken archives and unrecognized archives are
    counted as errors now too!
  
added:

  * global error count report: summa summarum all errors.

  * even faster depacking still: speed increment by a marv' 10%
  
10/09/1993 @ 21:50:?? rev 1.03 alpha:

  * version 1.02 had a MAJOR BUG since we used new file-access routines:
    every ARJ was opened and immidiately WRITTEN to! No wonder every ARJ
    was bad afterwards and reduced to zero bytes in the process: how to get
    lots of free disk space (variant 3546 ;-(( )

