home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / STARTKIT / UNARC.DOC < prev    next >
Text File  |  2000-06-30  |  31KB  |  623 lines

  1. File:     UNARC.DOC
  2. Subject:  User Documentation for UNARC Program
  3. Version:  1.6
  4. Date:     March 27, 1987
  5. ------------------------------------------------------------------------------
  6.  
  7.  
  8.                                     UNARC
  9.  
  10.                      CP/M Archive File Extraction Utility
  11.  
  12.  
  13.                  Copyright (C) 1986, 1987 by Robert A. Freed
  14.                              All Rights Reserved
  15.  
  16.  
  17.  
  18. This file provides user-level documentation and operating instructions for
  19. UNARC version 1.6, released March 27, 1987.  Refer to the notice at the end of
  20. this file regarding rights of use and distribution of this program.
  21.  
  22. The release message file, UNARC.MSG, provides a list of all additional files
  23. distributed with the current UNARC release and describes the program changes
  24. from the previous version 1.4 and 1.5 releases.
  25.  
  26.  
  27.  
  28. ABSTRACT
  29. --------
  30.  
  31. UNARC is a utility program for CP/M systems which allows the listing, typeout,
  32. printing, checking, and extraction of subfiles contained in "archive" library
  33. (*.ARC or *.ARK) files.  These are commonly used for compressed file storage
  34. on remote access bulletin board systems.  UNARC provides the CP/M user the
  35. ability to process such files after downloading them via modem from these
  36. remote systems.
  37.  
  38.  
  39.  
  40. REQUIREMENTS
  41. ------------
  42.  
  43. UNARC requires CP/M version 2 or higher.  The program is offered in two
  44. versions.  The standard version, UNARC.COM, requires a Z80 processor (or
  45. compatible equivalent, e.g. HD64180 or NSC800).  An alternate version,
  46. UNARCA.COM, is provided for systems with 8080 or 8085 processors (or 16-bit
  47. systems using the NEC V20 for CP/M emulation).  Identical capabilities are
  48. provided by the two program versions.
  49.  
  50.                                      NOTE
  51.  
  52.       Although UNARCA.COM can execute on ANY system capable of
  53.       supporting CP/M, it is larger and significantly slower than
  54.       UNARC.COM and should be avoided by users of Z80-based systems.
  55.  
  56. UNARC is written in Z80 assembly language and requires only 5K bytes of disk
  57. storage (6K for UNARCA).  As distributed, the program requires at least 30K
  58. bytes of available memory space (TPA) for full support of all archive file
  59. formats (31K TPA size for UNARCA).  (Smaller systems may be able to use some
  60. of the program's capabilities.)
  61.  
  62.  
  63.  
  64. ABOUT ARC/ARK FILES
  65. -------------------
  66.  
  67. The files which UNARC processes utilize a format that was introduced by the
  68. ARC shareware utility program, which executes on 16-bit computers running the
  69. MS-DOS (or PC-DOS) operating system.  This format has achieved widespread
  70. popularity since the ARC program first appeared in March 1985, and it has
  71. become the de facto standard for file storage on remote access systems
  72. catering to 16-bit computer users.  More recently this file format has
  73. achieved increased popularity on RCP/M (Remote CP/M) systems.
  74.  
  75.                                      NOTE
  76.  
  77.       Most RCP/M system operators have adopted the convention of naming
  78.       CP/M archive files with the filetype ARK.  This differentiates
  79.       these from MS-DOS archive files, which use the filetype ARC.  This
  80.       is a naming convention only:  There is no difference in format,
  81.       and UNARC will accept files of either type interchangeably.
  82.  
  83. An archive is a group of files collected together into a single file in such a
  84. way that the individual files may be recovered intact.  In this respect,
  85. archives are similar in function to libraries (*.LBR files), which have been
  86. commonplace on CP/M systems since 1982, when the original LU library utility
  87. program was introduced by Gary P. Novosielski.  (However, the two file formats
  88. are not compatible.)
  89.  
  90. The distinguishing characteristic of an ARC archive is that its component
  91. files are automatically compressed when they are added to the archive, so that
  92. the resulting file occupies a minimum amount of disk space.  Of course, file
  93. compression techniques have also been commonplace in the CP/M world since
  94. 1981, when the public domain SQ and USQ "squeeze and unsqueeze" programs were
  95. introduced by Richard Greenlaw.
  96.  
  97. The SQ/USQ programs and their numerous popular descendants utilize a well-
  98. known general-purpose form of data compression (Huffman coding).  This
  99. technique, which is also utilized in ARC files, performs well for many text
  100. files but often produces poor compression of binary files (e.g. object program
  101. .COM files).  The ARC program also provides an advanced data compression
  102. method, which it terms "crunching."  This method (which is based on the
  103. Lempel-Ziv-Welch or "LZW" algorithm) performs better than squeezing in most
  104. cases, often achieving 50% or better compression of ASCII text files, 15-40%
  105. compression of binary object files, and as much as 95% compression of bit-
  106. mapped graphics image files.
  107.  
  108. Five different methods are actually employed for storing files in an archive.
  109. The method chosen for a particular file is the one which results in the best
  110. compression for that file:
  111.  
  112. (1)  No compression ("unpacked").  The file is stored in its original form.
  113.  
  114. (2)  Run-length encoding ("packed").  Repeated sequences of 3-255 identical
  115.      bytes are compressed into a three-byte sequence.
  116.  
  117. (3)  Huffman coding ("squeezed").  Each 8-bit byte (after run-length encoding)
  118.      is encoded by a variable number of bits, with bit length (approximately)
  119.      inversely proportional to the frequency of occurence of the corresponding
  120.      byte.
  121.  
  122. (4)  LZW compression ("crunched").  Variable-length strings of bytes (in
  123.      theory, up to nearly 4000 bytes in length) are represented by a single
  124.      (maximum) 12-bit code (after run-length encoding).
  125.  
  126. (5)  LZW compression ("squashed").  This is a variation of crunching which
  127.      uses (maximum) 13-bit codes (and no run-length encoding).
  128.  
  129. Note that since one of the five methods involves no compression at all, the
  130. resulting archive entry will never be larger than the original file.
  131.  
  132.                                      NOTE
  133.  
  134.       The most recent release of the MS-DOS ARC program (version 5.20)
  135.       has eliminated squeezing as a compression technique.  However,
  136.       UNARC continues to process squeezed files for compatibility with
  137.       archives created by earlier versions of ARC and by other MS-DOS
  138.       archiving programs (notably PKARC).
  139.  
  140.       The squashed compression method was recently introduced by the
  141.       MS-DOS programs PKARC and PKXARC.  UNARC can process files which
  142.       use this method, although it is not universally accepted by other
  143.       MS-DOS archive extraction programs (including ARC).
  144.  
  145. During its lifetime, the ARC program has undergone numerous revisions which
  146. have employed different variations on some of the above methods, particularly
  147. LZW compression.  In order to retain compatibility with archives created by
  148. earlier program revisions, ARC stores a "version" indicator with each file in
  149. an archive.  Based on this indicator, the latest release of the ARC program
  150. can always extract files created by older releases (although it will only use
  151. the latest data compression versions when adding new files to an archive).
  152.  
  153.                                      NOTE
  154.  
  155.       The current release of UNARC supports archive file versions
  156.       generated by all releases of the following MS-DOS programs through
  157.       (at least) the indicated program versions:
  158.  
  159.          ARC  5.20 (24 Oct 86), by System Enhancement Associates, Inc.
  160.          ARCA 1.22 (13 Sep 86), by Wayne Chin and Vernon Buerg
  161.          ARCH 5.38 (26 Jun 86), by Les Satenstein
  162.          PKARC 2.0 (15 Dec 86), by Phil Katz (PKWARE, Inc.)
  163.  
  164.       (UNARC does not recognize, but is unaffected by, the non-standard
  165.       archive and file commenting feature of PKARC.)
  166.  
  167. Although the above discussion has emphasized the origin of archive files for
  168. the MS-DOS operating system, their use has recently spread to many other
  169. systems.  Programs compatible with MS-DOS ARC have appeared for UNIX, Atari
  170. 68000, VAX/VMS, and TOPS-20 systems.  A CP/M utility for building archive
  171. files will also be available in the near future.
  172.  
  173. For additional information about archive files and the MS-DOS ARC utility,
  174. refer to the documentation file, ARC.DOC, which is available from most remote
  175. access systems which utilize archive files.  For additional information about
  176. the LZW algorithm (and data compression methods in general), refer to the
  177. article "A Technique for High-Performance Data Compression", by Terry A.
  178. Welch, in IEEE Computer magazine, Vol. 17, No. 6, June 1984.
  179.  
  180.  
  181.  
  182. USING UNARC
  183. -----------
  184.  
  185. The UNARC program provides an on-line help message, which is generated by
  186. running the program with an empty command line:
  187.  
  188.  
  189.   A>UNARC
  190.  
  191.   UNARC  1.6  27 Mar 87
  192.   CP/M Archive File Extractor
  193.  
  194.   Usage:  UNARC [d:]arcfile[.typ] [d:][afn] [N|P|C]
  195.  
  196.   Examples:
  197.   B>UNARC A:SAVE.ARK *.*  ; List all files in CP/M archive SAVE on drive A
  198.   B>UNARC A:SAVE.ARC *.*  ; List all files in MS-DOS archive SAVE on drive A
  199.   A>UNARC SAVE            ; Same as either of above
  200.   A>UNARC SAVE *.* N      ; Same as above (no screen pauses)
  201.   A>UNARC SAVE *.DOC      ; List just .DOC files
  202.   A>UNARC SAVE READ.ME    ; Typeout the file READ.ME
  203.   A>UNARC SAVE READ.ME N  ; Typeout the file READ.ME (no screen pauses)
  204.   A>UNARC SAVE A:         ; Extract all files to drive A
  205.   A>UNARC SAVE B:*.DOC    ; Extract .DOC files to drive B
  206.   A>UNARC SAVE C:READ.ME  ; Extract file READ.ME to drive C
  207.   A>UNARC SAVE PRN.DAT P  ; Print the file PRN.DAT (no formatting)
  208.   A>UNARC SAVE *.* C      ; Check validity of all files in archive
  209.  
  210.  
  211. As shown by this help display, the UNARC utility provides the following
  212. capabilities:
  213.  
  214. (1)  Listing the directory of an archive
  215. (2)  Extracting component files from an archive
  216. (3)  Typing the contents of a component file at the console
  217. (4)  Printing a component file directly on the CP/M list device
  218. (5)  Checking the validity of an archive and its component files
  219.  
  220. The particular operation to be performed is determined by the form of the file
  221. parameter(s) in the command line, as described separately in the sections
  222. which follow.  The following characteristics apply to all operations:
  223.  
  224. The first command line parameter must specify the name of an archive file.  A
  225. drive name and filetype are optional.  The filetype, if omitted, defaults to
  226. "ARK" or, if no such file exists, the alternate (MS-DOS) default "ARC" is
  227. assumed.
  228.  
  229. The standard CP/M terminal control characters, CTRL-S (to suspend console
  230. output) and CTRL-C (to abort the program), may be used at any time.  CTRL-K
  231. may also be used as an alternate for CTRL-C.  Printer output to the CP/M list
  232. device may be obtained by typing CTRL-P at CCP command level before executing
  233. UNARC.
  234.  
  235. In addition, by default UNARC will pause after every 23 lines of console
  236. output.  At this time, the message "[more]" will appear at the bottom of the
  237. console screen.  The listing may be resumed by typing any key (other than
  238. CTRL-S, CTRL-C, or CTRL-K, which will function as described above).  If the
  239. space bar is used, one more line of console output will be displayed (over-
  240. writing the "[more]" message) and the program will again pause.  If any other
  241. key is typed (e.g. RETURN), another 23 lines of output will be allowed to
  242. scroll onto the screen before the next pause.  (LINE FEED may be used to
  243. prevent overprinting of the "[more]" line, e.g. for hard-copy terminals.)
  244.  
  245. If continuous display is desired, this automatic pause feature may be disabled
  246. by specifying "N" at the end of the command line.  The "N" must be the last
  247. command line character, and it must be preceded by a space.  Also, there must
  248. be two preceding file parameters on the command line.  E.g., note the
  249. difference between the following commands:
  250.  
  251.       A>UNARC SAVE N          ; Typeout the file N. in archive SAVE
  252.       A>UNARC SAVE *.* N      ; List all files in archive SAVE with no pauses
  253.  
  254. The N option may not be used in conjunction with the P (Print) or C (Check)
  255. options.
  256.  
  257.  
  258.  
  259. LISTING AN ARCHIVE DIRECTORY
  260. ----------------------------
  261.  
  262. By default, UNARC produces a detailed console listing of the component files
  263. in an archive.  (In fact, there is no way to suppress this listing; it is
  264. generated during all UNARC operations.)  If only the archive file name appears
  265. on the command line, UNARC will generate a complete directory of all component
  266. files in the specified archive file.  Otherwise, the second command line
  267. parameter may be used to select a particular file to be listed (or group of
  268. files, if it contains the ambiguous file specification characters "*" or "?").
  269. If no disk drive name is provided for the second parameter, and this parameter
  270. specifies a group of files, the directory listing is the only output generated
  271. by the program.
  272.  
  273. A sample directory listing is illustrated here:
  274.  
  275.  
  276. A>UNARC CODES
  277.  
  278. Archive File = CODES.ARK
  279.  
  280. Name           Length  Disk   Method  Ver  Stored Saved    Date    Time   CRC
  281. ============  =======  ====  ======== === ======= ===== ========= ======  ====
  282. ABLE    .DOC    24320   24k  Crunched  8    11777  52%  30 Apr 86 10:50a  42C0
  283. BRAVO   .COM    17152   17k  Squeezed  4    14750  14%   2 May 86  4:11p  8CBD
  284. CHARLIE .TXT      234    1k   Packed   3       99  58%   2 May 86  4:11p  8927
  285.         ====  =======  ====               =======  ===                    ====
  286. Total      3    41706   42k                 26626  36%                    58A4
  287.  
  288.  
  289. This listing is equivalent to the "verbose" listing of the MS-DOS ARC program
  290. (with the addition of the "Disk" and "Ver" fields, which are unique to UNARC).
  291. The listing requires a 78-column terminal width; there is currently no "short"
  292. listing format.
  293.  
  294. "Name" is the file name which will be generated if the file is extracted by
  295. UNARC on a CP/M system.  (This is not necessarily the same as the name
  296. recorded in the archive file.  Although CP/M and MS-DOS file naming
  297. conventions are identical, two conversions are made to guarantee file name
  298. validity under CP/M:  Lower-case letters are converted to upper-case, and
  299. non-printing characters are converted to dollar signs, "$".)  Archive entries
  300. are usually maintained (and hence listed) in alphabetic name order.
  301.  
  302. "Length" is the uncompressed file length, i.e. the number of bytes the file
  303. will occupy if extracted to disk, exclusive of any additional length imposed
  304. by the CP/M file system.  Note that MS-DOS permits files of arbitrary lengths
  305. (unlike CP/M which restricts all files to a multiple of 128 bytes).
  306.  
  307. "Disk" is the actual amount of disk space required to extract the file to a
  308. CP/M disk, expressed as a multiple of 1K (1024) bytes.  Note that this number
  309. is dependent on the disk data allocation block size.  (CP/M permits various
  310. block sizes, ranging from 1K to 16K bytes.  Typical sizes are 1K for single-
  311. density floppy disks, 2K for double-density floppies, and 4K for hard disks,
  312. although these values are quite system-dependent.)  In the absence of an
  313. explicit output drive name, UNARC uses the block size of the default
  314. (currently "logged") disk drive (i.e. the drive which appears in the CCP
  315. prompt).
  316.  
  317. "Method" is the compression method used, specified as "Unpacked", "Packed",
  318. "Squeezed", "Crunched", "Squashed", or "Unknown!".  If the method "Unknown!"
  319. appears, it most likely indicates (if not a faulty archive file) a newer
  320. release of the MS-DOS ARC program that supports a new compression method (or a
  321. new variation of an existing method).  In this case, a corresponding new
  322. release of UNARC will be required to extract the file.
  323.  
  324. "Ver" further identifies the version of compression used.  Currently, UNARC
  325. supports versions 1-9: unpacked files can have versions 1 or 2; packed files,
  326. version 3; squeezed files, version 4; crunched files, versions 5-8; and
  327. squashed files, version 9.  The highest version number associated with each
  328. compression method is the one generated by the most recent release of the
  329. MS-DOS ARC program.
  330.  
  331. "Stored" is the compressed file length, i.e. the number of bytes occupied by
  332. the file in the archive.  (This does not include the overhead associated with
  333. the directory information itself, which adds an additional 29 bytes to the
  334. size of each component file.)
  335.  
  336. "Saved" is the percentage of the original file length which was saved by
  337. compression; i.e., higher values indicate better compression.  (The MS-DOS ARC
  338. documentation refers to this as the "stowage factor.")  The value shown on the
  339. totals line applies to the archive as a whole, not including the directory
  340. overhead.
  341.  
  342. "Date" and "Time" refer to the last file modification, as of the time it was
  343. added to the archive.  (Date and time stamping is, of course, one of the nice
  344. features of MS-DOS which is lacking in standard CP/M 2.2.)
  345.  
  346. "CRC" is an internal 16-bit cyclic redundancy check value which is computed
  347. when a file is added to an archive (expressed in hexadecimal).  As a test of
  348. file validity, UNARC re-computes this value when it extracts a file (see
  349. below).  Note that this value is calculated by a different method than that
  350. used by either of the two popular public domain programs, CRCK and CHEK.  (It
  351. is however quite valid as a reliable error-detection mechanism.)  This value
  352. is shown in the listing for completeness only.  The value shown on the totals
  353. line is the 16-bit sum of all displayed CRC values.  This is useful as a
  354. single "checksum" value for comparing entire archives.  (Since the CRC values
  355. are computed before compression takes place, the total should be the same for
  356. all archives created from the same set of input files, independent of any
  357. particular variations in file order or compression methods.)
  358.  
  359. The "Total" line is displayed only if multiple files appear in the listing,
  360. and it includes a count of the number of files listed.
  361.  
  362.  
  363.  
  364. EXTRACTING FILES FROM AN ARCHIVE
  365. --------------------------------
  366.  
  367. If the second command line parameter contains a disk drive name, UNARC will
  368. extract the selected file(s) from the archive to CP/M file(s) on the indicated
  369. disk drive.  If only a drive name appears, all component files of the archive
  370. will be extracted.  The following illustrates a sample archive directory
  371. listing as generated during a file extraction operation:
  372.  
  373.  
  374. A>UNARC CODES B:
  375.  
  376. Archive File = CODES.ARK
  377. Output Drive = B:
  378.  
  379. Name           Length  Disk   Method  Ver  Stored Saved    Date    Time   CRC
  380. ============  =======  ====  ======== === ======= ===== ========= ======  ====
  381. ABLE    .DOC    24320   24k  Crunched  8    11777  52%  30 Apr 86 10:50a  42C0
  382. Replace existing output file (y/n)? Y
  383. BRAVO   .COM    17152   18k  Squeezed  4    14740  14%   2 May 86  4:11p  8CBD
  384. Warning: Extracted file has incorrect CRC
  385. Warning: Extracted file has incorrect length
  386. Warning: Bad archive file header, bytes skipped = 10
  387. CHARLIE .TXT      234    2k   Packed   3       99  58%   2 May 86  4:11p  8927
  388.         ====  =======  ====               =======  ===                    ====
  389. Total      3    41706   44k                 26616  36%                    58A4
  390.  
  391.  
  392. The above listing also illustrates several warning messages which may occur
  393. when extracting files from an archive.
  394.  
  395. The message "Replace existing output file (y/n)?" appears if a file of the
  396. same name already exists on the output drive.  The user must answer "Y" (or
  397. "y") to allow the extraction to proceed (in which case, the existing file is
  398. unceremoniously deleted).  Any other response will cause UNARC to preserve the
  399. existing file, bypass the extraction operation for the current file, and
  400. (except for a CTRL-C response) skip to the next file to be extracted (if any).
  401.  
  402. The first two warning messages illustrated above are provided as a check on
  403. the validity of the extracted file.  These indicate that either the cyclic
  404. redundancy check (CRC) value computed by UNARC, or the resulting extracted
  405. file length, does not match the corresponding value recorded in the archive
  406. when the original file was added to it.  The final warning message occurs if
  407. UNARC fails to detect the proper format for the start of a new subfile, but
  408. can recover by skipping a certain number of bytes in the archive file.  (If
  409. the recovery attempt fails, UNARC aborts with the message "Invalid archive
  410. file format.")  The appearance of any of these messages most likely indicates
  411. that the file data has been corrupted in some way (e.g. during modem
  412. transmission from a remote system).
  413.  
  414. Note that if the original (i.e. MS-DOS) file length was not an exact multiple
  415. of 128 bytes (as required by CP/M), UNARC will pad the final record of the
  416. extracted file with hex "1A" (ASCII CTRL-Z) bytes.  This provides the correct
  417. end-of-file termination for text files, according to CP/M conventions.
  418.  
  419. Also, the disk space shown in the archive directory listing will be correct
  420. for the specified disk drive.  (In the above examples, drive A: has a 1K data
  421. allocation block size while drive B: has a 2K block size, which accounts for
  422. the differences in the two listings.)  In order to determine the exact disk
  423. space requirements in advance of a file extraction operation, the user may
  424. first "log into" the desired output drive (i.e. select it as the default
  425. drive), and run UNARC to obtain a directory listing only.  (This is a
  426. consideration only on systems with mixed disk drive types.)
  427.  
  428. A file extraction operation may be aborted at any time by entering CTRL-C from
  429. the console.  In this case, any partial output file will remain on disk and
  430. should be deleted manually following the program abort.  (Any existing file of
  431. the same name will have already been deleted, however.)
  432.  
  433.  
  434.  
  435. TYPING OUT A FILE IN AN ARCHIVE
  436. -------------------------------
  437.  
  438. A console typeout of the contents of a single component file in an archive may
  439. be requested by specifying a non-ambiguous file name (and no disk drive name)
  440. in the second command line parameter.  For example:
  441.  
  442.  
  443. A>UNARC CODES ABLE.DOC
  444.  
  445. Archive File = CODES.ARK
  446.  
  447. Name           Length  Disk   Method  Ver  Stored Saved    Date    Time   CRC
  448. ============  =======  ====  ======== === ======= ===== ========= ======  ====
  449. ABLE    .DOC    24320   24k  Crunched  8    11777  52%  30 Apr 86 10:50a  42C0
  450. -------------------------------------------------------------------------------
  451.  This is file ABLE.DOC, contained within the archive CODES.ARK.  Typeout will
  452.  proceed until the end of this file or may be aborted by CTRL-C.....
  453.  
  454.  
  455. The specified file is assumed to contain valid ASCII text data.  In
  456. particular, all bytes are masked to seven bits, and all ASCII control
  457. characters are ignored except for HT (horizontal tab, which is expanded to
  458. blanks with assumed tab stops at every eighth column), LF, VT or FF (line
  459. feed, vertical tab or form feed, which generate a new typeout line), and SUB
  460. (CTRL-Z, which by CP/M convention indicates end-of-file and terminates the
  461. typeout).  Note that BS (backspace) and CR (carriage return) are ignored, so
  462. that text will not be obscured within files which utilize these for over-
  463. printing (i.e. when directed to a printer).
  464.  
  465. The following filetypes, which are usually associated with binary (non-text)
  466. data, are specifically excluded from typeout operations:  COM, EXE, OBJ, OV?,
  467. REL, ?RL, INT, SYS, BAD, LBR, ARC, ARK, ?Q?, and ?Z?.  If one of these types
  468. is specified, only the directory information for the requested file is listed.
  469.  
  470. Note that CRC and file length checking are not performed during a typeout
  471. operation, as they are during extraction to a disk file.
  472.  
  473.  
  474.  
  475. PRINTING A FILE IN AN ARCHIVE
  476. -----------------------------
  477.  
  478. A single component file in an archive may be output directly to the printer
  479. (CP/M list device) by specifying a trailing "P" on the command line.  The "P"
  480. must be the last command line character, and it must be separated from the
  481. second file parameter by a space.  (The file parameter must specify a non-
  482. ambiguous file name and no disk drive name.)  For example:
  483.  
  484.       A>UNARC CODES CHARLIE.TXT P
  485.  
  486. The specified file is assumed to contain data suitable for printer output and
  487. is passed directly to the printer without alteration or additional formatting.
  488. This operation is particularly well-suited for output of binary graphics
  489. images on dot-matrix printers, since these can be extemely large but tend to
  490. compress quite well (e.g. to less than 5% of their original size).  Note that
  491. the binary data filetypes which are excluded from typeout operations are also
  492. excluded from printing operations.  Printing may be paused or aborted by use
  493. of the console CTRL-S and CTRL-C characters.
  494.  
  495.  
  496.  
  497. CHECKING FILES IN AN ARCHIVE
  498. ----------------------------
  499.  
  500. UNARC may be directed to extract one or more component files from an archive,
  501. without actually storing these as disk files, by specifying a trailing "C" on
  502. the command line.  This operation performs file CRC and length checking, and
  503. it is useful for verifying correct modem data transmission of an archive.  The
  504. "C" must be the last command line character, and it must be separated from the
  505. second file parameter by a space.  (The file parameter must not specify a disk
  506. drive name, which indicates extraction to disk.)  To check an entire archive,
  507. specify "*.*" for the second file parameter, for example:
  508.  
  509.       A>UNARC CODES *.* C
  510.  
  511.  
  512.  
  513. PROGRAM OPTIONS
  514. ---------------
  515.  
  516. UNARC provides several options which may be used to tailor the program for
  517. specific non-universal requirements.  Many of these are intended for RCP/M
  518. (Remote CP/M) system operators, to allow generation of a secure version of
  519. UNARC which can be used by remote callers for purposes of archive directory
  520. listing and/or file typeout only (but not file extraction).  Others are
  521. provided for specialized non-standard CP/M systems and need not concern the
  522. majority of users running CP/M 2.2, CP/M 3.0 (CP/M Plus), or ZCPR3/ZRDOS
  523. systems.  Additional options provide user preference features (such as the
  524. number of screen lines between console output pauses, or the list of filetypes
  525. excluded from typeout operations).
  526.  
  527. All of these options are described in UNARCOVL.ASM, an assembly language
  528. source file that can be edited and assembled to generate a HEX-format overlay
  529. for easy patching of the UNARC.COM or UNARCA.COM program files.  Complete
  530. details are provided for technically-oriented users in UNARCOVL.ASM.  However,
  531. the default options in the distributed program files are suitable for the
  532. majority of users with standard CP/M operating systems.
  533.  
  534.  
  535.  
  536. PROGRAM DISTRIBUTION
  537. --------------------
  538.  
  539. The UNARC program, its documentation, and all related files are distributed in
  540. archive file format (of course!).  The distribution file is named UNARCxx.ARK,
  541. where "xx" is derived from the current version number (e.g. UNARC16.ARK for
  542. version 1.6).  (This does not include the program source code, which is
  543. distributed separately.)  This archive has the special characteristic that it
  544. is "self-unpacking."  I.e., a separate copy of the UNARC.COM program file is
  545. NOT required to extract the component files from this archive.
  546.  
  547. The procedure for extracting the distribution files is quite simple:  First,
  548. copy or rename UNARCxx.ARK to a program file, UNARCxx.COM, on the current disk
  549. drive.  (Note that the filename, UNARCxx, must NOT be changed.)  Then, run
  550. this program with a single optional command line parameter specifying the disk
  551. drive to which all distribution files will be extracted (defaults to current
  552. drive).
  553.  
  554. For example, assuming UNARC16.ARK is on drive B: and the files are to be
  555. extracted to drive C:, the following CP/M commands may be used:
  556.  
  557.   A>B:                             ; Set current drive for UNARC16.ARK
  558.   B>REN UNARC16.COM=UNARC16.ARK    ; Rename it to UNARC16.COM
  559.   B>UNARC16 C:                     ; Run it to extract all files to drive C:
  560.  
  561. Note that this self-unpacking capability is provided only by the distributed
  562. archive file, and it will not work if that file is altered or reconstructed.
  563.  
  564.  
  565.  
  566. AUTHOR'S NOTE
  567. -------------
  568.  
  569. I undertook writing the UNARC program to satisfy my curiosity about software
  570. developments in the MS-DOS/PC-DOS world.  At the time I began work on UNARC,
  571. the MS-DOS ARC program had been in existence for over a year and had achieved
  572. widespread popularity and acceptance in the 16-bit community.   Unfortunately,
  573. the lack of a compatible equivalent for CP/M systems rendered a large amount
  574. of public domain software inaccessible to 8-bit users such as myself.  (Note
  575. that 16-bit software can indeed be of interest to users of 8-bit systems, e.g.
  576. Pascal and C language programs.)
  577.  
  578. Also, an increasing number of RCP/M systems now cater to both 8-bit and 16-bit
  579. users.  Since the release of UNARC 1.0 (May 3, 1986), I have been encouraged
  580. to see that the program has found a welcome home on many such systems.
  581. Special thanks are due to Irv Hoff and Norman Beeler for providing archive
  582. file support in the KMD20 and LUX52 series of programs, respectively.  With
  583. the increasing popularity of .ARC files on many different computer systems, I
  584. believe that continued such support of this compression format is both
  585. desirable and inevitable for CP/M systems.  At the time of this writing I am
  586. about to release NOAH, a companion program to UNARC which will allow CP/M
  587. users to generate ARC-compatible files.
  588.  
  589.                                       Bob Freed
  590.                                       March 27, 1987
  591.  
  592.  
  593.  
  594.                                     NOTICE
  595.  
  596.       The UNARC program and its associated documentation is the copy-
  597.       righted property of its author -- it is NOT in the public domain.
  598.       HOWEVER...  Free use, distribution, and modification of these
  599.       files is permitted (and encouraged), subject to the following
  600.       conditions:
  601.  
  602.       (1)  Such use or distribution must be for non-profit purposes only.
  603.       (2)  The author's copyright notice may not be altered or removed.
  604.       (3)  Modifications to this program or its documentation files may
  605.            not be distributed without notification of and approval by
  606.            the author.
  607.       (4)  The source program code may not be used, in whole or in part,
  608.            in any other publicly-distributed or derivative work without
  609.            similar notification and approval.
  610.  
  611.       No fee is requested or expected for the use and distribution of
  612.       this program subject to the above conditions.  The author reserves
  613.       the right to modify these conditions for any future revisions of
  614.       this program.  Questions, comments, suggestions, commercial
  615.       inquiries, and bug reports or fixes are welcomed by the author:
  616.  
  617.                            Robert A. Freed
  618.                            62 Miller Road
  619.                            Newton Centre, MA  02159
  620.                            Telephone (617) 332-3533
  621.  
  622. ------------------------------------------------------------------------------
  623.