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 / ENTERPRS / CPM / UTILS / A / ARCS.ZIP / ARCS.HLP < prev    next >
Text File  |  1989-10-13  |  13KB  |  392 lines

  1. Notice    
  2. Changes in the system    
  3. The problem    
  4. What is an archive? 
  5. File lists
  6. ARCADD  -- add files to an archive 
  7. ARCDEL  -- delete files from an archive
  8. ARCGET  -- retrieve files from an archive   
  9. ARCDIR  -- display archive directory    
  10. ARCTYPE -- display or print archive members 
  11. ARCCOPY  -- copy an archive (reorganize)
  12. ARCRUN -- run a program out of an archive
  13. Downloading from an archive
  14. :Notice
  15. Most programs originally conceived by Michael M. Rubenstein.
  16.  
  17. Original version (PL/I) Copyright 1982  Michael M. Rubenstein.
  18.  
  19. Current version (ASM) Copyright 1983   Dave Rand.
  20.  
  21. This documentation by Dave McCrady.  Applicable portions plagiar-
  22. ized from Mike Rubenstein's original .DOC, with thanks.
  23.  
  24. This  documentation  and the accompanying programs may be  freely 
  25. distributed  for noncommercial purposes provided that  the  copy-
  26. right notice is retained.
  27.  
  28. The archive programs were originally written in pl/i and compiled       
  29. using  the Digital Research Inc.  pl/i-80 compiler.   The current 
  30. version  is written in standard CP/M assembler and is  completely 
  31. compatable with Rubenstein's program.
  32.  
  33. This help file is for the following versions
  34.  
  35.      arcadd   1.32
  36.      arccopy  1.16
  37.      arcdir   1.30
  38.      arcget   1.11
  39.      arctype  1.31
  40.      arcrun   1.17
  41.      arcdel   1.12
  42.  
  43. :Changes in the system since the pl/i version: 
  44.  
  45.      - programs are very small (typically 2K) and run 
  46.        much faster. 
  47.  
  48.      - maximum use is made of memory buffers to speed up disk
  49.        i/o, particularly when building an archive. Buffers of
  50.        45-50K in a 64K CP/M configuration are typical.
  51.  
  52.      - ARCRUN has been implemented.  Used with ZCPR2's 
  53.        COMMAND RUN feature, its operation is invisible to
  54.        the user. 
  55.      
  56.      - most programs (except ARCRUN) can be executed either
  57.        straight from the command line or from a program
  58.        prompt.
  59.      
  60.      - ARCTYPE now displays squeezed as well as ascii files
  61.        and refuses to display most non-ascii files.
  62. :The problem
  63. Anyone who works with a computer,  soon finds that the disk space 
  64. is limited. It's amazing how fast a disk can fill up.
  65.  
  66. On  any CP/M system,  the file space allocation is at  least  1K. 
  67. Most  double density systems allocate 2K and many allocate 4K per 
  68. file.  If your disk contains a great many small files you can run 
  69. out of data space (or directory space) before you know it.
  70.  
  71. The ARCS  system  is a  collection of programs which take a large
  72. number  of  small files and combine them into a larger  file.  In 
  73. actual practice, another small file is built to keep track of the 
  74. large data file.  
  75.  
  76. For  example,  let's assume one of your disks contains  27  files 
  77. using  84k.  21 of these files are less than 2k of data.  Most of 
  78. these actually contain less than 1k of data.  The largest file is 
  79. 10k. Even this file could be wasting about 1.5k.
  80.  
  81. Run this disk through the ARCADD program.  That would reduce  the 
  82. space to about 48k for the data and 2k for the directory.  That's 
  83. a  lot  better.   You also save CP/M directory  space  since  one 
  84. extent is used for each 16K instead of one for each small file.
  85.  
  86. We  can do better still.  Now run the data file  through  Richard 
  87. Greenlaw's  excellant squeeze program.  That reduces it to  about 
  88. 30k  of  data  (and  still 2k of directory),  about  38%  of  its 
  89. original size.  Note,  however,  that ARCTYPE, ARCADD, ARCGET and 
  90. ARCRUN won't work with a squeezed archive.  
  91. :What is an archive?
  92. An  archive consists of two files,  a data file and  a  directory 
  93. file. The data files contains all the members of the archive. The
  94. directory file contains information on  what  files  are  in  the
  95. archive and where they are.
  96.  
  97. Usually,  you'll take the simple route and just specify the  name 
  98. as a single file name, such as
  99.  
  100.           source
  101.  
  102. This is interpreted as the archive
  103.  
  104.           (source.arc source.dir)
  105.  
  106. where  the  first  file is the data file and the  second  is  the 
  107. directory.  You can specify the drive (e.g.  b:source).  ... When 
  108. adding to or retrieving from an archive, you can omit the archive 
  109. name. In that case, the archive will be
  110.  
  111.           (archive.arc archive.dir)
  112.  
  113. In any case, you can just specify the drive. Specifying "b:" will 
  114. give you
  115.  
  116.           (b:archive.arc b:archive.dir)
  117. :File lists 
  118.  
  119. The add and get programs require a file list.
  120.  
  121. A file list may be a single (ambiguous) file name
  122.  
  123.           *.bas
  124.  
  125. or a list of (ambiguous) file names enclosed in parentheses
  126.  
  127.           (*.bas test.asm b:*.bas b:test.*)
  128.  
  129. Notice that the files may be on different drives.
  130. ...
  131.  
  132. There are some restrictions on the file names:
  133.  
  134.      - A temporary file (type .$$$) cannot be put in 
  135.        an archive.
  136.  
  137.      - A file with the name $$$.sub cannot be put in 
  138.        an archive.
  139.  
  140.      - A  file with the same name as the data or the 
  141.        directory  file can be put into  an  archive, 
  142.        but  it  cannot be successfully retrieved  to 
  143.        the same drive as the archive.
  144.  
  145.      - A null length file (0K) such as a drive header
  146.        cannot be put into an archive.
  147. ...
  148.  
  149.      - If  a  file name contains  parentheses,  they 
  150.        must  be  matching.   For  example,  you  can 
  151.        archive the file
  152.  
  153.           test(ab).dat
  154.  
  155.        but not the file
  156.  
  157.           test(ab.dat
  158.  
  159.      - If  a  file name begins with  a  left  paren-
  160.        theses,  you  may  not specify the file as  a 
  161.        single file without parentheses.   For  exam-
  162.        ple, you must specify
  163.  
  164.           ((test).*)
  165.  
  166.        rather than just
  167.  
  168.           (test).*
  169. ...
  170.  
  171. There  are no restrictions on the content of the files  which  go 
  172. into   an  archive.   However,   the  following  guidelines   are 
  173. recommended.
  174.  
  175.      - If  you are going to squeeze the  data  file, 
  176.        the members should be similar (e.g.  all pl/i 
  177.        programs or all program documentation files).
  178.  
  179.      - Squeezing  the directory isn't much use since 
  180.        it's pretty small.   If you do squeeze it you 
  181.        won't  be able to display the directory  very 
  182.        easily.
  183.  
  184.      - If  you squeeze,  you must  unsqueeze  before 
  185.        retrieving.
  186. :ARCADD -- add files to an archive    
  187. To  add files to an archive,  creating the archive if it does not 
  188. already exist, use the command
  189.  
  190.           arcadd <file list> [<archive name>]
  191.  
  192. or just use the command
  193.  
  194.                arcadd
  195.  
  196. to  get a short description.  You will then be prompted  with  an 
  197. asterisk  for  the parameters.  This will be repeated  until  you 
  198. enter a blank line.
  199.  
  200. Even if a file matches more than one specification,  it will only 
  201. be included once, so you can use the file list
  202.  
  203.           (*.bas test.*)
  204.      
  205. even  if  there is a  file  test.bas.  
  206. ...
  207.  
  208. If  a file with the same name as an added file is already in  the 
  209. archive, it will be deleted. The space used by the file will not, 
  210. however  be  reused in the archive.  The space may  be  recovered 
  211. using the arccopy program.
  212.  
  213. The  program  will  not let you add an archive  to  itself.  This 
  214. allows use of *.* even if the files are on the same drive as  the 
  215. archive. It is possible to add a file from another drive with the 
  216. same  name  as the archive,  but it will have to be retrieved  to 
  217. another drive also. 
  218.  
  219. ARCADD also permits the use of a handy, but dangerous, option. It
  220. erases a file after it has been added to an archive.    It is in-
  221. voked at the end of the command line.    Type a space followed by
  222. "/E".  In the case of our first example:
  223.  
  224.           arcadd <file list> [<archive name>] /E
  225.  
  226. would build the archive from your file list and  then delete each
  227. file in the list after it was added.    Needless to say,  this is
  228. NOT a recommended procedure on master copies.  A power failure or
  229. BDOS error in the middle of such an operation could result in the
  230. permanent loss of a file.  Use this option with care.
  231. :ARCDEL -- delete files from an archive
  232.  
  233. To delete individual files from an archive, use the command
  234.  
  235.           arcdel <name of archive> name of file
  236.  
  237. or just use the command
  238.  
  239.           arcdel
  240.  
  241. to get a short description.   Wildcards may  be  used  when 
  242. specifying file names, but not when specifying the archive.
  243.  
  244. :ARCGET -- retrieve files from an archive 
  245.  
  246. To get files from an archive, use the command
  247.  
  248.           arcget <file list> [<archive name>]
  249.  
  250. or just use the command
  251.  
  252.           arcget
  253.  
  254. to  get a short description.  You will then be prompted  with  an 
  255. asterisk  for  the parameters.  This will be repeated  until  you 
  256. enter a blank line.
  257. ...
  258.  
  259. The  drive specifiers in the file list determine which drive  the 
  260. file will be put on. It does not matter which drive it originally 
  261. came from.
  262.  
  263. Only the first matching file name is used for a file. For example 
  264. if you type
  265.  
  266.           arcget (a:test.* b:*.bas) arcname
  267.  
  268. the file test.bas will be put on drive a.
  269.  
  270. You will be told of any files in the list which had no match.  In 
  271. the above case, if test.bas is the only .bas file in the archive, 
  272. you will get a message that b:*.bas did not have a match. 
  273. :ARCDIR -- display archive directory
  274.  
  275. To display the directory of an archive, use the command
  276.  
  277.           arcdir <arcname>
  278.  
  279. This  will  display the names and sizes (in 128 byte sectors)  of 
  280. the  members in alphabetic order.  The final line of the  display 
  281. will be
  282.  
  283.      Using aaa records of bbb allocated (ccc%)
  284.  
  285. where aaa is the number of data records.
  286.       bbb is the number of records in the data file.
  287.       ccc is the percent usage. 
  288. ...
  289.  
  290. If you just use the command
  291.  
  292.           arcdir
  293.  
  294.      a  brief  description  of the program will  be  dis-
  295. played.
  296. :ARCTYPE -- display or print archive members
  297.  
  298. To type squeezed or ascii files from an archive, use the command
  299.  
  300.    arctype  [<archive name>] [<option>]
  301.  
  302. or just use the command
  303.  
  304.    arctype
  305.  
  306. to  get a short description.  You will then be prompted  with  an 
  307. asterisk  for  the parameters.  This will be repeated  until  you 
  308. enter a blank line. 
  309.  
  310. The file is displayed on  the console  with  paging  (the display
  311. pauses at the end of a page or of a file).
  312.  
  313. ...
  314.  
  315. During the type out, you may key the following characters.
  316.  
  317.      control s    --    suspend  output until a  key 
  318.                         is pressed.
  319.  
  320.      control x    --    skip to the next file
  321.  
  322.      control c    --    terminate typing of files
  323.  
  324. Only the first matching file name is used for a file. For example 
  325. if you type
  326.  
  327.           arctype (test.* *.bas) arcname
  328.  
  329. the file test.bas will be put on drive a.
  330.  
  331. You will be told of any files in the list which had no match.  In 
  332. the above case, if test.bas is the only .bas file in the archive, 
  333. you will get a message that b:*.bas did not have a match. 
  334. :ARCCOPY -- copy an archive (reorganize)
  335.  
  336. To copy an archive, use the command
  337.  
  338.           arccopy <old arcname> [<new arcname>]
  339.  
  340. or just use the command
  341.  
  342.           arccopy
  343.  
  344. to  get a short description.  You will then be prompted  with  an 
  345. asterisk  for  the parameters.  This will be repeated  until  you 
  346. enter a blank line.
  347.  
  348. The  major reason for using arccopy is to regain space lost  when 
  349. arcadd is used. 
  350. :ARCRUN -- run a program out of an archive
  351.  
  352. CP/M  command files can be placed in an archive and executed from 
  353. that archive. If you use the default name of PROGS you won't even 
  354. have to specify its name.  More on that in a moment.
  355.  
  356. Suppose,  for example,  you are logged to drive A and want to run 
  357. PIP, which you have in an archive called UTILITY.ARC. To run pip, 
  358. you would enter:
  359.  
  360.           arcrun -utility pip
  361.  
  362. But  there's an easier way.   Rename your archive to the  default 
  363. name of PROGS.ARC.  Now you can use PIP by entering:
  364.  
  365.           arcrun pip
  366.  
  367. Richard  Conn's new ZCPR2 software can make the entire  operation 
  368. invisible.   First, enable CMDRUN (Command Run) to  automatically 
  369. invoke  ARCRUN. Then  to use PIP from within  an  archive  called 
  370. PROGS.ARC you just enter:
  371.  
  372.           pip
  373.  
  374. When ZCPR2 doesn't find PIP.COM in  CP/M's  directory  it  orders 
  375. ARCRUN to get it from the archive and executes it from there.
  376. :Downloading from an Archive
  377.  
  378. The  XMODEM  in use here supports downloading  individual  member 
  379. files from an archive.  To use it, enter:
  380.  
  381.           xmodem a du:<name of archive> name of file
  382.  
  383. The  Drive/User  specification is optional and is needed only  if 
  384. the archive is on other than the default drive and user area.
  385.  
  386. There is no way to upload into an archive.
  387. hive.
  388. rt counter
  389. LCNT:    DB    0    ;line position counter
  390. ;
  391.     DS    64    ;room for 32 level stack
  392. STACK    DS    2    ;old cp/m (or mp