------------------------------------------------------------------------------- DOCUMENT TYPE : X1 NEWS INFORMATION LANGUAGE : ENGLISH TEXT TYPE : NON-FORMATTED ASCII CHARACTER SET : LOWER 128 ASCII CHARACTERS PROGRAM VERSION DESCRIBED : X1 v0.94m (beta) LAST UPDATE (YEAR MONTH DAY): 960916 LAST UPDATE NOTE : PRELIMINARY TEXT -- LATER CHANGES MAY OCCUR TYPED BY : S.V. CHANGES BY : - OTHER DOCUMENTS : X1 USER MANUAL X1 DISCLAIMER, X1 CHANGE HISTORY, ------------------------------------------------------------------------------- Intro ===== Minimal change from 0.94j to 0.94m (ARX/TGZ listing repair and ZIP header PK\07\08 listing ability, "obo" option sorting fix, IBM-DOS detection, !!definitely!! without DOS crash now - I hope, fixed "x1 ll test.x" ability, m6d0..m6d17,m6d18..m6d35 ability). Haven't fixed the problems we were talking about Greg...! Homepage at http://www.ufsia.ac.be/~skimo/x1/x1homepg.html - but remember to visit ~skimo as well.. :-) At some point, I'll probably make pointers to all the people contributing to X1 (provided they want it..). World-BBS HQ now at a Finnish BBS (see "X1-SITES.DOC"). Will always be updated with new versions. Manuals are now available in most languages (10?). Currently being organized. All docs on BBS WHQ - but will also be made available through ftp/WWW. Sven Verdoolaege/others are doing a great job and I have to get updated on the latest before I can say anything more... "PPMZ" is a variable-order PPM coder by Charles Bloom, cbloom@mail.utexas.edu Source available from: http://wwwvms.utexas.edu/~cbloom/src/indexppm.html My modified/derived version does in no way represent the original program. Look in the disclaimer for a full verification of the "BPL" licence terms. >>CHANGE<< Method 6 changed (to PPMZ-derivate). Subcoder selection 0..17 allow different (PPMZ) max. order (with RLE transform) and 18..35 (without RLE transform). My dynamic memory model size is selectable through the 'l' option as usual: l=0:1Mb (1<<20 or 2^19 if you like) 1:4Mb (1<<22) 2:8Mb 3:16Mb(deafult) ..etc.. 10: 2Gb (1<<31) - DO! tell me if you try this...:) Default is 16Mb. Be aware that - beyond the memory model - a further amount of memory (equal to roughly twice the filesize) is necessary to allow compression (as in PPM*). But if initial allocation succeeds, compression should complete successfully (you won't get an "out of memory" after spending XX minutes compressing). When compressing multiple files, try sorting according to size (largest first) to make sure everything runs smoothly hereafter. The PPMZ escape-estimation process can probably be improved - and I'll probably try to look into it. After all, my graduation project was focused on escape-estimation... Method 7 (the word-sorting BW95/block-coder) also changed. Now supports selectable memory size as well through 'l' option. Only changed constant to variable to allow this - but couldn't maintain backward compatibility. Operates with windows: l=0: 164kb window (5<<15) - appropriate for 1Mb RAM platform l=1: 655kb window (5<<17) - appropriate for 4Mb RAM platform l=2: 1.3Mb window (default) - appropriate for 8Mb RAM platform l=3: 2.6Mb window (5<<19) - appropriate for 16Mb RAM platform l=4: .. l=5: .. l>5: coder works - but decoder don't - have to fix that.. l=3 ain't big enough to swallow up the (3.5Mb) calgary corpus entirely. I cannot find any errors right now, but have to do more testing. This method will probably go 'non-beta' in its current form, if/when all errors are removed. Have another dynamic MTF coder, and might plug it in as method 8 ?? When allocating a large memory block under Win95, I've observed occasional spontaneous swapping (even though the memory was supposed to be free) - but furtunately no spontaneous selfcombustion:-) ...yet. This is a problem (probably solved by allocating in smaller chunks). So I recomend not using a larger memory model than dictated by filesize (fx. 16Mb memory model on a 2kb file is obviously unnecessary). There is still undocumented options, which I'll be explaing more detailed in next release.. It's getting late, and I gotta get this out before I drop off my chair:) BTW... have you noticed X1 filesize. I probably have to dump method 2,3(,5?) real soon now, to bring down size of the binary executable. And, Christophe, we need to talk about those assembler optimizations. The snail-mail is getting on my nerves:), and I hope you get operative with an e-mail address real soon.. 0.94j manual updates (besides numerous spelling errors) ==================== D option (chose subcoder - if possible) ----------------------------------------------- Compression may be done with 3 parameters: * method (option M) selects algorithm used (LZW,LZHUF,PPM,BW95,..) * memory model size (option L) selected according to RAM available * subcoder selection (option D) for special abilities - possibly applying filters to input data before performing compression - or selecting a special variant of the method in question Imaginable filters are runlength-preprocessors (for pictures) or delta-coders (for multimedia). If the option isn't succeded by a number, it defaults to 0 (zero). The option is currently restricted to PPM method 6 (target for continued development). Subcoders 0-16 (16 included) are supported. In case no subcoder is specified, the subcoder defaults to number 9. Example (method 6, at 16Mb, subcoder level 9): "x1 am6l3 text.x *.*" Example (method 6, at 4Mb, subcoder level 0): "x1 am6l1c text.x *.*" Example (method 6, at 16Mb, subcoder level 5): "x1 am6l3c5 text.x *.*" P option (pause screen output) ------------------------------ Pauses screen output until key pressed (enter). Prevents lines flipping by without possibility of closer reading. Soo far, only has effect during help-screen viewing. Example (default 24-line screen): x1 ?p Example (tweaked 50-line screen): x1 ?p50 G option (go with new type - overriding archiver extention type) ------------------------------------------- Compression: By default, the target archiver format is dictated by filename extention. For example, if target archive name has extention .ZIP, files are compressed using headers and compression methods for that archiver format. Using the option mentioned, compression can be done to completely arbitrary filenames. Example (to ARJ format in .123 disguise): "x1 agj test.123 *.*" Example (to TGZ format in .tar.gz disguise): "x1 agg test.tar.gz *.*" Decompression: Overrides default assumption of archiver type from filename extention. Allows extraction or listing of archives with arbitrary names (provided that their archiver format corresponds to the override assumption). If the file is recognized as another contradictarry format, a small reference may be made (fx. "(ZIP ?)" for test.arj as falsely renamed zip-archive) before persueing the primary type assumption (from G option or deducted through file extention). Example (extract from example above): "x1 xgj test.123 *.*" Example (to list .tar.gz files): "x1 lgg *.tar.gz" In all cases, here is a quick overview of sub-options to use (after G option) to force assumption of archiver format type. ARJ - j ZIP - z RAR - r ARC - c PUT - u X - x LHA - l ZOO - o TAR - t PAK - k SQZ - s LZH - l HA - h TGZ - g ARX - a HAP - p Special provision is also made for avoiding long filenames in Win95 (used by default). Should be used under IBM DOS 7.x. That version identifies itself identically to a DOS-box under Win95 - but crashes if presented with Win95 calls... DOS - d Using "x1 agd test.x *.*" packs by using conventional 8+3 filename format under DOS. Has no significance on other platforms. Problems -------- * Still cannot work with PC-DOS v7.0 because I can't differentiate the darn thing from Win95 in DOS mode... You have to force DOS mode with 'GD' option. * Method 10 (associative coder) occasionally produces errors. Now I have enough RAM, I can look into the problem. But have been busy messing with PPMZ up to now.. I still (hmm..always) need: (1) people reporting errors (beta-testers). (2) language translators (docs and screen-messages). Editing is done in a small language module, which I provide (e-mail me!). Cannot actually *pay* people for their efforts - but will naturally credit people accordingly in the documentation. I have a dial-up connection and not(!) a v34 modem or a local line to the internet provider... So please warn me before sending something major (>20kb) -- no coredumps, please:) General information about platform porting ========================================== X1 handles multiplatform attributes internally. Fx. writing 'UNIX' in the attribute field, when trying to display UNIX attributes on a non-UNIX platform. It's a major problem that some archivers haven't properly defined an OS id number for all platforms - which makes it diffucult to set OS id properly in all archiver formats across all platforms. ``X1'' is not assembler hand-tuned in any way (only a small patch for a 32bit arithmic coder). Except from the latest Win95 stuff, only standard-C is used. So despite a few problems (fx. endianne), it should be possible to go multiplatform at some point - perhaps when I get access to decent platforms through a job. DOS/Win95/NT/OS2 supported so far. Linux pending.. Some of the executables actually runs across several (compatible) platforms. But some platforms provide ``special'' attributes (extended attributes in OS/2 comes into mind), which is why attributes are not fully implemented in all X1 releases. Naturally, I'm going to implement full attribute support on all platforms, which I have access to. DOS(v6.23) Win95 WinNT OS/2 Linux32bit | | | | | Disk label support * * X1 attribute support * * X1DOS.EXE * * * X1NT.EXE * * X1OS2.EXE * Advice: if you're running Win95, X1NT should be preferred. Loads faster (absence of DOS extender), may run faster (no DOS extender setup, HPFS disks possible) and should be more stable (no DOS extender conflicts/flaws). Source? ======= ``X1'' source is not intended to be - and should not be - distributed publicly. I have only made ``two'' personal exceptions from that policy - under non-disclosure conditions - for porting purposes. Will not! make additional exceptions like that. I'm unemployed (heading for longterm unemployment) - those who need compression assistance should offer me a job - prefereably with a decent salary :-() I have serious time invested in "X1" (believe it or not) - but it is still !very! little known. I would like to avoid somebody else running off with the show...