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 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 of bytes -v 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 .ARJ in the folder . * 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 ;-(( )