home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / COMPRESS / NARC31.ZIP / NARC.DOC < prev    next >
Encoding:
Text File  |  1989-07-02  |  81.0 KB  |  2,042 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                  NARC (tm) zip - A STAND-ALONE DE-ARCHIVE UTILITY
  11.                            (no other files required)
  12.  
  13.  
  14.  
  15.  
  16.                          Documentation for NARC.EXE
  17.  
  18.  
  19.                            Written by Gary Conway
  20.  
  21.  
  22.                         Infinity Design Concepts, Inc.
  23.  
  24.  
  25.                             Louisville, Kentucky
  26.  
  27.  
  28.                    Copyright (c) 1987-89, All rights reserved
  29.  
  30.  
  31.                                 Version 3.0
  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.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                NARC.EXE is a shareware program. NARC.EXE is and will remain 
  71.                the property of Gary Conway. This program may not be used in 
  72.                any connection with commercial ventures, nor as a sales aid, 
  73.                without the expressed written consent of the author. All 
  74.                rights are reserved.
  75.  
  76.  
  77.                          Infinity Design Concepts, Inc.
  78.                          1052 Parkway Drive
  79.                          Louisville, Kentucky 40217
  80.                          Voice: (502) 636-1234 
  81.              Data: (502) 635-5471
  82.                          CIS: 72657,3006
  83.  
  84.                  Member  IEEE
  85.                          PCCL
  86.                          KKUG
  87.                          NSPE
  88.  
  89.  
  90.                All new releases of NARC.EXE and all other IDC software can 
  91.                be located -FIRST- on ;
  92.  
  93.                  The SoftStone    FOG #24    GTNET: 010/002
  94.                  (502)241-4109
  95.                  60 MEGs
  96.                  300/1200/2400 baud
  97.                  24 hrs.
  98.                  Louisville, Kentucky
  99.  
  100.                  Curt Edwards - SYSOP - our motto is "Use and enjoy."
  101.  
  102.                 Sponsored by:    Kentucky Kaypro Users Group
  103.                                  Accounting Computer Systems
  104.                                  First Osborne Group
  105.  
  106.  
  107.                 NARC is a trademark of Infinity Design Concepts Inc.
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.                                        REGISTRATION
  134.  
  135.  
  136.                If you find yourself using NARC, please take the time to do 
  137.                the right thing and that is register your copy. You have been 
  138.                provided the opportunity to freely test the program before 
  139.                even thinking about registering. This is only fair, so, in 
  140.                fairness, you should reciprocate and register your copy, if 
  141.                you continue using the program.
  142.  
  143.                 Why register ?
  144.  
  145.                 1) You get the NARCCFG.EXE program for customizing NARC.
  146.                 2) You get notification of updates to all IDC software.
  147.                 3) You get patch table information.
  148.                 4) You get FREE net-mail services for contacting IDC.
  149.                 5) You get online phone support.
  150.  
  151.                Customers residing outside of the United States of America
  152.                should send a check or money order drawn on a U.S. bank or
  153.                in U.S. funds or use a credit card.
  154.  
  155.                You will find the registration form in the archive with this 
  156.                document under the name REGISTER.FRM. Please use this form 
  157.                for registration.
  158.  
  159.  
  160.                               Infinity Design Concepts, Inc.
  161.                                     1052 Parkway Drive
  162.                                 Louisville, Kentucky  40217
  163.                                       (502)-636-1234
  164.  
  165.                 The user is granted the right to make unlimited copies of
  166.                 the SHAREWARE versions of the program (except NARCCFG.EXE 
  167.                 and NARCCFG.DOC) and to distribute these copies as desired
  168.                 without profit, EXCEPT that Infinity Design Concepts, Inc.
  169.                 reserves the SOLE right to distribute the program(s) for
  170.                 profit.
  171.  
  172.                 NOTE: The word ZIP is used throughout this document and
  173.                       almost all functions that apply to ZIP files, can
  174.                       be applied to ARC and ARK files as well.
  175.  
  176.  
  177.                 NOTE: NARCCFG.EXE is NOT a shareware program and may not
  178.                       be released to the general public in any form 
  179.                       under any circumstances whatsoever.
  180.  
  181.  
  182.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  183.  
  184.   .............................................................................
  185.   ........................                         ............................
  186.   ........................    TABLE OF CONTENTS    ............................
  187.   .............................................................................
  188.  
  189.                                                                Page
  190.            FEATURES UNIQUE TO NARC..............................1
  191.            WHAT IS SHAREWARE..................................  2
  192.            NARC ? WHAT IS IT ANYWAY...........................  3
  193.            ACKNOWLEDGEMENTS...................................  3
  194.            ABOUT ZIP FILES....................................  4
  195.            COMPATIBILITY......................................  5
  196.                Archive Storage Methods Supported By NARC......  5
  197.                    Packing
  198.                    Squeezing
  199.                    Crunching
  200.                    Squashing
  201.                ZIP Storage Methods Supported By NARC..........  5
  202.                   Storing
  203.                   Reducing
  204.                   Shrinking
  205.            OVERVIEW...........................................  6
  206.                Video Modes ...................................  6
  207.                Mouse Support .................................  6
  208.                Sound .........................................  7
  209.                Environment Variables..........................  7
  210.            HELP...............................................  9
  211.            COMMANDS...........................................  9
  212.                Extract Command................................  9
  213.                View Command...................................  10
  214.                Print Command..................................  10
  215.                ZIP-wind Command...............................  11
  216.                DRV-wind Command...............................  11
  217.                DirTree  Command...............................  12
  218.                Quit Command...................................  12
  219.            ALTERNATE COMMANDS.................................  12
  220.                Function keys..................................  12
  221.                Find Command...................................  13
  222.                Kill File Command..............................  13
  223.                Page UP, DOWN, HOME,END........................  13
  224.                Using extensions besides ZIP and ARC...........  14
  225.                Calling IDCshell.EXE...........................  14
  226.                Command Line Processor..(new)..................  14
  227.                Trivia status screen...........................  14
  228.            OPERATING HINTS AND SHORTCUTS......................  15
  229.            ERROR MESSAGES.....................................  16
  230.            ARCHIVE FILE FORMATS AND GENERAL INFORMATION.......  18
  231.                Packing (RLE)..................................  18
  232.                Huffman coding (SQUEEZING).....................  19
  233.                LZW Compression.......... .....................  23
  234.            DETAILS OF STORAGE VERSIONS (ARC)..................  25
  235.                Archive file Header Structure..................  27
  236.            HASHING............................................  28
  237.                CRC - calculations.............................  29
  238.  
  239.  
  240.  
  241.  
  242.  
  243.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  244.  
  245.  
  246.                                   ═══════════════════════
  247.                                   FEATURES UNIQUE TO NARC
  248.                                   ═══════════════════════
  249.  
  250.  
  251.                1) allows random access to ZIPfiles. ALL of the other archive
  252.                   utilities allow ONLY serial access.
  253.                2) allows viewing DOC files before extraction. This feature
  254.                   allows you to determine which, if any of the subfiles that
  255.                   you want to extract. This can save considerable time and
  256.                   disk clutter when you extract only the necessary files.
  257.                3) has a view feature that allows page up, page down, home
  258.                   end and arrow key movement through a file. Binary files 
  259.                   can also be viewed in HEX mode. Also includes a text 
  260.                   search function.
  261.                4) allows printing files from an archive without extracting 
  262.                   the file first. Supports many printing options.
  263.                5) allows users with floppy systems to load NARC once and
  264.                   examine many archives from all floppy drives. Other
  265.                   archive utilities must reload (and reread the arc) for 
  266.                   each command.
  267.                6) directory tree allows one to easily move from directory
  268.                   to directory or drive to drive.
  269.                7) large archives are much easier to deal with in NARC since
  270.                   you may page through the subfiles.
  271.                8) mouse support for all functions.
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  304.           
  305.                                      Page 1
  306.  
  307.                                      ═════════════════
  308.                                      WHAT IS SHAREWARE
  309.                                      ═════════════════
  310.  
  311.                Shareware is a concept for marketing software, whereby the 
  312.                author takes the only risks. The purchaser is allowed to take 
  313.                the software home without spending a dime and trying it out. 
  314.                If the software is found to be useful and is used, then the 
  315.                author expects the end user to buy it. From the author's 
  316.                standpoint, he is so confident that you will like his 
  317.                package, that he is willing to GIVE you a copy on the chance 
  318.                that you will take it home and find it useful and want to buy 
  319.                it. There are many advantages to registering shareware 
  320.                software. First and foremost is the fact that unless 
  321.                shareware authors are supported, they cannot maintain the 
  322.                high standards in software that they do, and the prices 
  323.                cannot be maintained at low levels. It takes financial 
  324.                support for any company to continue to develop quality 
  325.                software. The benefit to the author is that he can distribute 
  326.                his software very economically, thus allowing low prices on 
  327.                the software. Another benefit of shareware, is that shareware 
  328.                authors are much more accessible than commercial authors and 
  329.                that means better, more informative support to you. When was 
  330.                the last time you called Micropro and got to speak to the 
  331.                author of WordStar ?
  332.  
  333.                How many times has Microsoft sent a nice piece of software to 
  334.                your local BBS and asked you to try it out ? Shareware is a 
  335.                vital and benefical concept, but it requires your support. 
  336.                Look at it this way, when you send in a shareware 
  337.                registration for $20, ask yourself just how many hours of 
  338.                that authors time are you buying with that money, and where 
  339.                else could you get such a bargain ?
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  366.           
  367.                                      Page 2
  368.  
  369.                                     ═══════════════════
  370.                                     WHAT IS IT ANYWAY ?
  371.                                     ═══════════════════
  372.  
  373.  
  374.                NARC is a menu driven de-archive facility, written entirely 
  375.                in assembler. NARC allows you to easily move from ZIP file to 
  376.                ZIP file, with the option of viewing, printing, extracting or 
  377.                deleting the subfiles from the archive. The program may be 
  378.                operated from the mouse or the keyboard. Menus are of the 
  379.                musical popup variety to add a little "TechNoFlash" to the 
  380.                proceedings. NARC is the culmination of about 18 months of 
  381.                frustrating effort and 13000 + lines of 8088 source code. 
  382.                NARC was developed using the Norton Editor and the Microsoft 
  383.                Macro assembler on a Kaypro PC and an ALR 386/20.
  384.  
  385.                Why....
  386.  
  387.  
  388.                Because I use a lot of ZIP files and PKzip and the clones are 
  389.                reminiscent of the early Ward Christensen CP/M days in user 
  390.                interface etiquette,I wanted something a little more flexible 
  391.                and friendly to use. I would like to pause here for a second 
  392.                and give a little credit to Mr. Christensen ( the Don Garlits 
  393.                of CP/M ) for the fine FREE utilities he has given to ALL of 
  394.                us over the years. The next time you do a modem transfer, you 
  395.                can thank him and Keith Petersen for the original XMODEM from 
  396.                which all others have transpired.
  397.  
  398.            Why NARC...
  399.  
  400.                It  seemed like a good idea. Short for uN-ARC. The  idea  was 
  401.                originally Bob Freed's.
  402.  
  403.            Acknowledgments..
  404.  
  405.                I would like to thank my parents for not killing me at any 
  406.                early age and my wife for not killing me at a later age...
  407.  
  408.                I would like to thank Bob Freed for his allowing me to 
  409.                examine his Z80 code before writing NARC. Bob wrote UNARC for 
  410.                the CP/M world and is ( as of this writing 4/28/87) working 
  411.                on NOAH the archiving program for CP/M. A special thanks to 
  412.                the following kind folks.
  413.  
  414.  
  415.                      Curt Edwards        Jerry Taylor
  416.                      Chuck Crumpton      Frank Roemer
  417.                      Paul Bowling        Dr. Matthew Witten 
  418.                      Paul Clarke         Kevin Able
  419.                      Carlisle Crutcher   H.W. Straley
  420.                      John R. Gernert     Mr. Dudley Hoffman
  421.                      Dr. Melvin Maron    Bob Fergus
  422.  
  423.  
  424.  
  425.  
  426.  
  427.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  428.           
  429.                                      Page 3
  430.  
  431.                                       ═══════════════
  432.                                       ABOUT ZIP FILES
  433.                                       ═══════════════
  434.  
  435.  
  436.                The ZIP file format was developed as the natural extension of 
  437.                the older LBR and ARC files. This new format allows much 
  438.                greater data integrity than we have ever had before with 
  439.                archive utilities. The 32 bit CRC implemented plus the use of 
  440.                both a central directory and a distributed directory, offers 
  441.                the very best archive integrity.
  442.  
  443.                NARC ZIP 3.0 AND ABOVE SUPPORTS BOTH ARC AND ZIP FILES
  444.  
  445.                The compression algorithms used in ZIP files are shrinking 
  446.                and reducing. The shrinking algorithm is basically the same 
  447.                as squashing and crunching used in ARC files, except, that 
  448.                the algorithm has been fine tuned to eliminate the wasted 
  449.                bytes in earlier implementations. The code length 
  450.                responsibility has been shifted from the decompressor to the 
  451.                compressor, which again offers an increase in compression 
  452.                ratios. The total string table clearing encountered in ARC 
  453.                files, has been replaced with a much more intelligent partial 
  454.                clear, which, instead of eliminating all strings that have 
  455.                been learned in the table, only parts of strings are 
  456.                eliminated and used again.
  457.  
  458.                The reducing algorithm is really a combination of two 
  459.                distinct algorithms, statistical compression and run length 
  460.                encoding (packing), just as crunching was a combination of 
  461.                LZW and packing. The statistical compression method takes 
  462.                advantage of certain statistical character pair occurences 
  463.                common in the English language, but the algorithm also fairs 
  464.                well with other languages and binary files.
  465.  
  466.                The ZIP file format was developed by IDC and PKware and 
  467.                several other individuals after much discussion. The LZW 
  468.                algorithm improvements were readily visualized by all 
  469.                parties, but the reducing algorithm was developed by Phil 
  470.                Katz and PK-friends and has shown itself to be very powerful, 
  471.                as we have seen files compressed as much as 99%.
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  490.           
  491.                                      Page 4
  492.  
  493.                                        ═════════════
  494.                                        COMPATIBILITY
  495.                                        ═════════════
  496.  
  497.  
  498.                NARC is compatible with all known "skrunching" algorithms, 
  499.                that is up to and including Squashing. NARC is compatible 
  500.                with PKarc, PKpak and PKzip. NARC supports both .ARC and .ZIP 
  501.                files and recognizes the .ARK extension soon to be prevalent 
  502.                in the CP/M world via Bob Freed's CP/M archive facility, 
  503.                NOAH.
  504.  
  505.  
  506.                          ═════════════════════════════════════════
  507.                          ARCHIVE STORAGE METHODS SUPPORTED BY NARC
  508.                          ═════════════════════════════════════════
  509.  
  510.  
  511.  
  512.                          Packing         - all versions
  513.                          Squeezing       - Huffman Coding
  514.                          Crunching       - all versions (LZW encoding)
  515.                          Squashing       - one version
  516.  
  517.  
  518.                            ═════════════════════════════════════
  519.                            ZIP STORAGE METHODS SUPPORTED BY NARC
  520.                            ═════════════════════════════════════
  521.  
  522.  
  523.  
  524.                       Reducing          - statistical compression + packing
  525.                       Shrinking         - very intelligent LZW algorithm
  526.  
  527.  
  528.  
  529.                            Note: LZW stands for Lempel-Ziv-Welch
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  552.           
  553.                                      Page 5
  554.  
  555.            OverView...
  556.  
  557.                NARC first searches the default path for ZIP, ARC and ARK 
  558.                files and if any are found they are displayed in the ZIP-
  559.                window on the left side of the screen. The arrow keys (or the 
  560.                mouse), PgUP,PgDN, Home and End may be used to move the 
  561.                cursor bar up and down the window, there are two ways to 
  562.                select the highlighted ZIP file.
  563.  
  564.                  (1) Hit the ENTER key
  565.                  (2) Press the left mouse button
  566.  
  567.  
  568.                After selecting the sub-file of interest, NARC displays all 
  569.                of the ZIP sub-files and their statistics on the screen. You 
  570.                are also given a menu bar at the bottom of the screen. You 
  571.                may use the arrow keys or the mouse to move the cursor bar to 
  572.                the desired selection and then select with the  ENTER key or 
  573.                the left mouse button. As the cursor bar is moved, you are 
  574.                also given a brief description of the highlighted command. A 
  575.                file may be located in the list by the now common ALT-letter 
  576.                key combination. This applies to all menus in NARC. The 
  577.                commands will now be discussed individually.
  578.  
  579.                Note: You may also select any option from the command bar by
  580.                entering the first letter of the command.
  581.  
  582.  
  583.                     The ESCape key will abort any operation or window.
  584.  
  585.  
  586.                                         Video Modes
  587.  
  588.  
  589.                NARC will determine whether a monochrome or color video 
  590.                adapter is being used and act accordingly. If a CGA or EGA 
  591.                card is detected, then NARC will select 80 x 25 color mode, 
  592.                unless color has been turned off with NARCCFG. The users 
  593.                video mode and cursor shape is saved when NARC is invoked and 
  594.                restored upon exit or shell. On EGA/VGA equipped systems, the 
  595.                F2 key may be used to toggle NARC into and out of 25 and 43 
  596.                line modes.
  597.  
  598.                                        Mouse Support
  599.  
  600.                NARC will determine if a mouse driver is present. If so, then 
  601.                NARC's mouse support routines are enabled and working at all 
  602.                times within the program. The left mouse button ALWAYS 
  603.                emulates the ENTER key (for selecting highlighted items) and 
  604.                the right mouse button ALWAYS emulated the ESC key (for 
  605.                aborting operations). Highlight bar movement can always be 
  606.                accomplished with mouse motion. The sensitivity of mouse 
  607.                motion can be changed with NARCCFG. The mouse routines were 
  608.                written with the Microsoft mouse in mind and any mouse that 
  609.                is compatible with the Microsoft mouse should work.
  610.  
  611.  
  612.  
  613.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  614.           
  615.                                      Page 6
  616.  
  617.                                            Sound
  618.  
  619.                NARC makes use of the 8253 programmable interval timer chip 
  620.                and speaker port to create some gurgles,bleeps,whistles and 
  621.                burps in general, that some folks like and some don't. The 
  622.                chip is programmed for square wave output in mode 3. The 
  623.                sound may be permanently disabled with NARCCFG. NARC 
  624.                determines microprocessor speed and adjusts the sound 
  625.                routines accordingly so that the sounds are pretty much the 
  626.                same on all machines.
  627.  
  628.  
  629.                                    ENVIRONMENT VARIABLES
  630.  
  631.  
  632.                If you don't know what an environment variable is, then 
  633.                continue reading. If you DO know, then skip to "The Goods" 
  634.                section below.
  635.  
  636.                Note that all of the environment information can be 
  637.                configured directly into NARC zip 3.0 and above with NARCCFG. 
  638.                However, this information can be overridden with the 
  639.                environment variables. The environment variables are given 
  640.                precedence so that if you take your NARCCFG'd version to 
  641.                another machine, you can do a quick temporary set up with the 
  642.                environment variables.
  643.  
  644.  
  645.                                       What are they ?
  646.  
  647.                An environment variable is a convenient way for programs to 
  648.                communicate with DOS or with each other through a commonly 
  649.                shared spot(s) in memory. If you type "SET" <ENTER> at the 
  650.                DOS prompt, DOS will respond by showing you the current spot 
  651.                of shared memory which we call the environment. These text 
  652.                strings can be created,read, modified and deleted at any time 
  653.                by any program. Each variable has a certain format that must 
  654.                be adhered to. The format is as follows,
  655.  
  656.                                   variable_name = string
  657.  
  658.                          An example would be  IDCED=C:\UTILITY\WS
  659.  
  660.                Spaces are allowed before and after the equal sign. This 
  661.                variable will mean absolutely nothing to DOS, but, to NARC, 
  662.                it will show the way to your editor. The variable name here 
  663.                is IDCED and the string is C:\UTILITY\WS which is the 
  664.                pathname for finding WordStar on the disk. You can change 
  665.                this string to anything you want by simply typing --- SET 
  666.                IDCED= (and type your pathname for your editor). NARC uses 
  667.                several of these environment variables to communicate with 
  668.                you and you should set them up in your AUTOEXEC.BAT file.
  669.  
  670.                What do I do if DOS says, "Out of Environment Space" ?
  671.  
  672.                DOS reserves only so much space for the environment strings, 
  673.                and if you have a long search path or a lot of strings, then 
  674.  
  675.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  676.           
  677.                                      Page 7
  678.  
  679.                you may run out of space. I can offer two suggestions, one 
  680.                for DOS 3.1 and one for DOS 3.2. There is a "switch" that you 
  681.                can add to your CONFIG.SYS file (If you don't have one, then 
  682.                you should !). One of the lines in your config.sys file 
  683.                should read Shell=C:\COMMAND.COM or something similar. You 
  684.                can add the following to the end of this line to increase 
  685.                your environment space.
  686.  
  687.                      DOS 3.1 -      /E:nn    where nn = 10 up to 62. This
  688.                                              number times 16 is the length
  689.                                              of your environment.
  690.  
  691.                           example:  Shell=c:\command.com c:\ /P/E:10
  692.  
  693.                                     This would reserve 160 bytes.
  694.  
  695.                      DOS 3.2 - add  /E:nnnn  where nnnn is the actual
  696.                                              number of bytes to reserve.
  697.  
  698.                           example: Shell=c:\command.com c:\ /P /E:160
  699.  
  700.                                     This would reserve 160 bytes.
  701.  
  702.  
  703.                Environment variables can be set up in your Autoexec.bat file 
  704.                as follows.
  705.  
  706.  
  707.                           Set IDCARCPATH=c:\utility\idcshell.exe
  708.                              Set IDCED=c:\wordproc\editor.ext
  709.  
  710.  
  711.  
  712.                 The Goods ..
  713.  
  714.                      IDCED=c:\editors\ws.exe
  715.  
  716.                          Use this variable to tell NARC where your 
  717.                          editor is located, so that when the F9 key is 
  718.                          pressed to invoke the editor, NARC will know 
  719.                          where to locate it. The drive and path and 
  720.                          editors name must be given (in upper or lower 
  721.                          case). The file extension (.COM or .EXE) MUST 
  722.                          be given.
  723.                
  724.                      IDCARCPATH=c:\utility\idcshell.exe
  725.  
  726.                          Use this variable to tell IDCshell where to 
  727.                          find IDCshell when the "I" key is pressed. As 
  728.                          with IDCED, the drive and path and filename 
  729.                          and extension must be given.
  730.  
  731.                      NARCHELP=c:\utility\narchelp.hlp
  732.  
  733.                          Use this variable to tell NARC where to find 
  734.                          the NARC help file when the F1 key is pressed.
  735.  
  736.  
  737.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  738.           
  739.                                      Page 8
  740.  
  741.                      IDCTEMP=e:\ramdisk
  742.  
  743.                          Use this variable to tell NARC where it can 
  744.                          place temporary work files. If you have a 
  745.                          ramdisk set up, then this would be a good use 
  746.                          for it since all file operations will be MUCH 
  747.                          faster from the ramdisk.
  748.                                THE HELP SCREEN
  749.  
  750.  
  751.                From the files screen, it is always possible to get a context 
  752.                sensitive help screen. Hitting the F1 or F10 key will cause a 
  753.                full screen of help to pop up that has information specific 
  754.                to the command that the cursor bar was pointing to.
  755.  
  756.                Once the help window is opened up, it is then possible to get 
  757.                help on any of the commands. The Home key will take you to 
  758.                the help index (as will the "I" key). The window may be  put 
  759.                at any time with the ESC key.
  760.  
  761.                NOTE: There are several commands that are listed under
  762.                      miscellaneous commands in the INDEX section of the
  763.                      help screens, so be sure to check them out.
  764.  
  765.  
  766.                                     ════════
  767.                                     COMMANDS
  768.                                     ════════
  769.  
  770.  
  771.            ═══════════════
  772.            Extract Command
  773.            ═══════════════
  774.  
  775.                Selecting this option will cause another prompt to be 
  776.                displayed, asking whether you wish to extract the highlighted 
  777.                file or tagged files. (Files are tagged with the space bar). 
  778.                "Point and shoot" here again as before. The ESC key or the 
  779.                right mouse button will abort the operation. If the disk 
  780.                becomes full, you will be informed and have the option of 
  781.                aborting or continuing.
  782.  
  783.  
  784.            Highlighted File
  785.  
  786.                When EXTRACT is selected, you will be asked for a drive/path 
  787.                to extract the file to. If you simply hit ENTER or the left 
  788.                mouse button, the file will be extracted to the default 
  789.                drive/path. You may also enter any valid DOS drive/path. The 
  790.                ESC key or the right mouse button will abort the operation.
  791.          
  792.                 NOTE: Control-R can be used to recall the last path that
  793.                       files were extracted to.
  794.  
  795.  
  796.  
  797.  
  798.  
  799.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  800.           
  801.                                      Page 9
  802.  
  803.            Tagged Files
  804.  
  805.                The Space bar (or F3 key) is used to TAG the current file. 
  806.                When a file is tagged, a diamond will be displayed on the 
  807.                line with the current file in column 80.  The space bar will 
  808.                also unTAG a file, thus it is a "toggle". When the space bar 
  809.                is pressed, a diamond will appear as described above and  the 
  810.                cursor bar will move to the next file. When the "TAGGED" 
  811.                option is selected from the command line, all files that have 
  812.                been tagged, will be extracted to the SAME drive/path.
  813.  
  814.                After the file is extracted, it's date and time are set to 
  815.                those contained in the ZIP file. The file is also checked for 
  816.                size and CRC, if both of these do not match exactly what was 
  817.                contained in the ZIP file header, then an error has occurred 
  818.                and the user is notified. The files will also remain tagged 
  819.                after the extraction.
  820.  
  821.  
  822.            ════════════
  823.            View Command
  824.            ════════════
  825.  
  826.                This option will display the currently highlighted file on 
  827.                the screen. The PgUP, PGDN, Home and End keys, as well as the 
  828.                cursor keys allow movement through the file. The file to be 
  829.                viewed is first extracted to the default drive (or to 
  830.                whereever the IDCTEMP variable points) to a file called 
  831.                NARC.TMP. This file is deleted when the view is ended. The 
  832.                extraction is performed due to the sequential nature of ZIP 
  833.                files, which makes it nearly impossible to perform the page 
  834.                up,down operations on the compressed file itself. If NARC 
  835.                finds that there is not enough disk space or directory space 
  836.                to create NARC.TMP, you will be asked for another drive where 
  837.                the temporary file can be created.
  838.  
  839.                The newest addition to the view command in NARC 2.1 is the 
  840.                text search command. Simply hit "S" and you will be prompted 
  841.                for a string to find. When located, the text will be 
  842.                highlighted on the screen, otherwise a message is issued 
  843.                stating that the text was not found. The search is case 
  844.                insensitive, that is you may enter upper or lower case 
  845.                letters and NARC will find a match.
  846.  
  847.                 The mouse is also supported now in the view function.
  848.  
  849.            ═════════════
  850.            Print Command
  851.            ═════════════
  852.  
  853.                The print option will print the currently highlighted file. 
  854.                After selecting the print option, you will be asked which 
  855.                character pitch you want to print in. Enter the number that 
  856.                you wish (or 0 for the default pitch) and the printer will be 
  857.                set to that pitch.
  858.  
  859.  
  860.  
  861.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  862.           
  863.                                      Page 10
  864.  
  865.          NOTE: The printer strings that come installed with NARC are compatible
  866.                with EPSON printer strings. If you wish to install NARC with
  867.                your own strings, see NARCCFG.DOC for complete instructions.
  868.  
  869.                After selecting selected the printer pitch, you will be shown 
  870.                three more options for formatting the printout. Use the arrow 
  871.                keys to move left and right. The space bar is used to toggle 
  872.                the options ON or OFF. When you have finished and are ready 
  873.                to print, hit ENTER (or left mouse button). The ESC key or 
  874.                the right mouse button will abort at any time. The options 
  875.                are;
  876.  
  877.                  Format -        YES - This option causes NARC to format the
  878.                                        output with page breaks and page numbers.
  879.                                  NO  - NARC does not format the file.
  880.  
  881.          The following two options work independently of the Format option.
  882.  
  883.                  Strip High -    YES - NARC will strip the high bit off each
  884.                                        character before it is sent to the
  885.                                        printer. Some word processors set this
  886.                                        high bit on some characters as a means of
  887.                                        text formatting. These characters will
  888.                                        print as garbage usually.
  889.                                  NO  - NARC will not strip the high bit.
  890.  
  891.                  Strip Control - YES - NARC will strip all control characters
  892.                                        from the file before it is printed. This
  893.                                        is useful on files that have embedded
  894.                                        formatting characters, and you wish to
  895.                                        have NARC provide the formatting.
  896.                                  NO  - NARC will not strip the control chars.
  897.  
  898.                NOTE: On all of the following windows, the PG UP, PG DN,
  899.                      HOME and END keys in addition to the cursor keys
  900.                      allow movement through the window.
  901.  
  902.  
  903.            ════════════════
  904.            ZIP-wind Command   
  905.            ════════════════
  906.                This option will display the window containing all of 
  907.                the ZIP, ARC or ARK files in the current sub-directory. 
  908.                Move the cursor bar up and down with the mouse or arrow 
  909.                keys and select with the  ENTER key or left mouse 
  910.                button.
  911.  
  912.            ════════════════
  913.            DRV-wind Command
  914.            ════════════════
  915.  
  916.                This option will pop up a window that contains all of 
  917.                the logical drives that DOS reports to NARC. Select as 
  918.                before and the ZIP-window will be popped up so that you 
  919.                can then choose a ZIP file to examine.
  920.  
  921.  
  922.  
  923.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  924.           
  925.                                      Page 11
  926.  
  927.            ═══════════════
  928.            DirTree Command
  929.            ═══════════════
  930.  
  931.                This command is totally new with release 2.1. The old 
  932.                window approach won a lot of criticism and rightfully 
  933.                so. I had a tree routine that I wrote some time ago, 
  934.                that I just wasn't happy with speed-wise and didn't want 
  935.                to stick that thing in NARC. I did have some nice ideas 
  936.                for a new routine that would be much faster and slicker 
  937.                all around and finally found the time to write it and 
  938.                NARC  release 2.1 has it, you may judge for yourself.
  939.  
  940.                A visual tree is presented that displays all 
  941.                subdirectories on the disk. Once the tree has been read, 
  942.                NARC will not read it again, unless you have changed 
  943.                drives.
  944.  
  945.                From the tree, you can create and delete subdirectories, 
  946.                select a new drive or subdirectory or return with no 
  947.                action at all. The ESC key will abort the tree 
  948.                operations.
  949.  
  950.            ════════════
  951.            Quit Command
  952.            ════════════
  953.  
  954.                The exit options have been changed so that now you will 
  955.                be prompted for where you wish to exit the program. You 
  956.                have the choice of exiting to the current directory or 
  957.                the original directory where NARC was invoked from. This 
  958.                can be made totally automatic with the NARCCFG program 
  959.                in the registered version.
  960.  
  961.            ══════════════════
  962.            ALTERNATE COMMANDS
  963.            ══════════════════
  964.  
  965.                The extra commands can be located on the help screens, 
  966.                which are invoked by the F1,F10 or ? keys.
  967.  
  968.            F1 - key
  969.                           Invokes the context sensitive help system.
  970.  
  971.            F2 - key
  972.                          This key allows toggling between 25 and 43 
  973.                          line modes on EGA/VGA systems. On CGA/MONO 
  974.                          systems, it will have no effect.
  975.  
  976.            F3 - key
  977.                          This key will tag a subfile and move the 
  978.                          cursor bar on to the next subfile. This key 
  979.                          also has other functions, and they are also 
  980.                          shown on the screen when necessary.
  981.            F4 - key
  982.                          The F4 key will print an image of the screen 
  983.                          less the advertisement and command lines. 
  984.  
  985.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  986.           
  987.                                      Page 12
  988.  
  989.  
  990.            F5 - key
  991.                          Invokes the NARC-DOS command processor. You 
  992.                          may then enter any valid DOS command. When 
  993.                          finished, simply hit ENTER by itself and you 
  994.                          will be returned to NARC. You may also enter 
  995.                          "COMMAND" which will invoke a second copy of 
  996.                          COMMAND.COM, if the file COMMAND.COM is in 
  997.                          your search path. To return to NARC, you would 
  998.                          then type "EXIT". 
  999.  
  1000.            F6 - key
  1001.                          This key will tag all of the subfiles in the 
  1002.                          archive for subsequent extraction.
  1003.  
  1004.            F7 - key
  1005.                          This key will invert all of the tags on the 
  1006.                          subfiles, that is all files that were tagged 
  1007.                          will become untagged and vice-versa.
  1008.  
  1009.            F9  - key
  1010.                          This key will call your editor. Note that you 
  1011.                          MUST have first set up the environment 
  1012.                          variable IDCED before this function can be 
  1013.                          used -OR- in NARC 3.0 and above, you may also 
  1014.                          set the path to the editor permanently into 
  1015.                          NARC with NARCCFG in the registered version. 
  1016.                          See the section on environment variables.
  1017.  
  1018.            F10 - key
  1019.                          This key will call up the context sensitive 
  1020.                          help system.
  1021.  
  1022.        ALT-F10  - key
  1023.                          This sequence displays the trivia screen, 
  1024.                          where your serial number and other information 
  1025.                          is located.
  1026.  
  1027.  
  1028.            (F)ind command.
  1029.                          Will prompt for a wildcard filename to find in 
  1030.                          the sub-file list. Any number of characters 
  1031.                          may be used, for example, you may enter a 
  1032.                          single character and NARC will find the first 
  1033.                          file whose name begins with that character. 
  1034.                          Alternatively, you may enter a complete 
  1035.                          wildcard specification and NARC will attempt 
  1036.                          to find a match.
  1037.  
  1038.            (K)ill file command.
  1039.                          Will remove the currently highlighted sub-file 
  1040.                          from the archive. No additional disk space is 
  1041.                          required for temporary files.
  1042.  
  1043.          PgUP,PgDN,Home and End
  1044.                          These keys do what you might expect.  These 
  1045.                          functions work in all windows.
  1046.  
  1047.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1048.           
  1049.                                      Page 13
  1050.  
  1051.  
  1052.             (S)et search spec command.
  1053.                          When NARC searches the current directory for 
  1054.                          archive files, it normally searches for ZIP, 
  1055.                          ARC or ARK files. The .ARK may be changed to 
  1056.                          another extension (or wildcard extension) with 
  1057.                          this command. All subsequent searches will use 
  1058.                          the .ZIP and .ARC extension and the newly 
  1059.                          defined mask. This command may be used from 
  1060.                          the ZIP file window or from the subfile 
  1061.                          screen.
  1062.  
  1063.                          The extension may also be passed from the 
  1064.                          command line. Enter NARC /h for complete 
  1065.                          information.
  1066.  
  1067.             (I)DCshell command.
  1068.                          This command will run IDCshell.EXE.  Note 
  1069.                          that the environment variable IDCARCPATH must 
  1070.                          be set up before this command will work, 
  1071.                          unless IDCshell is in the current directory. 
  1072.                          IDCshell is the companion program to NARC and 
  1073.                          was be released in Aug - 88. This command 
  1074.                          provides a simple link between the arcing 
  1075.                          functions of IDCshell (and its copy / rename / 
  1076.                          delete/print/view etc...) functions. Note that 
  1077.                          NARC can also be called from IDCshell via its 
  1078.                          "N" command along with a filename. Note that 
  1079.                          in NARC zip 3.0 and above, the path for 
  1080.                          IDCshell can be permanently configured into 
  1081.                          NARC with NARCCFG in the registered version 
  1082.                          instead of using the environment variables.
  1083.  
  1084.  
  1085.                          Command line syntax:
  1086.  
  1087.                               NARC [drive:\path\subfilemask]
  1088.                If the drive:path\subfilemask is given, then NARC will 
  1089.                display all files that match the given specification in 
  1090.                the zipfile window when NARC is first invoked. If no 
  1091.                subfilemask is given, then NARC defaults to displaying 
  1092.                all ZIP/ARC/ARK files if no subfilemask is not given.
  1093.  
  1094.                If the drive and/or path is given, then NARC will search 
  1095.                the given drive or path for files that match the 
  1096.                subfilemask.
  1097.  
  1098.  
  1099.                                  TRIVIA STATUS SCREEN
  1100.  
  1101.                This screen shows some useful information about the 
  1102.                current NARC environment. It is invoked with the ALT-F10 
  1103.                command sequence from the subfiles screen.
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1110.           
  1111.                                      Page 14
  1112.  
  1113.  
  1114.                             Operating Hints and Shortcuts
  1115.  
  1116.  
  1117.  
  1118.                When NARC is first invoked, it pops up the ZIP-window 
  1119.                showing all of the ZIP/ARC files in the current directory. 
  1120.  
  1121.                NOTE: When the ZIP file window is onscreen, you may also 
  1122.                choose another file extension beside .ARK with the "S" 
  1123.                command. See the section entitled "Using extensions 
  1124.                besides .ZIP and .ARC".
  1125.  
  1126.                When there are no windows popped up, the "A" key or the 
  1127.                "Z" key  will pop up the ZIP file window, regardless of 
  1128.                where the command line cursor bar is. This is handy when 
  1129.                you have a lot of ZIP's that you want to thumb through, 
  1130.                with just the 2  mouse buttons or ENTER and F2 keys, you 
  1131.                can look through a whole directory of ZIP files in 
  1132.                nothing flat ! Also along  these lines, when the ZIP 
  1133.                window is on the screen, the right mouse button or the 
  1134.                ESCape key will exit the program.
  1135.  
  1136.                NARC buffers 64k of the input file at one time, thus 
  1137.                speeding up file operations. The output buffer is 32k 
  1138.                and should be larger in the next version. NARC requires 
  1139.                about 220K of RAM to operate.
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.                        (This prime advertising space for rent)
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1172.           
  1173.                                      Page 15
  1174.  
  1175.  
  1176.                Note that the arrows keys may be used to move the error 
  1177.                message box up and down the screen. This feature is provided 
  1178.                so that if the message covers up something on the screen that 
  1179.                you would like to see, you may move the box.
  1180.  
  1181.  
  1182.                                 ══════════════════════
  1183.                                    Error Messages.
  1184.                                 ══════════════════════
  1185.  
  1186.          Memory Allocation Error.
  1187.                          - NARC allocates memory when it is invoked, 
  1188.                          this says that DOS told NARC that there was 
  1189.                          not enough memory left to run the program
  1190.  
  1191.          ERROR: Extraction Failed due to CRC error, Hit ENTER
  1192.                          - After a file is extracted, the CRC contained 
  1193.                          in the ZIP header is compared to the CRC that 
  1194.                          NARC calculates, this message says  that the 
  1195.                          two were different. This is the CRC-16 
  1196.                          polynomial in ARC/ARK files and CRC-32 in ZIP 
  1197.                          files.
  1198.  
  1199.          ERROR: Extraction Failed due to FileSize error
  1200.                          - Same as above, except with filesize
  1201.  
  1202.          ERROR: Disk File Inconsistency.  Hit ENTER
  1203.                          - This will usually mean that the user has 
  1204.                          swapped disks just after telling NARC to 
  1205.                          View,Print or Extract and NARC does not 
  1206.                          recognize the file, or it may also be 
  1207.                          displayed as the result of reading/extracting 
  1208.                          a damaged ZIP file.
  1209.  
  1210.          ERROR: Incompatible Crunch Format
  1211.                          - Says that either the stowage code for this 
  1212.                          file is not supported by NARC -OR- there is an 
  1213.                          error in the ZIP header
  1214.  
  1215.          ERROR: Extraction Failed due to Lack of Disk Space
  1216.                          - Abort will stop tagged extraction, continue 
  1217.                          will try to fit next file. 
  1218.  
  1219.          Squeezed File Has a Diseased Decode Tree.
  1220.                          - When unsqueezing a file, NARC has found a 
  1221.                          bad entry in the decode table.
  1222.  
  1223.          ERROR: No directory space on destination!
  1224.                          - Self explanatory
  1225.  
  1226.          Bad Path Name, Hit ENTER
  1227.                          - The destination path that the user entered 
  1228.                          for extraction is not a valid DOS pathname, 
  1229.                          re-enter.
  1230.  
  1231.  
  1232.  
  1233.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1234.           
  1235.                                      Page 16
  1236.  
  1237.          Requires DOS version 2.0 or above.
  1238.                          - NARC requires DOS 2.0 or above to operate.
  1239.  
  1240.          Invalid archive file format
  1241.                          - NARC could not find any ZIP headers, this is 
  1242.                          probably not a ZIP or ARC file.
  1243.  
  1244.          Warning: Bad archive file header, bytes  skipped = xxxxx
  1245.                          - If an entry has a bad header, NARC will 
  1246.                          examine the next 64k bytes looking for a good 
  1247.                          header.  This is to maintain compatibility 
  1248.                          with self-unpacking ARC files.
  1249.  
  1250.          Unexpected end of  archive file
  1251.                          - Says that NARC couldn't find the last ZIP 
  1252.                          header
  1253.  
  1254.          No matching file(s) in archive
  1255.                          - ZIP file is empty
  1256.  
  1257.  
  1258.          Cannot create work file, enter drive for temporary file
  1259.                          -there was not enough directory space or disk 
  1260.                          space to create NARC.TMP for viewing. Enter a 
  1261.                          drive letter where NARC can create the 
  1262.                          necessary work file. The file will be deleted 
  1263.                          when the view has ended.
  1264.   
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1296.           
  1297.                                      Page 17
  1298.  
  1299.                      ════════════════════════════════════════════
  1300.                      ARCHIVE FILE FORMATS AND GENERAL INFORMATION
  1301.                      ════════════════════════════════════════════
  1302.  
  1303.  
  1304.                 For Those With a Little More Curiosity...
  1305.  
  1306.  
  1307.                The following are the currently supported stowage methods.
  1308.  
  1309.                 1    unpacked (obsolete)
  1310.                 2    unpacked
  1311.                 3    packed
  1312.                 4    squeezed (after packing)
  1313.                 5    crunched (obsolete)
  1314.                 6    crunched (after packing) (obsolete)
  1315.                 7    crunched (after packing, using faster hash algorithm)
  1316.                 8    crunched (after packing, using dynamic LZW variations)
  1317.                 9    Squashed c/o Phil Katz (no packing) (var. on crunching)
  1318.  
  1319.                 NOTE:    LZW is Lempel-Ziv-Welch compression algorithm
  1320.  
  1321.                          A little about the stowage methods.
  1322.  
  1323.                          ══════════════════════════════════
  1324.                          Packing   (or run length encoding)
  1325.                          ══════════════════════════════════
  1326.  
  1327.                This is the simplest of the storage methods. Suppose 
  1328.                that you  have a line of text and at the end of the 
  1329.                line, you have 40 spaces. These 40 spaces are compressed 
  1330.                into 3 bytes in the ZIP file by the "packer". The first 
  1331.                byte is the actual character to be expanded (in our case 
  1332.                a space). The second  byte is a special "flag" byte that 
  1333.                indicates that we need to expand these bytes when we 
  1334.                extract the file. The third byte is the count byte (in 
  1335.                our case it would be 40). So you can see that any time 
  1336.                the compressor finds repeated bytes like this, it can 
  1337.                compress them into 3 bytes. The anomalous case to watch 
  1338.                out for here is when the count byte is the same 
  1339.                character as the "flag" byte, this proved to be a 
  1340.                difficult roach to kill !
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1358.           
  1359.                                      Page 18
  1360.  
  1361.                               ══════════════════════════
  1362.                               HUFFMAN CODING (SQUEEZING)
  1363.                               ══════════════════════════
  1364.  
  1365.  
  1366.  
  1367.                It does, at first, seem that making a file smaller would 
  1368.                be an impossible task. I will make an attempt here to 
  1369.                shed a little light on this subject since that is a 
  1370.                question that I hear pretty frequently and it is not a 
  1371.                two minute discussion question. It does require some 
  1372.                thought.
  1373.  
  1374.                To compress a file with the Huffman algorithm, commonly 
  1375.                called squeezing, the first thing that must be done is 
  1376.                to read the file completely and count the occurrences of 
  1377.                each character. That is you count the "A" 's and the "B" 
  1378.                's and so forth. There are 256 characters in the 
  1379.                extended ASCII character set, of which approximately 90 
  1380.                are "printable", that is you can see them on the screen. 
  1381.                The IBM set has more "printables", but that is of no 
  1382.                consequence, since the squeezer deals only with the 
  1383.                numbers and doesn't care whether or not the file is an 
  1384.                ASCII text file or an EXE file. Once the squeezer has 
  1385.                counted the occurrences of each character, thus the 
  1386.                frequency of occurrence, it scans the table for the 
  1387.                characters that appear the least number of times and 
  1388.                forms an imaginary link between them, called a node. 
  1389.                Somewhere else in the tree, we will later develop a 
  1390.                pointer that points to this node. When you start putting 
  1391.                all of these things together, you will form a binary 
  1392.                tree in memory. Confused enough ? Let us try an example.
  1393.  
  1394.                We have a file that is 100 bytes long and has 6 
  1395.                different characters in it. We have counted the 
  1396.                occurrence of each of the characters and found the 
  1397.                following.
  1398.  
  1399.  
  1400.                  quantity        character
  1401.  
  1402.                           5 -    D
  1403.                          10 -    A
  1404.                          10 -    F
  1405.                          20 -    B
  1406.                          25 -    E
  1407.                          30 -    C
  1408.  
  1409.                The spelling in the file wasn't very good, but we don't care. 
  1410.                Now we take these numbers and will call them the  
  1411.                frequency of each character. We then arrange the table 
  1412.                as below. This is an arbitrary arrangement, but it is 
  1413.                useful here so as to make our tree readable on the 
  1414.                screen. The arrangement makes no difference.
  1415.  
  1416.  
  1417.  
  1418.  
  1419.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1420.           
  1421.                                      Page 19
  1422.  
  1423.                 Frequency        20      10      5       10      30      25
  1424.  
  1425.                 Character        B       A       D       F       C       E
  1426.  
  1427.  
  1428.                We then examine the table to find the two characters 
  1429.                with the smallest frequency of occurrence. In our case, 
  1430.                it is obvious that one of them is 5,but which 10 do we 
  1431.                choose. As it turns out, it doesn't matter which one you 
  1432.                choose, we will arbitrarily choose the F. We draw lines 
  1433.                from the D and the F to form our node (the box below).
  1434.  
  1435.  
  1436.                 Frequency        30      10     5        10      20      25
  1437.  
  1438.                 Character        C       A      D         F       B       E
  1439.                                                 \        /
  1440.                                                  \      /
  1441.                                                    ╔══╗
  1442.                                                    ║15║ = 5 + 10
  1443.                                                    ╚══╝
  1444.  
  1445.  
  1446.                The number in the box is the sum of the frequencies of 
  1447.                the D and F characters. Now we again look for the lowest 
  1448.                two frequencies, except, this time we do not consider 
  1449.                the D and F characters individually, we instead consider 
  1450.                the node. The lowest two now are the A and the node, 
  1451.                that is 10 and 15. We again do some artwork.
  1452.  
  1453.  
  1454.                Frequency      30      10         5        10      20      25
  1455.  
  1456.                Character       C      A          D         F       B      E
  1457.                                       \          \       /               
  1458.                                        \          \     /
  1459.                                         \          ╔══╗
  1460.                                          \         ║15║ = 5 + 10
  1461.                                           \        ╚══╝
  1462.                                            \      /
  1463.                                             \    / 
  1464.                                              ╔══╗
  1465.                                              ║25║ = 10 + 15
  1466.                                              ╚══╝
  1467.  
  1468.  
  1469.                We look at the table again for the next two lowest 
  1470.                frequencies and now find B and E. We continue in this  
  1471.                fashion until the entire "tree" is built, that is until 
  1472.                it all condenses to one node. The leaves are the actual  
  1473.                characters at the top of the tree and the nodes 
  1474.                represent branch joints with the root at the bottom.
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1482.           
  1483.                                      Page 20
  1484.  
  1485.                 Frequency    30        10        5        10    20        25
  1486.  
  1487.                 Character    C         A        D         F     B        E
  1488.                               \         \       \         /      \       /
  1489.                                \         \       \       /        \     /
  1490.                                 \         \         ╔══╗            ╔══╗
  1491.                                  \         \        ║15║            ║45║
  1492.                                   \         \       ╚══╝            ╚══╝
  1493.                                    \         \      /              /
  1494.                                     \         \    /              /
  1495.                                      \         ╔══╗              /
  1496.                                       \        ║25║             /
  1497.                                        \       ╚══╝            /
  1498.                                         \       /             /
  1499.                                          \     /             /
  1500.                                           ╔══╗              /
  1501.                                           ║55║             /
  1502.                                           ╚══╝            /
  1503.                                             \            /
  1504.                                              \          /
  1505.                                                 ╔════╗
  1506.                                                 ║ROOT║
  1507.                                                 ╚════╝
  1508.  
  1509.  
  1510.                Now that our tree is made up, we can encode the file. We 
  1511.                start at the root (always). To encode the first 
  1512.                character (leaf) of the tree (the letter C), we trace up 
  1513.                the tree until we hit the letter C at the top. Along our 
  1514.                journey, if we make a left turn, we record a 0 bit, and 
  1515.                a 1 for a right turn. So for the C, we would go left to 
  1516.                55 (and record a 0) and then left again to the letter C 
  1517.                (and record another 0),so the Huffman code for our 
  1518.                letter C is 00. For A we go left to 55, right to 25 and 
  1519.                left to A and it becomes 010. By doing all of the 
  1520.                letters this way, we find the following.
  1521.  
  1522.  
  1523.                          C = 00          ( 2 bits )
  1524.                          A = 010         ( 3 bits )
  1525.                          D = 0110        ( 4 bits )
  1526.                          F = 0111        ( 4 bits )
  1527.                          B = 10          ( 2 bits )
  1528.                          E = 11          ( 2 bits )
  1529.  
  1530.                Mind that the zeroes and ones above are bits and not 
  1531.                bytes. Each character was represented in the original 
  1532.                file by 8 bits (one byte) and since we have reduced the 
  1533.                number of bits needed to represent each character, we 
  1534.                therefore reduce the size of the file. The savings add 
  1535.                up as follows,
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1544.           
  1545.                                      Page 21
  1546.  
  1547.                 character  frequency     original bits    squeezed bits  savings
  1548.  
  1549.                 C            30           30 x 8 = 240      30 x 2 = 60    180
  1550.                 A            10           10 x 8 = 80       10 x 3 = 30     50
  1551.                 D             5            5 x 8 = 40        5 x 4 = 20     20
  1552.                 F            10           10 x 8 = 80       10 x 4 = 40     40
  1553.                 B            20           20 x 8 = 160      20 x 2 = 40    120
  1554.                 E            25           25 x 8 = 200      25 x 2 = 50    150
  1555.                          ══════════               ══════            ═════  ═════
  1556.                 Totals      100                    800              240    560
  1557.                                                     │                
  1558.                            original file size ──────┘                │
  1559.                            squeezed file size ───────────────────────┘
  1560.  
  1561.  
  1562.                240 is 30% of 800, so we have compressed this file by 
  1563.                70%. Golly Wally, that seems pretty good. The rub lies 
  1564.                in the fact that in order to reconstruct the original 
  1565.                file, we must have access to the decode tree and since 
  1566.                each tree will be different for each file, we must 
  1567.                therefore save the tree with the file. It turns out that 
  1568.                the tree can have only 256 nodes in a bytewise 
  1569.                compression technique and each node will hold 4 bytes as 
  1570.                pointers,a full table will be about 1k long. The table 
  1571.                in our example has 5 nodes plus the 6 leaf nodes (where 
  1572.                our characters are), totaling 11. 4 times 11 is 44 and 
  1573.                if we add a few bytes for storing the node count and 
  1574.                some other statistics, our table is about 50 bytes long. 
  1575.                If we look at the 240 in the above table this gives the 
  1576.                total number  of bits that it will take to encode the 
  1577.                file, divide 240 by 8 to get the number of bytes (30) 
  1578.                and add it to our 50, we get a  compressed file size of 
  1579.                80 bytes. Since our original file was 100 bytes, we have 
  1580.                achieved a 20% reduction in file size. Not bad. What we 
  1581.                have really accomplished is a translation of character 
  1582.                sets, with our new set requiring less space than the 
  1583.                original ASCII set.
  1584.  
  1585.                 How far can we go ?
  1586.  
  1587.                If we look at the maximums that we can obtain for the 
  1588.                different bit combinations in a optimally skewed tree, that 
  1589.                is a tree that is not exactly symmetrical, we find that we 
  1590.                can have only 4 - 2 bit codes, 8 - 3 bit codes, 16 - 4 bit 
  1591.                codes, 32 - 5 bit codes, 64 - 6 bit codes, 128 - 7 bit codes, 
  1592.                the remaining 4 will be 8 bit codes.
  1593.  
  1594.  
  1595.                                  2       - 1 bit codes
  1596.                                  4       - 2 bit codes
  1597.                                  8       - 3 bit codes
  1598.                                  16      - 4 bit codes
  1599.                                  32      - 5 bit codes
  1600.                                  64      - 6 bit codes
  1601.                                  128     - 7 bit codes
  1602.                               --------
  1603.                                  254
  1604.  
  1605.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1606.           
  1607.                                      Page 22
  1608.  
  1609.                And since we have a total of 256 different bytes to 
  1610.                encode, the remaining 2 characters  must have 8 bit 
  1611.                codes. If we add the number of bits that this 
  1612.                represents,we find a total of 1554 bits or 195 bytes. So 
  1613.                at maximum, we have compressed the 256 bytes to 195 or 
  1614.                33%, thus the idealistic  maximum that can be  achieved 
  1615.                with the Huffman algorithm is 33% when using a byte 
  1616.                level implementation.
  1617.  
  1618.                One final note; The Huffman scheme requires the input 
  1619.                file to be read twice, once to count characters and 
  1620.                frequencies and then again to do the  actual encoding. 
  1621.                The major differences in Huffman coding and  crunching 
  1622.                lie in the fact  that crunching is a one pass operation 
  1623.                and does not require the table to be stored with the 
  1624.                file. Both, however, are extremely vulnerable to errors, 
  1625.                for example, imagine what would happen if you skipped 
  1626.                one bit when squeezing the file, all of the remaining 
  1627.                characters in the file would  become the proverbial 
  1628.                garbage, since we are looking at the file on a bit 
  1629.                level.
  1630.  
  1631.  
  1632.                NARC uses the method described in K. & R. pp. 130 for 
  1633.                setting up the binary tree with several modifications. 
  1634.                The simple binary tree is acceptable for this, since the 
  1635.                tree never grows and therefore will never become 
  1636.                unbalanced.
  1637.  
  1638.                If you followed that, now go back and read the second 
  1639.                paragraph again, maybe it will make sense this time.
  1640.  
  1641.                             ═════════════════════════════
  1642.                             CRUNCHING/SQUASHING/SHRINKING
  1643.                             ═════════════════════════════
  1644.  
  1645.  
  1646.                Crunching began with an article by J. Ziv and A. Lempel 
  1647.                in IEEE Trans. Information Theory, May 1977, where the 
  1648.                method was originally described. Terry A. Welch wrote a 
  1649.                definitive application article in IEEE Computer, June 
  1650.                1984 which described in detail how to apply the 
  1651.                algorithm and some  common problems encountered. Thus 
  1652.                the name LZW compression.
  1653.  
  1654.                Crunching takes the Huffman coding method a step further 
  1655.                as it does not include a table with the crunched file. 
  1656.                The crunching algorithm also "learns" as it proceeds 
  1657.                through the file. If it finds repeated strings in the 
  1658.                file, they will be encoded into a table. This table is 
  1659.                set up (in NARC's implementation) as a 4096 by 3 table. 
  1660.                Each entry is formatted as <PREF>,<SUFFIX>, where PREF 
  1661.                is a 2 byte pointer to another entry. SUFFIX is the byte 
  1662.                for this entry. Representing the PREF's as pointers 
  1663.                rather than values speeds up most operations in NARC. 
  1664.                This idea came from Bob Freed and is very trick.
  1665.  
  1666.  
  1667.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1668.           
  1669.                                      Page 23
  1670.  
  1671.                One obvious benefit of crunched files is the fact that 
  1672.                there is no need to  include the encoding table in the 
  1673.                compressed file as was the case with squeezing. Another 
  1674.                great benefit is the fact that    crunching is a one 
  1675.                pass operation as opposed to the two pass situation in 
  1676.                squeezed files.
  1677.  
  1678.                Crunching begins by creating an "atomic" table, that is 
  1679.                a table in RAM that contains 256 entries, one for each 
  1680.                character in the extended  ASCII set. The values range 
  1681.                sequentially from 0 to 255. The table entries are 
  1682.                arranged as follows.
  1683.  
  1684.                  Prefix Pointer (2 bytes) and Suffix byte (1 byte)
  1685.  
  1686.                In this initial table setup, the Suffix bytes are the 0 
  1687.                through 255 mentioned above. These are the "atomic"  
  1688.                characters, in that they must be in the table  before  
  1689.                crunching or uncrunching can begin, since all files 
  1690.                contain  some portion of this character set. We do not 
  1691.                know which characters will be included in any given file 
  1692.                and which ones will be excluded,so we must include them 
  1693.                all in our initial table. Once this table is set up, we 
  1694.                can begin crunching.
  1695.  
  1696.                The Prefix pointer will contain a value that is a 
  1697.                pointer to another string. When the table is initially 
  1698.                set up, there are no other strings, so this Prefix 
  1699.                pointer is set to a special "Null" string, that is it 
  1700.                points nowhere. We must be careful when crunching the 
  1701.                file, to look for this special pointer and act 
  1702.                accordingly when we encounter it.
  1703.  
  1704.                This Prefix and Suffix business is used to "build" long 
  1705.                strings. If we read the input file and found that the 
  1706.                first character was the letter "I", we would look this 
  1707.                letter up in the string table by hashing (computing an 
  1708.                address). If we found the letter in the table (which we 
  1709.                certainly will on the first character), then we output 
  1710.                it's "hashed" address as a code to the output file (the 
  1711.                crunched file). Suppose then, that the next character 
  1712.                input from the file was the letter "D", the cruncher 
  1713.                would then look at the I and the D together to see if 
  1714.                they exist as a string in the table. Well of course, 
  1715.                since this is the second character of the file, we know 
  1716.                that it doesn't, so the cruncher forms a new entry in 
  1717.                the string table. This entry has  as its' Prefix 
  1718.                pointer, a value that "points" to the letter "I" entry 
  1719.                in the table, that we made a minute ago. The suffix byte 
  1720.                in this case would be the letter "D". Now another code 
  1721.                is output to the crunched file, representing the letter 
  1722.                "D". Well this is great,  we  have  now turned 2 bytes 
  1723.                from the input file (16 bits) into 3 bytes in the output 
  1724.                file (24 bits). You are correct, crunching begins by  
  1725.                "not crunching" , but it is a crazy world ! The real 
  1726.                value becomes apparent when we  run into this same 
  1727.                sequence "ID" in the input file again. Now we will find 
  1728.  
  1729.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1730.           
  1731.                                      Page 24
  1732.  
  1733.                an entry for it in the string table and we can  output a 
  1734.                single 12 bit code that stands for "ID", thus saving 4 
  1735.                bits. The cruncher continues "learning" strings like 
  1736.                this until the file is crunched. It should be noted that 
  1737.                the string table is dynamically changing as the input 
  1738.                file is processed.
  1739.  
  1740.                The early versions of crunching implemented, stopped 
  1741.                "learning" once the string table was full. This gave a 
  1742.                very poor compression ratio in some files. Versions 8 
  1743.                and 9 have an additional feature called adaptive reset, 
  1744.                where the string table is cleared and crunching begins 
  1745.                all over again ! This capability really helps the larger 
  1746.                files more than smaller files.
  1747.  
  1748.  
  1749.  
  1750.  
  1751.                              Details of Storage Versions
  1752.  
  1753.  
  1754.                NARC supports all of the current "skrunching" 
  1755.                algorithms. A brief description of each follows.
  1756.  
  1757.                                       Version    1
  1758.  
  1759.                 - "STORED" File is simply stored (obsolete now, 25 byte 
  1760.                header)
  1761.  
  1762.                  NOTE: Files stored with this version are rare.
  1763.  
  1764.                                       Version    2
  1765.                
  1766.                - "STORED" Current version of simple storage. This  
  1767.                version was implemented with the implementation of file 
  1768.                compression. The main difference in version 1 and 2 is 
  1769.                the ZIP header  (see header section below), version 1 
  1770.                has a header length 4 bytes smaller than any of the rest 
  1771.                of the storage  methods since in  version 1 there was no 
  1772.                need to  store the  original file length separately from 
  1773.                the stored file length since they were the same.
  1774.  
  1775.                                       Version 3
  1776.  
  1777.                - "PACKED" Repeated bytes are packed into a three byte 
  1778.                string (see Packing above)
  1779.  
  1780.                                       Version    4
  1781.                
  1782.                - "SQUEEZED" after packing. The file is first packed as 
  1783.                described above and then squeezed
  1784.  
  1785.                                       Version    5
  1786.  
  1787.                - "CRUNCHED" This is the first implementation of LZW 
  1788.                released. Uses fixed length codes and a complex hashing 
  1789.                function. (obsolete now) (See hashing below)
  1790.  
  1791.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1792.           
  1793.                                      Page 25
  1794.  
  1795.  
  1796.                NOTE: Files compressed with this version are hard to 
  1797.                find. Version was released only one month when next 
  1798.                version came out.
  1799.  
  1800.  
  1801.                                       Version    6
  1802.  
  1803.                - "CRUNCHED" after packing. The file is first packed and 
  1804.                then crunched. Uses fixed length codes and the same 
  1805.                hashing function as version 5.
  1806.  
  1807.                                       Version    7
  1808.  
  1809.                - "CRUNCHED" after packing. Same as version 6 except a 
  1810.                faster hashing function is used.
  1811.  
  1812.  
  1813.                                       Version    8
  1814.  
  1815.                - "CRUNCHED" after packing. Uses variable length codes 
  1816.                in the crunched file (9 to 12 bits) and has a faster 
  1817.                hash function (actually not hashing at all, but for the 
  1818.                sake of consistency, we will call it that). This version 
  1819.                also resets the string table when it becomes full which 
  1820.                benefits the compression ratio of larger files. This 
  1821.                resetting is commonly called an adaptive reset.
  1822.  
  1823.  
  1824.                                       Version    9
  1825.  
  1826.                - "SQUASHED" (variation on crunching scheme). This 
  1827.                version uses the same hashing function as version 8 but 
  1828.                varies the crunching codes from 9 to 13 bits. There is 
  1829.                also no packing, which affords the string table the 
  1830.                opportunity to "learn" longer codes and thus improve the 
  1831.                compression ratio (benefits "real large" files).
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1854.           
  1855.                                      Page 26
  1856.  
  1857.  
  1858.                ARC file header structure is same for both DOS and CP/M
  1859.  
  1860.                 Byte number      Value(s)        Meaning
  1861.                 ══════════════════════════════════════════════════════════════
  1862.                  1       1Ah             Header Flag
  1863.                  2       0-9             Compression Version
  1864.                  3-15    ---             ASCIIZ compressed filename
  1865.                  16-19   ---             Compressed file size in bytes
  1866.                                          Low Word, High Word with each word
  1867.                                          in LoHi format
  1868.                  20-21   bits            DOS date format
  1869.                          15-9            Year
  1870.                           8-5            Month
  1871.                           4-0            Day        (all zeroes means no date)
  1872.                  22-23   bits            DOS time format
  1873.                          15-11           Hours (military)
  1874.                          10-5            Minutes
  1875.                           4-0            Seconds
  1876.                  24-25   ---             CRC-16 in LoHi format of uncompressed
  1877.                                          file. ------- This is important.
  1878.                  26-29   ---             Original uncompressed  file size
  1879.                                  NOTE:   Version 1 files are not compressed
  1880.                                          so the length can be  found with
  1881.                                          bytes 16-19, also the header len
  1882.                                          for version 1 files is 25 bytes.
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1916.           
  1917.                                      Page 27
  1918.  
  1919.                 Hashing.....
  1920.  
  1921.                Hashing is simply an arithmetic way of coming up with an 
  1922.                address in a table. You have a set of input numbers 
  1923.                (codes) that will map one-to-one with the output codes 
  1924.                in an ideal situation. That is, each time you input a 
  1925.                certain number, you can rest assured that the output 
  1926.                will always return the same output number. This is not 
  1927.                quite the case in the current versions of .ARC files. 
  1928.                The reason is that the algorithm would require a MEG or 
  1929.                so of RAM for implementation. The utilization of a 
  1930.                smaller string table in all of the ARC programs 
  1931.                introduces the possibility of producing the same  output 
  1932.                number for 2 or more input numbers. This is called a 
  1933.                hash collision. This is handled separately in .ARC files 
  1934.                with what is called a "collision table", which helps to 
  1935.                locate the correct table entry.
  1936.  
  1937.  
  1938.                There are three versions of "hashing" used in ARC files.
  1939.  
  1940.            Hash1 - Key = upper 12 bits of lower 18 bits of unsigned square of
  1941.                  (prefix code + suffix byte) OR 800h
  1942.  
  1943.                  Used in stowage versions 5 and 6
  1944.  
  1945.            Hash2 - Key = lower 12 bits of unsigned product of
  1946.                  (prefix code + suffix byte) * 15073
  1947.  
  1948.                  Used in stowage version 7
  1949.  
  1950.            Hash3 - Key = next available address in table.
  1951.  
  1952.                  Used in stowage versions 8 and 9
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.      NARC.DOC   Copyright (c) 1987-89   Infinity Design Concepts, Inc.
  1978.           
  1979.                                      Page 28
  1980.  
  1981.          CRC calculations - ARC files
  1982.  
  1983.                NARC does not use the traditional table lookup method 
  1984.                for calculating the CRC of the file. The table approach 
  1985.                requires the table to be in RAM and takes up more space. 
  1986.                NARC calculates the CRC on the fly, which  requires no 
  1987.                table and saves space. The algorithm is taken from the 
  1988.                definitive article by Aram Perez in IEEE Micro, June 
  1989.                '83. The polynomial is X^16 + X^15 + X^2 + X^1 which is 
  1990.                not compatible with the Xmodem CRC.
  1991.  
  1992.  
  1993.                           - ZIP files
  1994.  
  1995.                The CRC calculated in ZIP files is a 32 bit CRC value, 
  1996.                which offers much greater error detection capabilties. 
  1997.                NARC builds a table and uses a table lookup method of 
  1998.                calculating the CRC values.
  1999.  
  2000.                Note that when NARC displays the CRC-32 used in ZIP 
  2001.                files, only the lower two bytes are displayed, but the 
  2002.                full 32 bits are used in all crc calculations.
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  End of NARC.DOC   Copyright (c) 1987-89    Infinity Design Concepts, Inc.
  2040.           
  2041.                                      Page 29
  2042.