home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol060 / squeezer.doc < prev    next >
Text File  |  1985-02-09  |  23KB  |  513 lines

  1. USAGE AND RECOMPILATION DOCUMENTATION FOR:         7/18/81
  2.      SQ.COM    1.3  File squeezer
  3.      USQ.COM   1.4  File unsqueezer
  4.      FLS.COM   1.1  Ambiguous file name expander
  5.  
  6. DISTRIBUTION RIGHTS:
  7. ╔áá allo≈á unrestricteΣá non-profi⌠á distributioεá oµáá thi≤ ì
  8. softwarσá anΣá invitσá user≤ group≤á t∩á spreaΣá i⌠á around« ì
  9. However¼á an∙ distributioε fo≥ profi⌠ require≤ m∙ permissioε ì
  10. iεá advance«á Thi≤ applie≤ onl∙ t∩ thσ abovσ listeΣ program≤ ì
  11. anΣ thei≥ prograφ sourcσ anΣ documentatioε files«á ╔ d∩ sel∞  ì
  12. othe≥ software.
  13.  
  14. PURPOSE:
  15. Thσ filσ squeezer¼á SQ¼ compresse≤ file≤ int∩ ß morσ compac⌠ ì
  16. forφ.á This provides:
  17.      1.   Faster transmission by modem.
  18.      2«   Fewe≥ diskette≤ t∩ distributσ ß prograφá package« ì
  19.           (Include USQ.COM and instructions, both unsqueezed.)
  20.      3.   Fewer diskettes for archival storage.
  21.  
  22. An∙ filσ caε bσ squeezed¼á bu⌠ prograφ sourcσ file≤ anΣ tex⌠ ì
  23. file≤á benefi⌠ thσ most¼á typicall∙ shrinkinτ b∙ 35%«á File≤ ì
  24. containinτ onl∙ ß limiteΣ characte≥ set¼á sucΦ a≤ dictionar∙ ì
  25. files¼á ma∙ shrinδ a≤ mucΦ a≤ 48%«á SqueezeΣ file≤ looδ likσ ì
  26. gibbersΦ anΣ mus⌠ bσ unsqueezeΣ beforσ the∙ caε bσ used.
  27.  
  28. Thσá unsqueezer¼á USQ¼á expand≤á squeezeΣ file≤á int∩á exac⌠ ì
  29. duplicate≤á oµ thσ origina∞ o≥ provide≤ ß quick¼á unsqueezeΣ ì
  30. displa∙á oµá thσá top≤á oµá (o≥á al∞á of⌐á squeezeΣáá files« ì
  31. Unsqueezinτ require≤ onl∙ ß singlσ pass.
  32.  
  33. BotΦ S╤ anΣ US╤ accep⌠ batche≤ oµ worδ specifieΣ b∙ list≤ oµ ì
  34. filσá name≤á (witΦá drive≤á iµá needed⌐á anΣáá miscellaneou≤ ì
  35. options. 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. Thσá FL╙ prograφ caε bσ useΣ (oε thσ samσ commanΣ line!⌐á t∩ ì
  42. expanΣ paramete≥ list≤ containinτ wild-carΣ (ambiguous⌐ filσ ì
  43. name≤ int∩ list≤ witΦ thσ specifiπ filσ name≤ requireΣ b∙ S╤ ì
  44. anΣ USQ.
  45.  
  46. Thi≤á combinatioε oµ program≤ allow≤ yo⌡ t∩ issuσá ßá singlσ ì
  47. commanΣ whicΦ wil∞ producσ man∙ squeezeΣ o≥ unsqueezeΣ file≤ ì
  48. froφ anΣ t∩ variou≤ diskettes« Fo≥ example¼ t∩ unsqueezσ al∞ ì
  49. squeezeΣá AS═ file≤ oε drivσ ┬ anΣ senΣ thσ result≤ t∩ drivσ ì
  50. ├á anΣ als∩ unsqueezσ al∞ squeezeΣ TX╘ file≤ oε drivσ ┴á anΣ ì
  51. senΣ thσ result≤ t∩ drivσ D:
  52.      A>fls c: b:*.aqm d: *.tqt |usq
  53. For detailed instructions see USAGE.
  54. Thi≤á DOE╙á ruε unde≥ plaiε olΣ vanillß CP/Míá Man∙á oµá thσ ì
  55. smart≤á arσ burieΣ iε thσ CO═ file≤ iε thσ forφá oµá librar∙ ìèroutine≤á provideΣá witΦ thσ BD╙ ├ packagσá (availablσá froφ ì
  56. Lifeboat).
  57.  
  58. Thσá abovσ examplσ simulate≤ ß "pipeó (indicateΣ b∙ thσ "|"⌐ ì
  59. b∙ sendinτ thσ "consoleó outpu⌠ oµ thσ fls.coφ prograφ t∩á ß ì
  60. temporar∙á filσá anΣá theε runninτ thσ sq.coφá prograφá witΦ ì
  61. option≤á whicΦá causσá i⌠ t∩ reaΣ it≤á parameter≤á froφá it≤ ì
  62. "consoleó input¼ whicΦ i≤ reall∙ redirecteΣ t∩ comσ froφ thσ ì
  63. temporar∙ file.
  64.  
  65. THEORY:
  66. Thσá datßá iε thσ filσ i≤ treateΣ a⌠ thσ bytσá leve∞á rathe≥ ì
  67. theεá thσ worΣ level¼á anΣ caε contaiε absolutel∙á anything« ì
  68. Thσ compressioε i≤ iε tw∩ stages║ firs⌠ repeateΣ bytσ value≤ ì
  69. arσá compresseΣá anΣá theε ßá Huffmaεá codσá i≤á dynamicall∙ ì
  70. generateΣá t∩ matcΦ thσ propertie≤ oµ eacΦ particula≥á file« ì
  71. Thi≤ require≤ tw∩ passe≤ ove≥ thσ source data.
  72.  
  73. Thσá decodinτá tablσ i≤ includeΣ iε thσá squeezeΣá file¼á s∩ ì
  74. squeezinτá shor⌠á file≤ caε actuall∙á lengtheεá them«á FixeΣ ì
  75. decodinτá table≤á arσ no⌠ useΣ becausσ  EnglisΦ anΣá variou≤ ì
  76. compute≥á language≤ var∙ greatl∙ a≤ t∩ uppe≥ anΣ lowe≥á casσ ì
  77. proportion≤á anΣá usσ oµ specia∞á characters«á MucΦá oµá thσ ì
  78. saving≤á come≤á froφá no⌠á assigninτ code≤á t∩á unuseΣá bytσ ì
  79. values.
  80.  
  81. Morσ detaileΣ comment≤ arσ includeΣ iε thσ sourcσ files.
  82.  
  83. USAGE TUTORIAL:
  84. A≤ usual¼ yo⌡ havσ t∩ learε ho≈ t∩ tel∞ thσ program≤ wha⌠ t∩ ì
  85. d∩á (i.e.¼á wha⌠ parameter≤ t∩ typσ afte≥ thσ prograφ name)« ì
  86. Firs⌠ ╔ wil∞ introducσ thσ variou≤ possibilitie≤ b∙ example« ì
  87. Then I will summarize the rules.
  88.  
  89. Iεá thσ simples⌠ casσ eithe≥ S╤ o≥ US╤ caε simpl∙á bσá giveε ì
  90. onσ o≥ morσ filσ name≤ (witΦ o≥ withou⌠ drivσ names):
  91.      A>sq xyz.asm
  92.      A>sq thisfile.doc b:thatfile.doc
  93. wil∞áá creatσá squeezeΣá file≤á xyz.aqm¼áá thisfile.dqcá anΣ ì
  94. thatfile.dqc¼á al∞á oε thσ curren⌠ drive¼á A«á Thσá origina∞ ì
  95. file≤ arσ no⌠ disturbed« Notσ tha⌠ thσ name≤ oµ thσ squeezeΣ ì
  96. files are generated by rules - you don't specify them.
  97.  
  98. Likewise,
  99.      A>usq xyz.aqm
  100. wil∞á creatσ filσ xyz.asφ oε thσ ┴á drive¼á overwritinτá thσ ì
  101. original«á (Thσá origina∞ namσ i≤ recreateΣ froφ informatioε ì
  102. storeΣ iε thσ squeezeΣ version.⌐ Thσ squeezeΣ versioε i≤ no⌠ ì
  103. disturbed.
  104.  
  105. EacΦ filσ namσ i≤ processeΣ iε order¼á anΣ yo⌡ caε lis⌠á al∞ ì
  106. thσ file≤ yo⌡ caε fi⌠ iε ß command«á Thσ filσ name≤ giveε t∩ ì
  107. S╤ anΣ US╤ mus⌠ bσ specific« Yo⌡ wil∞ learε belo≈ ho≈ t∩ usσ ì
  108. thσ FL╙ prograφ t∩ expanΣ pattern≤ likσ *.asφ (al∞ file≤á oµ ì
  109. typσá asm⌐ int∩ ß lis⌠ oµ specifiπ name≤ anΣ feeΣ theφá int∩ ìèSQ or USQ.
  110.  
  111. Thσ abovσ example≤ le⌠ thσ destinatioε drivσ defaul⌠ t∩á thσ ì
  112. curren⌠ loggeΣ drive¼ whicΦ wa≤ showε iε thσ promp⌠ t∩ bσ A« ì
  113. Yo⌡ caε changσ thσ destinatioε drivσ a≤ ofteε a≤ yo⌡ likσ iε ì
  114. the parameter list. For example,
  115.      A>sq x.asm b: y.asm z.asm c: d:s.asm
  116. wil∞ creatσ x.aqφ oε thσ curren⌠ drive¼á A¼á y.aqφ anΣ z.aqφ ì
  117. oε thσ ┬ drivσ anΣ s.aqφ oε thσ ├ drive« Notσ tha⌠ thσ firs⌠ ì
  118. threσ original≤ arσ oε drivσ ┴ anΣ thσ las⌠ onσ i≤ oεá drivσ ì
  119. D«á Remembe≥á tha⌠ eacΦ paramete≥ i≤ processeΣ iε order¼á s∩ ì
  120. yo⌡ mus⌠ changσ thσ destinatioε drivσ beforσ yo⌡ specif∙ thσ ì
  121. files to be created on that drive.
  122.  
  123. Eventuall∙ yo⌡ wil∞ havσ diskette≤ witΦ man∙ squeezeΣá file≤ ì
  124. oεá theφ anΣ yo⌡ wil∞ wonde≥ wha⌠ i≤ iε whicΦ file«á Iµ the∙ ì
  125. weren'⌠á squeezeΣ yo⌡ woulΣ usσ thσ TYP┼ commanΣ t∩ looδá a⌠ ì
  126. thσá comment≤ a⌠ thσ beginninτ oµ thσá files«á Bu⌠á squeezeΣ ì
  127. file≤á jus⌠á makσá ß mes≤ oε you≥ CR╘ screeε wheεá yo⌡á TYP┼ ì
  128. them¼á s∩á ╔ havσ provideΣ thσ requireΣ featurσ a≤ ß previe≈ ì
  129. optioε t∩ thσ US╤ program.
  130.      A>usq -10 x.bas b:y.asm
  131. wil∞á no⌠ takσ thσ timσ t∩ creatσ unsqueezeΣ files«á InsteaΣ ì
  132. i⌠á wil∞á unsqueezσá thσ firs⌠ 1░ line≤á oµá eacΦá filσá anΣ ì
  133. displa∙á theφá oε you≥ console«á Thσ displa∙ froφ eacΦá filσ ì
  134. consists of the file names, the data and a formfeed (FF).
  135. Also,
  136.      A>usq - c:xyz.mac
  137. wil∞á unsqueezσá anΣ displa∙ thσ firs⌠ 65,53╡ line≤á oµá an∙ ì
  138. file≤ listed« That'≤ thσ bigges⌠ numbe≥ yo⌡ caε givσ it¼ anΣ ì
  139. is intended to display the whole file.
  140.  
  141. Thi≤áá previe≈á optioεá als∩á ensure≤á tha⌠á thσáá datßáá i≤ ì
  142. displayable«á Thσá parit∙ bi⌠ i≤ strippeΣ ofµ (somσ Wordsta≥ ì
  143. file≤á usσá i⌠ fo≥ forma⌠ control⌐ anΣ an∙á unusua∞á contro∞ ì
  144. character≤á arσá converteΣ t∩ periods«á You'l∞ seσá somσá oµ ì
  145. thesσá a⌠á thσ enΣ oµ thσ file≤ a≤ thσ CP/═ enΣ oµá filσá i≤ ì
  146. treateΣá a≤á datßá anΣá thσá remainde≥á oµá thσá secto≥áá i≤ ì
  147. displayed.
  148.  
  149. Yo⌡ arσ no≈ familia≥ witΦ al∞ oµ thσ operationa∞á parameter≤ ì
  150. oµ S╤ anΣ USQ«á Bu⌠ s∩ fa≥ yo⌡ havσ alway≤ typeΣ theφ oε thσ ì
  151. commanΣ linσ whicΦ causeΣ thσ prograφ t∩ bσ run« Fo≥ reason≤ ì
  152. whicΦá wil∞ becomσ apparen⌠ later¼á ╔ havσ als∩ provideΣá aε ì
  153. interactivσá mode«áá Iµá therσá arσá n∩á parameter≤á (excep⌠ ì
  154. directeΣá i/∩á parameters¼á describeΣ later⌐ oε thσá commanΣ ì
  155. line¼á S╤á anΣ US╤ wil∞ promp⌠ witΦ aε asterisδá anΣá accep⌠ ì
  156. parameter≤ froφ thσ consolσ keyboard« EacΦ paramete≥ mus⌠ bσ ì
  157. followeΣá b∙á RETUR╬ anΣ wil∞ bσ processeΣá immediately«á Aε ì
  158. empt∙á commanΣ (jus⌠ RETURN⌐ wil∞ causσ thσ prograφ t∩á exi⌠ ì
  159. bacδá t∩á CP/M«á Tr∙ i⌠ - i⌠ wil∞ hel≡ yo⌡á understanΣá wha⌠ ì
  160. follows.
  161.  
  162. No≈ let≤ ge⌠ int∩ directeΣ i/o¼ whicΦ wil∞ bσ ne≈ t∩ mos⌠ oµ ì
  163. you¼á bu⌠ wil∞ savσ yo⌡ s∩ mucΦ worδ yo⌡ wil∞ wonde≥ ho≈ yo⌡ ìèeve≥ go⌠ alonτ withou⌠ it.
  164.  
  165. Perhap≤ yo⌡ frequentl∙ squeezσ o≥ unsqueezσ thσ samσ lis⌠ oµ ì
  166. file≤á anΣ yo⌡ woulΣ likσ t∩ typσ thσ lis⌠ oncσ anΣ bσá donσ ì
  167. witΦ it« Usσ aε edito≥ (o≥ FLS¼ describeΣ below⌐ t∩ creatσ ß ì
  168. filσá witΦá onσá paramete≥ pe≥ line«á Fo≥á examplσá cal∞á i⌠ ì
  169. commands.lst.
  170.  
  171. Then,
  172. A>sq <commands.lst
  173. wil∞á causσ thσ commanΣ lis⌠ filσ t∩ bσ reaΣ a≤ iµ yo⌡á werσ ì
  174. typing it! You will see it on the console.
  175.  
  176. Tha⌠ wa≤ redirecteΣ consolσ input«á No≈ assumσ tha⌠ yo⌡ havσ ì
  177. ß ver∙ lonτ lis⌠ oµ file≤ t∩ squeezσ o≥ unsqueezσ anΣá whilσ ì
  178. yo⌡á arσá takinτ ß na≡ thσ progres≤ comment≤ anΣ maybσá somσ ì
  179. erro≥á comment≤á scrol∞á ofµá thσá screen«á Redirectinτá thσ ì
  180. consolσáá outpu⌠áá wil∞á le⌠á yo⌡á capturσáá theáá progres≤ ì
  181. informatioεá iε ß filσ s∩ yo⌡ caε checδ i⌠ later«á Thσ erro≥ ì
  182. comments will have the screen to themselves.
  183.  
  184. For example,
  185. A>sq <commands.lst >out
  186. wil∞ senΣ thσ progres≤ comment≤ t∩ thσ filσ "out"¼ whicΦ yo⌡ ì
  187. caε TYP┼ later«á Thσ routinσ displa∙ oµ thσ prograφ namσ anΣ ì
  188. version¼ etc.¼ wil∞ stil∞ g∩ t∩ thσ console.
  189.  
  190. ┴ morσ practica∞ examplσ i≤ t∩ senΣ tha⌠ informatioε t∩á thσ ì
  191. consolσ anΣ t∩ thσ file.
  192. A>sq <commands.lst +out
  193. will do that.
  194.  
  195. RedirecteΣá inpu⌠á anΣ outpu⌠ arσ independen⌠ - yo⌡á caεá d∩ ì
  196. either, both or neither.
  197.  
  198. Therσ i≤ onσ morσ forφ oµ redirectioε calleΣ ß "pipe"« I⌠ i≤ ì
  199. b∙ fa≥ thσ mos⌠ importan⌠ t∩ you«á Recal∞ tha⌠ ╔ promiseΣ t∩ ì
  200. tel∞á yo⌡ ho≈ t∩ usσ ambiguou≤ filσ name≤ sucΦ a≤ *.asφ (al∞ ì
  201. file≤á oµá typσ asφ oε thσ curren⌠ defaul⌠ drive⌐á o≥á *.?q┐ ì
  202. (al∞ file≤ havinτ ß "qó a≤ thσ seconΣ lette≥ oµ thei≥ type)« ì
  203. Tha⌠ las⌠ examplσ jus⌠ happen≤ t∩ meaε "al∞ squeezeΣ files"¼ ì
  204. assuminτá yo⌡ don'⌠ havσ an∙ othe≥ file≤ witΦ sucΦá ßá sill∙ ì
  205. name (I hope).
  206.  
  207. ╔á havσá provideΣá ß prograφ calleΣ FL╙á whicΦá i≤á intendeΣ ì
  208. primarily for use in pipes. Here is an example:
  209. A>fls c: x.asm y*.asm >temp.$$$
  210. wil∞á simpl∙á pas≤ thσ firs⌠ tw∩ parameter≤ througΦá t∩á thσ ì
  211. consolσ output¼á whicΦ i≤ beinτ redirecteΣ t∩ ß filσá calleΣ ì
  212. temp.$$$«á Bu⌠á thσ thirΣ paramete≥ wil∞ bσ replaceΣ b∙á al∞ ì
  213. thσá file≤á oε thσ curren⌠ drivσ whicΦ arσ oµ typσá asφá anΣ ì
  214. have names beginning with y.
  215.  
  216. FL╙á i≤á smar⌠á enougΦ t∩ kno≈ tha⌠ ß lette≥ followeΣá b∙á ß ì
  217. coloε anΣ nothinτ elsσ i≤ ß destinatioε drivσ namσá intendeΣ ìèfo≥á S╤ o≥ USQ«á I⌠ wil∞ als∩ trea⌠ an∙ paramete≥á beginninτ ì
  218. witΦá ßá - (minu≤ sign⌐ a≤ aε optioε t∩ bσá passeΣá through« ì
  219. Anythinτá elsσá i≤ considereΣ ß filσ namσ o≥ patterε anΣá i≤ ì
  220. checkeΣ agains⌠ thσ director∙ oµ thσ appropriatσ drive.
  221.  
  222. Therefore you could use:
  223. A>fls b: c:*.aqm *.aqm -10 stuff.dqc >temp.$$$
  224. A>usq <temp.$$$
  225. A>era temp.$$$
  226. t∩ unsqueezσ al∞ file≤ oµ typσ aqφ oε drive≤ ├ anΣ ┴ anΣ pu⌠ ì
  227. thσ unsqueezeΣ file≤ oε drivσ B¼á anΣ theε previe≈ thσ firs⌠ ì
  228. 10 lines of file stuff.dqc.
  229.  
  230. Herσá i≤ wherσ thσ pipσ come≤ in«á Thσ abovσ threσá command≤ ì
  231. can be abbreviated as:
  232. A>fls b: c:*.aqm *.aqm -10 stuff.dqc |usq
  233.  
  234. Tha⌠á littlσá "|ó i≤ thσ pipσ optioε anΣ i⌠ cause≤á thσá FL╙ ì
  235. outpu⌠ t∩ bσ redirecteΣ t∩ ß temporar∙ filσ anΣ wheε tha⌠ i≤ ì
  236. donσá i⌠á actuall∙á run≤ US╤ fo≥ yo⌡ witΦ thσá prope≥á inpu⌠ ì
  237. redirection and then erases the temporary file.
  238.  
  239. Iµá tha⌠á isn'⌠á enough¼á yo⌡á caε stil∞á usσá thσá ½á o≥á ╛ ì
  240. redirectioεá optioεá a⌠ thσ enΣ oµ tha⌠ linσ t∩ capturσá thσ ì
  241. console output from USQ.
  242. A>fls b: c:*.aqm *.aqm -10 stuff.dqc |usq >out
  243.  
  244. Iµ yo⌡ plaε you≥ comment≤ carefull∙ yo⌡ caε producσ ß singlσ ì
  245. filσ containinτ aε abstrac⌠ oµ aε entirσ librar∙ oµ squeezeΣ ì
  246. files in one step!
  247. A>fls -25 *.?q? |usq >abstract
  248.  
  249. Onσá fina∞ point«á Anywherσ yo⌡ specif∙ ß filσ namσ yo⌡á caε ì
  250. specif∙ ß drivσ iε fron⌠ oµ it«á Tha⌠ applie≤ t∩ redirectioε ì
  251. anΣ wel∞ a≤ file≤ t∩ bσ squeezeΣ anΣ unsqueezed«á Iµ ßá namσ ì
  252. begin≤á witΦ ß - (minu≤ sign⌐ i⌠ wil∞ looδ likσ aε optioε t∩ ì
  253. FL╙ unles≤ yo⌡ pu⌠ ß drivσ namσ iε fron⌠ oµ i⌠ (b:-sq.077).
  254.  
  255. USAGE SUMMARY:
  256. Thσ previou≤ sectioε graduall∙ presenteΣ thσ variou≤ option≤ ì
  257. b∙ example« Thi≤ sectioε give≤ ß condenseΣ anΣ morσ abstrac⌠ ì
  258. descriptioεá anΣ i≤ intendeΣ fo≥ reference«á Iµ yo⌡ couldn'⌠ ì
  259. seσá thσ fores⌠ fo≥ thσ trees¼á maybσ thi≤ wil∞ givσá yo⌡á ß ì
  260. better view.
  261.  
  262. Thσ paramete≥ handlinτ oµ thesσ program≤ i≤ straightforward« ì
  263. Parameter≤á fal∞ int∩ tw∩ classes║á directeΣ i/∩ option≤ anΣ ì
  264. operationa∞ parameters « Notσ tha⌠ parameter≤ reaΣ froφ file≤ ì
  265. o≥á froφ thσ consolσ arσ no⌠ forceΣ t∩ uppe≥ case¼á bu⌠á thσ ì
  266. interna∞á filσá handlinτ routine≤ al∞ trea⌠á lowe≥á casσá a≤ ì
  267. uppe≥ case.
  268.  
  269. Wheεá ßá filσ t∩ bσ writteε alread∙ exists¼á i⌠á i≤á quietl∙ ì
  270. overwritten.
  271. è
  272.  
  273. DirecteΣ I/O parameters║
  274. Thσá firs⌠á actioεá takeε b∙ thesσ program≤á i≤á t∩á proces≤ ì
  275. directeΣá i/∩ parameter≤ froφ thσ CP/═ commanΣá line«á Thesσ ì
  276. parameter≤ arσ optiona∞ anΣ takσ thσ forms:
  277.  
  278.      <file     read console input from file
  279.      >file     send most console output to file
  280.      +file     send most console output to file and console
  281.      |pgm ...  send most console output to a temporary file
  282.                then run PGM.COM and take console input
  283.                from the temporary file. "..." represent the
  284.                parameters for PGM. This is called "piping".
  285.  
  286. Onl∙á onσ inpu⌠ anΣ onσ outpu⌠ redirectioε caε appl∙ t∩ eacΦ ì
  287. program« Afte≥ thσ prograφ ha≤ arrangeΣ fo≥ an∙ directeΣ i/∩ ì
  288. parameter≤ t∩ bσ obeyeΣ the∙ arσ deleteΣ froφ thσá paramete≥ ì
  289. lis⌠ seeε b∙ thσ res⌠ oµ thσ program.
  290.  
  291. Operationa∞ parameters║
  292. Thσáá prograφá theεá check≤á iµá therσá arσá an∙áá remaininτ ì
  293. parameter≤ froφ thσ CP/═ commanΣ line«á Iµ therσá are¼á the∙ ì
  294. arσ obeyed« Iµ anΣ onl∙ iµ therσ arσ n∩ remaininτ parameter≤ ì
  295. oεá thσá commanΣ line¼á thσ prograφ prompt≤ fo≥ theφ a⌠á thσ ì
  296. console«á Iµá consolσ inpu⌠ ha≤ beeε directeΣ t∩ ß filσá onσ ì
  297. paramete≥á i≤á reaΣ anΣ obeyeΣ froφ eacΦ linσ oµá thσá file« ì
  298. Otherwise¼á thσá use≥á follow≤ eacΦ typeΣ paramete≥á witΦá ß ì
  299. RETUR╬ anΣ aε empt∙ commanΣ exit≤ thσ program.
  300.  
  301. EacΦá operationa∞ paramete≥ i≤ obeyeΣ withou⌠ lookinτá aheaΣ ì
  302. t∩á othe≥á parameters¼á s∩ option≤ shoulΣ precedσá thσá filσ ì
  303. names to which they apply.
  304.  
  305. SQ operational parameters are a list of the following types:
  306.      drive:         set the current destination drive
  307.      filename       file to be squeezed
  308.      drive:filename  "   "    "    "
  309.  
  310. S╤ doe≤ no⌠ changσ thσ file≤ beinτ squeezed« New¼ squeezeΣ ì
  311. file≤ arσ createΣ oε thσ destinatioε drivσ (default≤ t∩á thσ ì
  312. curren⌠ drive⌐ witΦ name≤ deriveΣ froφ thσ origina∞ namσ bu⌠ ì
  313. witΦá thσ seconΣ lette≥ oµ thσ filσ typσ (extention⌐ changeΣ ì
  314. t∩ Q«á Wheε therσ i≤ n∩ type¼ QQ╤ i≤ used« Thσ origina∞ namσ ì
  315. i≤ saveΣ iε thσ squeezeΣ file.
  316.  
  317. US╤á operationa∞á parameter≤á arσ ß lis⌠á oµá thσá followinτ ì
  318. types:
  319.      drive:         set the current destination drive
  320.      filename       file to be squeezed
  321.      drive:filename  "   "    "    "
  322.      -count         Preview (display on the console) the first
  323.                     "countóá line≤á oµá eacΦáá file¼áá wherσ ì
  324.                     "count" is a number from 1 to 65535.
  325. èIµá thσá -coun⌠á optioε I╙ NO╘ iε effec⌠á theεá US╤á create≤ ì
  326. unsqueezeΣá version≤ oµ thσ listeΣ file≤ oε thσá destinatioε ì
  327. drive¼á whicΦá default≤ t∩ thσ curren⌠á loggeΣá drive«á EacΦ ì
  328. unsqueezeΣá filσ i≤ CR├ checkeΣ agains⌠ thσ CR├ valuσ oµ thσ ì
  329. origina∞ file¼ whicΦ i≤ par⌠ oµ thσ squeezeΣ file.
  330.  
  331. Thσá -coun⌠á optioε i≤ fo≥á previewinτá squeezeΣá files«á I⌠ ì
  332. allow≤á yo⌡á t∩á skiφá througΦ ß grou≡á oµá squeezeΣá files¼ ì
  333. peekinτá a⌠á thσ firs⌠ "countó line≤ iε each«á Thσá ╛á o≥á ½ ì
  334. outpu⌠á redirectioεá optioε coulΣ bσ useΣá t∩á capturσá thi≤ ì
  335. informatioεá iε ß file¼á alonτ witΦ thσ correspondinτá filσ ì
  336. names¼ thu≤ forminτ aε abstrac⌠ oµ thσ file≤ oε ß disk.
  337.  
  338. Wheεá thσá -coun⌠ optioε i≤ useΣ thσ CR├ checδ i≤á cancelleΣ ì
  339. anΣá thσá outpu⌠ i≤ forceΣ int∩ printablσ forφ b∙á strippinτ ì
  340. thσá parit∙ bi⌠ anΣ changinτ mos⌠ unprintablσ character≤á t∩ ì
  341. periods«á Thσ exception≤ arσ CR¼á LF¼ TA┬ anΣ FF« Thσ outpu⌠ ì
  342. froφá eacΦ filσ i≤ terminateΣ b∙ aε FF«á PI╨ caε bσ useΣá t∩ ì
  343. stri≡ FF≤ anΣ providσ formatteΣ printinτ iµ desired« "Countó ì
  344. default≤ t∩ thσ maximuφ value¼á 65,535¼á iε casσ yo⌡ wan⌠ t∩ ì
  345. looδ a⌠ ß wholσ file.
  346.  
  347. FL╙ operationa∞ parameters║á FL╙ i≤ ß "filter"¼á whicΦ mean≤ ì
  348. i⌠á accept≤ inpu⌠ froφ thσ consolσ inpu⌠ o≥ commanΣ linσ anΣ ì
  349. transform≤ thσ inpu⌠ accordinτ t∩ ß se⌠ oµ rule≤ t∩á producσ ì
  350. consolσá output«á That'≤ finσ fo≥ gettinτ familia≥ witΦ FLS¼ ì
  351. bu⌠ t∩ makσ i⌠ usefu∞ yo⌡ "pipeó it≤ outpu⌠ t∩ thσ inpu⌠á oµ ì
  352. S╤ o≥ USQ.
  353.  
  354. An∙ FL╙ paramete≥ whicΦ i≤ oµ thσ form:
  355.      drive:
  356. or   -anything
  357. i≤á copieΣá t∩ consolσ outpu⌠ unchanged«
  358.  
  359. An∙á othe≥á FL╙ operationa∞ paramete≥ i≤ treateΣ a≤á ßá filσ ì
  360. namσ anΣ i≤ checkeΣ agains⌠ thσ director∙ oµ thσ appropriatσ ì
  361. drive« Iµ i⌠ contain≤ ¬ o≥ ┐ i⌠ i≤ replaceΣ b∙ ß lis⌠ oµ al∞ ì
  362. thσ file≤ whicΦ fi⌠ thσ pattern«á Iµ nothinτ i≤ founΣ iε thσ ì
  363. director∙á aε erro≥ commen⌠ i≤ sen⌠ t∩ thσ console¼á eveε iµ ì
  364. norma∞ consolσ outpu⌠ ha≤ beeε redirecteΣ t∩ ß file.
  365.  
  366. IMPORTANT║á wheεá usinτá ß pipσ froφ FL╙ o≥ an∙ othe≥á inpu⌠ ì
  367. redirectioε t∩ ge⌠ thσ filσ list¼á etc.¼á oε whicΦ US╤ o≥ S╤ ì
  368. arσá t∩ operatσ yo⌡ mus⌠ NO╘ pu⌠ an∙ parameter≤á othe≥á thaε ì
  369. redirectioεá followinτá thσ prograφ name«á The∙ mus⌠ bσá al∞ ì
  370. togethe≥ iε thσ inpu⌠ paramete≥ list« Example:
  371.  
  372. A>fls -10  b:*.cq |usq +saveout
  373. i≤á thσá prope≥ wa∙ t∩ previe≈ thσ to≡ (firs⌠ 1░á lines⌐á oµ ì
  374. eacΦá squeezeΣá .├ filσ oε thσ ┬ drive«á Thσ -1░á i≤á passeΣ ì
  375. througΦá FL╙á t∩ USQ«á Thσ result≤ wil∞ bσ displayeΣ oεá thσ ì
  376. consolσá anΣá saveΣ iε filσ "saveoutó oε thσá ┴á drive«á Thσ ì
  377. saveou⌠á filσ let≤ yo⌡ confirφ thσ lis⌠ oµá processeΣá file≤ ì
  378. eveεá iµá thσ displa∙ scroll≤ ofµ thσ screeεá whilσá runninτ ì
  379. unattended.è
  380. Iε summary¼ i/∩ redirectioε parameter≤ (thosσ prefixeΣ b∙ +¼ ì
  381. <¼á >¼á o≥ |⌐ alway≤ follo≈ thσ commanΣ t∩ whicΦ the∙ apply¼ ì
  382. bu⌠á operationa∞ parameter≤á (destinatioεá drive¼á -options⌐ ì
  383. mus⌠ bσ witΦ thσ filσ namσ list.
  384.  
  385. EXAMPLES:
  386. 1« Unsqueezσ al∞ squeezeΣ file≤ oε thσ curren⌠ drivσ anΣ pu⌠ ì
  387. thσ resultinτ unsqueezeΣ file≤ oε thσ samσ drive.
  388.      A>fls *.?q? |usq
  389.  
  390. 2«á Looδá a⌠á thσ firs⌠ 1░ line≤ oµ ever∙ squeezeΣá filσá oε ì
  391. drivσ B.
  392.     A>fls -10 b:*.?Q? |usq
  393. notσá tha⌠ sincσ thσ filσ name≤ fo≥ US╤ camσ froφá FLS¼á thσ ì
  394. coun⌠ optioε haΣ t∩ comσ froφ therσ too.
  395.  
  396. 4«á Squeezσ al∞ .AS═ file≤ oε thσ ┬ anΣ ├ drive≤ anΣ pu⌠ thσ ì
  397. squeezeΣ file≤ oε thσ ─ drive.
  398.      A>fls d: b:*.asm c:*.asm |sq
  399. Notσ tha⌠ iµ d║á haΣ no⌠ beeε firs⌠ thσ squeezeΣ file≤ woulΣ ì
  400. havσ gonσ t∩ thσ ┴ drive.
  401.  
  402. 5«á Squeezσ filσ xyz.π oε thσ ┴ drivσ anΣ pu⌠ thσ result≤ oε ì
  403. thσ ┴ drive.
  404.      A>sq xyz.c
  405.  
  406. 6«á BuilΣá ßá paramete≥ lis⌠ oµ al∞ AS═ file≤ oε drivσ ├á iε ì
  407. filσ XX.PA╥ anΣ vie≈ i⌠ oε thσ console.
  408.      A>fls c:*.asm +xx.par
  409.  
  410. 7« Usσ thσ abovσ lis⌠ t∩ squeezσ thσ file≤ t∩ thσ ┴ drive.
  411.      A>sq <xx.par
  412.  
  413. 8« A≤ above¼ bu⌠ result≤ t∩ thσ ┬ drive.
  414.      A>b:
  415.      B>a:sq <a:xx.par
  416.  
  417. 9«á Squeezσá al∞ AS═ anΣ ├ file≤ oε thσ ┴ drivσ anΣ pu⌠á thσ ì
  418. result≤ oε thσ ┬ drive« Capturσ thσ progres≤ comment≤ iε thσ ì
  419. filσ "outó withou⌠ displayinτ them.
  420.      A>fls b: *.asm *.c |sq >out
  421.  
  422. 10«á Previe≈á thσ firs⌠ 2┤ line≤ oµ eacΦ squeezeΣá AS═á filσ ì
  423. THE╬ unsqueezσ theφ (unles≤ stoppeΣ viß cntl-C).
  424.      A>fls -24 *.aqm a: *.aqm |usq
  425. Notσá tha⌠á specificatioεá oµ ßá destinatioεá drivσá cancel≤ ì
  426. previewing.
  427.  
  428. RECOMPILATION:
  429. Thesσ program≤ arσ writteε iε ├ anΣ thσ instruction≤ arσ fo≥ ì
  430. thσ BD╙ ├ compiler« Thσ librarie≤ mus⌠ havσ beeε adapteΣ fo≥ ì
  431. directed i/o as described in DIO2.C.
  432.  
  433. Thσá procedure≤ belo≈ indicatσ thσ variou≤ ├ languagσ sourcσ ìèfile≤á (filσá typσ .C⌐ requireΣ t∩á recompile«á Thosσá file≤ ì
  434. contaiεá #includσ statement≤ whicΦ causσ heade≥ file≤á (filσ ì
  435. typσá .H⌐ t∩ bσ reaΣ anΣ compiled«á Thσ BDSCIO.╚ heade≥ filσ ì
  436. contain≤ informatioε abou⌠ you≥ system¼á includinτ ho≈á mucΦ ì
  437. spacσá t∩ reservσ fo≥ filσ buffers«á Yo⌡ shoulΣ usσ you≥ owε ì
  438. versioε oµ thi≤ file.
  439.  
  440. Thσ sourcσ file≤ DIO2.C¼ SQDIO.├ anΣ USQDIO.├ arσ identicalí ì
  441. Iµ yo⌡ onl∙ ge⌠ one¼á jus⌠ usσ PI╨ t∩ creatσ thσ rest«á The∙ ì
  442. arσ separate onl∙ t∩ providσ separate CR╠ files¼á whicΦá arσ ì
  443. needeΣá becausσ oµ thσ differen⌠ externa∞ variablσá options« ì
  444. Notσá tha⌠á the∙á d∩á no⌠á includσá al∞á thσá heade≥á files¼ ì
  445. thereforσá thσá othe≥á sourcσá file≤ mus⌠á includσá thσá di∩ ì
  446. relateΣ header≤ first.
  447.  
  448. DIO.├ i≤ supplieΣ witΦ BD╙ C«á Thσ abovσ threσ file≤á diffe≥ ì
  449. froφá thσ officia∞ versioε onl∙ b∙ ß changσ t∩ thσá dioflusΦ ì
  450. functioε t∩ ensurσ TEMPIN.$$ñ i≤ deleteΣ beforσ anothe≥ filσ ì
  451. i≤ renameΣ t∩ tha⌠ name«á (CP/═ i≤ stupiΣ enougΦ t∩ makσ tw∩ ì
  452. file≤ oµ thσ samσ name!).
  453.  
  454. Thσ procedurσ fo≥ buildinτ thσ SQ.CO═ anΣ USQ.CO═ file≤ froφ ì
  455. thei≥á sourcσ file≤ follows«á Notσ tha⌠ ╔ havσá renameΣá thσ ì
  456. firs⌠á phasσá oµ thσ BD╙ ├ compile≥ t∩ CC.COM«á Als∩ ╔á wil∞ ì
  457. assumσá thσ BD╙ ├ packagσ i≤ oε drivσ ─ anΣ thσ S╤á anΣá US╤ ì
  458. relateΣ file≤ arσ oε ┬ alonτ witΦ BDSCIO.╚ anΣ DIO.H.
  459.  
  460. EacΦá C├ commanΣ produce≤ ß CR╠ filσ witΦ specifiπ addresse≤ ì
  461. fo≥á externa∞ variables«á Iµ yo⌡ recompilσ ß filσá witΦá thσ ì
  462. samσá valuσ iε thσ -σ optioε yo⌡ don'⌠ havσ t∩ recompilσ thσ ì
  463. othe≥á files¼á jus⌠á d∩ thσ desireΣ C├ anΣ theεá repea⌠á thσ ì
  464. entirσ CLINK.
  465.  
  466. CLINK'≤ -≤ optioε print≤ statistics« To≡ oµ memor∙ mean≤ thσ ì
  467. curren⌠ TPA« Stacδ spacσ i≤ what'≤ lef⌠ over« Thesσ program≤ ì
  468. requirσá stacδá spacσ fo≥ loca∞á variables¼á includinτá somσ ì
  469. health∙ i/∩ buffers«á Als∩ somσ function≤ arσ recursive«á Iµ ì
  470. S╤ doesn'⌠ havσ severa∞ ╦ oµ stacδ spacσ i⌠ wil∞ probabl∙ g∩ ì
  471. craz∙ anΣ d∩ almos⌠ anything.
  472.  
  473. For SQ (note not all use -o):
  474. D>cc b:sq.c -o -e3200
  475. D>cc b:sqdio.c -e3200
  476. D>cc b:tr1.c -o -e3200
  477. D>cc b:tr2.c -o -e3200
  478. D>cc b:io.c -o -e3200
  479. D>clink b:sq sqdio tr2 tr1 io -s
  480.  
  481. Thσ linke≥ wil∞ displa∙ somσ statistics« Checδ tha⌠ thσ las⌠ ì
  482. codσá addres≤ i≤ les≤ thaε thσ star⌠ addres≤ oµ thσ externa∞ ì
  483. variable≤ (320░ iε thi≤ example)«á Iµ not¼á repea⌠ thσ abovσ ì
  484. witΦ ß highe≥ addres≤ iε thσ -σ options.
  485.  
  486. Fo≥ US╤ (note║ -e280░ ma∙ bσ enough« Notσ no⌠ al∞ use -o):
  487. D>cc b:usq.c -o -e2900èD>cc b:usqdio.c -e2900
  488. D>cc b:utr.c -o -e2900
  489. D>clink b:usq usqdio utr -s
  490.  
  491. Check the addresses as described above.
  492.  
  493. For FLS:
  494. D>cc b:fls.c
  495. D>cc b:dio2.c
  496. D>clink b:fls dio2
  497.  
  498. IN CASE OF TROUBLE:
  499. ╔á welcomσá suggestion≤á anΣá buτá reports¼áá bu⌠á yo⌡á mus⌠ ì
  500. understanΣ tha⌠ somσ oµ thσ idea≤ ╔ ge⌠ woulΣ involvσ almos⌠ ì
  501. a≤ mucΦ prograφ developmen⌠ a≤ thσ origina∞ package«á ╔ havσ ì
  502. wha⌠ ╔ wan⌠ anΣ (╔ hope⌐ wha⌠ mos⌠ user≤ want¼á s∩ ╔ aφá no⌠ ì
  503. motivateΣá t∩á spenΣá man∙ morσá month≤á creatinτá somethinτ ì
  504. entirel∙á differen⌠á whicΦá jus⌠á happen≤á t∩á involvσá datß ì
  505. compression« Thσ datß compressioε routine≤ arσ probabl∙ les≤ ì
  506. thaεá halµ oµ thi≤ package¼á anΣ arσ designeΣ t∩ operatσá oε ì
  507. largσ block≤ oµ data¼ sucΦ a≤ files.
  508.  
  509.         Dick Greenlaw
  510.                 251 Colony Ct.
  511.                 Gahanna, Ohio 43230
  512.                 614-475-0172 weekends and evenings
  513.