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 / MBUG / MBUG044.ARC / SQUEEZE.DOC < prev    next >
Text File  |  1979-12-31  |  7KB  |  181 lines

  1.                       *** SQUEEZE.DOC ***
  2.  
  3. Thi≤ i≤ ß ver∙ abbrieviateΣ documen⌠ file« Thσ ful∞ 24δ versioε caε bσ founΣ ì
  4. oε bulletiε board≤ sucΦ a≤ TARDI╙ iε Melbourne« ╔ havσ provideΣ ß cut-dowε ì
  5. version so as to simplify it and make it fit on this disk. Sept 24th 1985
  6.                                                        Jan Roberts
  7.  
  8. USAGE AND RECOMPILATION DOCUMENTATION (June 18th, 1981)
  9.  
  10. SQ.COM/OBJ   Squeezes  files and creates a new one with similar 
  11.              name but with a Q in the file type. eg. xxx.dqc
  12.  
  13. USQ.COM/OBJ  Unsqueezes files created by SQ,  creating an exact 
  14.              replica of the original under the original name.
  15.  
  16. FLS.COM/OBJ  Produces parameter lists for SQ and USQ.  Its main 
  17.              purpose is to expand wild card  names,  especially 
  18.              *.?Q?.
  19.  
  20. The  overall  effect  is to be able to issue a  single  command 
  21. which  will produce many squeezed or unsqueezed files from  and 
  22. to various diskettes.
  23.  
  24. DISTRIBUTION RIGHTS: Unrestricted for non-profit use.
  25.  
  26. Any  file  can be squeezed,  but program source files and  text 
  27. files  benefit  the most,  typically shrinking  by  35%.  Files 
  28. containing  only a limited character set,  such  as  dictionary 
  29. files,  may  shrink  as much as 48%.  Squeezed files look  like 
  30. gibbersh and must be unsqueezed before they can be used.
  31.  
  32.  
  33. Both  SQ and USQ accept batches of work specified by  lists  of 
  34. file  names (with drives if needed) and miscellaneous  options. 
  35. They accept these parameters in any of three ways:
  36.  
  37.      1. On the CP/M command line.
  38.      2. From the console keyboard.
  39.      3. From a file.
  40.  
  41. The  FLS  program  can be used (on the same command  line!)  to 
  42. expand  parameter lists containing wild-card  (ambiguous)  file 
  43. names  into  lists with the specific file names required by  SQ 
  44. and USQ.
  45.  
  46. This  combination  of  programs allows you to  issue  a  single 
  47. command  which will produce many squeezed or  unsqueezed  files 
  48. from  and to various diskettes.  For example,  to unsqueeze all 
  49. squeezed  ASM files on drive B and send the results to drive  C 
  50. and  also unsqueeze all squeezed TXT files on drive A and  send 
  51. the results to drive D:
  52.  
  53.      A>fls c: b:*.aqm d: *.tqt |usq
  54.  
  55. The above example simulates a "pipe" (indicated by the "|")  by èsending  the  "console"  output  of the fls.com  program  to  a 
  56. temporary file and then running the sq.com program with options 
  57. which cause it to read its parameters from its "console" input, 
  58. which is really redirected to come from the temporary file.
  59.  
  60. USAGE TUTORIAL:
  61.  
  62. In  the simplest case either SQ or USQ can simply be given  one 
  63. or more file names (with or without drive names):
  64.  
  65.      A>sq xyz.asm
  66.      A>sq thisfile.doc b:thatfile.doc
  67.  
  68. will   create   squeezed  files   xyz.aqm,   thisfile.dqc   and 
  69. thatfile.dqc,  all on the current drive,  A. The original files 
  70. are  not disturbed.  Note that the names of the squeezed  files 
  71. arσ generateΣ b∙ rule≤ - yo⌡ don'⌠ specif∙ them« Wheε unsqueezing¼ thσ ì
  72. squeezed version remains on the disk.
  73.  
  74. Yo⌡ caε lis⌠ al∞ thσ file≤ yo⌡ caε fi⌠ iε ß command«  Thσ filσ name≤ giveε ì
  75. t∩ S╤ anΣ USQ must be specific.  
  76.  
  77.      A>sq x.asm b: y.asm z.asm c: d:s.asm
  78.  
  79. will create x.aqm on the current drive,  A,  y.aqm and z.aqm on 
  80. the B drive and s.aqm on the C drive. Note that the first three 
  81. originals  are  on  drive A and the last one  is  on  drive  D. 
  82. Remember that each parameter is processed in order, so you must 
  83. change the destination drive before you specify the files to be 
  84. created on that drive.
  85.  
  86.      A>usq -10 x.bas b:y.asm
  87.  
  88. will  not take the time to create unsqueezed files.  Instead it 
  89. will unsqueeze the first 10 lines of each file and display them 
  90. on  your console.  The display from each file consists  of  the 
  91. file names, the data and a formfeed (FF).
  92. Also,
  93.  
  94.      A>usq - c:xyz.mac
  95.  
  96. will  unsqueeze and display the first 65,535 lines of any files 
  97. listed.  That's  the  biggest number you can give  it,  and  is 
  98. intended to display the whole file.
  99.  
  100. SQ  and USQ will prompt with an asterisk and accept parameters from the 
  101. console keyboard. Each parameter must be followed by RETURN and 
  102. will  be processed immediately.  An empty command (just RETURN) 
  103. will cause the program to exit back to CP/M.  
  104.  
  105. Perhaps  you frequently squeeze or unsqueeze the same  list  of 
  106. files and you would like to type the list once and be done with 
  107. it.  Use  an editor (or FLS,  described below) to create a file 
  108. with one parameter per line. For example call it commands.lst.
  109. èA>sq <commands.lst
  110.  
  111. will  cause  the command list file to be read as  if  you  were 
  112. typing it! You will see it on the console.
  113.  
  114. That  was redirected console input.  Now assume that you have a 
  115. very  long list of files to squeeze or unsqueeze and while  you 
  116. are  taking  a nap the progress comments and maybe  some  error 
  117. comments scroll off the screen.  Redirecting the console output 
  118. will let you capture the progress information in a file so  you 
  119. can check it later.  The error comments will have the screen to 
  120. themselves.
  121.  
  122. For example,
  123.  
  124. A>sq <commands.lst >out
  125.  
  126. will  send the progress comments to the file "out",  which  you 
  127. can  TYPE  later.  The routine display of the program name  and 
  128. version, etc., will still go to the console.
  129.  
  130. A  more  practical example is to send that information  to  the 
  131. console and to the file.
  132.  
  133. A>sq <commands.lst +out
  134.  
  135. will do that.
  136.  
  137. Redirected  input  and  output are  independent  - you  can  do 
  138. either, both or neither.
  139.  
  140. There is one more form of redirection called a "pipe". 
  141.  
  142. FLS  is  intended primarily for use in pipes. Here is an example:
  143.  
  144. FLS  is smart enough to know that a letter followed by a  colon 
  145. and nothing else is a destination drive name intended for SQ or 
  146. USQ. It will also treat any parameter beginning with a - (minus 
  147. sign)  as  an  option to be passed through.  Anything  else  is 
  148. considered  a file name or pattern and is checked  against  the 
  149. directory of the appropriate drive.
  150.  
  151. Therefore you could use:
  152.  
  153. A>fls b: c:*.aqm *.aqm -10 stuff.dqc >temp.$$$
  154. A>usq <temp.$$$
  155. A>era temp.$$$
  156.  
  157. to  unsqueeze  all files of type aqm on drives C and A and  put 
  158. the unsqueezed files on drive B,  and then preview the first 10 
  159. lines of file stuff.dqc.
  160.  
  161. Here is where the pipe comes in.  The above three commands  can 
  162. be abbreviated as:
  163. èA>fls b: c:*.aqm *.aqm -10 stuff.dqc |usq
  164.  
  165. That little "|" is the pipe option and it causes the FLS output 
  166. to  be redirected to a temporary file and when that is done  it 
  167. actually runs USQ for you with the proper input redirection and 
  168. then erases the temporary file.
  169.  
  170. If that isn't enough,  you can still use the + or > redirection 
  171. option  at  the end of that line to capture the console  output 
  172. from USQ.
  173.  
  174. A>fls b: c:*.aqm *.aqm -10 stuff.dqc |usq >out
  175.  
  176. If  you plan your comments carefully you can produce  a  single 
  177. file  containing  an abstract of an entire library of  squeezed 
  178. files in one step!
  179.  
  180. A>fls -25 *.?q? |usq >abstract
  181.